Fix the issue with enabling the Tx beaforming in 20MHz mode
Decouple the Tx beamforming enable logic with channel width.
Change-Id: I2f71ccf0c0b80a730c1c1e0843e8c1e4bda8e5c9
CRs-Fixed: 471286
diff --git a/CORE/MAC/src/pe/lim/limAssocUtils.c b/CORE/MAC/src/pe/lim/limAssocUtils.c
index 219b6a7..f0a5796 100644
--- a/CORE/MAC/src/pe/lim/limAssocUtils.c
+++ b/CORE/MAC/src/pe/lim/limAssocUtils.c
@@ -39,8 +39,8 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
+
/*
- * Airgo Networks, Inc proprietary. All rights reserved.
* This file limAssocUtils.cc contains the utility functions
* LIM uses while processing (Re) Association messages.
* Author: Chandra Modumudi
@@ -3303,29 +3303,32 @@
pAddBssParams->staContext.maxSPLen = 0;
pAddBssParams->staContext.shortPreambleSupported = (tANI_U8)pAssocRsp->capabilityInfo.shortPreamble;
pAddBssParams->staContext.updateSta = updateEntry;
-
- if (IS_DOT11_MODE_HT(psessionEntry->dot11mode) && ( pBeaconStruct->HTCaps.present ))
+ if (IS_DOT11_MODE_HT(psessionEntry->dot11mode) && pBeaconStruct->HTCaps.present)
{
pAddBssParams->staContext.us32MaxAmpduDuration = 0;
pAddBssParams->staContext.htCapable = 1;
pAddBssParams->staContext.greenFieldCapable = ( tANI_U8 )pAssocRsp->HTCaps.greenField;
pAddBssParams->staContext.lsigTxopProtection = ( tANI_U8 )pAssocRsp->HTCaps.lsigTXOPProtection;
+#ifdef WLAN_FEATURE_11AC
+ if (psessionEntry->vhtCapability && pBeaconStruct->VHTCaps.present)
+ {
+ pAddBssParams->staContext.vhtCapable = 1;
+ if ((pAssocRsp->VHTCaps.suBeamFormerCap ||
+ pAssocRsp->VHTCaps.muBeamformerCap) &&
+ psessionEntry->txBFIniFeatureEnabled)
+ {
+ pAddBssParams->staContext.vhtTxBFCapable = 1;
+ }
+ }
+#endif
if( (pAssocRsp->HTCaps.supportedChannelWidthSet) &&
(chanWidthSupp) )
{
pAddBssParams->staContext.txChannelWidthSet = ( tANI_U8 )pAssocRsp->HTInfo.recommendedTxWidthSet;
-
#ifdef WLAN_FEATURE_11AC
- if (psessionEntry->vhtCapability && ( pBeaconStruct->VHTCaps.present ))
+ if (pAddBssParams->staContext.vhtCapable)
{
- pAddBssParams->staContext.vhtCapable = 1;
pAddBssParams->staContext.vhtTxChannelWidthSet = pAssocRsp->VHTOperation.chanWidth; //pMac->lim.apChanWidth;
- if ( (pAssocRsp->VHTCaps.suBeamFormerCap ||
- pAssocRsp->VHTCaps.muBeamformerCap) &&
- psessionEntry->txBFIniFeatureEnabled )
- {
- pAddBssParams->staContext.vhtTxBFCapable = 1;
- }
}
#endif
}
@@ -3606,23 +3609,29 @@
pAddBssParams->staContext.htCapable = 1;
pAddBssParams->staContext.greenFieldCapable = ( tANI_U8 ) pBeaconStruct->HTCaps.greenField;
pAddBssParams->staContext.lsigTxopProtection = ( tANI_U8 ) pBeaconStruct->HTCaps.lsigTXOPProtection;
+#ifdef WLAN_FEATURE_11AC
+ if (psessionEntry->vhtCapability && pBeaconStruct->VHTCaps.present)
+ {
+ pAddBssParams->staContext.vhtCapable = 1;
+ if ((pBeaconStruct->VHTCaps.suBeamFormerCap ||
+ pBeaconStruct->VHTCaps.muBeamformerCap) &&
+ psessionEntry->txBFIniFeatureEnabled )
+ {
+ pAddBssParams->staContext.vhtTxBFCapable = 1;
+ }
+ }
+#endif
if( (pBeaconStruct->HTCaps.supportedChannelWidthSet) &&
(chanWidthSupp) )
{
pAddBssParams->staContext.txChannelWidthSet = ( tANI_U8 )pBeaconStruct->HTInfo.recommendedTxWidthSet;
- #ifdef WLAN_FEATURE_11AC
- if (psessionEntry->vhtCapability && ( pBeaconStruct->VHTCaps.present ))
+#ifdef WLAN_FEATURE_11AC
+ if (pAddBssParams->staContext.vhtCapable)
{
- pAddBssParams->staContext.vhtCapable = 1;
- pAddBssParams->staContext.vhtTxChannelWidthSet = pBeaconStruct->VHTOperation.chanWidth;
- if ((pBeaconStruct->VHTCaps.suBeamFormerCap ||
- pBeaconStruct->VHTCaps.muBeamformerCap) &&
- psessionEntry->txBFIniFeatureEnabled )
- {
- pAddBssParams->staContext.vhtTxBFCapable = 1;
- }
+ pAddBssParams->staContext.vhtTxChannelWidthSet =
+ pBeaconStruct->VHTOperation.chanWidth;
}
- #endif
+#endif
}
else
{