qcacld-3.0: Use LDPC flag from Vendor IE for VHT20 case

qcacld-2.0 to qcacld-3.0 propagation

Update LDPC flag from Vendor IE instead of VHT capabilities
for VHT20 case.

Change-Id: I7bb916353586529fb78f1caeda68687663e44af2
CRs-Fixed: 2091292
This commit is contained in:
Visweswara Tanuku
2018-04-12 11:25:11 +05:30
committed by nshrivas
parent ad8cfa1185
commit 2e2ac0338d

View File

@@ -3606,6 +3606,7 @@ tSirRetStatus lim_sta_send_add_bss(tpAniSirGlobal pMac, tpSirAssocRsp pAssocRsp,
uint32_t retCode; uint32_t retCode;
tpDphHashNode pStaDs = NULL; tpDphHashNode pStaDs = NULL;
uint8_t chanWidthSupp = 0; uint8_t chanWidthSupp = 0;
bool is_vht_cap_in_vendor_ie = false;
uint32_t enableTxBF20MHz; uint32_t enableTxBF20MHz;
tDot11fIEVHTCaps *vht_caps = NULL; tDot11fIEVHTCaps *vht_caps = NULL;
tDot11fIEVHTOperation *vht_oper = NULL; tDot11fIEVHTOperation *vht_oper = NULL;
@@ -3851,6 +3852,7 @@ tSirRetStatus lim_sta_send_add_bss(tpAniSirGlobal pMac, tpSirAssocRsp pAssocRsp,
else if (pAssocRsp->vendor_vht_ie.VHTCaps.present) { else if (pAssocRsp->vendor_vht_ie.VHTCaps.present) {
vht_caps = &pAssocRsp->vendor_vht_ie.VHTCaps; vht_caps = &pAssocRsp->vendor_vht_ie.VHTCaps;
pe_debug("VHT Caps are in vendor Specfic IE"); pe_debug("VHT Caps are in vendor Specfic IE");
is_vht_cap_in_vendor_ie = true;
} }
if ((vht_caps != NULL) && (vht_caps->suBeamFormerCap || if ((vht_caps != NULL) && (vht_caps->suBeamFormerCap ||
@@ -3931,17 +3933,17 @@ tSirRetStatus lim_sta_send_add_bss(tpAniSirGlobal pMac, tpSirAssocRsp pAssocRsp,
* hardcode this values to 0. * hardcode this values to 0.
*/ */
if (psessionEntry->htConfig.ht_sgi20) { if (psessionEntry->htConfig.ht_sgi20) {
pAddBssParams->staContext.fShortGI20Mhz = pAddBssParams->staContext.fShortGI20Mhz =
(uint8_t)pAssocRsp->HTCaps.shortGI20MHz; (uint8_t)pAssocRsp->HTCaps.shortGI20MHz;
} else { } else {
pAddBssParams->staContext.fShortGI20Mhz = false; pAddBssParams->staContext.fShortGI20Mhz = false;
} }
if (psessionEntry->htConfig.ht_sgi40) { if (psessionEntry->htConfig.ht_sgi40) {
pAddBssParams->staContext.fShortGI40Mhz = pAddBssParams->staContext.fShortGI40Mhz =
(uint8_t) pAssocRsp->HTCaps.shortGI40MHz; (uint8_t) pAssocRsp->HTCaps.shortGI40MHz;
} else { } else {
pAddBssParams->staContext.fShortGI40Mhz = false; pAddBssParams->staContext.fShortGI40Mhz = false;
} }
if (!pAddBssParams->staContext.vhtCapable) if (!pAddBssParams->staContext.vhtCapable)
@@ -3973,11 +3975,16 @@ tSirRetStatus lim_sta_send_add_bss(tpAniSirGlobal pMac, tpSirAssocRsp pAssocRsp,
pe_debug("VHT Caps is in vendor Specfic IE"); pe_debug("VHT Caps is in vendor Specfic IE");
} }
if (vht_caps != NULL && if (vht_caps != NULL &&
(psessionEntry->txLdpcIniFeatureEnabled & 0x2)) (psessionEntry->txLdpcIniFeatureEnabled & 0x2)) {
pAddBssParams->staContext.vhtLdpcCapable = if (!is_vht_cap_in_vendor_ie)
(uint8_t) vht_caps->ldpcCodingCap; pAddBssParams->staContext.vhtLdpcCapable =
else (uint8_t) pAssocRsp->VHTCaps.ldpcCodingCap;
else
pAddBssParams->staContext.vhtLdpcCapable =
(uint8_t) vht_caps->ldpcCodingCap;
} else {
pAddBssParams->staContext.vhtLdpcCapable = 0; pAddBssParams->staContext.vhtLdpcCapable = 0;
}
} }
if (pBeaconStruct->HTInfo.present) if (pBeaconStruct->HTInfo.present)