Sfoglia il codice sorgente

qcacld-3.0: Set correct PPE Thresholds in HE Cap IE

In 6ghz, while sending broadcast/unicast probe req and assoc req
host should set correct values for PPE Thresholds in HE Cap IE

Change-Id: I1ec2d628dcc221a3c222882fd11419a656448dd0
CRs-Fixed: 2619289
Amruta Kulkarni 5 anni fa
parent
commit
c537985832

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

@@ -7290,7 +7290,7 @@ QDF_STATUS lim_send_he_caps_ie(struct mac_context *mac_ctx, struct pe_session *s
 	lim_set_he_caps(mac_ctx, session, he_caps,
 			SIR_MAC_HE_CAP_MIN_LEN + 3);
 	he_cap = (struct he_capability_info *) (&he_caps[2 + HE_CAP_OUI_SIZE]);
-	he_cap->ppet_present = 0;
+
 	if(device_mode == QDF_NDI_MODE) {
 		he_cap->su_beamformee = 0;
 		he_cap->su_beamformer = 0;

+ 9 - 3
core/mac/src/sys/legacy/src/utils/src/parser_api.c

@@ -6078,21 +6078,27 @@ QDF_STATUS populate_dot11f_he_caps(struct mac_context *mac_ctx, struct pe_sessio
 				   tDot11fIEhe_cap *he_cap)
 {
 	uint8_t *ppet;
-	uint32_t value = 0;
+	uint32_t value = WNI_CFG_HE_PPET_LEN;
 
 	he_cap->present = 1;
 
 	if (!session) {
 		qdf_mem_copy(he_cap, &mac_ctx->mlme_cfg->he_caps.dot11_he_cap,
 			     sizeof(tDot11fIEhe_cap));
+		qdf_mem_copy(he_cap->ppet.ppe_threshold.ppe_th,
+			     mac_ctx->mlme_cfg->he_caps.he_ppet_5g,
+			     value);
+
+		ppet = he_cap->ppet.ppe_threshold.ppe_th;
+		he_cap->ppet.ppe_threshold.num_ppe_th =
+						lim_truncate_ppet(ppet, value);
 		return QDF_STATUS_SUCCESS;
 	}
 	/** TODO: String items needs attention. **/
 	qdf_mem_copy(he_cap, &session->he_config, sizeof(*he_cap));
 	if (he_cap->ppet_present) {
-		value = WNI_CFG_HE_PPET_LEN;
 		/* if session is present, populate PPET based on band */
-		if (wlan_reg_is_5ghz_ch_freq(session->curr_op_freq))
+		if (!wlan_reg_is_24ghz_ch_freq(session->curr_op_freq))
 			qdf_mem_copy(he_cap->ppet.ppe_threshold.ppe_th,
 				     mac_ctx->mlme_cfg->he_caps.he_ppet_5g,
 				     value);