Browse Source

qcacld-3.0: Fix the issue with SU Tx beamformee in 20MHz mode

Correct the configuration check to enable/disable the Tx SU
beamformee setting in 20MHz mode operation.

Change-Id: I958d5319acf98931187304f2c6fe2a9aff5991b7
CRs-Fixed: 2343849
Kiran Kumar Lokere 6 years ago
parent
commit
eaaa3462e6

+ 2 - 3
components/mlme/core/src/wlan_mlme_main.c

@@ -551,9 +551,8 @@ static void mlme_init_vht_cap_cfg(struct wlan_objmgr_psoc *psoc,
 	vht_cap_info->rx_stbc =
 			cfg_get(psoc, CFG_RX_STBC_ENABLE);
 
-	if (vht_cap_info->enable_txbf_20mhz)
-		vht_cap_info->su_bformee =
-				cfg_default(CFG_VHT_SU_BEAMFORMEE_CAP);
+	vht_cap_info->su_bformee =
+		cfg_default(CFG_VHT_SU_BEAMFORMEE_CAP);
 
 	vht_cap_info->mu_bformer =
 			cfg_default(CFG_VHT_MU_BEAMFORMER_CAP);

+ 2 - 2
components/mlme/dispatcher/src/wlan_mlme_api.c

@@ -1573,7 +1573,7 @@ wlan_mlme_get_vht_enable_tx_bf(struct wlan_objmgr_psoc *psoc, bool *value)
 		return QDF_STATUS_E_FAILURE;
 	}
 
-	*value = mlme_obj->cfg.vht_caps.vht_cap_info.enable_txbf_20mhz;
+	*value = mlme_obj->cfg.vht_caps.vht_cap_info.su_bformee;
 
 	return QDF_STATUS_SUCCESS;
 }
@@ -1852,7 +1852,7 @@ QDF_STATUS mlme_update_vht_cap(struct wlan_objmgr_psoc *psoc,
 		vht_cap_info->su_bformer = cfg->vht_su_bformer;
 
 	/* check and update SU BEAMFORMEE capabality */
-	if (vht_cap_info->enable_txbf_20mhz && !cfg->vht_su_bformee)
+	if (vht_cap_info->su_bformee && !cfg->vht_su_bformee)
 		vht_cap_info->su_bformee = cfg->vht_su_bformee;
 
 	/* Set VHT MU Beamformer cap */

+ 1 - 1
core/mac/src/pe/lim/lim_assoc_utils.c

@@ -3864,7 +3864,7 @@ QDF_STATUS lim_sta_send_add_bss(tpAniSirGlobal pMac, tpSirAssocRsp pAssocRsp,
 					psessionEntry->ch_width;
 		} else {
 			sta_context->ch_width =	CH_WIDTH_20MHZ;
-			if (vht_cap_info.enable_txbf_20mhz)
+			if (!vht_cap_info.enable_txbf_20mhz)
 				sta_context->vhtTxBFCapable = 0;
 		}
 

+ 1 - 1
core/mac/src/pe/lim/lim_prop_exts_utils.c

@@ -263,7 +263,7 @@ lim_extract_ap_capability(tpAniSirGlobal mac_ctx, uint8_t *p_ie,
 
 	if (session->vhtCapabilityPresentInBeacon == 1 &&
 			!session->htSupportedChannelWidthSet) {
-		if (mac_ctx->mlme_cfg->vht_caps.vht_cap_info.enable_txbf_20mhz)
+		if (!mac_ctx->mlme_cfg->vht_caps.vht_cap_info.enable_txbf_20mhz)
 			session->vht_config.su_beam_formee = 0;
 	} else if (session->vhtCapabilityPresentInBeacon &&
 			vht_op->chanWidth) {