With the current implementation when radar is detected, the whole configured DFS channels are moved to "unavailable" state(NOL). However to move only the radar affected channels alone to NOL, introducing two unsigned 16bit variables "cf1_radar_bitmap" and "cf2_radar_bitmap" which denotes the radar(with a granularity of 20 MHz) in the first and the second part of the channel respectively. The "cf2_radar_bitmap" value will be valid only when the "center_freq2" is available. The LSB of the radar bitmap corresponds to the lowest 20 MHz channel of the configured channel bandwidth. Each bit set to "1" in this radar bitmap indicates that radar is detected in that sub-channel. Based on this radar bitmap the radar affected channels alone will be moved to NOL. Advertise these radar bitmaps using new NL attributes "NL80211_ATTR_CF1_RADAR_BITMAP" and "NL80211_ATTR_CF2_RADAR_BITMAP" with the existing "NL80211_CMD_RADAR_DETECT". Once these are advertised and the needed dfs state propagation is done, reset these radar bitmap values as they are not valid until there is another radar detection. With these radar bitmaps, we can support bandwidth reduction and RX puncturing in the DFS Channels. Nagarajan Maran (2): wifi: cfg80211: DFS radar detection support with radar bitmap wifi: mac80211: radar bitmap support during radar detection. drivers/net/wireless/ath/ath10k/debug.c | 2 +- drivers/net/wireless/ath/ath10k/mac.c | 2 +- drivers/net/wireless/ath/ath10k/wmi.c | 2 +- drivers/net/wireless/ath/ath11k/wmi.c | 2 +- drivers/net/wireless/ath/ath12k/wmi.c | 2 +- drivers/net/wireless/ath/ath9k/dfs.c | 2 +- drivers/net/wireless/ath/ath9k/dfs_debug.c | 2 +- drivers/net/wireless/mac80211_hwsim.c | 2 +- .../net/wireless/mediatek/mt76/mt7615/mcu.c | 2 +- .../net/wireless/mediatek/mt76/mt76x02_dfs.c | 4 ++-- .../net/wireless/mediatek/mt76/mt7915/mcu.c | 2 +- .../net/wireless/mediatek/mt76/mt7996/mcu.c | 2 +- drivers/net/wireless/ti/wl18xx/event.c | 2 +- include/net/cfg80211.h | 6 +++++ include/net/mac80211.h | 5 +++- include/uapi/linux/nl80211.h | 11 +++++++++ net/mac80211/ieee80211_i.h | 2 ++ net/mac80211/util.c | 10 +++++++- net/wireless/chan.c | 24 ++++++++++++------- net/wireless/mlme.c | 4 ++++ net/wireless/nl80211.c | 11 +++++++++ net/wireless/reg.c | 3 +++ 22 files changed, 80 insertions(+), 24 deletions(-) base-commit: 58e4b9df840cad439a4c878f81bc105cac2197a7 -- 2.17.1