diff options
| author | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2015-05-12 20:06:40 +0530 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2015-05-12 20:07:37 +0530 |
| commit | 5e097f58efbe87433fe959697ed301be9fd6149c (patch) | |
| tree | b66b3819357d379a6af37f1b6a47ce4911b8cfca | |
| parent | d05f25844f1c3daf84632d73c2ea1e3ac2d932f3 (diff) | |
| parent | b9cfa0ffdef8559af4fdde8ea2387dabdf342891 (diff) | |
Release 4.0.10.96 QCACLD WLAN Driver
Merge remote-tracking branch 'origin/caf/caf-wlan/master' into HEAD
* origin/caf/caf-wlan/master:
Cafstaging Release 4.0.10.96
qcacld: Kbuild: Enable Runtime PM Support.
qcacld: protect mgmt flow in SSR case
qcacld: Make the OCB RX stats header optional
qcacld: setUnitTestCmd is no longer dependent on WLAN_FEATURE_ROAM_OFFLOAD
qcacld: Fix having wlan0 and wlanocb0 up concurrently
SAP: update VHT SGI capability based on channel bandwidth
qcacld-2.0: Remove unused header file inclusion
Change-Id: Ib91147c054243c45dc785bcb42d54d6170588c77
| -rw-r--r-- | CORE/CLD_TXRX/TLSHIM/tl_shim.c | 5 | ||||
| -rw-r--r-- | CORE/CLD_TXRX/TXRX/ol_rx.c | 86 | ||||
| -rw-r--r-- | CORE/CLD_TXRX/TXRX/ol_txrx_types.h | 9 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_ocb.c | 26 | ||||
| -rw-r--r-- | CORE/MAC/inc/qwlan_version.h | 4 | ||||
| -rw-r--r-- | CORE/MAC/inc/sirApi.h | 7 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 13 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma_ocb.c | 60 | ||||
| -rw-r--r-- | CORE/SERVICES/WMI/wmi_unified.c | 21 | ||||
| -rw-r--r-- | CORE/SYS/legacy/src/utils/src/parserApi.c | 35 | ||||
| -rw-r--r-- | Kbuild | 2 |
11 files changed, 194 insertions, 74 deletions
diff --git a/CORE/CLD_TXRX/TLSHIM/tl_shim.c b/CORE/CLD_TXRX/TLSHIM/tl_shim.c index b1d9bb683e56..5523c90bb191 100644 --- a/CORE/CLD_TXRX/TLSHIM/tl_shim.c +++ b/CORE/CLD_TXRX/TLSHIM/tl_shim.c @@ -768,6 +768,11 @@ static int tlshim_mgmt_rx_wmi_handler(void *context, u_int8_t *data, vos_ctx); VOS_STATUS ret = VOS_STATUS_SUCCESS; + if (vos_is_logp_in_progress(VOS_MODULE_ID_TL, NULL)) { + TLSHIM_LOGE("%s: LOPG in progress\n", __func__); + return (-1); + } + adf_os_spin_lock_bh(&tl_shim->mgmt_lock); ret = tlshim_mgmt_rx_process(context, data, data_len, FALSE, 0); adf_os_spin_unlock_bh(&tl_shim->mgmt_lock); diff --git a/CORE/CLD_TXRX/TXRX/ol_rx.c b/CORE/CLD_TXRX/TXRX/ol_rx.c index 67d17a140ac8..00f9d48e0fa1 100644 --- a/CORE/CLD_TXRX/TXRX/ol_rx.c +++ b/CORE/CLD_TXRX/TXRX/ol_rx.c @@ -950,20 +950,35 @@ DONE: } else { /* If this is for OCB, then prepend the RX stats header. */ if (vdev->opmode == wlan_op_mode_ocb) { - struct ether_header eth_header = {{0}}; - struct ocb_rx_stats_hdr_t rx_header = {0}; - /* Construct the RX stats header and push that to the front - of the packet. */ - rx_header.version = 1; - rx_header.length = sizeof(rx_header); - rx_header.channel_freq = (vdev->ocb_channel_event.is_valid) ? - vdev->ocb_channel_event.mhz - : 0; - rx_header.rssi_cmb = peer->last_pkt_rssi_cmb; - adf_os_mem_copy(rx_header.rssi, peer->last_pkt_rssi, - sizeof(rx_header.rssi)); - if (peer->last_pkt_legacy_rate_sel == 0) { - switch (peer->last_pkt_legacy_rate) { + int i; + struct ol_txrx_ocb_chan_info *chan_info = 0; + int packet_freq = (vdev->ocb_channel_event.is_valid) ? + vdev->ocb_channel_event.mhz : 0; + for (i = 0; i < vdev->ocb_channel_count; i++) { + if (vdev->ocb_channel_info[i].chan_freq == packet_freq) { + chan_info = &vdev->ocb_channel_info[i]; + break; + } + } + if (!chan_info || !chan_info->disable_rx_stats_hdr) { + struct ether_header eth_header = { {0} }; + struct ocb_rx_stats_hdr_t rx_header = {0}; + + /* + * Construct the RX stats header and push that to the front + * of the packet. + */ + rx_header.version = 1; + rx_header.length = sizeof(rx_header); + rx_header.channel_freq = + (vdev->ocb_channel_event.is_valid) ? + vdev->ocb_channel_event.mhz + : 0; + rx_header.rssi_cmb = peer->last_pkt_rssi_cmb; + adf_os_mem_copy(rx_header.rssi, peer->last_pkt_rssi, + sizeof(rx_header.rssi)); + if (peer->last_pkt_legacy_rate_sel == 0) { + switch (peer->last_pkt_legacy_rate) { case 0x8: rx_header.datarate = 6; break; @@ -991,29 +1006,30 @@ DONE: default: rx_header.datarate = 0xFF; break; + } + } else { + rx_header.datarate = 0xFF; } - } else { - rx_header.datarate = 0xFF; - } - rx_header.timestamp_microsec = - peer->last_pkt_timestamp_microsec; - rx_header.timestamp_submicrosec = - peer->last_pkt_timestamp_submicrosec; - rx_header.tsf32 = peer->last_pkt_tsf; - rx_header.ext_tid = peer->last_pkt_tid; - - adf_nbuf_push_head(msdu, sizeof(rx_header)); - adf_os_mem_copy(adf_nbuf_data(msdu), &rx_header, - sizeof(rx_header)); - - /* Construct the ethernet header with type 0x8152 and push - that to the front of the packet to indicate the RX stats - header. */ - eth_header.ether_type = adf_os_htons(ETHERTYPE_OCB_RX); - adf_nbuf_push_head(msdu, sizeof(eth_header)); - adf_os_mem_copy(adf_nbuf_data(msdu), ð_header, - sizeof(eth_header)); + rx_header.timestamp_microsec = + peer->last_pkt_timestamp_microsec; + rx_header.timestamp_submicrosec = + peer->last_pkt_timestamp_submicrosec; + rx_header.tsf32 = peer->last_pkt_tsf; + rx_header.ext_tid = peer->last_pkt_tid; + + adf_nbuf_push_head(msdu, sizeof(rx_header)); + adf_os_mem_copy(adf_nbuf_data(msdu), &rx_header, + sizeof(rx_header)); + + /* Construct the ethernet header with type 0x8152 and push + that to the front of the packet to indicate the RX stats + header. */ + eth_header.ether_type = adf_os_htons(ETHERTYPE_OCB_RX); + adf_nbuf_push_head(msdu, sizeof(eth_header)); + adf_os_mem_copy(adf_nbuf_data(msdu), ð_header, + sizeof(eth_header)); + } } OL_RX_PEER_STATS_UPDATE(peer, msdu); OL_RX_ERR_STATISTICS_1(pdev, vdev, peer, rx_desc, OL_RX_ERR_NONE); diff --git a/CORE/CLD_TXRX/TXRX/ol_txrx_types.h b/CORE/CLD_TXRX/TXRX/ol_txrx_types.h index d4b526d9aed1..68a215a25426 100644 --- a/CORE/CLD_TXRX/TXRX/ol_txrx_types.h +++ b/CORE/CLD_TXRX/TXRX/ol_txrx_types.h @@ -775,6 +775,11 @@ struct ol_txrx_pdev_t { u_int16_t tx_pkt_histrogram[TXRX_DATA_HISTROGRAM_NUM_INTERVALS]; }; +struct ol_txrx_ocb_chan_info { + uint32_t chan_freq; + uint16_t disable_rx_stats_hdr:1; +}; + struct ol_txrx_vdev_t { /* pdev - the physical device that is the parent of this virtual device */ struct ol_txrx_pdev_t *pdev; @@ -873,6 +878,10 @@ struct ol_txrx_vdev_t { uint16_t band_center_freq2; WLAN_PHY_MODE phy_mode; } ocb_channel_event; + + /* Information about the schedules in the schedule */ + struct ol_txrx_ocb_chan_info *ocb_channel_info; + uint32_t ocb_channel_count; }; struct ol_rx_reorder_array_elem_t { diff --git a/CORE/HDD/src/wlan_hdd_ocb.c b/CORE/HDD/src/wlan_hdd_ocb.c index 379e53c39491..66780509a0f5 100644 --- a/CORE/HDD/src/wlan_hdd_ocb.c +++ b/CORE/HDD/src/wlan_hdd_ocb.c @@ -346,6 +346,7 @@ static int hdd_ocb_register_sta(hdd_adapter_t *adapter) VOS_STATUS vos_status = VOS_STATUS_E_FAILURE; WLAN_STADescType sta_desc = {0}; hdd_context_t *hdd_ctx = WLAN_HDD_GET_CTX(adapter); + hdd_station_ctx_t *pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(adapter); u_int8_t peer_id; v_MACADDR_t wildcardBSSID = { {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}, @@ -359,12 +360,7 @@ static int hdd_ocb_register_sta(hdd_adapter_t *adapter) return -EINVAL; } - /* - * Register adapter for STA ID 0 - * TODO-OCB: This is for standalone 802.11p only. We need to change this - * for concurrent mode - */ - hdd_ctx->sta_to_adapter[0] = adapter; + hdd_ctx->sta_to_adapter[peer_id] = adapter; sta_desc.ucSTAId = peer_id; /* Fill in MAC addresses */ @@ -389,6 +385,15 @@ static int hdd_ocb_register_sta(hdd_adapter_t *adapter) return -EINVAL; } + if (pHddStaCtx->conn_info.staId[0] != 0 && + pHddStaCtx->conn_info.staId[0] != peer_id) { + hddLog(LOGE, FL("The ID for the OCB station has changed.")); + } + + pHddStaCtx->conn_info.staId[0] = peer_id; + vos_copy_macaddr(&pHddStaCtx->conn_info.peerMacAddress[0], + &adapter->macAddressCurrent); + return 0; } @@ -823,7 +828,8 @@ static const struct nla_policy qca_wlan_vendor_dcc_update_ndl[ struct wlan_hdd_ocb_config_channel { uint32_t chan_freq; uint32_t bandwidth; - tSirMacAddr mac_address; + uint16_t flags; + uint8_t reserved[4]; sir_qos_params_t qos_params[MAX_NUM_AC]; uint32_t max_pwr; uint32_t min_pwr; @@ -841,8 +847,6 @@ static void wlan_hdd_ocb_config_channel_to_sir_ocb_config_channel( for (i = 0; i < channel_count; i++) { dest[i].chan_freq = src[i].chan_freq; dest[i].bandwidth = src[i].bandwidth; - vos_mem_copy(dest[i].mac_address, src[i].mac_address, - sizeof(dest[i].mac_address)); vos_mem_copy(dest[i].qos_params, src[i].qos_params, sizeof(dest[i].qos_params)); /* @@ -854,6 +858,7 @@ static void wlan_hdd_ocb_config_channel_to_sir_ocb_config_channel( */ dest[i].max_pwr = src[i].max_pwr / 2; dest[i].min_pwr = (src[i].min_pwr + 1) / 2; + dest[i].flags = src[i].flags; } } @@ -958,6 +963,9 @@ int wlan_hdd_cfg80211_ocb_set_config(struct wiphy *wiphy, wlan_hdd_ocb_config_channel_to_sir_ocb_config_channel( config->channels, nla_data(channel_array), channel_count); + /* Identify the vdev interface */ + config->session_id = adapter->sessionId; + /* Release all the mac addresses used for OCB */ for (i = 0; i < adapter->ocb_mac_addr_count; i++) { wlan_hdd_release_intf_addr(adapter->pHddCtx, diff --git a/CORE/MAC/inc/qwlan_version.h b/CORE/MAC/inc/qwlan_version.h index b51be0a92d2d..4e98a6afbb7c 100644 --- a/CORE/MAC/inc/qwlan_version.h +++ b/CORE/MAC/inc/qwlan_version.h @@ -42,9 +42,9 @@ BRIEF DESCRIPTION: #define QWLAN_VERSION_MINOR 0 #define QWLAN_VERSION_PATCH 10 #define QWLAN_VERSION_EXTRA "" -#define QWLAN_VERSION_BUILD 95 +#define QWLAN_VERSION_BUILD 96 -#define QWLAN_VERSIONSTR "4.0.10.95A" +#define QWLAN_VERSIONSTR "4.0.10.96" #define AR6320_REV1_VERSION 0x5000000 diff --git a/CORE/MAC/inc/sirApi.h b/CORE/MAC/inc/sirApi.h index 2ed46f1c4fcb..8d136ef4efef 100644 --- a/CORE/MAC/inc/sirApi.h +++ b/CORE/MAC/inc/sirApi.h @@ -5906,9 +5906,16 @@ struct sir_ocb_config_channel { uint32_t min_pwr; uint8_t reg_pwr; uint8_t antenna_max; + uint16_t flags; }; /** + * OCB_CHANNEL_FLAG_NO_RX_HDR - Don't add the RX stats header to packets + * received on this channel. + */ +#define OCB_CHANNEL_FLAG_DISABLE_RX_STATS_HDR (1 << 0) + +/** * struct sir_ocb_config_sched * @chan_freq: frequency of the channel * @total_duration: duration of the schedule diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index 9a9dd04fbb83..9b3fb1cee136 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -59,7 +59,6 @@ #include "aniGlobal.h" #include "wmi_unified.h" #include "wniCfgAp.h" -#include "wlan_hal_cfg.h" #include "cfgApi.h" #include "ol_txrx_ctrl_api.h" #if defined(CONFIG_HL_SUPPORT) @@ -23960,7 +23959,6 @@ static VOS_STATUS wma_nan_req(void *wda_handle, tpNanRequest nan_req) } #endif -#ifdef WLAN_FEATURE_ROAM_OFFLOAD static void wma_process_unit_test_cmd(WMA_HANDLE handle, t_wma_unit_test_cmd *wma_utest) { @@ -24010,7 +24008,6 @@ static void wma_process_unit_test_cmd(WMA_HANDLE handle, } return; } -#endif VOS_STATUS wma_scan_probe_setoui(tp_wma_handle wma, tSirScanMacOui *psetoui) @@ -25310,17 +25307,17 @@ VOS_STATUS wma_mc_process_msg(v_VOID_t *vos_context, vos_msg_t *msg) vos_mem_free(msg->bodyptr); break; #endif /* WLAN_FEATURE_LINK_LAYER_STATS */ + case SIR_HAL_UNIT_TEST_CMD: + wma_process_unit_test_cmd(wma_handle, + (t_wma_unit_test_cmd *)msg->bodyptr); + vos_mem_free(msg->bodyptr); + break; #ifdef WLAN_FEATURE_ROAM_OFFLOAD case WDA_ROAM_OFFLOAD_SYNCH_CNF: wma_process_roam_synch_complete(wma_handle, (tSirSmeRoamOffloadSynchCnf *)msg->bodyptr); vos_mem_free(msg->bodyptr); break; - case SIR_HAL_UNIT_TEST_CMD: - wma_process_unit_test_cmd(wma_handle, - (t_wma_unit_test_cmd *)msg->bodyptr); - vos_mem_free(msg->bodyptr); - break; case WDA_ROAM_OFFLOAD_SYNCH_FAIL: wma_process_roam_synch_fail(wma_handle, (tSirRoamOffloadSynchFail *)msg->bodyptr); diff --git a/CORE/SERVICES/WMA/wma_ocb.c b/CORE/SERVICES/WMA/wma_ocb.c index bbf127e0af5d..b283122b6320 100644 --- a/CORE/SERVICES/WMA/wma_ocb.c +++ b/CORE/SERVICES/WMA/wma_ocb.c @@ -44,6 +44,44 @@ int wma_ocb_set_config_resp(tp_wma_handle wma_handle, uint8_t status) VOS_STATUS vos_status; struct sir_ocb_set_config_response *resp; vos_msg_t msg = {0}; + struct sir_ocb_config *req = wma_handle->ocb_config_req; + ol_txrx_vdev_handle vdev = (req ? + wma_handle->interfaces[req->session_id].handle : 0); + + /* + * If the command was successful, save the channel information in the + * vdev. + */ + if (status == VOS_STATUS_SUCCESS) { + if (vdev && req) { + if (vdev->ocb_channel_info) + vos_mem_free(vdev->ocb_channel_info); + vdev->ocb_channel_count = + req->channel_count; + if (req->channel_count) { + int i; + int buf_size = sizeof(*vdev->ocb_channel_info) * + req->channel_count; + vdev->ocb_channel_info = + vos_mem_malloc(buf_size); + vos_mem_zero(vdev->ocb_channel_info, buf_size); + for (i = 0; i < req->channel_count; i++) { + vdev->ocb_channel_info[i].chan_freq = + req->channels[i].chan_freq; + if (req->channels[i].flags & + OCB_CHANNEL_FLAG_DISABLE_RX_STATS_HDR) + vdev->ocb_channel_info[i]. + disable_rx_stats_hdr = 1; + } + } else { + vdev->ocb_channel_info = 0; + } + } + } + + /* Free the configuration that was saved in wma_ocb_set_config. */ + vos_mem_free(wma_handle->ocb_config_req); + wma_handle->ocb_config_req = 0; resp = vos_mem_malloc(sizeof(*resp)); if (!resp) @@ -139,6 +177,7 @@ int wma_ocb_set_config_req(tp_wma_handle wma_handle, return status; } req.chan = OCB_FREQ_TO_CHAN(config_req->channels[0].chan_freq); + req.vdev_id = msg->vdev_id; if (wma_handle->ocb_config_req) vos_mem_free(wma_handle->ocb_config_req); @@ -166,12 +205,6 @@ int wma_ocb_start_resp_ind_cont(tp_wma_handle wma_handle) } vos_status = wma_ocb_set_config(wma_handle, wma_handle->ocb_config_req); - /* - * Depending on the return value from the request handler, either - * we need to save the context or delete it. - */ - vos_mem_free(wma_handle->ocb_config_req); - wma_handle->ocb_config_req = 0; return vos_status; } @@ -368,9 +401,24 @@ int wma_ocb_set_config(tp_wma_handle wma_handle, struct sir_ocb_config *config) buf_ptr += sizeof(*sched_elem); } + /* + * Save the configuration so that it can be used in + * wma_ocb_set_config_event_handler. + */ + if (wma_handle->ocb_config_req != config) { + if (wma_handle->ocb_config_req) + vos_mem_free(wma_handle->ocb_config_req); + wma_handle->ocb_config_req = copy_sir_ocb_config(config); + } + ret = wmi_unified_cmd_send(wma_handle->wmi_handle, buf, len, WMI_OCB_SET_CONFIG_CMDID); if (ret != EOK) { + if (wma_handle->ocb_config_req) { + vos_mem_free(wma_handle->ocb_config_req); + wma_handle->ocb_config_req = 0; + } + WMA_LOGE("Failed to set OCB config"); wmi_buf_free(buf); return -EIO; diff --git a/CORE/SERVICES/WMI/wmi_unified.c b/CORE/SERVICES/WMI/wmi_unified.c index d3a3813ee064..a76a505ba4ca 100644 --- a/CORE/SERVICES/WMI/wmi_unified.c +++ b/CORE/SERVICES/WMI/wmi_unified.c @@ -761,6 +761,7 @@ int wmi_unified_register_event_handler(wmi_unified_t wmi_handle, wmi_handle->event_handler[idx] = handler_func; wmi_handle->event_id[idx] = event_id; wmi_handle->max_event_idx++; + return 0; } @@ -843,6 +844,12 @@ void wmi_control_rx(void *ctx, HTC_PACKET *htc_packet) u_int32_t id; u_int8_t *data; #endif + + if (vos_is_logp_in_progress(VOS_MODULE_ID_WDA, NULL)) { + pr_err("%s: LOPG in progress\n", __func__); + return; + } + evt_buf = (wmi_buf_t) htc_packet->pPktContext; #ifndef QCA_CONFIG_SMP id = WMI_GET_FIELD(adf_nbuf_data(evt_buf), WMI_CMD_HDR, COMMANDID); @@ -903,6 +910,11 @@ void __wmi_control_rx(struct wmi_unified *wmi_handle, wmi_buf_t evt_buf) void *wmi_cmd_struct_ptr = NULL; int tlv_ok_status = 0; + if (vos_is_logp_in_progress(VOS_MODULE_ID_WDA, NULL)) { + pr_err("%s: LOPG in progress\n", __func__); + return; + } + id = WMI_GET_FIELD(adf_nbuf_data(evt_buf), WMI_CMD_HDR, COMMANDID); if (adf_nbuf_pull_head(evt_buf, sizeof(WMI_CMD_HDR)) == NULL) @@ -967,7 +979,7 @@ end: adf_nbuf_free(evt_buf); } -void wmi_rx_event_work(struct work_struct *work) +void __wmi_rx_event_work(struct work_struct *work) { struct wmi_unified *wmi = container_of(work, struct wmi_unified, rx_event_work); @@ -984,6 +996,13 @@ void wmi_rx_event_work(struct work_struct *work) } } +void wmi_rx_event_work(struct work_struct *work) +{ + vos_ssr_protect(__func__); + __wmi_rx_event_work(work); + vos_ssr_unprotect(__func__); +} + /* WMI Initialization functions */ void * diff --git a/CORE/SYS/legacy/src/utils/src/parserApi.c b/CORE/SYS/legacy/src/utils/src/parserApi.c index e72288496acb..423e555a6d4b 100644 --- a/CORE/SYS/legacy/src/utils/src/parserApi.c +++ b/CORE/SYS/legacy/src/utils/src/parserApi.c @@ -906,21 +906,32 @@ PopulateDot11fVHTCaps(tpAniSirGlobal pMac, nCfgValue ); pDot11f->ldpcCodingCap = (nCfgValue & 0x0001); + /* In AP mode set the SGI80 based on channel bandwidth */ + if (psessionEntry->vhtTxChannelWidthSet != + WNI_CFG_VHT_CHANNEL_WIDTH_80MHZ) + pDot11f->shortGI80MHz= 0; + else { + nCfgValue = 0; + if (psessionEntry->htConfig.ht_sgi) + CFG_GET_INT( nStatus, pMac, WNI_CFG_VHT_SHORT_GI_80MHZ, + nCfgValue ); - nCfgValue = 0; - if (psessionEntry->htConfig.ht_sgi) - CFG_GET_INT( nStatus, pMac, WNI_CFG_VHT_SHORT_GI_80MHZ, - nCfgValue ); - - pDot11f->shortGI80MHz= (nCfgValue & 0x0001); + pDot11f->shortGI80MHz= (nCfgValue & 0x0001); + } - nCfgValue = 0; - if (psessionEntry->htConfig.ht_sgi) - CFG_GET_INT( nStatus, pMac, - WNI_CFG_VHT_SHORT_GI_160_AND_80_PLUS_80MHZ, - nCfgValue ); + /* In AP mode set the SGI 160/(80+80) based on channel bandwidth */ + if (psessionEntry->vhtTxChannelWidthSet < + WNI_CFG_VHT_CHANNEL_WIDTH_160MHZ) + pDot11f->shortGI160and80plus80MHz = 0; + else { + nCfgValue = 0; + if (psessionEntry->htConfig.ht_sgi) + CFG_GET_INT( nStatus, pMac, + WNI_CFG_VHT_SHORT_GI_160_AND_80_PLUS_80MHZ, + nCfgValue ); - pDot11f->shortGI160and80plus80MHz = (nCfgValue & 0x0001); + pDot11f->shortGI160and80plus80MHz = (nCfgValue & 0x0001); + } nCfgValue = 0; if (psessionEntry->htConfig.ht_tx_stbc) @@ -1326,7 +1326,7 @@ endif # Flag to enable bus auto suspend ifeq ($(CONFIG_BUS_AUTO_SUSPEND), 1) -CDEFINES += -DFEATURE_BUS_AUTO_SUSPEND +CDEFINES += -DFEATURE_RUNTIME_PM endif # Some kernel include files are being moved. Check to see if |
