summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/sme/src/csr/csr_api_roam.c55
1 files changed, 49 insertions, 6 deletions
diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c
index 676f1698272a..3bbf8521d2e9 100644
--- a/core/sme/src/csr/csr_api_roam.c
+++ b/core/sme/src/csr/csr_api_roam.c
@@ -14551,8 +14551,22 @@ QDF_STATUS csr_send_join_req_msg(tpAniSirGlobal pMac, uint32_t sessionId,
QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
("Failed to get CSN beamformee capability"));
+ /*
+ * Set SU Bformee only if SU Bformee is enabled in INI
+ * and AP is SU Bformer capable
+ */
+ if (value && !((IS_BSS_VHT_CAPABLE(pIes->VHTCaps) &&
+ pIes->VHTCaps.suBeamFormerCap) ||
+ (IS_BSS_VHT_CAPABLE(
+ pIes->vendor_vht_ie.VHTCaps)
+ && pIes->vendor_vht_ie.VHTCaps.
+ suBeamFormerCap)))
+ value = 0;
+
csr_join_req->vht_config.su_beam_formee = value;
- if (value) {
+
+ /* Set BF CSN value only if SU Bformee is enabled */
+ if (csr_join_req->vht_config.su_beam_formee) {
txBFCsnValue = (uint8_t)value1;
if (IS_BSS_VHT_CAPABLE(pIes->VHTCaps) &&
pIes->VHTCaps.csnofBeamformerAntSup)
@@ -14569,11 +14583,40 @@ QDF_STATUS csr_send_join_req_msg(tpAniSirGlobal pMac, uint32_t sessionId,
csr_join_req->vht_config.csnof_beamformer_antSup = txBFCsnValue;
if (wlan_cfg_get_int(pMac,
- WNI_CFG_VHT_MU_BEAMFORMEE_CAP, &value)
- != eSIR_SUCCESS)
- QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR,
- ("Failed to get CSN beamformee capability"));
- csr_join_req->vht_config.mu_beam_formee = (uint8_t) value;
+ WNI_CFG_VHT_SU_BEAMFORMER_CAP, &value)
+ != eSIR_SUCCESS)
+ sme_err("Failed to get SU beamformer capability");
+
+ /*
+ * Set SU Bformer only if SU Bformer is enabled in INI
+ * and AP is SU Bformee capable
+ */
+ if (value && !((IS_BSS_VHT_CAPABLE(pIes->VHTCaps) &&
+ pIes->VHTCaps.suBeamformeeCap) ||
+ (IS_BSS_VHT_CAPABLE(
+ pIes->vendor_vht_ie.VHTCaps)
+ && pIes->vendor_vht_ie.VHTCaps.
+ suBeamformeeCap)))
+ value = 0;
+
+ csr_join_req->vht_config.su_beam_former = value;
+
+ /* Set num soundingdim value to 0 if SU Bformer is disabled */
+ if (!csr_join_req->vht_config.su_beam_former)
+ csr_join_req->vht_config.num_soundingdim = 0;
+
+ if (wlan_cfg_get_int(pMac,
+ WNI_CFG_VHT_MU_BEAMFORMEE_CAP, &value)
+ != eSIR_SUCCESS)
+ sme_err("Failed to get CSN beamformee capability");
+ /*
+ * Set MU Bformee only if SU Bformee is enabled and
+ * MU Bformee is enabled in INI
+ */
+ if (value && csr_join_req->vht_config.su_beam_formee)
+ csr_join_req->vht_config.mu_beam_formee = 1;
+ else
+ csr_join_req->vht_config.mu_beam_formee = 0;
csr_join_req->enableVhtpAid =
(uint8_t) pMac->roam.configParam.enableVhtpAid;