Browse Source

qcacld-3.0: set rx_pream_puncturing per band

Currently, HE cap uses the final cap derived from 2 GHz and
5 GHz specific HE caps, then the value of rx_pream_puncturing
in HE cap may not be expected when 5 GHz is used.

To resolve this issue, set rx_pream_puncturing if 5 GHz band
is used.

Change-Id: I81cb960271dff5007606a10cab8e9c78cbae58fb
CRs-Fixed: 3267557
Paul Zhang 2 years ago
parent
commit
7e735530a2

+ 3 - 0
core/mac/src/pe/lim/lim_send_management_frames.c

@@ -2667,6 +2667,9 @@ lim_send_assoc_req_mgmt_frame(struct mac_context *mac_ctx,
 	populate_dot11f_bss_max_idle(mac_ctx, pe_session,
 				     &frm->bss_max_idle_period);
 
+	if (IS_DOT11_MODE_HE(pe_session->dot11mode))
+		lim_update_session_he_capable(mac_ctx, pe_session);
+
 	if (lim_is_session_he_capable(pe_session)) {
 		populate_dot11f_he_caps(mac_ctx, pe_session,
 					&frm->he_cap);

+ 7 - 3
core/mac/src/pe/lim/lim_utils.c

@@ -7464,11 +7464,15 @@ void lim_update_session_he_capable(struct mac_context *mac, struct pe_session *s
 	    !mac->mlme_cfg->vht_caps.vht_cap_info.b24ghz_band)
 		session->vhtCapability = 0;
 
-	if (!wlan_reg_is_24ghz_ch_freq(session->curr_op_freq))
+	if (!wlan_reg_is_24ghz_ch_freq(session->curr_op_freq)) {
 		session->he_config.ul_mu = mac->he_cap_5g.ul_mu;
+		session->he_config.rx_pream_puncturing =
+					mac->he_cap_5g.rx_pream_puncturing;
+	}
 
-	pe_debug("he_capable: %d ul mu %d",
-		 session->he_capable, session->he_config.ul_mu);
+	pe_debug("he_capable: %d ul mu %d, rx_pream_puncturing %d",
+		 session->he_capable, session->he_config.ul_mu,
+		 mac->he_cap_5g.rx_pream_puncturing);
 }
 
 void lim_update_session_he_capable_chan_switch(struct mac_context *mac,