diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2016-04-21 21:18:11 -0700 |
|---|---|---|
| committer | Linux Build Service Account <lnxbuild@localhost> | 2016-04-21 21:18:11 -0700 |
| commit | 3976d1cf93f327ecfa1f1df9102befe5d4646fa9 (patch) | |
| tree | 30b45bc0459ccc5999810d8f042c402d943ef942 | |
| parent | 59616f7a5062c204734785f294889763289e4958 (diff) | |
| parent | 36cd27ee15883dca8886f1b5d2fe318be973ed45 (diff) | |
Promotion of wlan-cld2.driver.lnx.1.0-00006.
CRs Change ID Subject
--------------------------------------------------------------------------------------------------------------
1003390 I01b29a2314ab4192e6bc9076978d54762a85c9e8 qcacld-2.0: Reset the global reg params during wiphy unr
688141 I13d2202186f4ea2658786ffeae22af72fdaea0d7 Release 4.0.11.62
1004079 I3602887d2bfdb407e5805aedd7a97a57440a4567 qcacld-2.0: Fix mismatch in mem alloc and mem free API
1000945 Ie9132f84bf5f35146e518b2a8a71998ddb2de901 qcacld-2.0: Update radar timestamp in NOL list when rece
1002615 If234286e04f2222ec9a8682414f6710c16cb34a9 qcacld-2.0: Clean up the ptt_pid parameter from nl_srv_e
1002207 If3285739f2387928a1d7578f9d14089a486a6d9e qcacld-2.0: Fix acs_cfg.ch_list memory leak
949293 I63ca0bea23da1430ca0e6f323555c3ac6b2d07cd qcacld-2.0: Flush Scan results in DRIVER command SET_FCC
1004582 I5fd939b0642d25b3a75d74ed3c7878f68d8d14d6 qcacld-2.0: Allow power save to be controlled by iw comm
1004755 I7a789abbbbf659f04822b89c9c11cf220839d008 qcacld-2.0: Update tx/rx aggregation size parameters in
1001582 I2d348ed02a16390a13f0e0b0b6ff25062a3288bb qcacld-2.0: Add support for dynamic chainmask for STA
1005252 I65a4cc6b353736bdaf6a97d776748d3bae5fc32a qcacld-2.0: Don't enable memory dump in epping mode
992365 I66aea57e124551dcbd94a62309cdeec5207ad6f5 qcacld-2.0: Add NULL check in radio_tx_power_stats
944663 I69d6e1b0c8298cab1776264f3e61445c95538729 qcacld-2.0: Remove wlan_hdd_band_p2p_2_4_GHZ
1001658 I135f997bb4c8ad7a536596b4e89eb037f41e0c73 qcacld-2.0: Remove the 4.9 GHZ channels
1003326 I4ae24a1813ac5d4738022b2f15a93736c2f05978 qcacld-2.0: Fix to remove 11P channels from channel list
1003313 Iba32c715694e64ce7d941f198990b25b9c87240d qcacld-2.0: Set htc tx tag when call set vdev suspend dt
688141 Ibe7a555e190eae3d546d94656616e260ab2923e7 Release 4.0.11.63
930870 I4632c1b4770e6b2f301d67f37005585aef401ab6 qcacld-2.0: Implement cfg80211 abort scan API
1004774 I91250675fd9bba78473649f666b9f37f074c3bd7 qcacld-2.0: Increase THROTTLE_TX_THRESHOLD value
Change-Id: I3abca39ca0807ba82858471e4d43f2079457a558
CRs-Fixed: 1002615, 1002207, 930870, 944663, 1001582, 1001658, 992365, 1004079, 1003390, 688141, 1004774, 1005252, 1004755, 1003313, 1004582, 1000945, 1003326, 949293
26 files changed, 435 insertions, 380 deletions
diff --git a/CORE/CLD_TXRX/TXRX/ol_txrx_types.h b/CORE/CLD_TXRX/TXRX/ol_txrx_types.h index beee134bedd7..32ebe320f7eb 100644 --- a/CORE/CLD_TXRX/TXRX/ol_txrx_types.h +++ b/CORE/CLD_TXRX/TXRX/ol_txrx_types.h @@ -405,7 +405,7 @@ typedef enum _throttle_phase { THROTTLE_PHASE_MAX, } throttle_phase ; -#define THROTTLE_TX_THRESHOLD (100) +#define THROTTLE_TX_THRESHOLD (400) #ifdef IPA_UC_OFFLOAD typedef void (*ipa_uc_op_cb_type)(u_int8_t *op_msg, void *osif_ctxt); diff --git a/CORE/EPPING/src/epping_main.c b/CORE/EPPING/src/epping_main.c index 7fb1901044d5..b56077bbdb7f 100644 --- a/CORE/EPPING/src/epping_main.c +++ b/CORE/EPPING/src/epping_main.c @@ -69,7 +69,6 @@ #include "if_ath_sdio.h" #endif #include "epping_main.h" -#include "wlan_hdd_memdump.h" #include "epping_internal.h" #ifdef TIMER_MANAGER @@ -215,7 +214,6 @@ void epping_exit(v_CONTEXT_t pVosContext) __func__); return; } - memdump_deinit(); if (pEpping_ctx->epping_adapter) { epping_destroy_adapter(pEpping_ctx->epping_adapter); pEpping_ctx->epping_adapter = NULL; @@ -418,7 +416,6 @@ int epping_wlan_startup(struct device *parent_dev, v_VOID_t *hif_sc) } } #endif /* HIF_PCI */ - memdump_init(); EPPING_LOG(VOS_TRACE_LEVEL_INFO_HIGH, "%s: Exit", __func__); complete(&pEpping_ctx->wlan_start_comp); return ret; diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h index da15da20540c..ea1c672ad040 100644 --- a/CORE/HDD/inc/wlan_hdd_cfg.h +++ b/CORE/HDD/inc/wlan_hdd_cfg.h @@ -1351,6 +1351,11 @@ typedef enum #define CFG_VHT_ENABLE_2x2_CAP_FEATURE_MAX ( 1 ) #define CFG_VHT_ENABLE_2x2_CAP_FEATURE_DEFAULT ( 0 ) +#define CFG_ENABLE_VHT_DYNAMIC_STA_CHAINMASK "gEnableDynamicSTAChainMask" +#define CFG_ENABLE_VHT_DYNAMIC_STA_CHAINMASK_MIN (0) +#define CFG_ENABLE_VHT_DYNAMIC_STA_CHAINMASK_MAX (1) +#define CFG_ENABLE_VHT_DYNAMIC_STA_CHAINMASK_DEFAULT (0) + /* * Valid chain mask values. * 01 - enables chain0 @@ -4573,6 +4578,7 @@ struct hdd_config { uint32_t edca_vi_aifs; uint32_t edca_bk_aifs; uint32_t edca_be_aifs; + bool enable_dynamic_sta_chainmask; }; typedef struct hdd_config hdd_config_t; diff --git a/CORE/HDD/inc/wlan_hdd_main.h b/CORE/HDD/inc/wlan_hdd_main.h index 19b666531c86..587da017ae14 100644 --- a/CORE/HDD/inc/wlan_hdd_main.h +++ b/CORE/HDD/inc/wlan_hdd_main.h @@ -2085,4 +2085,8 @@ eHalStatus hdd_smeCloseSessionCallback(void *pContext); int hdd_enable_disable_ca_event(hdd_context_t *hddctx, tANI_U8 set_value); + +void wlan_hdd_undo_acs(hdd_adapter_t *adapter); +void hdd_decide_dynamic_chain_mask(hdd_context_t *hdd_ctx, + enum antenna_mode forced); #endif // end #if !defined( WLAN_HDD_MAIN_H ) diff --git a/CORE/HDD/src/wlan_hdd_assoc.c b/CORE/HDD/src/wlan_hdd_assoc.c index 9655828140e7..483e8fdf418c 100644 --- a/CORE/HDD/src/wlan_hdd_assoc.c +++ b/CORE/HDD/src/wlan_hdd_assoc.c @@ -1188,6 +1188,10 @@ static eHalStatus hdd_DisConnectHandler( hdd_adapter_t *pAdapter, tCsrRoamInfo * wlan_hdd_clear_link_layer_stats(pAdapter); + /* Decide ANTENNA_MODE on STA/CLI disconnect */ + if (pHddCtx->cfg_ini->enable_dynamic_sta_chainmask) + hdd_decide_dynamic_chain_mask(pHddCtx, + HDD_ANTENNA_MODE_INVALID); //Unblock anyone waiting for disconnect to complete complete(&pAdapter->disconnect_comp_var); return( status ); @@ -2229,6 +2233,18 @@ static eHalStatus hdd_AssociationCompletionHandler( hdd_adapter_t *pAdapter, tCs } + /* + * Call hdd_decide_dynamic_chain_mask only when CSR has + * completed connect with failure or success i.e. with + * ASSOCIATION_FAILURE status or with eCSR_ROAM_RESULT_ASSOCIATED + * result. + */ + if (pHddCtx->cfg_ini->enable_dynamic_sta_chainmask && + ((eCSR_ROAM_ASSOCIATION_FAILURE == roamStatus) || + (eCSR_ROAM_RESULT_ASSOCIATED == roamResult))) + hdd_decide_dynamic_chain_mask(pHddCtx, + HDD_ANTENNA_MODE_INVALID); + #ifdef FEATURE_WLAN_FORCE_SAP_SCC if (eCSR_ROAM_RESULT_ASSOCIATED == roamResult && pHddCtx->cfg_ini->SapSccChanAvoidance) { diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c index 37cb84326fb6..45fda58a406a 100644 --- a/CORE/HDD/src/wlan_hdd_cfg.c +++ b/CORE/HDD/src/wlan_hdd_cfg.c @@ -2272,6 +2272,13 @@ REG_TABLE_ENTRY g_registry_table[] = CFG_VHT_ENABLE_2x2_CAP_FEATURE_MIN, CFG_VHT_ENABLE_2x2_CAP_FEATURE_MAX ), + REG_VARIABLE(CFG_ENABLE_VHT_DYNAMIC_STA_CHAINMASK, WLAN_PARAM_Integer, + hdd_config_t, enable_dynamic_sta_chainmask, + VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, + CFG_ENABLE_VHT_DYNAMIC_STA_CHAINMASK_DEFAULT, + CFG_ENABLE_VHT_DYNAMIC_STA_CHAINMASK_MIN, + CFG_ENABLE_VHT_DYNAMIC_STA_CHAINMASK_MAX), + REG_VARIABLE( CFG_CHAIN_MASK_2G, WLAN_PARAM_Integer, hdd_config_t, chain_mask_2g, VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, @@ -5366,6 +5373,9 @@ void print_hdd_cfg(hdd_context_t *pHddCtx) hddLog(LOG2, "Name = [%s] Value = [%u]", CFG_EDCA_BE_AIFS_VALUE_NAME, pHddCtx->cfg_ini->edca_be_aifs); + hddLog(LOG2, "Name = [%s] Value = [%u]", + CFG_ENABLE_VHT_DYNAMIC_STA_CHAINMASK, + pHddCtx->cfg_ini->enable_dynamic_sta_chainmask); hdd_ndp_print_ini_config(pHddCtx); } diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c index ac2e2850ad9c..1623ed4315a7 100644 --- a/CORE/HDD/src/wlan_hdd_cfg80211.c +++ b/CORE/HDD/src/wlan_hdd_cfg80211.c @@ -261,22 +261,8 @@ const static struct ieee80211_channel hdd_channels_2_4_GHZ[] = HDD2GHZCHAN(2484, 14, 0) , }; -static struct ieee80211_channel hdd_social_channels_2_4_GHZ[] = -{ - HDD2GHZCHAN(2412, 1, 0) , - HDD2GHZCHAN(2437, 6, 0) , - HDD2GHZCHAN(2462, 11, 0) , -}; - const static struct ieee80211_channel hdd_channels_5_GHZ[] = { - HDD5GHZCHAN(4920, 184, 0) , - HDD5GHZCHAN(4940, 188, 0) , - HDD5GHZCHAN(4960, 192, 0) , - HDD5GHZCHAN(4980, 196, 0) , - HDD5GHZCHAN(5040, 8, 0) , - HDD5GHZCHAN(5060, 12, 0) , - HDD5GHZCHAN(5080, 16, 0) , HDD5GHZCHAN(5180, 36, 0) , HDD5GHZCHAN(5200, 40, 0) , HDD5GHZCHAN(5220, 44, 0) , @@ -381,25 +367,6 @@ static struct ieee80211_supported_band wlan_hdd_band_2_4_GHZ = | IEEE80211_VHT_CAP_RXLDPC, }; -static struct ieee80211_supported_band wlan_hdd_band_p2p_2_4_GHZ = -{ - .channels = hdd_social_channels_2_4_GHZ, - .n_channels = ARRAY_SIZE(hdd_social_channels_2_4_GHZ), - .band = IEEE80211_BAND_2GHZ, - .bitrates = g_mode_rates, - .n_bitrates = g_mode_rates_size, - .ht_cap.ht_supported = 1, - .ht_cap.cap = IEEE80211_HT_CAP_SGI_20 - | IEEE80211_HT_CAP_GRN_FLD - | IEEE80211_HT_CAP_DSSSCCK40 - | IEEE80211_HT_CAP_LSIG_TXOP_PROT, - .ht_cap.ampdu_factor = IEEE80211_HT_MAX_AMPDU_64K, - .ht_cap.ampdu_density = IEEE80211_HT_MPDU_DENSITY_16, - .ht_cap.mcs.rx_mask = { 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, - .ht_cap.mcs.rx_highest = cpu_to_le16( 72 ), - .ht_cap.mcs.tx_params = IEEE80211_HT_MCS_TX_DEFINED, -}; - static struct ieee80211_supported_band wlan_hdd_band_5_GHZ = { .channels = NULL, @@ -8106,7 +8073,7 @@ out: if (temp_skbuff != NULL) return cfg80211_vendor_cmd_reply(temp_skbuff); } - + wlan_hdd_undo_acs(adapter); clear_bit(ACS_IN_PROGRESS, &hdd_ctx->g_event_flags); return status; @@ -8139,6 +8106,26 @@ static int wlan_hdd_cfg80211_do_acs(struct wiphy *wiphy, } /** + * wlan_hdd_undo_acs : Do cleanup of DO_ACS + * @adapter: Pointer to adapter struct + * + * This function handle cleanup of what was done in DO_ACS, including free + * memory. + * + * Return: void + */ + +void wlan_hdd_undo_acs(hdd_adapter_t *adapter) +{ + if (adapter == NULL) + return; + if (adapter->sessionCtx.ap.sapConfig.acs_cfg.ch_list) { + vos_mem_free(adapter->sessionCtx.ap.sapConfig.acs_cfg.ch_list); + adapter->sessionCtx.ap.sapConfig.acs_cfg.ch_list = NULL; + } +} + +/** * wlan_hdd_cfg80211_start_pending_acs : Start pending ACS procedure for SAP * @work: Linux workqueue struct pointer for ACS work * @@ -11132,7 +11119,6 @@ int wlan_hdd_cfg80211_init(struct device *dev, { wlan_hdd_band_2_4_GHZ.ht_cap.cap &= ~IEEE80211_HT_CAP_SGI_20; wlan_hdd_band_5_GHZ.ht_cap.cap &= ~IEEE80211_HT_CAP_SGI_20; - wlan_hdd_band_p2p_2_4_GHZ.ht_cap.cap &= ~IEEE80211_HT_CAP_SGI_20; } if( !pCfg->ShortGI40MhzEnable ) @@ -11262,6 +11248,7 @@ void wlan_hdd_cfg80211_deinit(struct wiphy *wiphy) wiphy->bands[i]->channels = NULL; } } + vos_reset_global_reg_params(); } /* @@ -13184,6 +13171,10 @@ static int wlan_hdd_cfg80211_start_bss(hdd_adapter_t *pHostapdAdapter, (WLAN_HDD_GET_AP_CTX_PTR(pHostapdAdapter))->dfs_cac_block_tx = VOS_TRUE; + /* Set ANTENNA_MODE_2X2 before starting SAP/GO */ + if (pHddCtx->cfg_ini->enable_dynamic_sta_chainmask) + hdd_decide_dynamic_chain_mask(pHddCtx, HDD_ANTENNA_MODE_2X2); + vos_event_reset(&pHostapdState->vosEvent); status = WLANSAP_StartBss( #ifdef WLAN_FEATURE_MBSSID @@ -13265,6 +13256,9 @@ error: vos_mem_free(pHostapdAdapter->sessionCtx.ap.sapConfig.acs_cfg.ch_list); pHostapdAdapter->sessionCtx.ap.sapConfig.acs_cfg.ch_list = NULL; } + /* Decide antenna_mode on SAP start failure */ + if (pHddCtx->cfg_ini->enable_dynamic_sta_chainmask) + hdd_decide_dynamic_chain_mask(pHddCtx, HDD_ANTENNA_MODE_INVALID); return ret; } @@ -13453,7 +13447,7 @@ static int __wlan_hdd_cfg80211_stop_ap (struct wiphy *wiphy, VOS_STATUS status = VOS_STATUS_E_FAILURE; tSirUpdateIE updateIE; beacon_data_t *old; - int ret; + int ret = 0; unsigned long rc; hdd_adapter_list_node_t *pAdapterNode = NULL; hdd_adapter_list_node_t *pNext = NULL; @@ -13480,18 +13474,6 @@ static int __wlan_hdd_cfg80211_stop_ap (struct wiphy *wiphy, pAdapter->device_mode); pHddCtx = WLAN_HDD_GET_CTX(pAdapter); - ret = wlan_hdd_validate_context(pHddCtx); - if (0 != ret) { - if (pHddCtx->isUnloadInProgress) { - /* - * Unloading the driver so free the memory for ch_list, - * otherwise it will result in memory leak - */ - if (pAdapter->sessionCtx.ap.sapConfig.acs_cfg.ch_list) - vos_mem_free(pAdapter->sessionCtx.ap.sapConfig.acs_cfg.ch_list); - } - return ret; - } status = hdd_get_front_adapter (pHddCtx, &pAdapterNode); while (NULL != pAdapterNode && VOS_STATUS_SUCCESS == status) { @@ -13536,8 +13518,8 @@ static int __wlan_hdd_cfg80211_stop_ap (struct wiphy *wiphy, } pAdapter->sessionCtx.ap.sapConfig.acs_cfg.acs_mode = false; - if (pAdapter->sessionCtx.ap.sapConfig.acs_cfg.ch_list) - vos_mem_free(pAdapter->sessionCtx.ap.sapConfig.acs_cfg.ch_list); + wlan_hdd_undo_acs(pAdapter); + vos_mem_zero(&pAdapter->sessionCtx.ap.sapConfig.acs_cfg, sizeof(struct sap_acs_cfg)); @@ -13582,6 +13564,9 @@ static int __wlan_hdd_cfg80211_stop_ap (struct wiphy *wiphy, } mutex_unlock(&pHddCtx->sap_lock); + if (pHddCtx->cfg_ini->enable_dynamic_sta_chainmask) + hdd_decide_dynamic_chain_mask(pHddCtx, HDD_ANTENNA_MODE_INVALID); + if (status != VOS_STATUS_SUCCESS) { hddLog(VOS_TRACE_LEVEL_FATAL, FL("Stopping the BSS")); return -EINVAL; @@ -16412,6 +16397,7 @@ int __wlan_hdd_cfg80211_scan( struct wiphy *wiphy, hdd_adapter_t *con_sap_adapter; uint16_t con_dfs_ch; bool is_p2p_scan = false; + uint8_t num_chan = 0; ENTER(); @@ -16613,14 +16599,25 @@ int __wlan_hdd_cfg80211_scan( struct wiphy *wiphy, } for (i = 0, len = 0; i < request->n_channels ; i++ ) { - channelList[i] = request->channels[i]->hw_value; - len += snprintf(chList+len, 5, "%d ", channelList[i]); + if (!vos_is_dsrc_channel(vos_chan_to_freq( + request->channels[i]->hw_value))) { + channelList[num_chan] = request->channels[i]->hw_value; + len += snprintf(chList+len, 5, "%d ", channelList[i]); + num_chan++; + } } hddLog(VOS_TRACE_LEVEL_INFO, "Channel-List: %s", chList); } - scanRequest.ChannelInfo.numOfChannels = request->n_channels; + + if (!num_chan) { + hddLog(LOGE, FL("Received zero non-dsrc channels")); + status = -EINVAL; + goto free_mem; + } + + scanRequest.ChannelInfo.numOfChannels = num_chan; scanRequest.ChannelInfo.ChannelList = channelList; /* set requestType to full scan */ @@ -18124,7 +18121,8 @@ static int __wlan_hdd_cfg80211_connect( struct wiphy *wiphy, channel = req->channel->hw_value; else channel = 0; - + if (pHddCtx->cfg_ini->enable_dynamic_sta_chainmask) + hdd_decide_dynamic_chain_mask(pHddCtx, HDD_ANTENNA_MODE_2X2); status = wlan_hdd_cfg80211_connect_start(pAdapter, req->ssid, req->ssid_len, req->bssid, bssid_hint, channel); @@ -18143,6 +18141,9 @@ static int __wlan_hdd_cfg80211_connect( struct wiphy *wiphy, } hddLog(VOS_TRACE_LEVEL_ERROR, FL("connect failed")); + /* Decide the antenna mode if connect fails */ + if (pHddCtx->cfg_ini->enable_dynamic_sta_chainmask) + hdd_decide_dynamic_chain_mask(pHddCtx, HDD_ANTENNA_MODE_INVALID); return status; } pHddCtx->isAmpAllowed = VOS_FALSE; @@ -20325,7 +20326,6 @@ wlan_hdd_cfg80211_update_ft_ies(struct wiphy *wiphy, } #endif -#ifdef FEATURE_WLAN_SCAN_PNO int wlan_hdd_scan_abort(hdd_adapter_t *pAdapter) { hdd_context_t *pHddCtx = WLAN_HDD_GET_CTX(pAdapter); @@ -20352,6 +20352,8 @@ int wlan_hdd_scan_abort(hdd_adapter_t *pAdapter) } return 0; } + +#ifdef FEATURE_WLAN_SCAN_PNO void hdd_cfg80211_sched_scan_done_callback(void *callbackContext, tSirPrefNetworkFoundInd *pPrefNetworkFoundInd) { @@ -24425,6 +24427,54 @@ void wlan_hdd_cfg80211_extscan_callback(void *ctx, const tANI_U16 evType, #endif /* FEATURE_WLAN_EXTSCAN */ +/** + * __wlan_hdd_cfg80211_abort_scan() - cfg80211 abort scan api + * @wiphy: Pointer to wiphy + * @wdev: Pointer to wireless device structure + * + * This function is used to abort an ongoing scan + * + * Return: None + */ +static void __wlan_hdd_cfg80211_abort_scan(struct wiphy *wiphy, + struct wireless_dev *wdev) +{ + struct net_device *dev = wdev->netdev; + hdd_adapter_t *adapter = WLAN_HDD_GET_PRIV_PTR(dev); + hdd_context_t *hdd_ctx = wiphy_priv(wiphy); + int ret; + + ENTER(); + + ret = wlan_hdd_validate_context(hdd_ctx); + if (0 != ret) + return; + + if (VOS_FTM_MODE == hdd_get_conparam()) { + hddLog(LOGE, FL("Command not allowed in FTM mode")); + return; + } + + wlan_hdd_scan_abort(adapter); +} + +/** + * wlan_hdd_cfg80211_abort_scan - cfg80211 abort scan api + * @wiphy: Pointer to wiphy + * @wdev: Pointer to wireless device structure + * + * Wrapper to __wlan_hdd_cfg80211_abort_scan() - + * function is used to abort an ongoing scan + * + * Return: None + */ +static void wlan_hdd_cfg80211_abort_scan(struct wiphy *wiphy, + struct wireless_dev *wdev) +{ + vos_ssr_protect(__func__); + __wlan_hdd_cfg80211_abort_scan(wiphy, wdev); + vos_ssr_unprotect(__func__); +} /* cfg80211_ops */ static struct cfg80211_ops wlan_hdd_cfg80211_ops = @@ -24500,5 +24550,5 @@ static struct cfg80211_ops wlan_hdd_cfg80211_ops = #ifdef CHANNEL_SWITCH_SUPPORTED .channel_switch = wlan_hdd_cfg80211_channel_switch, #endif - + .abort_scan = wlan_hdd_cfg80211_abort_scan, }; diff --git a/CORE/HDD/src/wlan_hdd_early_suspend.c b/CORE/HDD/src/wlan_hdd_early_suspend.c index 66170074c6bc..d95b096c8b50 100644 --- a/CORE/HDD/src/wlan_hdd_early_suspend.c +++ b/CORE/HDD/src/wlan_hdd_early_suspend.c @@ -2349,11 +2349,7 @@ err_vosclose: unregister_netdevice_notifier(&hdd_netdev_notifier); /* Clean up HDD Nlink Service */ send_btc_nlink_msg(WLAN_MODULE_DOWN_IND, 0); -#ifdef WLAN_KD_READY_NOTIFIER - nl_srv_exit(pHddCtx->ptt_pid); -#else nl_srv_exit(); -#endif /* WLAN_KD_READY_NOTIFIER */ /* Free up dynamically allocated members inside HDD Adapter */ kfree(pHddCtx->cfg_ini); pHddCtx->cfg_ini= NULL; diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c index 2f0995ed41b9..550262f0bad2 100644 --- a/CORE/HDD/src/wlan_hdd_main.c +++ b/CORE/HDD/src/wlan_hdd_main.c @@ -4996,6 +4996,84 @@ exit: } /** + * hdd_decide_dynamic_chain_mask() - Dynamically decide and set chain mask + * for STA + * @hdd_ctx: Pointer to hdd context + * @forced_mode: set to valid mode to force the mode + * + * This function decides the chain mask to set considering number of + * active sessions, type of active sessions and concurrency. + * If forced_mode is valid, chan mask is set to the forced_mode. + * + * Return: void + */ +void hdd_decide_dynamic_chain_mask(hdd_context_t *hdd_ctx, + enum antenna_mode forced_mode) +{ + int ret; + hdd_adapter_t *sta_adapter; + hdd_station_ctx_t *hdd_sta_ctx; + enum antenna_mode mode; + + if (wlan_hdd_validate_context(hdd_ctx)) + return; + + if (!hdd_ctx->cfg_ini->enable_dynamic_sta_chainmask || + !hdd_is_supported_chain_mask_2x2(hdd_ctx)) { + hddLog(LOG1, + FL("dynamic antenna mode in INI is %d or 2x2 not supported"), + hdd_ctx->cfg_ini->enable_dynamic_sta_chainmask); + return; + } + sta_adapter = hdd_get_adapter(hdd_ctx, WLAN_HDD_INFRA_STATION); + if (!sta_adapter) { + hddLog(LOGE, FL("Sta adapter null!!")); + return; + } + hddLog(LOG1, FL("Current antenna mode: %d"), + hdd_ctx->current_antenna_mode); + hdd_sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(sta_adapter); + + if (HDD_ANTENNA_MODE_INVALID != forced_mode) { + mode = forced_mode; + } else if (!wlan_hdd_get_active_session_count(hdd_ctx)) { + /* If no active connection set 1x1 */ + mode = HDD_ANTENNA_MODE_1X1; + } else if (1 == wlan_hdd_get_active_session_count(hdd_ctx) && + hdd_ctx->no_of_active_sessions[WLAN_HDD_INFRA_STATION]) { + if (!hdd_connIsConnected(hdd_sta_ctx)) { + hddLog(LOGE, FL("Sta not connected")); + return; + } + /* + * In case only sta is connected set value depending + * on AP capability. + */ + mode = hdd_sta_ctx->conn_info.nss; + } else { + /* If non sta is active or concurrency set 2x2 */ + mode = HDD_ANTENNA_MODE_2X2; + } + + if (mode != hdd_ctx->current_antenna_mode) { + + ret = wlan_hdd_update_txrx_chain_mask(hdd_ctx, + (HDD_ANTENNA_MODE_2X2 == mode) ? 0x3 : 0x1); + + if (0 != ret) { + hddLog(LOGE, + FL("Failed to update chain mask: %d"), + mode); + return; + } + hdd_ctx->current_antenna_mode = mode; + + hddLog(LOG1, FL("Antenna mode updated to: %d"), + hdd_ctx->current_antenna_mode); + } +} + +/** * drv_cmd_set_antenna_mode() - SET ANTENNA MODE driver command * handler * @hdd_ctx: Pointer to hdd context @@ -10390,6 +10468,7 @@ void hdd_deinit_adapter(hdd_context_t *pHddCtx, hdd_adapter_t *pAdapter, hdd_wmm_adapter_close( pAdapter ); clear_bit(WMM_INIT_DONE, &pAdapter->event_flags); } + wlan_hdd_undo_acs(pAdapter); hdd_cleanup_actionframe(pHddCtx, pAdapter); @@ -12882,12 +12961,7 @@ void hdd_wlan_exit(hdd_context_t *pHddCtx) wlan_hdd_send_status_pkg(NULL, NULL, 0, 0); #endif -#ifdef WLAN_KD_READY_NOTIFIER - nl_srv_exit(pHddCtx->ptt_pid); -#else nl_srv_exit(); -#endif /* WLAN_KD_READY_NOTIFIER */ - hdd_close_cesium_nl_sock(); hdd_runtime_suspend_deinit(pHddCtx); @@ -15100,6 +15174,10 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc) pHddCtx->isLoadInProgress = FALSE; vos_set_load_unload_in_progress(VOS_MODULE_ID_VOSS, FALSE); vos_set_load_in_progress(VOS_MODULE_ID_VOSS, FALSE); + + if (pHddCtx->cfg_ini->enable_dynamic_sta_chainmask) + hdd_decide_dynamic_chain_mask(pHddCtx, + HDD_ANTENNA_MODE_1X1); memdump_init(); hdd_driver_memdump_init(); if (pHddCtx->cfg_ini->goptimize_chan_avoid_event) { @@ -15112,12 +15190,7 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc) goto success; err_nl_srv: -#ifdef WLAN_KD_READY_NOTIFIER - nl_srv_exit(pHddCtx->ptt_pid); -#else nl_srv_exit(); -#endif /* WLAN_KD_READY_NOTIFIER */ - hdd_close_cesium_nl_sock(); err_reg_netdev: diff --git a/CORE/HDD/src/wlan_hdd_wext.c b/CORE/HDD/src/wlan_hdd_wext.c index a5ccce391615..f89ae2b972b6 100644 --- a/CORE/HDD/src/wlan_hdd_wext.c +++ b/CORE/HDD/src/wlan_hdd_wext.c @@ -122,8 +122,7 @@ module_param(ioctl_debug, int, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); static const hdd_freq_chan_map_t freq_chan_map[] = { {2412, 1}, {2417, 2}, {2422, 3}, {2427, 4}, {2432, 5}, {2437, 6}, {2442, 7}, {2447, 8}, {2452, 9}, {2457, 10}, {2462, 11}, {2467 ,12}, {2472, 13}, - {2484, 14}, {4920, 240}, {4940, 244}, {4960, 248}, {4980, 252}, - {5040, 208}, {5060, 212}, {5080, 216}, {5180, 36}, {5200, 40}, {5220, 44}, + {2484, 14}, {5180, 36}, {5200, 40}, {5220, 44}, {5240, 48}, {5260, 52}, {5280, 56}, {5300, 60}, {5320, 64}, {5500, 100}, {5520, 104}, {5540, 108}, {5560, 112}, {5580, 116}, {5600, 120}, {5620, 124}, {5640, 128}, {5660, 132}, {5680, 136}, {5700, 140}, @@ -4176,11 +4175,16 @@ VOS_STATUS wlan_hdd_set_powersave(hdd_adapter_t *pAdapter, int mode) */ sme_PsOffloadDisablePowerSave(WLAN_HDD_GET_HAL_CTX(pAdapter), pAdapter->sessionId); + if (pHddCtx->cfg_ini->fIsBmpsEnabled) + sme_ConfigDisablePowerSave(pHddCtx->hHal, + ePMC_BEACON_MODE_POWER_SAVE); } else if (DRIVER_POWER_MODE_AUTO == mode) { if (pHddCtx->cfg_ini->fIsBmpsEnabled) { + sme_ConfigEnablePowerSave(pHddCtx->hHal, + ePMC_BEACON_MODE_POWER_SAVE); hddLog(VOS_TRACE_LEVEL_INFO_HIGH, "%s:Wlan driver Entering Bmps ", __func__); diff --git a/CORE/MAC/inc/qwlan_version.h b/CORE/MAC/inc/qwlan_version.h index d071a3c1dca3..d52473bf3e96 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 11 #define QWLAN_VERSION_EXTRA "" -#define QWLAN_VERSION_BUILD 61 +#define QWLAN_VERSION_BUILD 63 -#define QWLAN_VERSIONSTR "4.0.11.61" +#define QWLAN_VERSIONSTR "4.0.11.63" #define AR6320_REV1_VERSION 0x5000000 diff --git a/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c b/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c index 86879546308d..6bbf10d8963f 100644 --- a/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c +++ b/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c @@ -1732,6 +1732,10 @@ limMlmAddBss ( if (VOS_IBSS_MODE == pAddBssParams->halPersona) { pAddBssParams->nss_2g = pMac->vdev_type_nss_2g.ibss; pAddBssParams->nss_5g = pMac->vdev_type_nss_5g.ibss; + pAddBssParams->tx_aggregation_size = + pMac->roam.configParam.tx_aggregation_size; + pAddBssParams->rx_aggregation_size = + pMac->roam.configParam.rx_aggregation_size; } pAddBssParams->dot11_mode = psessionEntry->dot11mode; limLog(pMac, LOG2, FL("dot11_mode:%d"), pAddBssParams->dot11_mode); diff --git a/CORE/SAP/src/sapChSelect.c b/CORE/SAP/src/sapChSelect.c index 16463d6e0d06..ac74e57c6100 100644 --- a/CORE/SAP/src/sapChSelect.c +++ b/CORE/SAP/src/sapChSelect.c @@ -114,13 +114,6 @@ sapSafeChannelType safeChannels[NUM_20MHZ_RF_CHANNELS] = {12 , VOS_TRUE}, //RF_CHAN_12, {13 , VOS_TRUE}, //RF_CHAN_13, {14 , VOS_TRUE}, //RF_CHAN_14, - {240, VOS_TRUE}, //RF_CHAN_240, - {244, VOS_TRUE}, //RF_CHAN_244, - {248, VOS_TRUE}, //RF_CHAN_248, - {252, VOS_TRUE}, //RF_CHAN_252, - {208, VOS_TRUE}, //RF_CHAN_208, - {212, VOS_TRUE}, //RF_CHAN_212, - {216, VOS_TRUE}, //RF_CHAN_216, {36 , VOS_TRUE}, //RF_CHAN_36, {40 , VOS_TRUE}, //RF_CHAN_40, {44 , VOS_TRUE}, //RF_CHAN_44, diff --git a/CORE/SAP/src/sapFsm.c b/CORE/SAP/src/sapFsm.c index edaea4ba5abe..8d549448f615 100644 --- a/CORE/SAP/src/sapFsm.c +++ b/CORE/SAP/src/sapFsm.c @@ -1792,6 +1792,8 @@ void sapMarkDfsChannels(ptSapContext sapContext, v_U8_t* channels, v_U8_t nRegDomainDfsChannels; tHalHandle hHal; tpAniSirGlobal pMac; + v_U64_t time_elapsed_since_last_radar; + v_U64_t time_when_radar_found; hHal = VOS_GET_HAL_CB(sapContext->pvosGCtx); @@ -1825,12 +1827,18 @@ void sapMarkDfsChannels(ptSapContext sapContext, v_U8_t* channels, if (psapDfsChannelNolList[j].dfs_channel_number == channels[i]) { + time_when_radar_found = + psapDfsChannelNolList[j].radar_found_timestamp; + time_elapsed_since_last_radar = time - + time_when_radar_found; /* If channel is already in NOL, don't update it again. * This is useful when marking bonding channels which are * already unavailable. */ - if( psapDfsChannelNolList[j].radar_status_flag == - eSAP_DFS_CHANNEL_UNAVAILABLE) + if ((psapDfsChannelNolList[j].radar_status_flag == + eSAP_DFS_CHANNEL_UNAVAILABLE)&& + (time_elapsed_since_last_radar < + SAP_DFS_NON_OCCUPANCY_PERIOD)) { VOS_TRACE(VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_INFO_HIGH, FL("Channel=%d already in NOL"), diff --git a/CORE/SERVICES/WMA/wlan_nv.c b/CORE/SERVICES/WMA/wlan_nv.c index 14342c18cafb..7ddde665c47f 100644 --- a/CORE/SERVICES/WMA/wlan_nv.c +++ b/CORE/SERVICES/WMA/wlan_nv.c @@ -857,15 +857,6 @@ const sHalNv nvDefaults = {NV_CHANNEL_DISABLE, 30}, //RF_CHAN_13, {NV_CHANNEL_DISABLE, 30}, //RF_CHAN_14, - //4.9GHz Band, none CB - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_240, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_244, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_248, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_252, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_208, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_212, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_216, - //5GHz Low & Mid U-NII Band, none CB {NV_CHANNEL_ENABLE, 17}, //RF_CHAN_36, {NV_CHANNEL_ENABLE, 17}, //RF_CHAN_40, @@ -924,13 +915,6 @@ const sHalNv nvDefaults = {NV_CHANNEL_ENABLE, 0}, //RF_CHAN_BOND_10, {NV_CHANNEL_ENABLE, 0}, //RF_CHAN_BOND_11, - // 4.9GHz Band, channel bonded channels - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_242, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_246, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_250, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_210, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_214, - //5GHz Low & Mid U-NII Band, channel bonded channels {NV_CHANNEL_ENABLE, 20}, //RF_CHAN_BOND_38, {NV_CHANNEL_ENABLE, 20}, //RF_CHAN_BOND_42, @@ -1023,15 +1007,6 @@ const sHalNv nvDefaults = {NV_CHANNEL_ENABLE, 19}, //RF_CHAN_13, {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_14, - //4.9GHz Band, none CB - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_240, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_244, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_248, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_252, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_208, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_212, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_216, - //5GHz Low & Mid U-NII Band, none CB {NV_CHANNEL_ENABLE, 23}, //RF_CHAN_36, {NV_CHANNEL_ENABLE, 23}, //RF_CHAN_40, @@ -1090,13 +1065,6 @@ const sHalNv nvDefaults = {NV_CHANNEL_ENABLE, 20}, //RF_CHAN_BOND_10, {NV_CHANNEL_ENABLE, 20}, //RF_CHAN_BOND_11, - // 4.9GHz Band, channel bonded channels - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_242, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_246, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_250, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_210, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_214, - //5GHz Low & Mid U-NII Band, channel bonded channels {NV_CHANNEL_ENABLE, 23}, //RF_CHAN_BOND_38, {NV_CHANNEL_ENABLE, 23}, //RF_CHAN_BOND_42, @@ -1189,15 +1157,6 @@ const sHalNv nvDefaults = {NV_CHANNEL_ENABLE, 20}, //RF_CHAN_13, {NV_CHANNEL_ENABLE, 18}, //RF_CHAN_14, - //4.9GHz Band, none CB - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_240, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_244, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_248, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_252, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_208, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_212, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_216, - //5GHz Low & Mid U-NII Band, none CB {NV_CHANNEL_ENABLE, 17}, //RF_CHAN_36, {NV_CHANNEL_ENABLE, 17}, //RF_CHAN_40, @@ -1239,13 +1198,6 @@ const sHalNv nvDefaults = {NV_CHANNEL_ENABLE, 0}, //RF_CHAN_BOND_10, {NV_CHANNEL_ENABLE, 0}, //RF_CHAN_BOND_11, - // 4.9GHz Band, channel bonded channels - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_242, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_246, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_250, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_210, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_214, - //5GHz Low & Mid U-NII Band, channel bonded channels {NV_CHANNEL_ENABLE, 20}, //RF_CHAN_BOND_38, {NV_CHANNEL_ENABLE, 20}, //RF_CHAN_BOND_42, @@ -1338,15 +1290,6 @@ const sHalNv nvDefaults = {NV_CHANNEL_ENABLE, 16}, //RF_CHAN_13, {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_14, - //4.9GHz Band, none CB - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_240, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_244, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_248, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_252, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_208, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_212, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_216, - //5GHz Low & Mid U-NII Band, none CB {NV_CHANNEL_ENABLE, 17}, //RF_CHAN_36, {NV_CHANNEL_ENABLE, 17}, //RF_CHAN_40, @@ -1388,13 +1331,6 @@ const sHalNv nvDefaults = {NV_CHANNEL_ENABLE, 0}, //RF_CHAN_BOND_10, {NV_CHANNEL_ENABLE, 0}, //RF_CHAN_BOND_11, - // 4.9GHz Band, channel bonded channels - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_242, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_246, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_250, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_210, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_214, - //5GHz Low & Mid U-NII Band, channel bonded channels {NV_CHANNEL_ENABLE, 20}, //RF_CHAN_BOND_38, {NV_CHANNEL_ENABLE, 20}, //RF_CHAN_BOND_42, @@ -1487,15 +1423,6 @@ const sHalNv nvDefaults = {NV_CHANNEL_DISABLE, 30}, //RF_CHAN_13, {NV_CHANNEL_DISABLE, 30}, //RF_CHAN_14, - //4.9GHz Band, none CB - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_240, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_244, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_248, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_252, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_208, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_212, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_216, - //5GHz Low & Mid U-NII Band, none CB {NV_CHANNEL_ENABLE, 17}, //RF_CHAN_36, {NV_CHANNEL_ENABLE, 17}, //RF_CHAN_40, @@ -1537,13 +1464,6 @@ const sHalNv nvDefaults = {NV_CHANNEL_ENABLE, 0}, //RF_CHAN_BOND_10, {NV_CHANNEL_ENABLE, 0}, //RF_CHAN_BOND_11, - // 4.9GHz Band, channel bonded channels - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_242, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_246, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_250, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_210, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_214, - //5GHz Low & Mid U-NII Band, channel bonded channels {NV_CHANNEL_ENABLE, 20}, //RF_CHAN_BOND_38, {NV_CHANNEL_ENABLE, 20}, //RF_CHAN_BOND_42, @@ -1636,15 +1556,6 @@ const sHalNv nvDefaults = {NV_CHANNEL_ENABLE, 16}, //RF_CHAN_13, {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_14, - //4.9GHz Band, none CB - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_240, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_244, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_248, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_252, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_208, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_212, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_216, - //5GHz Low & Mid U-NII Band, none CB {NV_CHANNEL_ENABLE, 17}, //RF_CHAN_36, {NV_CHANNEL_ENABLE, 17}, //RF_CHAN_40, @@ -1686,13 +1597,6 @@ const sHalNv nvDefaults = {NV_CHANNEL_ENABLE, 0}, //RF_CHAN_BOND_10, {NV_CHANNEL_ENABLE, 0}, //RF_CHAN_BOND_11, - // 4.9GHz Band, channel bonded channels - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_242, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_246, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_250, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_210, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_214, - //5GHz Low & Mid U-NII Band, channel bonded channels {NV_CHANNEL_ENABLE, 20}, //RF_CHAN_BOND_38, {NV_CHANNEL_ENABLE, 20}, //RF_CHAN_BOND_42, @@ -1785,15 +1689,6 @@ const sHalNv nvDefaults = {NV_CHANNEL_ENABLE, 15}, //RF_CHAN_13, {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_14, - //4.9GHz Band, none CB - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_240, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_244, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_248, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_252, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_208, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_212, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_216, - //5GHz Low & Mid U-NII Band, none CB {NV_CHANNEL_ENABLE, 17}, //RF_CHAN_36, {NV_CHANNEL_ENABLE, 17}, //RF_CHAN_40, @@ -1835,13 +1730,6 @@ const sHalNv nvDefaults = {NV_CHANNEL_ENABLE, 0}, //RF_CHAN_BOND_10, {NV_CHANNEL_ENABLE, 0}, //RF_CHAN_BOND_11, - // 4.9GHz Band, channel bonded channels - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_242, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_246, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_250, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_210, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_214, - //5GHz Low & Mid U-NII Band, channel bonded channels {NV_CHANNEL_ENABLE, 20}, //RF_CHAN_BOND_38, {NV_CHANNEL_ENABLE, 20}, //RF_CHAN_BOND_42, @@ -1934,15 +1822,6 @@ const sHalNv nvDefaults = {NV_CHANNEL_ENABLE, 14}, //RF_CHAN_13, {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_14, - //4.9GHz Band, none CB - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_240, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_244, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_248, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_252, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_208, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_212, - {NV_CHANNEL_DISABLE, 23}, //RF_CHAN_216, - //5GHz Low & Mid U-NII Band, none CB {NV_CHANNEL_ENABLE, 17}, //RF_CHAN_36, {NV_CHANNEL_ENABLE, 17}, //RF_CHAN_40, @@ -1984,13 +1863,6 @@ const sHalNv nvDefaults = {NV_CHANNEL_ENABLE, 0}, //RF_CHAN_BOND_10, {NV_CHANNEL_ENABLE, 0}, //RF_CHAN_BOND_11, - // 4.9GHz Band, channel bonded channels - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_242, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_246, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_250, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_210, - {NV_CHANNEL_DISABLE, 0}, //RF_CHAN_BOND_214, - //5GHz Low & Mid U-NII Band, channel bonded channels {NV_CHANNEL_ENABLE, 20}, //RF_CHAN_BOND_38, {NV_CHANNEL_ENABLE, 20}, //RF_CHAN_BOND_42, @@ -4023,13 +3895,6 @@ const sHalNv nvDefaults = 95, // RF_CHAN_12 97, // RF_CHAN_13 104, // RF_CHAN_14 - 100, // RF_CHAN_240 - 100, // RF_CHAN_244 - 100, // RF_CHAN_248 - 100, // RF_CHAN_252 - 100, // RF_CHAN_208 - 100, // RF_CHAN_212 - 100, // RF_CHAN_216 100, // RF_CHAN_36 100, // RF_CHAN_40 100, // RF_CHAN_44 @@ -4064,11 +3929,6 @@ const sHalNv nvDefaults = 100, // RF_CHAN_BOND_9 100, // RF_CHAN_BOND_10 100, // RF_CHAN_BOND_11 - 100, // RF_CHAN_BOND_242 - 100, // RF_CHAN_BOND_246 - 100, // RF_CHAN_BOND_250 - 100, // RF_CHAN_BOND_210 - 100, // RF_CHAN_BOND_214 100, // RF_CHAN_BOND_38 100, // RF_CHAN_BOND_42 100, // RF_CHAN_BOND_46 @@ -5317,13 +5177,6 @@ const sHalNv nvDefaults = 310, // RF_CHAN_12 310, // RF_CHAN_13 310, // RF_CHAN_14 - 280, // RF_CHAN_240 - 280, // RF_CHAN_244 - 280, // RF_CHAN_248 - 280, // RF_CHAN_252 - 280, // RF_CHAN_208 - 280, // RF_CHAN_212 - 280, // RF_CHAN_216 280, // RF_CHAN_36 280, // RF_CHAN_40 280, // RF_CHAN_44 @@ -5358,11 +5211,6 @@ const sHalNv nvDefaults = 280, // RF_CHAN_BOND_9 280, // RF_CHAN_BOND_10 280, // RF_CHAN_BOND_11 - 280, // RF_CHAN_BOND_242 - 280, // RF_CHAN_BOND_246 - 280, // RF_CHAN_BOND_250 - 280, // RF_CHAN_BOND_210 - 280, // RF_CHAN_BOND_214 280, // RF_CHAN_BOND_38 280, // RF_CHAN_BOND_42 280, // RF_CHAN_BOND_46 diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index c1424509b6ac..bd03bf5097c2 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -1606,7 +1606,7 @@ static int32_t wmi_unified_peer_delete_send(wmi_unified_t wmi, if (wmi_unified_cmd_send(wmi, buf, len, WMI_PEER_DELETE_CMDID)) { WMA_LOGP("%s: Failed to send peer delete command", __func__); - adf_nbuf_free(buf); + wmi_buf_free(buf); return -EIO; } WMA_LOGD("%s: peer_addr %pM vdev_id %d", __func__, peer_addr, vdev_id); @@ -1639,7 +1639,7 @@ static int32_t wmi_unified_peer_flush_tids_send(wmi_unified_t wmi, if (wmi_unified_cmd_send(wmi, buf, len, WMI_PEER_FLUSH_TIDS_CMDID)) { WMA_LOGP("%s: Failed to send flush tid command", __func__); - adf_nbuf_free(buf); + wmi_buf_free(buf); return -EIO; } WMA_LOGD("%s: peer_addr %pM vdev_id %d", __func__, peer_addr, vdev_id); @@ -1863,7 +1863,7 @@ static int wmi_unified_vdev_down_send(wmi_unified_t wmi, u_int8_t vdev_id) cmd->vdev_id = vdev_id; if (wmi_unified_cmd_send(wmi, buf, len, WMI_VDEV_DOWN_CMDID)) { WMA_LOGP("%s: Failed to send vdev down", __func__); - adf_nbuf_free(buf); + wmi_buf_free(buf); return -EIO; } WMA_LOGD("%s: vdev_id %d", __func__, vdev_id); @@ -1977,6 +1977,10 @@ static void wma_recreate_ibss_vdev_and_bss_peer(tp_wma_handle wma, u_int8_t vdev add_sta_self_param.status = 0; add_sta_self_param.nss_2g = wma->interfaces[vdev_id].nss_2g; add_sta_self_param.nss_5g = wma->interfaces[vdev_id].nss_5g; + add_sta_self_param.tx_aggregation_size = + wma->interfaces[vdev_id].tx_aggregation_size; + add_sta_self_param.rx_aggregation_size = + wma->interfaces[vdev_id].rx_aggregation_size; /* delete old ibss vdev */ del_sta_param.sessionId = vdev_id; @@ -2142,7 +2146,7 @@ void wma_hidden_ssid_vdev_restart_on_vdev_stop(tp_wma_handle wma_handle, u_int8_ if (ret < 0) { WMA_LOGE("%s: Failed to send vdev restart command", __func__); adf_os_atomic_set(&intr[sessionId].vdev_restart_params.hidden_ssid_restart_in_progress,0); - adf_nbuf_free(buf); + wmi_buf_free(buf); } } @@ -4736,6 +4740,11 @@ static int wma_unified_radio_tx_power_level_stats_event_handler(void *handle, } link_stats_results = wma_handle->link_stats_results; + if (!link_stats_results) { + WMA_LOGA("%s: link_stats_results is NULL", __func__); + return -EINVAL; + } + rs_results = (tSirWifiRadioStat *) &link_stats_results->results[0]; tx_power_level_values = (uint8 *) param_tlvs->tx_time_per_power_level; @@ -4785,8 +4794,8 @@ post_stats: link_stats_results); WMA_LOGD("%s: Radio Stats event posted to HDD", __func__); vos_mem_free(rs_results->tx_time_per_power_level); - vos_mem_free(wma_handle->link_stats_results); rs_results->tx_time_per_power_level = NULL; + vos_mem_free(wma_handle->link_stats_results); wma_handle->link_stats_results = NULL; return 0; @@ -5298,7 +5307,7 @@ static void wma_send_bcn_buf_ll(tp_wma_handle wma, ret = adf_nbuf_map_single(pdev->osdev, bcn->buf, ADF_OS_DMA_TO_DEVICE); if (ret != A_STATUS_OK) { - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); WMA_LOGE("%s: failed map beacon buf to DMA region", __func__); adf_os_spin_unlock_bh(&bcn->lock); @@ -7928,7 +7937,7 @@ static int wmi_unified_peer_create_send(wmi_unified_t wmi, if (wmi_unified_cmd_send(wmi, buf, len, WMI_PEER_CREATE_CMDID)) { WMA_LOGP("%s: failed to send WMI_PEER_CREATE_CMDID", __func__); - adf_nbuf_free(buf); + wmi_buf_free(buf); return -EIO; } return 0; @@ -8041,7 +8050,7 @@ static void wma_set_sta_keep_alive(tp_wma_handle wma, u_int8_t vdev_id, WMA_LOGE("%s: received null pointer, hostv4addr:%p " "destv4addr:%p destmac:%p ", __func__, hostv4addr, destv4addr, destmac); - adf_nbuf_free(buf); + wmi_buf_free(buf); return; } @@ -8058,7 +8067,7 @@ static void wma_set_sta_keep_alive(tp_wma_handle wma, u_int8_t vdev_id, if (wmi_unified_cmd_send(wma->wmi_handle, buf, len, WMI_STA_KEEPALIVE_CMDID)) { WMA_LOGE("Failed to set KeepAlive"); - adf_nbuf_free(buf); + wmi_buf_free(buf); } WMA_LOGD("%s: Exit", __func__); @@ -8171,7 +8180,7 @@ static VOS_STATUS wma_set_enable_disable_mcc_adaptive_scheduler(tANI_U32 mcc_ada if (ret) { WMA_LOGP("%s: Failed to send enable/disable MCC" " adaptive scheduler command", __func__); - adf_nbuf_free(buf); + wmi_buf_free(buf); } return VOS_STATUS_SUCCESS; } @@ -8277,7 +8286,7 @@ static VOS_STATUS wma_set_mcc_channel_time_latency if (ret) { WMA_LOGE("%s: Failed to send MCC Channel Time Latency command", __func__); - adf_nbuf_free(buf); + wmi_buf_free(buf); VOS_ASSERT(0); return VOS_STATUS_E_FAILURE; } @@ -8407,7 +8416,7 @@ static VOS_STATUS wma_set_mcc_channel_time_quota WMI_RESMGR_SET_CHAN_TIME_QUOTA_CMDID); if (ret) { WMA_LOGE("Failed to send MCC Channel Time Quota command"); - adf_nbuf_free(buf); + wmi_buf_free(buf); VOS_ASSERT(0); return VOS_STATUS_E_FAILURE; } @@ -9471,7 +9480,7 @@ static VOS_STATUS wma_capture_tsf(tp_wma_handle wma_handle, uint32_t vdev_id) error: if (buf) - adf_nbuf_free(buf); + wmi_buf_free(buf); return vos_status; } @@ -9524,7 +9533,7 @@ static VOS_STATUS wma_reset_tsf_gpio(tp_wma_handle wma_handle, uint32_t vdev_id) error: if (buf) - adf_nbuf_free(buf); + wmi_buf_free(buf); return vos_status; } #else @@ -9641,7 +9650,7 @@ VOS_STATUS wma_start_scan(tp_wma_handle wma_handle, error: wma_reset_scan_info(wma_handle, cmd->vdev_id); if (buf) - adf_nbuf_free(buf); + wmi_buf_free(buf); error0: /* Stop the timer for scan completion */ if (vos_timer_stop(&wma_handle->wma_scan_comp_timer) @@ -9709,7 +9718,7 @@ static VOS_STATUS wma_stop_scan(tp_wma_handle wma_handle, return VOS_STATUS_SUCCESS; error: if (buf) - adf_nbuf_free(buf); + wmi_buf_free(buf); error1: return vos_status; } @@ -12112,7 +12121,7 @@ VOS_STATUS wma_switch_channel(tp_wma_handle wma, struct wma_vdev_start_req *req) if (ret < 0) { WMA_LOGP("%s: Failed to send vdev start command", __func__); - adf_nbuf_free(buf); + wmi_buf_free(buf); return VOS_STATUS_E_FAILURE; } @@ -12259,7 +12268,7 @@ VOS_STATUS wma_vdev_start(tp_wma_handle wma, " Failed to send VDEV START command", __func__, __LINE__); - adf_nbuf_free(buf); + wmi_buf_free(buf); return VOS_STATUS_E_FAILURE; } @@ -12375,7 +12384,7 @@ VOS_STATUS wma_vdev_start(tp_wma_handle wma, if (ret < 0) { WMA_LOGP("%s: Failed to send vdev start command", __func__); - adf_nbuf_free(buf); + wmi_buf_free(buf); return VOS_STATUS_E_FAILURE; } @@ -13344,7 +13353,7 @@ static int32_t wmi_unified_send_peer_assoc(tp_wma_handle wma, FALSE); if (ret) { WMA_LOGE("Set WMI_VDEV_PARAM_DROP_UNENCRY Param status:%d\n", ret); - adf_nbuf_free(buf); + wmi_buf_free(buf); return ret; } } @@ -13433,7 +13442,7 @@ static int32_t wmi_unified_send_peer_assoc(tp_wma_handle wma, if (ret != EOK) { WMA_LOGP("%s: Failed to send peer assoc command ret = %d", __func__, ret); - adf_nbuf_free(buf); + wmi_buf_free(buf); } return ret; } @@ -13513,7 +13522,7 @@ VOS_STATUS wma_get_link_speed(WMA_HANDLE handle, if (wmi_unified_cmd_send(wma_handle->wmi_handle, wmi_buf, len, WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID)) { WMA_LOGE("%s: failed to send link speed command", __func__); - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); return VOS_STATUS_E_FAILURE; } return VOS_STATUS_SUCCESS; @@ -13993,7 +14002,7 @@ static int32_t wmi_unified_set_sta_ps_param(wmi_unified_t wmi_handle, WMI_STA_POWERSAVE_PARAM_CMDID)) { WMA_LOGE("Set Sta Ps param Failed vdevId %d Param %d val %d", vdev_id, param, value); - adf_nbuf_free(buf); + wmi_buf_free(buf); return -EIO; } /* Store the PS Status */ @@ -14029,7 +14038,7 @@ static int32_t wmi_unified_pdev_green_ap_ps_enable_cmd(wmi_unified_t wmi_handle, WMI_PDEV_GREEN_AP_PS_ENABLE_CMDID)) { WMA_LOGE("Set Green AP PS param Failed val %d", value); - adf_nbuf_free(buf); + wmi_buf_free(buf); return -EIO; } return 0; @@ -14105,7 +14114,7 @@ VOS_STATUS wma_send_egap_conf_params(WMA_HANDLE handle, sizeof(*cmd), WMI_AP_PS_EGAP_PARAM_CMDID); if (err) { WMA_LOGE("Failed to send ap_ps_egap cmd"); - adf_nbuf_free(buf); + wmi_buf_free(buf); return -EIO; } return 0; @@ -14218,7 +14227,7 @@ static void wma_send_echo_request(tp_wma_handle wma) if (wmi_unified_cmd_send(wma->wmi_handle, buf, len, WMI_ECHO_CMDID)) { WMA_LOGE("Failed to send Echo cmd to firmware"); - adf_nbuf_free(buf); + wmi_buf_free(buf); } } @@ -15589,6 +15598,11 @@ static void wma_add_bss_ibss_mode(tp_wma_handle wma, tpAddBssParams add_bss) nss_5g = wma->interfaces[vdev_id].nss_5g; wma_set_bss_rate_flags(&wma->interfaces[vdev_id], add_bss); + wma->interfaces[vdev_id].tx_aggregation_size = + add_bss->tx_aggregation_size; + wma->interfaces[vdev_id].rx_aggregation_size = + add_bss->rx_aggregation_size; + vdev = wma_find_vdev_by_id(wma, vdev_id); if (!vdev) { WMA_LOGE("%s: vdev not found for vdev id %d.", @@ -15628,6 +15642,10 @@ static void wma_add_bss_ibss_mode(tp_wma_handle wma, tpAddBssParams add_bss) add_sta_self_param.status = 0; add_sta_self_param.nss_2g = add_bss->nss_2g; add_sta_self_param.nss_5g = add_bss->nss_5g; + add_sta_self_param.tx_aggregation_size = + add_bss->tx_aggregation_size; + add_sta_self_param.rx_aggregation_size = + add_bss->rx_aggregation_size; vdev = wma_vdev_attach(wma, &add_sta_self_param, 0); if (!vdev) { @@ -16088,7 +16106,7 @@ static int wmi_unified_vdev_up_send(wmi_unified_t wmi, WMI_CHAR_ARRAY_TO_MAC_ADDR(bssid, &cmd->vdev_bssid); if (wmi_unified_cmd_send(wmi, buf, len, WMI_VDEV_UP_CMDID)) { WMA_LOGP("%s: Failed to send vdev up command", __func__); - adf_nbuf_free(buf); + wmi_buf_free(buf); return -EIO; } return 0; @@ -16120,7 +16138,7 @@ static int32_t wmi_unified_set_ap_ps_param(void *wma_ctx, u_int32_t vdev_id, sizeof(*cmd), WMI_AP_PS_PEER_PARAM_CMDID); if (err) { WMA_LOGE("Failed to send set_ap_ps_param cmd"); - adf_os_mem_free(buf); + wmi_buf_free(buf); return -EIO; } return 0; @@ -17117,7 +17135,7 @@ static wmi_buf_t wma_setup_install_key_cmd(tp_wma_handle wma_handle, default: /* TODO: MFP ? */ WMA_LOGE("%s:Invalid encryption type:%d", __func__, key_params->key_type); - adf_nbuf_free(buf); + wmi_buf_free(buf); return NULL; } @@ -17274,7 +17292,7 @@ static void wma_set_bsskey(tp_wma_handle wma_handle, tpSetBssKeyParams key_info) status = wmi_unified_cmd_send(wma_handle->wmi_handle, buf, len, WMI_VDEV_INSTALL_KEY_CMDID); if (status) { - adf_nbuf_free(buf); + wmi_buf_free(buf); WMA_LOGE("%s:Failed to send install key command", __func__); key_info->status = eHAL_STATUS_FAILURE; goto out; @@ -17354,7 +17372,7 @@ static void wma_set_ibsskey_helper(tp_wma_handle wma_handle, tpSetBssKeyParams k status = wmi_unified_cmd_send(wma_handle->wmi_handle, buf, len, WMI_VDEV_INSTALL_KEY_CMDID); if (status) { - adf_nbuf_free(buf); + wmi_buf_free(buf); WMA_LOGE("%s:Failed to send install key command", __func__); } } @@ -17460,7 +17478,7 @@ static void wma_set_stakey(tp_wma_handle wma_handle, tpSetStaKeyParams key_info) status = wmi_unified_cmd_send(wma_handle->wmi_handle, buf, len, WMI_VDEV_INSTALL_KEY_CMDID); if (status) { - adf_nbuf_free(buf); + wmi_buf_free(buf); WMA_LOGE("%s:Failed to send install key command", __func__); key_info->status = eHAL_STATUS_FAILURE; goto out; @@ -17681,7 +17699,7 @@ static int32_t wmi_unified_vdev_stop_send(wmi_unified_t wmi, u_int8_t vdev_id) cmd->vdev_id = vdev_id; if (wmi_unified_cmd_send(wmi, buf, len, WMI_VDEV_STOP_CMDID)) { WMA_LOGP("%s: Failed to send vdev stop command", __func__); - adf_nbuf_free(buf); + wmi_buf_free(buf); return -EIO; } return 0; @@ -18738,7 +18756,7 @@ static int32_t wmi_unified_set_sta_ps(wmi_unified_t wmi_handle, { WMA_LOGE("Set Sta Mode Ps Failed vdevId %d val %d", vdev_id, val); - adf_nbuf_free(buf); + wmi_buf_free(buf); return -EIO; } return 0; @@ -23104,7 +23122,7 @@ static void wma_start_oem_data_req(tp_wma_handle wma_handle, if (ret != EOK) { WMA_LOGE("%s:wmi cmd send failed", __func__); - adf_nbuf_free(buf); + wmi_buf_free(buf); } out: @@ -23310,7 +23328,7 @@ static void wma_set_ric_req(tp_wma_handle wma, void *msg, tANI_U8 is_add_ts) WMA_LOGP("%s: Failed to send vdev Set RIC Req command", __func__); if(is_add_ts) ((tAddTsParams *)msg)->status = eHAL_STATUS_FAILURE; - adf_nbuf_free(buf); + wmi_buf_free(buf); } } #endif @@ -23338,7 +23356,7 @@ static void wma_del_ts_req(tp_wma_handle wma, tDelTsParams *msg) if (wmi_unified_cmd_send(wma->wmi_handle, buf, len, WMI_VDEV_WMM_DELTS_CMDID)) { WMA_LOGP("%s: Failed to send vdev DELTS command", __func__); - adf_nbuf_free(buf); + wmi_buf_free(buf); } #ifdef WLAN_FEATURE_ROAM_OFFLOAD @@ -23397,7 +23415,7 @@ static void wma_aggr_qos_req(tp_wma_handle wma, tAggrAddTsParams *pAggrQosRspMsg WMI_VDEV_WMM_ADDTS_CMDID)) { WMA_LOGP("%s: Failed to send vdev ADDTS command", __func__); pAggrQosRspMsg->status[i] = eHAL_STATUS_FAILURE; - adf_nbuf_free(buf); + wmi_buf_free(buf); } } } @@ -23453,7 +23471,7 @@ static void wma_add_ts_req(tp_wma_handle wma, tAddTsParams *msg) WMI_VDEV_WMM_ADDTS_CMDID)) { WMA_LOGP("%s: Failed to send vdev ADDTS command", __func__); msg->status = eHAL_STATUS_FAILURE; - adf_nbuf_free(buf); + wmi_buf_free(buf); } #ifdef WLAN_FEATURE_ROAM_OFFLOAD @@ -23604,7 +23622,7 @@ static int wma_set_base_macaddr_indicate(tp_wma_handle wma_handle, sizeof(*cmd), WMI_PDEV_SET_BASE_MACADDR_CMDID); if (err) { WMA_LOGE("Failed to send set_base_macaddr cmd"); - adf_os_mem_free(buf); + wmi_buf_free(buf); return -EIO; } WMA_LOGD("Base MAC Addr: "MAC_ADDRESS_STR, @@ -23740,7 +23758,7 @@ static int wma_add_clear_mcbc_filter(tp_wma_handle wma_handle, uint8_t vdev_id, sizeof(*cmd), WMI_SET_MCASTBCAST_FILTER_CMDID); if (err) { WMA_LOGE("Failed to send set_param cmd"); - adf_os_mem_free(buf); + wmi_buf_free(buf); return -EIO; } WMA_LOGD("Action:%d; vdev_id:%d; clearList:%d\n", @@ -25383,7 +25401,7 @@ VOS_STATUS wma_set_peer_rate_report_condition(WMA_HANDLE handle, status = wmi_unified_cmd_send(wma_handle->wmi_handle, buf, len, WMI_PEER_SET_RATE_REPORT_CONDITION_CMDID); if (status) { - adf_nbuf_free(buf); + wmi_buf_free(buf); WMA_LOGE("%s:Failed to send peer_set_report_cond command", __func__); return eHAL_STATUS_FAILURE; @@ -25493,7 +25511,7 @@ VOS_STATUS wma_ProcessAddPeriodicTxPtrnInd(WMA_HANDLE handle, pAddPeriodicTxPtrnParams->macAddress, &vdev_id)) { WMA_LOGE("%s: Failed to find vdev id for %pM",__func__, pAddPeriodicTxPtrnParams->macAddress); - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); return VOS_STATUS_E_INVAL; } buf_ptr = (u_int8_t *) wmi_buf_data(wmi_buf); @@ -25524,7 +25542,7 @@ VOS_STATUS wma_ProcessAddPeriodicTxPtrnInd(WMA_HANDLE handle, if (wmi_unified_cmd_send(wma_handle->wmi_handle, wmi_buf, len, WMI_ADD_PROACTIVE_ARP_RSP_PATTERN_CMDID)) { WMA_LOGE("%s: failed to add pattern set state command", __func__); - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); return VOS_STATUS_E_FAILURE; } return VOS_STATUS_SUCCESS; @@ -25558,7 +25576,7 @@ VOS_STATUS wma_ProcessDelPeriodicTxPtrnInd(WMA_HANDLE handle, pDelPeriodicTxPtrnParams->macAddress, &vdev_id)) { WMA_LOGE("%s: Failed to find vdev id for %pM",__func__, pDelPeriodicTxPtrnParams->macAddress); - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); return VOS_STATUS_E_INVAL; } cmd = (WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMD_fixed_param *)wmi_buf_data(wmi_buf); @@ -25575,7 +25593,7 @@ VOS_STATUS wma_ProcessDelPeriodicTxPtrnInd(WMA_HANDLE handle, if (wmi_unified_cmd_send(wma_handle->wmi_handle, wmi_buf, len, WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMDID)) { WMA_LOGE("%s: failed to send del pattern command", __func__); - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); return VOS_STATUS_E_FAILURE; } return VOS_STATUS_SUCCESS; @@ -26332,7 +26350,7 @@ VOS_STATUS wma_start_extscan(tp_wma_handle wma, if (wmi_unified_cmd_send(wma->wmi_handle, buf, len, WMI_EXTSCAN_START_CMDID)) { WMA_LOGE("%s: failed to send command", __func__); - adf_nbuf_free(buf); + wmi_buf_free(buf); return VOS_STATUS_E_FAILURE; } @@ -26380,7 +26398,7 @@ VOS_STATUS wma_stop_extscan(tp_wma_handle wma, if (wmi_unified_cmd_send(wma->wmi_handle, wmi_buf, len, WMI_EXTSCAN_STOP_CMDID)) { WMA_LOGE("%s: failed to command", __func__); - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); return VOS_STATUS_E_FAILURE; } @@ -26526,7 +26544,7 @@ VOS_STATUS wma_get_buf_extscan_hotlist_cmd(tp_wma_handle wma_handle, if (wmi_unified_cmd_send(wma_handle->wmi_handle, buf, len, WMI_EXTSCAN_CONFIGURE_HOTLIST_MONITOR_CMDID)) { WMA_LOGE("%s: failed to send command", __func__); - adf_nbuf_free(buf); + wmi_buf_free(buf); return VOS_STATUS_E_FAILURE; } index = index + min_entries; @@ -26619,7 +26637,7 @@ VOS_STATUS wma_extscan_stop_hotlist_monitor(tp_wma_handle wma, if (wmi_unified_cmd_send(wma->wmi_handle, wmi_buf, len, WMI_EXTSCAN_CONFIGURE_HOTLIST_MONITOR_CMDID)) { WMA_LOGE("%s: failed to command", __func__); - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); return VOS_STATUS_E_FAILURE; } return VOS_STATUS_SUCCESS; @@ -26724,7 +26742,7 @@ wma_set_ssid_hotlist(tp_wma_handle wma, (wma->wmi_handle, wmi_buf, len, WMI_EXTSCAN_CONFIGURE_HOTLIST_SSID_MONITOR_CMDID)) { WMA_LOGE("%s: failed to send command", __func__); - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); return VOS_STATUS_E_FAILURE; } return VOS_STATUS_SUCCESS; @@ -26831,7 +26849,7 @@ VOS_STATUS wma_extscan_start_change_monitor(tp_wma_handle wma, if (wmi_unified_cmd_send(wma->wmi_handle, buf, len, WMI_EXTSCAN_CONFIGURE_WLAN_CHANGE_MONITOR_CMDID)) { WMA_LOGE("%s: failed to send command", __func__); - adf_nbuf_free(buf); + wmi_buf_free(buf); return VOS_STATUS_E_FAILURE; } return VOS_STATUS_SUCCESS; @@ -26891,7 +26909,7 @@ VOS_STATUS wma_extscan_stop_change_monitor(tp_wma_handle wma, if (wmi_unified_cmd_send(wma->wmi_handle, wmi_buf, len, WMI_EXTSCAN_CONFIGURE_WLAN_CHANGE_MONITOR_CMDID)) { WMA_LOGE("%s: failed to command", __func__); - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); return VOS_STATUS_E_FAILURE; } return VOS_STATUS_SUCCESS; @@ -26937,7 +26955,7 @@ VOS_STATUS wma_extscan_get_cached_results(tp_wma_handle wma, if (wmi_unified_cmd_send(wma->wmi_handle, wmi_buf, len, WMI_EXTSCAN_GET_CACHED_RESULTS_CMDID)) { WMA_LOGE("%s: failed to command", __func__); - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); return VOS_STATUS_E_FAILURE; } return VOS_STATUS_SUCCESS; @@ -26981,7 +26999,7 @@ VOS_STATUS wma_extscan_get_capabilities(tp_wma_handle wma, if (wmi_unified_cmd_send(wma->wmi_handle, wmi_buf, len, WMI_EXTSCAN_GET_CAPABILITIES_CMDID)) { WMA_LOGE("%s: failed to command", __func__); - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); return VOS_STATUS_E_FAILURE; } return VOS_STATUS_SUCCESS; @@ -27485,7 +27503,7 @@ static void wma_process_unit_test_cmd(WMA_HANDLE handle, if (wmi_unified_cmd_send(wma_handle->wmi_handle, wmi_buf, len, WMI_UNIT_TEST_CMDID)) { WMA_LOGP("%s: failed to send unit test command", __func__); - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); return; } return; @@ -27528,7 +27546,7 @@ VOS_STATUS wma_scan_probe_setoui(tp_wma_handle wma, if (wmi_unified_cmd_send(wma->wmi_handle, wmi_buf, len, WMI_SCAN_PROB_REQ_OUI_CMDID)) { WMA_LOGE("%s: failed to send command", __func__); - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); return VOS_STATUS_E_FAILURE; } return VOS_STATUS_SUCCESS; @@ -27673,7 +27691,7 @@ static void wma_process_roam_invoke(WMA_HANDLE handle, if (wmi_unified_cmd_send(wma_handle->wmi_handle, wmi_buf, len, WMI_ROAM_INVOKE_CMDID)) { WMA_LOGP("%s: failed to send roam invoke command", __func__); - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); return; } return; @@ -28895,7 +28913,7 @@ static VOS_STATUS wma_get_bpf_capabilities(tp_wma_handle wma) if (wmi_unified_cmd_send(wma->wmi_handle, wmi_buf, len, WMI_BPF_GET_CAPABILITY_CMDID)) { WMA_LOGE(FL("Failed to send BPF capability command")); - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); return VOS_STATUS_E_FAILURE; } return vos_status; @@ -29081,7 +29099,7 @@ static VOS_STATUS wma_set_bpf_instructions(tp_wma_handle wma, if (wmi_unified_cmd_send(wma->wmi_handle, wmi_buf, len, WMI_BPF_SET_VDEV_INSTRUCTIONS_CMDID)) { WMA_LOGE(FL("Failed to send config bpf instructions command")); - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); return VOS_STATUS_E_FAILURE; } return VOS_STATUS_SUCCESS; @@ -29167,7 +29185,7 @@ VOS_STATUS wma_enable_disable_caevent_ind(tp_wma_handle wma, if (wmi_unified_cmd_send(wma->wmi_handle, wmi_buf, len, WMI_CHAN_AVOID_RPT_ALLOW_CMDID)) { WMA_LOGE(FL("Failed to send enable/disable CA event command")); - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); return VOS_STATUS_E_FAILURE; } @@ -30878,7 +30896,7 @@ static VOS_STATUS wma_set_thermal_mgmt(tp_wma_handle wma_handle, status = wmi_unified_cmd_send(wma_handle->wmi_handle, buf, len, WMI_THERMAL_MGMT_CMDID); if (status) { - adf_nbuf_free(buf); + wmi_buf_free(buf); WMA_LOGE("%s:Failed to send thermal mgmt command", __func__); return eHAL_STATUS_FAILURE; } @@ -32534,7 +32552,7 @@ static wmi_buf_t wma_setup_wmi_init_msg(tp_wma_handle wma_handle, /* allocate memory requested by FW */ if (ev->num_mem_reqs > WMI_MAX_MEM_REQS) { VOS_ASSERT(0); - adf_nbuf_free(buf); + wmi_buf_free(buf); return NULL; } @@ -32882,7 +32900,7 @@ int wma_set_peer_param(void *wma_ctx, u_int8_t *peer_addr, u_int32_t param_id, WMI_PEER_SET_PARAM_CMDID); if (err) { WMA_LOGE("Failed to send set_param cmd"); - adf_os_mem_free(buf); + wmi_buf_free(buf); return -EIO; } @@ -33545,7 +33563,7 @@ int wma_suspend_target(WMA_HANDLE handle, int disable_target_intr) vos_event_reset(&wma_handle->target_suspend); if (wmi_unified_cmd_send(wma_handle->wmi_handle, wmibuf, len, WMI_PDEV_SUSPEND_CMDID)) { - adf_nbuf_free(wmibuf); + wmi_buf_free(wmibuf); return -1; } @@ -34224,7 +34242,7 @@ void wma_send_regdomain_info(u_int32_t reg_dmn, u_int16_t regdmn2G, WMI_PDEV_SET_REGDOMAIN_CMDID)) { WMA_LOGP("%s: Failed to send pdev set regdomain command", __func__); - adf_nbuf_free(buf); + wmi_buf_free(buf); } if ((((reg_dmn & ~COUNTRY_ERD_FLAG) == CTRY_JAPAN) || @@ -34454,7 +34472,7 @@ static int wma_set_tdls_offchan_mode(WMA_HANDLE handle, if (wmi_unified_cmd_send(wma_handle->wmi_handle, wmi_buf, len, WMI_TDLS_SET_OFFCHAN_MODE_CMDID)) { WMA_LOGP("%s: failed to send tdls off chan command", __func__); - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); ret = -EIO; } @@ -34560,7 +34578,7 @@ static int wma_update_fw_tdls_state(WMA_HANDLE handle, void *pwmaTdlsparams) if (wmi_unified_cmd_send(wma_handle->wmi_handle, wmi_buf, len, WMI_TDLS_SET_STATE_CMDID)) { WMA_LOGP("%s: failed to send tdls set state command", __func__); - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); ret = -EIO; goto end_fw_tdls_state; } @@ -34751,7 +34769,7 @@ static int wma_update_tdls_peer_state(WMA_HANDLE handle, WMI_TDLS_PEER_UPDATE_CMDID)) { WMA_LOGE("%s: failed to send tdls peer update state command", __func__); - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); ret = -EIO; goto end_tdls_peer_state; } @@ -35561,7 +35579,7 @@ void wma_process_roam_synch_complete(WMA_HANDLE handle, if (wmi_unified_cmd_send(wma_handle->wmi_handle, wmi_buf, len, WMI_ROAM_SYNCH_COMPLETE)) { WMA_LOGP("%s: failed to send roam synch confirmation", __func__); - adf_nbuf_free(wmi_buf); + wmi_buf_free(wmi_buf); return; } return; diff --git a/CORE/SERVICES/WMA/wma.h b/CORE/SERVICES/WMA/wma.h index 3c10af968e35..d1075e73feb0 100644 --- a/CORE/SERVICES/WMA/wma.h +++ b/CORE/SERVICES/WMA/wma.h @@ -575,6 +575,8 @@ struct wma_txrx_node { uint8_t wps_state; uint8_t nss_2g; uint8_t nss_5g; + uint32_t tx_aggregation_size; + uint32_t rx_aggregation_size; uint8_t wep_default_key_idx; bool is_vdev_valid; diff --git a/CORE/SERVICES/WMI/wmi_unified.c b/CORE/SERVICES/WMI/wmi_unified.c index c561ee9ce617..fb93e7f04fd4 100644 --- a/CORE/SERVICES/WMI/wmi_unified.c +++ b/CORE/SERVICES/WMI/wmi_unified.c @@ -710,6 +710,73 @@ inline bool wmi_get_runtime_pm_inprogress(wmi_unified_t wmi_handle) } #endif +/** + * wmi_set_htc_tx_tag() - set HTC TX tag for WMI commands + * @wmi_handle: WMI handle + * @buf: WMI buffer + * @cmd_id: WMI command Id + * + * Return htc_tx_tag + */ +static uint16_t wmi_set_htc_tx_tag(wmi_unified_t wmi_handle, + wmi_buf_t buf, + WMI_CMD_ID cmd_id) +{ + uint16_t htc_tx_tag = 0; + wmi_vdev_set_param_cmd_fixed_param *set_cmd; + wmi_sta_powersave_param_cmd_fixed_param *ps_cmd; + + switch(cmd_id) { + case WMI_WOW_ENABLE_CMDID: + case WMI_PDEV_SUSPEND_CMDID: + case WMI_WOW_ENABLE_DISABLE_WAKE_EVENT_CMDID: + case WMI_WOW_ADD_WAKE_PATTERN_CMDID: + case WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID: + case WMI_PDEV_RESUME_CMDID: + case WMI_WOW_DEL_WAKE_PATTERN_CMDID: +#ifdef FEATURE_WLAN_D0WOW + case WMI_D0_WOW_ENABLE_DISABLE_CMDID: +#endif + htc_tx_tag = HTC_TX_PACKET_TAG_AUTO_PM; + case WMI_FORCE_FW_HANG_CMDID: + if (wmi_handle->tag_crash_inject) { + htc_tx_tag = HTC_TX_PACKET_TAG_AUTO_PM; + wmi_handle->tag_crash_inject = false; + } + default: + break; + } + + if(cmd_id == WMI_VDEV_SET_PARAM_CMDID) + { + set_cmd = (wmi_vdev_set_param_cmd_fixed_param *) + wmi_buf_data(buf); + + switch(set_cmd->param_id) { + case WMI_VDEV_PARAM_LISTEN_INTERVAL: + case WMI_VDEV_PARAM_DTIM_POLICY: + htc_tx_tag = HTC_TX_PACKET_TAG_AUTO_PM; + default: + break; + } + } + + if(cmd_id == WMI_STA_POWERSAVE_PARAM_CMDID) + { + ps_cmd = (wmi_sta_powersave_param_cmd_fixed_param *) + wmi_buf_data(buf); + + switch(ps_cmd->param) { + case WMI_STA_PS_ENABLE_QPOWER: + htc_tx_tag = HTC_TX_PACKET_TAG_AUTO_PM; + default: + break; + } + } + + return htc_tx_tag; +} + /* WMI command API */ int wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf, int len, WMI_CMD_ID cmd_id) @@ -740,26 +807,8 @@ int wmi_unified_cmd_send(wmi_unified_t wmi_handle, wmi_buf_t buf, int len, goto dont_tag; skip_suspend_check: - switch(cmd_id) { - case WMI_WOW_ENABLE_CMDID: - case WMI_PDEV_SUSPEND_CMDID: - case WMI_WOW_ENABLE_DISABLE_WAKE_EVENT_CMDID: - case WMI_WOW_ADD_WAKE_PATTERN_CMDID: - case WMI_WOW_HOSTWAKEUP_FROM_SLEEP_CMDID: - case WMI_PDEV_RESUME_CMDID: - case WMI_WOW_DEL_WAKE_PATTERN_CMDID: -#ifdef FEATURE_WLAN_D0WOW - case WMI_D0_WOW_ENABLE_DISABLE_CMDID: -#endif - htc_tag = HTC_TX_PACKET_TAG_AUTO_PM; - case WMI_FORCE_FW_HANG_CMDID: - if (wmi_handle->tag_crash_inject) { - htc_tag = HTC_TX_PACKET_TAG_AUTO_PM; - wmi_handle->tag_crash_inject = false; - } - default: - break; - } + htc_tag = (A_UINT16) wmi_set_htc_tx_tag(wmi_handle, + buf, cmd_id); dont_tag: /* Do sanity check on the TLV parameter structure */ diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c index 3cfdd834d532..885342544fec 100644 --- a/CORE/SME/src/csr/csrApiRoam.c +++ b/CORE/SME/src/csr/csrApiRoam.c @@ -2255,6 +2255,10 @@ eHalStatus csrGetConfigParam(tpAniSirGlobal pMac, tCsrConfigParam *pParam) pParam->edca_vi_aifs = pMac->roam.configParam.edca_vi_aifs; pParam->edca_bk_aifs = pMac->roam.configParam.edca_bk_aifs; pParam->edca_be_aifs = pMac->roam.configParam.edca_be_aifs; + pParam->tx_aggregation_size = + pMac->roam.configParam.tx_aggregation_size; + pParam->rx_aggregation_size = + pMac->roam.configParam.rx_aggregation_size; status = eHAL_STATUS_SUCCESS; } return (status); diff --git a/CORE/SME/src/csr/csrApiScan.c b/CORE/SME/src/csr/csrApiScan.c index eb4d79af6db8..47a55a4c81ed 100644 --- a/CORE/SME/src/csr/csrApiScan.c +++ b/CORE/SME/src/csr/csrApiScan.c @@ -4710,6 +4710,11 @@ tANI_BOOLEAN csrScanComplete( tpAniSirGlobal pMac, tSirSmeScanRsp *pScanRsp ) } csrSaveScanResults(pMac, pCommand->u.scanCmd.reason, sessionId); + /* filter scan result based on valid channel list number */ + if (pMac->scan.fcc_constraint) { + smsLog(pMac, LOG1, FL("Clear BSS from invalid channels")); + csrScanFilterResults(pMac); + } #ifdef FEATURE_WLAN_DIAG_SUPPORT_CSR { vos_log_scan_pkt_type *pScanLog = NULL; diff --git a/CORE/SVC/inc/wlan_nlink_srv.h b/CORE/SVC/inc/wlan_nlink_srv.h index b84eb6779404..df7214421be8 100644 --- a/CORE/SVC/inc/wlan_nlink_srv.h +++ b/CORE/SVC/inc/wlan_nlink_srv.h @@ -59,11 +59,7 @@ typedef int (* nl_srv_msg_callback)(struct sk_buff * skb); #ifndef MULTI_IF_NAME int nl_srv_init(void); -#ifdef WLAN_KD_READY_NOTIFIER -void nl_srv_exit(int dst_pid); -#else void nl_srv_exit(void); -#endif /* WLAN_KD_READY_NOTIFIER */ int nl_srv_register(tWlanNlModTypes msg_type, nl_srv_msg_callback msg_handler); int nl_srv_unregister(tWlanNlModTypes msg_type, nl_srv_msg_callback msg_handler); int nl_srv_ucast(struct sk_buff * skb, int dst_pid, int flag); @@ -72,14 +68,7 @@ int nl_srv_is_initialized(void); #else static inline int nl_srv_init(void) { return 0; } - -#ifdef WLAN_KD_READY_NOTIFIER -static inline void nl_srv_exit(int dst_pid) -#else -void nl_srv_exit(void) -#endif /* WLAN_KD_READY_NOTIFIER */ -{ -} +static inline void nl_srv_exit(void) {} static inline int nl_srv_register(tWlanNlModTypes msg_type, nl_srv_msg_callback msg_handler) diff --git a/CORE/SVC/src/nlink/wlan_nlink_srv.c b/CORE/SVC/src/nlink/wlan_nlink_srv.c index 8512bf0f5305..275e70715d1b 100644 --- a/CORE/SVC/src/nlink/wlan_nlink_srv.c +++ b/CORE/SVC/src/nlink/wlan_nlink_srv.c @@ -101,11 +101,7 @@ int nl_srv_init(void) * Deinit the netlink service. * Netlink service is unusable after this. */ -#ifdef WLAN_KD_READY_NOTIFIER -void nl_srv_exit(int dst_pid) -#else void nl_srv_exit(void) -#endif /* WLAN_KD_READY_NOTIFIER */ { netlink_kernel_release(nl_srv_sock); nl_srv_sock = NULL; diff --git a/CORE/VOSS/inc/vos_nvitem.h b/CORE/VOSS/inc/vos_nvitem.h index 96ddcca934cc..4709482918cf 100644 --- a/CORE/VOSS/inc/vos_nvitem.h +++ b/CORE/VOSS/inc/vos_nvitem.h @@ -268,4 +268,5 @@ VOS_STATUS vos_init_wiphy_from_eeprom(void); bool vos_is_dsrc_channel(uint16_t); uint32_t vos_nv_get_channel_flags(uint32_t rf_channel); int vos_update_band(uint8_t band); +void vos_reset_global_reg_params(void); #endif // __VOS_NVITEM_H diff --git a/CORE/VOSS/src/vos_nvitem.c b/CORE/VOSS/src/vos_nvitem.c index 7d09491c5600..493b1397eb1e 100644 --- a/CORE/VOSS/src/vos_nvitem.c +++ b/CORE/VOSS/src/vos_nvitem.c @@ -209,13 +209,6 @@ chan_to_ht_40_index_map chan_to_ht_40_index[NUM_20MHZ_RF_CHANNELS] = {RF_CHAN_BOND_10, INVALID_RF_CHANNEL}, //RF_CHAN_12, {RF_CHAN_BOND_11, INVALID_RF_CHANNEL}, //RF_CHAN_13, {INVALID_RF_CHANNEL, INVALID_RF_CHANNEL},//RF_CHAN_14, - {INVALID_RF_CHANNEL, RF_CHAN_BOND_242}, //RF_CHAN_240, - {RF_CHAN_BOND_242, RF_CHAN_BOND_246}, //RF_CHAN_244, - {RF_CHAN_BOND_246, RF_CHAN_BOND_250}, //RF_CHAN_248, - {RF_CHAN_BOND_250, INVALID_RF_CHANNEL}, //RF_CHAN_252, - {INVALID_RF_CHANNEL, RF_CHAN_BOND_210}, //RF_CHAN_208, - {RF_CHAN_BOND_210, RF_CHAN_BOND_214}, //RF_CHAN_212, - {RF_CHAN_BOND_214, INVALID_RF_CHANNEL}, //RF_CHAN_216, {INVALID_RF_CHANNEL, RF_CHAN_BOND_38}, //RF_CHAN_36, {RF_CHAN_BOND_38, RF_CHAN_BOND_42}, //RF_CHAN_40, {RF_CHAN_BOND_42, RF_CHAN_BOND_46}, //RF_CHAN_44, @@ -421,13 +414,6 @@ const tRfChannelProps rfChannels[NUM_RF_CHANNELS] = { 2467, 12 , RF_SUBBAND_2_4_GHZ}, //RF_CHAN_12, { 2472, 13 , RF_SUBBAND_2_4_GHZ}, //RF_CHAN_13, { 2484, 14 , RF_SUBBAND_2_4_GHZ}, //RF_CHAN_14, - { 4920, 240, RF_SUBBAND_4_9_GHZ}, //RF_CHAN_240, - { 4940, 244, RF_SUBBAND_4_9_GHZ}, //RF_CHAN_244, - { 4960, 248, RF_SUBBAND_4_9_GHZ}, //RF_CHAN_248, - { 4980, 252, RF_SUBBAND_4_9_GHZ}, //RF_CHAN_252, - { 5040, 208, RF_SUBBAND_4_9_GHZ}, //RF_CHAN_208, - { 5060, 212, RF_SUBBAND_4_9_GHZ}, //RF_CHAN_212, - { 5080, 216, RF_SUBBAND_4_9_GHZ}, //RF_CHAN_216, { 5180, 36 , RF_SUBBAND_5_LOW_GHZ}, //RF_CHAN_36, { 5200, 40 , RF_SUBBAND_5_LOW_GHZ}, //RF_CHAN_40, { 5220, 44 , RF_SUBBAND_5_LOW_GHZ}, //RF_CHAN_44, @@ -482,11 +468,6 @@ const tRfChannelProps rfChannels[NUM_RF_CHANNELS] = { 2452, 9 , NUM_RF_SUBBANDS}, //RF_CHAN_BOND_9, { 2457, 10 , NUM_RF_SUBBANDS}, //RF_CHAN_BOND_10, { 2462, 11 , NUM_RF_SUBBANDS}, //RF_CHAN_BOND_11, - { 4930, 242, NUM_RF_SUBBANDS}, //RF_CHAN_BOND_242, - { 4950, 246, NUM_RF_SUBBANDS}, //RF_CHAN_BOND_246, - { 4970, 250, NUM_RF_SUBBANDS}, //RF_CHAN_BOND_250, - { 5050, 210, NUM_RF_SUBBANDS}, //RF_CHAN_BOND_210, - { 5070, 214, NUM_RF_SUBBANDS}, //RF_CHAN_BOND_214, { 5190, 38 , NUM_RF_SUBBANDS}, //RF_CHAN_BOND_38, { 5210, 42 , NUM_RF_SUBBANDS}, //RF_CHAN_BOND_42, { 5230, 46 , NUM_RF_SUBBANDS}, //RF_CHAN_BOND_46, @@ -593,6 +574,19 @@ struct ieee80211_regdomain *vos_world_regdomain(struct regulatory *reg) } } +/** + * vos_reset_global_reg_params - Reset global static reg params + * + * This function is helpful in static driver to reset + * the global params. + * + * Return: void + */ +void vos_reset_global_reg_params() +{ + init_by_driver = false; + init_by_reg_core = false; +} static int regd_init_wiphy(hdd_context_t *pHddCtx, struct regulatory *reg, struct wiphy *wiphy) diff --git a/CORE/WDA/inc/legacy/halMsgApi.h b/CORE/WDA/inc/legacy/halMsgApi.h index b48b35a5bdaf..3ead091673b0 100644 --- a/CORE/WDA/inc/legacy/halMsgApi.h +++ b/CORE/WDA/inc/legacy/halMsgApi.h @@ -542,6 +542,8 @@ typedef struct uint8_t wps_state; uint8_t nss_2g; uint8_t nss_5g; + uint32_t tx_aggregation_size; + uint32_t rx_aggregation_size; } tAddBssParams, * tpAddBssParams; typedef struct diff --git a/wcnss/inc/wlan_nv.h b/wcnss/inc/wlan_nv.h index 7c8e172c0ea8..01d0460920f0 100644 --- a/wcnss/inc/wlan_nv.h +++ b/wcnss/inc/wlan_nv.h @@ -244,15 +244,6 @@ typedef enum RF_CHAN_13, RF_CHAN_14, - //4.9GHz Band - RF_CHAN_240, - RF_CHAN_244, - RF_CHAN_248, - RF_CHAN_252, - RF_CHAN_208, - RF_CHAN_212, - RF_CHAN_216, - //5GHz Low & Mid U-NII Band RF_CHAN_36, RF_CHAN_40, @@ -313,11 +304,6 @@ typedef enum RF_CHAN_BOND_9, RF_CHAN_BOND_10, RF_CHAN_BOND_11, - RF_CHAN_BOND_242, //4.9GHz Band - RF_CHAN_BOND_246, - RF_CHAN_BOND_250, - RF_CHAN_BOND_210, - RF_CHAN_BOND_214, RF_CHAN_BOND_38, //5GHz Low & Mid U-NII Band RF_CHAN_BOND_42, RF_CHAN_BOND_46, @@ -348,7 +334,7 @@ typedef enum MIN_2_4GHZ_CHANNEL = RF_CHAN_1, MAX_2_4GHZ_CHANNEL = RF_CHAN_14, - MIN_5GHZ_CHANNEL = RF_CHAN_240, + MIN_5GHZ_CHANNEL = RF_CHAN_36, MAX_5GHZ_CHANNEL = RF_CHAN_184, NUM_5GHZ_CHANNELS = (MAX_5GHZ_CHANNEL - MIN_5GHZ_CHANNEL + 1), @@ -363,7 +349,7 @@ typedef enum MIN_CB_2_4GHZ_CHANNEL = RF_CHAN_BOND_3, MAX_CB_2_4GHZ_CHANNEL = RF_CHAN_BOND_11, - MIN_CB_5GHZ_CHANNEL = RF_CHAN_BOND_242, + MIN_CB_5GHZ_CHANNEL = RF_CHAN_BOND_38, MAX_CB_5GHZ_CHANNEL = RF_CHAN_BOND_163, NUM_TPC_2_4GHZ_CHANNELS = 14, |
