Browse Source

qcacmn: Update EHT operation IEs as per draft 1.3

Update EHT operation IE definitions as per 11be draft 1.3 specification.

Change-Id: If8dbfa29e6e674adabdc65299a064fc839f19a9a
CRs-Fixed: 3159329
Deeksha Gupta 3 years ago
parent
commit
ae58fedfe0

+ 12 - 17
umac/cmn_services/cmn_defs/inc/wlan_cmn_ieee80211.h

@@ -1767,30 +1767,25 @@ struct wlan_ie_ehtcaps {
  * @elem_id: EHT caps IE
  * @elem_len: EHT caps IE len
  * @elem_id_extn: EHT caps extension id
- * @basic_mcs_nss_set: Basic MCS NSS set
- * @primary_channel: primary channel number
  * @width: EHT BSS Channel Width
- * @puncture_pattern_present: Bit indicates whether puncture_pattern field
- * is included or not in ehtop ie
- * @reserved: Reserved bits
- * @chan_freq_seg0: EHT Channel Centre Frequency Segment 0
- * @chan_freq_seg1: EHT Channel Centre Frequency Segment 1
- * @minimum_rate: EHT Minimum Rate
- * @puncture_pattern: per 20MHz puncturing bitmap
+ * @reserved1: Reserved bits
+ * @ccfs: EHT Channel Centre Frequency Segment information
+ * @disable_sub_chan_bitmap_present: Flag to indicate disable subchannel
+ *                                   bitmap present
+ * @reserved2: Reserved bits
+ * @disable_sub_chan_bitmap: Bitmap to indicate 20MHz subchannel is punctured
+ *                           or not
  */
 struct wlan_ie_ehtops {
 	uint8_t elem_id;
 	uint8_t elem_len;
 	uint8_t elem_id_extn;
-	uint8_t basic_mcs_nss_set[2];
-	uint8_t primary_channel;
 	uint8_t width:3,
-		puncture_pattern_present:1,
-		reserved:4;
-	uint8_t chan_freq_seg0;
-	uint8_t chan_freq_seg1;
-	uint8_t minimum_rate;
-	uint16_t puncture_pattern;
+		reserved1:5;
+	uint8_t ccfs;
+	uint8_t disable_sub_chan_bitmap_present:1,
+		reserved2:7;
+	uint8_t disable_sub_chan_bitmap[2];
 } qdf_packed;
 
 #ifdef WLAN_FEATURE_11BE_MLO

+ 9 - 6
umac/scan/dispatcher/src/wlan_scan_utils_api.c

@@ -218,15 +218,18 @@ util_scan_get_phymode_11be(struct wlan_objmgr_pdev *pdev,
 		break;
 	}
 
-	scan_params->channel.cfreq0 =
-		wlan_reg_chan_band_to_freq(pdev,
-					   eht_ops->chan_freq_seg0,
-					   band_mask);
 	scan_params->channel.cfreq1 =
 		wlan_reg_chan_band_to_freq(pdev,
-					   eht_ops->chan_freq_seg1,
+					   eht_ops->ccfs,
 					   band_mask);
-	scan_params->channel.puncture_bitmap = eht_ops->puncture_pattern;
+
+	if (eht_ops->disable_sub_chan_bitmap_present) {
+		scan_params->channel.puncture_bitmap =
+				QDF_GET_BITS(eht_ops->disable_sub_chan_bitmap[0], 0, 8);
+		scan_params->channel.puncture_bitmap |=
+				QDF_GET_BITS(eht_ops->disable_sub_chan_bitmap[1], 0, 8) << 8;
+	}
+
 	return phymode;
 }
 #else