Browse Source

qcacld-3.0: Update PPE threshold based on ppet_present capability

Update PPE threshold only if ppet_present capability is enabled.

Change-Id: I8aaef428f9cca269177645b14e935a091d43a580
CRs-Fixed: 1073481
Krishna Kumaar Natarajan 8 năm trước cách đây
mục cha
commit
bc59459519

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

@@ -7701,6 +7701,9 @@ void lim_log_he_cap(tpAniSirGlobal mac, tDot11fIEvendor_he_cap *he_cap)
 	lim_log(mac, LOG1, "\tRX BW bitmap: 0x%05x ", he_cap->rx_bw_bitmap);
 
 	/* HE PPET */
+	if (!he_cap->ppet_present)
+		return;
+
 	if (!he_cap->ppe_threshold.present) {
 		lim_log(mac, LOG1, FL("PPET is not present. Invalid IE"));
 		return;

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

@@ -6051,14 +6051,25 @@ QDF_STATUS populate_dot11f_he_caps(tpAniSirGlobal mac_ctx, tpPESession session,
 		CFG_GET_INT(status, mac_ctx, WNI_CFG_HE_MCS, value);
 		he_cap->mcs_supported = value;
 
-		value = WNI_CFG_HE_PPET_LEN;
-		CFG_GET_STR(status, mac_ctx, WNI_CFG_HE_PPET,
-			(void *)&he_cap->ppe_threshold, value, value);
+		if (he_cap->ppet_present) {
+			value = WNI_CFG_HE_PPET_LEN;
+			CFG_GET_STR(status, mac_ctx, WNI_CFG_HE_PPET,
+				(void *)&he_cap->ppe_threshold, value, value);
+		} else {
+			he_cap->ppe_threshold.present = false;
+		}
 
 		return QDF_STATUS_SUCCESS;
 	}
 
 	qdf_mem_copy(he_cap, &session->he_config, sizeof(*he_cap));
+	if (he_cap->ppet_present) {
+		value = WNI_CFG_HE_PPET_LEN;
+		CFG_GET_STR(status, mac_ctx, WNI_CFG_HE_PPET,
+			(void *)&he_cap->ppe_threshold, value, value);
+	} else {
+		he_cap->ppe_threshold.present = false;
+	}
 
 	lim_log_he_cap(mac_ctx, he_cap);
 

+ 6 - 2
core/sme/src/csr/csr_api_roam.c

@@ -2342,9 +2342,13 @@ static void csr_update_session_he_cap(tpAniSirGlobal mac_ctx,
 	sme_cfg_get_int(mac_ctx, WNI_CFG_HE_MCS, &value);
 	he_cap->mcs_supported = value;
 
-	value = WNI_CFG_HE_PPET_LEN;
-	sme_cfg_get_str(mac_ctx, WNI_CFG_HE_PPET,
+	if (he_cap->ppet_present) {
+		value = WNI_CFG_HE_PPET_LEN;
+		sme_cfg_get_str(mac_ctx, WNI_CFG_HE_PPET,
 			(void *)&he_cap->ppe_threshold, &value);
+	} else {
+		he_cap->ppe_threshold.present = false;
+	}
 }
 
 #else