diff options
| -rw-r--r-- | core/sme/src/csr/csr_api_roam.c | 18 |
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) |
