diff options
| author | Kiran Kumar Lokere <klokere@qca.qualcomm.com> | 2014-11-14 12:28:03 -0800 |
|---|---|---|
| committer | Akash Patel <c_akashp@qca.qualcomm.com> | 2014-11-15 00:01:24 -0800 |
| commit | e1da62f4a24b97f11ddad4bbb00535e1e10fca45 (patch) | |
| tree | b361e13332dd9c26cf0ea4b81c64e6927675e290 | |
| parent | a821f01a457239ad8dfc90c52ca00b1edbc897db (diff) | |
Revert "qcacld: Fix to select CB mode based on phymode/channel/vhtchannelwidth"
This reverts change-id Ib9c965d45fb5019d22957cda07a28da27f6ccb7f .
Change-Id: Icba57e738a66c5fc18641c4ede5e19b59e075f30
CRs-Fixed: 755604
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 6 | ||||
| -rwxr-xr-x | CORE/HDD/src/wlan_hdd_main.c | 3 | ||||
| -rw-r--r-- | CORE/SAP/src/sapApiLinkCntl.c | 47 | ||||
| -rw-r--r-- | CORE/SAP/src/sapFsm.c | 87 | ||||
| -rw-r--r-- | CORE/SAP/src/sapModule.c | 21 | ||||
| -rw-r--r-- | CORE/SME/inc/csrInternal.h | 3 | ||||
| -rw-r--r-- | CORE/SME/inc/sme_Api.h | 8 | ||||
| -rw-r--r-- | CORE/SME/src/csr/csrApiRoam.c | 13 | ||||
| -rw-r--r-- | CORE/SME/src/sme_common/sme_Api.c | 37 |
9 files changed, 56 insertions, 169 deletions
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c index b16287fa0603..fbe98b234d92 100644 --- a/CORE/HDD/src/wlan_hdd_cfg80211.c +++ b/CORE/HDD/src/wlan_hdd_cfg80211.c @@ -6368,8 +6368,7 @@ static int wlan_hdd_cfg80211_start_bss(hdd_adapter_t *pHostapdAdapter, { sme_SelectCBMode(hHal, sapConvertSapPhyModeToCsrPhyMode(pConfig->SapHw_mode), - pConfig->channel, - WLAN_HDD_GET_CTX(pHostapdAdapter)->cfg_ini->vhtChannelWidth); + pConfig->channel); } // ht_capab is not what the name conveys,this is used for protection bitmap pConfig->ht_capab = @@ -9905,8 +9904,7 @@ void hdd_select_cbmode( hdd_adapter_t *pAdapter,v_U8_t operationChannel) /* This call decides required channel bonding mode */ sme_SelectCBMode((WLAN_HDD_GET_CTX(pAdapter)->hHal), hdd_cfg_xlate_to_csr_phy_mode(hddDot11Mode), - operationChannel, - WLAN_HDD_GET_CTX(pAdapter)->cfg_ini->vhtChannelWidth); + operationChannel); } /* diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c index 04af2b986d8d..1f1800fd985c 100755 --- a/CORE/HDD/src/wlan_hdd_main.c +++ b/CORE/HDD/src/wlan_hdd_main.c @@ -14288,8 +14288,7 @@ void wlan_hdd_check_sta_ap_concurrent_ch_intf(void *data) pHddApCtx->sapConfig.channel = intf_ch; sme_SelectCBMode(hHal, sapConvertSapPhyModeToCsrPhyMode(pHddApCtx->sapConfig.SapHw_mode), - pHddApCtx->sapConfig.channel, - pHddCtx->cfg_ini->vhtChannelWidth); + pHddApCtx->sapConfig.channel); wlan_hdd_restart_sap(ap_adapter); } #endif diff --git a/CORE/SAP/src/sapApiLinkCntl.c b/CORE/SAP/src/sapApiLinkCntl.c index 7290981d94e0..ae730d339b73 100644 --- a/CORE/SAP/src/sapApiLinkCntl.c +++ b/CORE/SAP/src/sapApiLinkCntl.c @@ -139,24 +139,11 @@ WLANSAP_ScanCallback tWLAN_SAPEvent sapEvent; /* State machine event */ v_U8_t operChannel = 0; VOS_STATUS sapstatus; - tpAniSirGlobal pMac = NULL; - v_U32_t vhtChannelWidth; #ifdef SOFTAP_CHANNEL_RANGE v_U32_t operatingBand; v_U32_t event; #endif - if (NULL == halHandle) - { - VOS_TRACE(VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_ERROR, - "In %s invalid hHal", __func__); - return eHAL_STATUS_FAILURE; - } - else - { - pMac = PMAC_STRUCT( halHandle ); - } - /*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -*/ VOS_TRACE( VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_INFO_HIGH, "In %s, before switch on scanStatus = %d", __func__, scanStatus); @@ -247,22 +234,10 @@ WLANSAP_ScanCallback { psapContext->channel = operChannel; } - if (eHAL_STATUS_SUCCESS != ccmCfgGetInt(halHandle, - WNI_CFG_VHT_CHANNEL_WIDTH, - &vhtChannelWidth)) - { - VOS_TRACE(VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_ERROR, - FL("Get WNI_CFG_VHT_CHANNEL_WIDTH failed")); - /* - * In case of failure, take the vht channel width from - * original ini value - */ - vhtChannelWidth = pMac->roam.configParam.nVhtChannelWidth; - } sme_SelectCBMode(halHandle, sapConvertSapPhyModeToCsrPhyMode(psapContext->csrRoamProfile.phyMode), - psapContext->channel, vhtChannelWidth); + psapContext->channel); #ifdef SOFTAP_CHANNEL_RANGE if(psapContext->channelList != NULL) { @@ -330,7 +305,6 @@ WLANSAP_RoamCallback eHalStatus halStatus = eHAL_STATUS_SUCCESS; tHalHandle hHal = VOS_GET_HAL_CB(sapContext->pvosGCtx); tpAniSirGlobal pMac = NULL; - v_U32_t vhtChannelWidth; if (NULL == hHal) { @@ -859,23 +833,8 @@ WLANSAP_RoamCallback */ if (pMac->sap.SapDfsInfo.target_channel) { - if (eHAL_STATUS_SUCCESS != ccmCfgGetInt(hHal, - WNI_CFG_VHT_CHANNEL_WIDTH, - &vhtChannelWidth)) - { - VOS_TRACE(VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_ERROR, - FL("Get WNI_CFG_VHT_CHANNEL_WIDTH failed")); - /* - * In case of failure, take the vht channel width from - * original ini value - */ - vhtChannelWidth = - pMac->roam.configParam.nVhtChannelWidth; - } - - sme_SelectCBMode(hHal, phyMode, - pMac->sap.SapDfsInfo.target_channel, - vhtChannelWidth); + sme_SelectCBMode(hHal, phyMode, + pMac->sap.SapDfsInfo.target_channel); } /* diff --git a/CORE/SAP/src/sapFsm.c b/CORE/SAP/src/sapFsm.c index ded75de46164..3d2732b27dd1 100644 --- a/CORE/SAP/src/sapFsm.c +++ b/CORE/SAP/src/sapFsm.c @@ -65,7 +65,6 @@ // Pick up the PMC API definitions #include "pmcApi.h" #include "wlan_nv.h" -#include "vos_utils.h" /*---------------------------------------------------------------------------- * Preprocessor Definitions and Constants @@ -1627,9 +1626,8 @@ static v_U8_t sapRandomChannelSel(ptSapContext sapContext) * no channels are avaialbe */ if (available_chnl_count) { - vos_rand_get_bytes(0, (v_U8_t*)&random_byte, 1); - i = (random_byte + vos_timer_get_system_ticks()) % - available_chnl_count; + get_random_bytes(&random_byte, 1); + i = (random_byte + jiffies) % available_chnl_count; /* Random channel selection from available list */ target_channel = availableChannels[i]; pMac->sap.SapDfsInfo.new_chanWidth = chanWidth; @@ -2014,7 +2012,6 @@ sapGotoChannelSel tHalHandle hHal; #ifndef FEATURE_WLAN_MCC_TO_SCC_SWITCH tANI_U8 channel; - tANI_U32 vhtChannelWidth = 0; #endif hHal = (tHalHandle)vos_get_context( VOS_MODULE_ID_SME, sapContext->pvosGCtx); @@ -2060,24 +2057,10 @@ sapGotoChannelSel { /*if a valid channel is returned then use concurrent channel. Else take whatever comes from configuartion*/ sapContext->channel = channel; - if (eHAL_STATUS_SUCCESS != ccmCfgGetInt(hHal, - WNI_CFG_VHT_CHANNEL_WIDTH, - &vhtChannelWidth)) - { - VOS_TRACE(VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_ERROR, - FL("Get WNI_CFG_VHT_CHANNEL_WIDTH failed")); - /* - * In case of failure, take the vht channel width from - * original ini value - */ - vhtChannelWidth = - PMAC_STRUCT(hHal)->roam.configParam.nVhtChannelWidth; - } - sme_SelectCBMode(hHal, - sapConvertSapPhyModeToCsrPhyMode( - sapContext->csrRoamProfile.phyMode), - channel, vhtChannelWidth); - + sme_SelectCBMode(hHal, + sapConvertSapPhyModeToCsrPhyMode( + sapContext->csrRoamProfile.phyMode), + channel); } #endif } @@ -3131,7 +3114,6 @@ sapFsm tHalHandle hHal = VOS_GET_HAL_CB(sapContext->pvosGCtx); tpAniSirGlobal pMac; v_U32_t cbMode; - v_U32_t vhtChannelWidth; v_BOOL_t b_leak_chan = FALSE; #ifdef WLAN_ENABLE_CHNL_MATRIX_RESTRICTION v_U8_t temp_chan; @@ -3288,24 +3270,10 @@ sapFsm "%s: Override Chosen Ch:%d to %d due to CC Intf!!", __func__,sapContext->channel, con_ch); sapContext->channel = con_ch; - if (eHAL_STATUS_SUCCESS != ccmCfgGetInt(hHal, - WNI_CFG_VHT_CHANNEL_WIDTH, - &vhtChannelWidth)) - { - VOS_TRACE(VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_ERROR, - FL("Get WNI_CFG_VHT_CHANNEL_WIDTH failed")); - /* - * In case of failure, take the vht channel width from - * original ini value - */ - vhtChannelWidth = - pMac->roam.configParam.nVhtChannelWidth; - } - sme_SelectCBMode(hHal, - sapConvertSapPhyModeToCsrPhyMode( + sme_SelectCBMode(hHal, + sapConvertSapPhyModeToCsrPhyMode( sapContext->csrRoamProfile.phyMode), - sapContext->channel, vhtChannelWidth); - + sapContext->channel); } } #endif @@ -3353,23 +3321,10 @@ sapFsm sapContext->channel, ch); sapContext->channel = ch; - if (eHAL_STATUS_SUCCESS != ccmCfgGetInt(hHal, - WNI_CFG_VHT_CHANNEL_WIDTH, - &vhtChannelWidth)) - { - VOS_TRACE(VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_ERROR, - FL("Get WNI_CFG_VHT_CHANNEL_WIDTH failed")); - /* - * In case of failure, take the vht channel width from - * original ini value - */ - vhtChannelWidth = - pMac->roam.configParam.nVhtChannelWidth; - } - sme_SelectCBMode(hHal, - sapConvertSapPhyModeToCsrPhyMode( - sapContext->csrRoamProfile.phyMode), - sapContext->channel, vhtChannelWidth); + sme_SelectCBMode(hHal, + sapConvertSapPhyModeToCsrPhyMode( + sapContext->csrRoamProfile.phyMode), + sapContext->channel); } if (sapContext->channel > 14 && (sapContext->csrRoamProfile.phyMode == @@ -3458,22 +3413,8 @@ sapFsm } else if (pMac->sap.SapDfsInfo.target_channel) { - if (eHAL_STATUS_SUCCESS != ccmCfgGetInt(hHal, - WNI_CFG_VHT_CHANNEL_WIDTH, - &vhtChannelWidth)) - { - VOS_TRACE(VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_ERROR, - FL("Get WNI_CFG_VHT_CHANNEL_WIDTH failed")); - /* - * In case of failure, take the vht channel width from - * original ini value - */ - vhtChannelWidth = - pMac->roam.configParam.nVhtChannelWidth; - } sme_SelectCBMode(hHal, phyMode, - pMac->sap.SapDfsInfo.target_channel, - vhtChannelWidth); + pMac->sap.SapDfsInfo.target_channel); } for (intf = 0; intf < SAP_MAX_NUM_SESSION; intf++) diff --git a/CORE/SAP/src/sapModule.c b/CORE/SAP/src/sapModule.c index 5b33236d0ebe..c8ce37759320 100644 --- a/CORE/SAP/src/sapModule.c +++ b/CORE/SAP/src/sapModule.c @@ -2828,10 +2828,6 @@ WLANSAP_ChannelChangeRequest(v_PVOID_t pSapCtx, tANI_U8 tArgetChannel) ptSapContext sapContext = NULL; eHalStatus halStatus = eHAL_STATUS_FAILURE; v_PVOID_t hHal = NULL; - tpAniSirGlobal pMac = NULL; - eCsrPhyMode phyMode; - tANI_U32 cbMode; - tANI_U32 vhtChannelWidth; sapContext = (ptSapContext)pSapCtx; if ( NULL == sapContext ) @@ -2848,19 +2844,10 @@ WLANSAP_ChannelChangeRequest(v_PVOID_t pSapCtx, tANI_U8 tArgetChannel) "%s: Invalid HAL pointer from pvosGCtx", __func__); return VOS_STATUS_E_FAULT; } - pMac = PMAC_STRUCT( hHal ); - phyMode = - sapConvertSapPhyModeToCsrPhyMode(sapContext->csrRoamProfile.phyMode); - /* - * We are getting channel bonding mode from sapDfsInfor structure - * because we've implemented channel width fallback mechanism for DFS - * which will result in channel width changing dynamically. - */ - cbMode = pMac->sap.SapDfsInfo.new_cbMode; - vhtChannelWidth = pMac->sap.SapDfsInfo.new_chanWidth; - halStatus = sme_RoamChannelChangeReq(hHal, sapContext->bssid, - tArgetChannel, - phyMode, cbMode, vhtChannelWidth); + + halStatus = sme_RoamChannelChangeReq( hHal, sapContext->bssid, + tArgetChannel, + sapConvertSapPhyModeToCsrPhyMode(sapContext->csrRoamProfile.phyMode) ); if (halStatus == eHAL_STATUS_SUCCESS) { diff --git a/CORE/SME/inc/csrInternal.h b/CORE/SME/inc/csrInternal.h index d1f9de4559d4..4ca398ecf423 100644 --- a/CORE/SME/inc/csrInternal.h +++ b/CORE/SME/inc/csrInternal.h @@ -1485,8 +1485,7 @@ tANI_BOOLEAN csrRoamIsStaMode(tpAniSirGlobal pMac, tANI_U32 sessionId); /* Post Channel Change Indication */ eHalStatus csrRoamChannelChangeReq(tpAniSirGlobal pMac, tCsrBssid bssid, - tANI_U8 targetChannel, tANI_U8 cbMode, - tANI_U8 vhtChannelWidth); + tANI_U8 targetChannel, tANI_U8 cbMode); /* Post Beacon Tx Start Indication */ eHalStatus csrRoamStartBeaconReq( tpAniSirGlobal pMac, diff --git a/CORE/SME/inc/sme_Api.h b/CORE/SME/inc/sme_Api.h index 530f7270ff7d..f3746c565373 100644 --- a/CORE/SME/inc/sme_Api.h +++ b/CORE/SME/inc/sme_Api.h @@ -3477,8 +3477,7 @@ eCsrPhyMode sme_GetPhyMode(tHalHandle hHal); /* * SME API to determine the channel bonding mode */ -VOS_STATUS sme_SelectCBMode(tHalHandle hHal, eCsrPhyMode eCsrPhyMode, - tANI_U8 channel, tANI_U32 vhtChannelWidth); +VOS_STATUS sme_SelectCBMode(tHalHandle hHal, eCsrPhyMode eCsrPhyMode, tANI_U8 channel); #ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD /*-------------------------------------------------------------------------- @@ -3726,9 +3725,8 @@ eHalStatus sme_set_auto_shutdown_cb(tHalHandle hHal, eHalStatus sme_set_auto_shutdown_timer(tHalHandle hHal, tANI_U32 timer_value); #endif -eHalStatus sme_RoamChannelChangeReq(tHalHandle hHal, tCsrBssid bssid, - tANI_U8 targetChannel, eCsrPhyMode phyMode, - tANI_U32 cbMode, tANI_U32 vhtChannelWidth); +eHalStatus sme_RoamChannelChangeReq( tHalHandle hHal, tCsrBssid bssid, + tANI_U8 targetChannel, eCsrPhyMode phyMode ); eHalStatus sme_RoamStartBeaconReq( tHalHandle hHal, tCsrBssid bssid, tANI_U8 dfsCacWaitStatus); diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c index 33fe79912f1c..5a0003b679f1 100644 --- a/CORE/SME/src/csr/csrApiRoam.c +++ b/CORE/SME/src/csr/csrApiRoam.c @@ -18256,12 +18256,12 @@ VOS_STATUS csrRoamReadTSF(tpAniSirGlobal pMac, tANI_U8 *pTimestamp, * Channel Change Req for SAP */ eHalStatus -csrRoamChannelChangeReq(tpAniSirGlobal pMac, tCsrBssid bssid, - tANI_U8 targetChannel, tANI_U8 cbMode, - tANI_U8 vhtChannelWidth ) +csrRoamChannelChangeReq( tpAniSirGlobal pMac, tCsrBssid bssid, + tANI_U8 targetChannel, tANI_U8 cbMode ) { eHalStatus status = eHAL_STATUS_SUCCESS; tSirChanChangeRequest *pMsg; + tANI_U32 vhtChannelWidth; pMsg = vos_mem_malloc( sizeof(tSirChanChangeRequest) ); if (!pMsg) @@ -18271,6 +18271,13 @@ csrRoamChannelChangeReq(tpAniSirGlobal pMac, tCsrBssid bssid, vos_mem_set((void *)pMsg, sizeof( tSirChanChangeRequest ), 0); + /* + * We are getting channel width from sapDfsInfor structure + * because we've implemented channel width fallback mechanism for DFS + * which will result in channel width changing dynamically. + */ + vhtChannelWidth = pMac->sap.SapDfsInfo.new_chanWidth; + #ifdef WLAN_FEATURE_11AC // cbMode = 1 in cfg.ini is mapped to PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3 // in function csrConvertCBIniValueToPhyCBState() diff --git a/CORE/SME/src/sme_common/sme_Api.c b/CORE/SME/src/sme_common/sme_Api.c index 590f8231ef99..320d0e4048cb 100644 --- a/CORE/SME/src/sme_common/sme_Api.c +++ b/CORE/SME/src/sme_common/sme_Api.c @@ -11633,8 +11633,7 @@ static VOS_STATUS sme_AdjustCBMode(tAniSirGlobal* pMac, /* * SME API to determine the channel bonding mode */ -VOS_STATUS sme_SelectCBMode(tHalHandle hHal, eCsrPhyMode eCsrPhyMode, - tANI_U8 channel, tANI_U32 vhtChannelWidth) +VOS_STATUS sme_SelectCBMode(tHalHandle hHal, eCsrPhyMode eCsrPhyMode, tANI_U8 channel) { tSmeConfigParams smeConfig; tpAniSirGlobal pMac = PMAC_STRUCT(hHal); @@ -11666,9 +11665,8 @@ VOS_STATUS sme_SelectCBMode(tHalHandle hHal, eCsrPhyMode eCsrPhyMode, sme_GetConfigParam(pMac, &smeConfig); #ifdef WLAN_FEATURE_11AC - if ((eCSR_DOT11_MODE_11ac == eCsrPhyMode || - eCSR_DOT11_MODE_11ac_ONLY == eCsrPhyMode) && - (eHT_CHANNEL_WIDTH_80MHZ == vhtChannelWidth)) + if ( eCSR_DOT11_MODE_11ac == eCsrPhyMode || + eCSR_DOT11_MODE_11ac_ONLY == eCsrPhyMode ) { if (pMac->roam.configParam.channelBondingMode5GHz) { if ( channel== 36 || channel == 52 || channel == 100 || @@ -11727,11 +11725,8 @@ VOS_STATUS sme_SelectCBMode(tHalHandle hHal, eCsrPhyMode eCsrPhyMode, } #endif - if ((eCSR_DOT11_MODE_11n == eCsrPhyMode || - eCSR_DOT11_MODE_11n_ONLY == eCsrPhyMode) || - ((eCSR_DOT11_MODE_11ac == eCsrPhyMode || - eCSR_DOT11_MODE_11ac_ONLY == eCsrPhyMode) && - (eHT_CHANNEL_WIDTH_40MHZ == vhtChannelWidth))) + if ( eCSR_DOT11_MODE_11n == eCsrPhyMode || + eCSR_DOT11_MODE_11n_ONLY == eCsrPhyMode ) { if (pMac->roam.configParam.channelBondingMode5GHz) { if ( channel== 40 || channel == 48 || channel == 56 || @@ -12917,24 +12912,28 @@ eHalStatus sme_ChAvoidUpdateReq \param targetChannel - New Channel to move the SAP to. \return eHalStatus ---------------------------------------------------------------------------*/ -eHalStatus sme_RoamChannelChangeReq(tHalHandle hHal, tCsrBssid bssid, - tANI_U8 targetChannel, eCsrPhyMode phyMode, - tANI_U32 cbMode, tANI_U32 vhtChannelWidth) +eHalStatus sme_RoamChannelChangeReq( tHalHandle hHal, tCsrBssid bssid, + tANI_U8 targetChannel, eCsrPhyMode phyMode ) { eHalStatus status = eHAL_STATUS_FAILURE; tpAniSirGlobal pMac = PMAC_STRUCT( hHal ); + tANI_U32 cbMode; + /* + * We are getting channel bonding mode from sapDfsInfor structure + * because we've implemented channel width fallback mechanism for DFS + * which will result in channel width changing dynamically. + */ + cbMode = pMac->sap.SapDfsInfo.new_cbMode; status = sme_AcquireGlobalLock( &pMac->sme ); if ( HAL_STATUS_SUCCESS( status ) ) { - sme_SelectCBMode(hHal, phyMode, targetChannel, vhtChannelWidth); + sme_SelectCBMode(hHal, phyMode, targetChannel); - VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR, - FL("sapdfs: requested CBmode=%d & new negotiated CBmode=%d"), - cbMode, pMac->roam.configParam.channelBondingMode5GHz); + VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_INFO_MED, + FL("sapdfs: channel bonding mode is [%d]"), cbMode); status = csrRoamChannelChangeReq(pMac, bssid, targetChannel, - (tANI_U8)pMac->roam.configParam.channelBondingMode5GHz, - (tANI_U8)vhtChannelWidth); + cbMode); sme_ReleaseGlobalLock( &pMac->sme ); } return (status); |
