From aece6974f67306600c120d2a591ad09159032888 Mon Sep 17 00:00:00 2001 From: Venkateswara Swamy Bandaru Date: Thu, 1 Jul 2021 23:15:44 +0530 Subject: [PATCH] qcacmn: Add scan support for 11be puncturing Add scan support for puncturing by extracting the puncturing bitmap field in the EHT operation IE. Change-Id: I221464f52bfce40b55344f995945836f80553579 CRs-Fixed: 2982502 --- umac/cmn_services/cmn_defs/inc/wlan_cmn_ieee80211.h | 2 ++ umac/scan/dispatcher/inc/wlan_scan_public_structs.h | 4 ++++ umac/scan/dispatcher/src/wlan_scan_utils_api.c | 1 + 3 files changed, 7 insertions(+) diff --git a/umac/cmn_services/cmn_defs/inc/wlan_cmn_ieee80211.h b/umac/cmn_services/cmn_defs/inc/wlan_cmn_ieee80211.h index 971d55761e..bc909fcf1f 100644 --- a/umac/cmn_services/cmn_defs/inc/wlan_cmn_ieee80211.h +++ b/umac/cmn_services/cmn_defs/inc/wlan_cmn_ieee80211.h @@ -1465,6 +1465,7 @@ struct wlan_ie_ehtcaps { * @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 */ struct wlan_ie_ehtops { uint8_t elem_id; @@ -1477,6 +1478,7 @@ struct wlan_ie_ehtops { uint8_t chan_freq_seg0; uint8_t chan_freq_seg1; uint8_t minimum_rate; + uint16_t puncture_pattern; } qdf_packed; #endif diff --git a/umac/scan/dispatcher/inc/wlan_scan_public_structs.h b/umac/scan/dispatcher/inc/wlan_scan_public_structs.h index 8046f755b2..a921b5a92a 100644 --- a/umac/scan/dispatcher/inc/wlan_scan_public_structs.h +++ b/umac/scan/dispatcher/inc/wlan_scan_public_structs.h @@ -125,12 +125,16 @@ struct wlan_objmgr_psoc; * @chan_freq: channel frequency * @cfreq0: channel frequency index0 * @cfreq1: channel frequency index1 + * @puncture_bitmap: puncture bitmap advertised in beacon * @priv: channel private information */ struct channel_info { uint32_t chan_freq; uint32_t cfreq0; uint32_t cfreq1; +#ifdef WLAN_FEATURE_11BE + uint16_t puncture_bitmap; +#endif void *priv; }; diff --git a/umac/scan/dispatcher/src/wlan_scan_utils_api.c b/umac/scan/dispatcher/src/wlan_scan_utils_api.c index 51c61e2486..f3b04c10a2 100644 --- a/umac/scan/dispatcher/src/wlan_scan_utils_api.c +++ b/umac/scan/dispatcher/src/wlan_scan_utils_api.c @@ -230,6 +230,7 @@ util_scan_get_phymode_11be(struct wlan_objmgr_pdev *pdev, wlan_reg_chan_band_to_freq(pdev, eht_ops->chan_freq_seg1, band_mask); + scan_params->channel.puncture_bitmap = eht_ops->puncture_pattern; return phymode; } #else