summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/sme/src/csr/csr_api_roam.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c
index d73bf39d21b9..48bcc6bf6b87 100644
--- a/core/sme/src/csr/csr_api_roam.c
+++ b/core/sme/src/csr/csr_api_roam.c
@@ -13706,6 +13706,7 @@ QDF_STATUS csr_send_join_req_msg(tpAniSirGlobal pMac, uint32_t sessionId,
uint32_t dwTmp, ucDot11Mode = 0;
/* RSN MAX is bigger than WPA MAX */
uint8_t wpaRsnIE[DOT11F_IE_RSN_MAX_LEN];
+ uint8_t txBFCsnValue = 0;
tSirSmeJoinReq *csr_join_req;
tSirMacCapabilityInfo *pAP_capabilityInfo;
tAniBool fTmp;
@@ -14214,10 +14215,19 @@ QDF_STATUS csr_send_join_req_msg(tpAniSirGlobal pMac, uint32_t sessionId,
FL("Failed to get CSN beamformee capability"));
csr_join_req->vht_config.su_beam_formee = value;
-
- if (value)
- csr_join_req->vht_config.csnof_beamformer_antSup =
- (uint8_t)value1;
+ if (value) {
+ txBFCsnValue = (uint8_t)value1;
+ if (IS_BSS_VHT_CAPABLE(pIes->VHTCaps) &&
+ pIes->VHTCaps.numSoundingDim)
+ txBFCsnValue = QDF_MIN(txBFCsnValue,
+ pIes->VHTCaps.numSoundingDim);
+ else if (IS_BSS_VHT_CAPABLE(pIes->vendor_vht_ie.VHTCaps)
+ && pIes->vendor_vht_ie.VHTCaps.numSoundingDim)
+ txBFCsnValue = QDF_MIN(txBFCsnValue,
+ pIes->vendor_vht_ie.
+ VHTCaps.numSoundingDim);
+ }
+ csr_join_req->vht_config.csnof_beamformer_antSup = txBFCsnValue;
if (wlan_cfg_get_int(pMac,
WNI_CFG_VHT_MU_BEAMFORMEE_CAP, &value)