diff options
| author | Srinivas Girigowda <sgirigow@qca.qualcomm.com> | 2014-03-04 12:20:21 -0800 |
|---|---|---|
| committer | Akash Patel <c_akashp@qca.qualcomm.com> | 2014-03-06 18:59:43 -0800 |
| commit | bb0fa8a7abd14cbfd1c3a42fcc97e19e0859b5da (patch) | |
| tree | 493f63d551c5bab0730b639fab6d04b6255f8905 | |
| parent | 0d4bb6b1c8e16d0b053cbb0a3cb573d7cdfdebeb (diff) | |
qcacld: Fix for 5G preauth failure due to unexpected channel switch
The root cause of the problem is during the first roam FT session
creation htSupportedChannelWidthSet is set based on cb enabled
mode and AP's HT capability for supported channel width. The AP
shall advertize it's capability for supported channel width set but at
that instance it may not be supported.
This causes the driver to think that HT capabilities have changed
after roaming to new AP and triggers a channel switch.
Fix is to set the htSupportedChannelWidthSet based on the cb enabled
mode and new AP's recommended Tx Width set from the HT Info IE
Change-Id: I4f7a7d22e7df30108031209554e5c3ba8367e593
CRs-Fixed: 625397
| -rw-r--r-- | CORE/MAC/src/pe/lim/limFT.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/CORE/MAC/src/pe/lim/limFT.c b/CORE/MAC/src/pe/lim/limFT.c index a6a352f50a0d..c3e93ba48fe0 100644 --- a/CORE/MAC/src/pe/lim/limFT.c +++ b/CORE/MAC/src/pe/lim/limFT.c @@ -680,7 +680,7 @@ tpPESession limFillFTSession(tpAniSirGlobal pMac, tPowerdBm regMax; tSchBeaconStruct *pBeaconStruct; tANI_U32 selfDot11Mode; - ePhyChanBondState cbMode; + ePhyChanBondState cbEnabledMode; pBeaconStruct = vos_mem_malloc(sizeof(tSchBeaconStruct)); if (NULL == pBeaconStruct) @@ -815,14 +815,15 @@ tpPESession limFillFTSession(tpAniSirGlobal pMac, if (pftSessionEntry->limRFBand == SIR_BAND_2_4_GHZ) { - cbMode = pMac->roam.configParam.channelBondingMode24GHz; + cbEnabledMode = pMac->roam.configParam.channelBondingMode24GHz; } else { - cbMode = pMac->roam.configParam.channelBondingMode5GHz; + cbEnabledMode = pMac->roam.configParam.channelBondingMode5GHz; } pftSessionEntry->htSupportedChannelWidthSet = - cbMode && pBeaconStruct->HTCaps.supportedChannelWidthSet; + (pBeaconStruct->HTInfo.present)? + (cbEnabledMode && pBeaconStruct->HTInfo.recommendedTxWidthSet):0; pftSessionEntry->htRecommendedTxWidthSet = pftSessionEntry->htSupportedChannelWidthSet; |
