[][MAC80211][hostapd][Remove merged upstream patches]

[Description]
Remove merged upstream patches.
Already included in hostapd-2022-05-08-b859b9bc

[Release-log]
N/A

Change-Id: I09520918cf868c108ee79642f0b1f9abc9d5116a
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/6089588
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/800-DFS-Introduce-dfs_set_valid_channel-utility-routine.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/800-DFS-Introduce-dfs_set_valid_channel-utility-routine.patch
deleted file mode 100644
index 5edd2d1..0000000
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/800-DFS-Introduce-dfs_set_valid_channel-utility-routine.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 3ebfdca86d2d4e45d8c72239819086e244cbd4f2 Mon Sep 17 00:00:00 2001
-From: Lorenzo Bianconi <lorenzo@kernel.org>
-Date: Mon, 20 Dec 2021 16:48:17 +0100
-Subject: [PATCH 900/911] DFS: Introduce dfs_set_valid_channel() utility
- routine
-
-This is a preliminary change to introduce radar/CAC background detection
-support.
-
-Tested-by: Owen Peng <owen.peng@mediatek.com>
-Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
----
- src/ap/dfs.c | 38 ++++++++++++++++++++++++--------------
- 1 file changed, 24 insertions(+), 14 deletions(-)
-
-diff --git a/src/ap/dfs.c b/src/ap/dfs.c
-index 53a50653b..09b2bb7d4 100644
---- a/src/ap/dfs.c
-+++ b/src/ap/dfs.c
-@@ -586,6 +586,29 @@ dfs_get_valid_channel(struct hostapd_iface *iface,
- }
- 
- 
-+static int dfs_set_valid_channel(struct hostapd_iface *iface, int skip_radar)
-+{
-+	struct hostapd_channel_data *channel;
-+	u8 cf1 = 0, cf2 = 0;
-+	int sec = 0;
-+
-+	channel = dfs_get_valid_channel(iface, &sec, &cf1, &cf2,
-+					skip_radar);
-+	if (!channel) {
-+		wpa_printf(MSG_ERROR, "could not get valid channel");
-+		return -1;
-+	}
-+
-+	iface->freq = channel->freq;
-+	iface->conf->channel = channel->chan;
-+	iface->conf->secondary_channel = sec;
-+	hostapd_set_oper_centr_freq_seg0_idx(iface->conf, cf1);
-+	hostapd_set_oper_centr_freq_seg1_idx(iface->conf, cf2);
-+
-+	return 0;
-+}
-+
-+
- static int set_dfs_state_freq(struct hostapd_iface *iface, int freq, u32 state)
- {
- 	struct hostapd_hw_modes *mode;
-@@ -773,7 +796,6 @@ static unsigned int dfs_get_cac_time(struct hostapd_iface *iface,
-  */
- int hostapd_handle_dfs(struct hostapd_iface *iface)
- {
--	struct hostapd_channel_data *channel;
- 	int res, n_chans, n_chans1, start_chan_idx, start_chan_idx1;
- 	int skip_radar = 0;
- 
-@@ -828,22 +850,10 @@ int hostapd_handle_dfs(struct hostapd_iface *iface)
- 		wpa_printf(MSG_DEBUG, "DFS %d chans unavailable - choose other channel: %s",
- 			   res, res ? "yes": "no");
- 		if (res) {
--			int sec = 0;
--			u8 cf1 = 0, cf2 = 0;
--
--			channel = dfs_get_valid_channel(iface, &sec, &cf1, &cf2,
--							skip_radar);
--			if (!channel) {
--				wpa_printf(MSG_ERROR, "could not get valid channel");
-+			if (dfs_set_valid_channel(iface, skip_radar) < 0) {
- 				hostapd_set_state(iface, HAPD_IFACE_DFS);
- 				return 0;
- 			}
--
--			iface->freq = channel->freq;
--			iface->conf->channel = channel->chan;
--			iface->conf->secondary_channel = sec;
--			hostapd_set_oper_centr_freq_seg0_idx(iface->conf, cf1);
--			hostapd_set_oper_centr_freq_seg1_idx(iface->conf, cf2);
- 		}
- 	} while (res);
- 
--- 
-2.29.2
-
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/801-DFS-Add-capability-to-select-radar-only-channels.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/801-DFS-Add-capability-to-select-radar-only-channels.patch
deleted file mode 100644
index 22300fa..0000000
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/801-DFS-Add-capability-to-select-radar-only-channels.patch
+++ /dev/null
@@ -1,171 +0,0 @@
-From 119b1e4f41d2b983150f5f0cb6dcb2c060c6c3c8 Mon Sep 17 00:00:00 2001
-From: dzou <dzou@company.com>
-Date: Sun, 5 Jun 2022 23:13:20 +0800
-Subject: [PATCH 901/911] DFS: Add capability to select radar-only channels
-
-Introduce type parameter to dfs_get_valid_channel() routine to allow
-selection of a radar-only channel where the CAC detection has not been
-performed yet. This is a preliminary patch to enable background
-radar/CAC detection.
-
-Tested-by: Owen Peng <owen.peng@mediatek.com>
-Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
----
- src/ap/dfs.c | 50 ++++++++++++++++++++++++++++++++++++--------------
- 1 file changed, 36 insertions(+), 14 deletions(-)
-
-diff --git a/src/ap/dfs.c b/src/ap/dfs.c
-index 09b2bb7d4..56564b901 100644
---- a/src/ap/dfs.c
-+++ b/src/ap/dfs.c
-@@ -52,15 +52,33 @@ static int dfs_get_used_n_chans(struct hostapd_iface *iface, int *seg1)
- }
- 
- 
-+enum dfs_channel_type {
-+	DFS_ANY_CHANNEL,
-+	DFS_AVAILABLE, /* non-radar or radar-available */
-+	DFS_NO_CAC_YET, /* radar-not-yet-available */
-+};
-+
-+/* dfs_channel_available: select new channel according to type parameter */
- static int dfs_channel_available(struct hostapd_channel_data *chan,
--				 int skip_radar)
-+				 enum dfs_channel_type type)
- {
-+	if (type == DFS_NO_CAC_YET) {
-+		/* Select only radar channel where CAC has not been
-+		 * performed yet
-+		 */
-+		if ((chan->flag & HOSTAPD_CHAN_RADAR) &&
-+		    (chan->flag & HOSTAPD_CHAN_DFS_MASK) ==
-+		     HOSTAPD_CHAN_DFS_USABLE)
-+			return 1;
-+		return 0;
-+	}
-+
- 	/*
- 	 * When radar detection happens, CSA is performed. However, there's no
- 	 * time for CAC, so radar channels must be skipped when finding a new
- 	 * channel for CSA, unless they are available for immediate use.
- 	 */
--	if (skip_radar && (chan->flag & HOSTAPD_CHAN_RADAR) &&
-+	if (type == DFS_AVAILABLE && (chan->flag & HOSTAPD_CHAN_RADAR) &&
- 	    ((chan->flag & HOSTAPD_CHAN_DFS_MASK) !=
- 	     HOSTAPD_CHAN_DFS_AVAILABLE))
- 		return 0;
-@@ -139,7 +157,7 @@ dfs_get_chan_data(struct hostapd_hw_modes *mode, int freq, int first_chan_idx)
- 
- static int dfs_chan_range_available(struct hostapd_hw_modes *mode,
- 				    int first_chan_idx, int num_chans,
--				    int skip_radar)
-+				    enum dfs_channel_type type)
- {
- 	struct hostapd_channel_data *first_chan, *chan;
- 	int i;
-@@ -178,7 +196,7 @@ static int dfs_chan_range_available(struct hostapd_hw_modes *mode,
- 			return 0;
- 		}
- 
--		if (!dfs_channel_available(chan, skip_radar)) {
-+		if (!dfs_channel_available(chan, type)) {
- 			wpa_printf(MSG_DEBUG, "DFS: channel not available %d",
- 				   first_chan->freq + i * 20);
- 			return 0;
-@@ -208,7 +226,7 @@ static int is_in_chanlist(struct hostapd_iface *iface,
-  */
- static int dfs_find_channel(struct hostapd_iface *iface,
- 			    struct hostapd_channel_data **ret_chan,
--			    int idx, int skip_radar)
-+			    int idx, enum dfs_channel_type type)
- {
- 	struct hostapd_hw_modes *mode;
- 	struct hostapd_channel_data *chan;
-@@ -233,7 +251,7 @@ static int dfs_find_channel(struct hostapd_iface *iface,
- 		}
- 
- 		/* Skip incompatible chandefs */
--		if (!dfs_chan_range_available(mode, i, n_chans, skip_radar)) {
-+		if (!dfs_chan_range_available(mode, i, n_chans, type)) {
- 			wpa_printf(MSG_DEBUG,
- 				   "DFS: range not available for %d (%d)",
- 				   chan->freq, chan->chan);
-@@ -476,7 +494,7 @@ dfs_get_valid_channel(struct hostapd_iface *iface,
- 		      int *secondary_channel,
- 		      u8 *oper_centr_freq_seg0_idx,
- 		      u8 *oper_centr_freq_seg1_idx,
--		      int skip_radar)
-+		      enum dfs_channel_type type)
- {
- 	struct hostapd_hw_modes *mode;
- 	struct hostapd_channel_data *chan = NULL;
-@@ -505,7 +523,7 @@ dfs_get_valid_channel(struct hostapd_iface *iface,
- 		return NULL;
- 
- 	/* Get the count first */
--	num_available_chandefs = dfs_find_channel(iface, NULL, 0, skip_radar);
-+	num_available_chandefs = dfs_find_channel(iface, NULL, 0, type);
- 	wpa_printf(MSG_DEBUG, "DFS: num_available_chandefs=%d",
- 		   num_available_chandefs);
- 	if (num_available_chandefs == 0)
-@@ -526,7 +544,7 @@ dfs_get_valid_channel(struct hostapd_iface *iface,
- 		return NULL;
- 
- 	chan_idx = _rand % num_available_chandefs;
--	dfs_find_channel(iface, &chan, chan_idx, skip_radar);
-+	dfs_find_channel(iface, &chan, chan_idx, type);
- 	if (!chan) {
- 		wpa_printf(MSG_DEBUG, "DFS: no random channel found");
- 		return NULL;
-@@ -555,7 +573,7 @@ dfs_get_valid_channel(struct hostapd_iface *iface,
- 		for (i = 0; i < num_available_chandefs - 1; i++) {
- 			/* start from chan_idx + 1, end when chan_idx - 1 */
- 			chan_idx2 = (chan_idx + 1 + i) % num_available_chandefs;
--			dfs_find_channel(iface, &chan2, chan_idx2, skip_radar);
-+			dfs_find_channel(iface, &chan2, chan_idx2, type);
- 			if (chan2 && abs(chan2->chan - chan->chan) > 12) {
- 				/* two channels are not adjacent */
- 				sec_chan_idx_80p80 = chan2->chan;
-@@ -593,7 +611,8 @@ static int dfs_set_valid_channel(struct hostapd_iface *iface, int skip_radar)
- 	int sec = 0;
- 
- 	channel = dfs_get_valid_channel(iface, &sec, &cf1, &cf2,
--					skip_radar);
-+					skip_radar ? DFS_AVAILABLE :
-+					DFS_ANY_CHANNEL);
- 	if (!channel) {
- 		wpa_printf(MSG_ERROR, "could not get valid channel");
- 		return -1;
-@@ -976,7 +995,8 @@ dfs_downgrade_bandwidth(struct hostapd_iface *iface, int *secondary_channel,
- 		channel = dfs_get_valid_channel(iface, secondary_channel,
- 						oper_centr_freq_seg0_idx,
- 						oper_centr_freq_seg1_idx,
--						*skip_radar);
-+						*skip_radar ? DFS_AVAILABLE :
-+						DFS_ANY_CHANNEL);
- 		if (channel) {
- 			wpa_printf(MSG_DEBUG, "DFS: Selected channel: %d",
- 				   channel->chan);
-@@ -1017,7 +1037,8 @@ static int hostapd_dfs_start_channel_switch_cac(struct hostapd_iface *iface)
- 	channel = dfs_get_valid_channel(iface, &secondary_channel,
- 					&oper_centr_freq_seg0_idx,
- 					&oper_centr_freq_seg1_idx,
--					skip_radar);
-+					skip_radar ? DFS_AVAILABLE :
-+					DFS_ANY_CHANNEL);
- 
- 	if (!channel) {
- 		channel = dfs_downgrade_bandwidth(iface, &secondary_channel,
-@@ -1088,7 +1109,8 @@ static int hostapd_dfs_start_channel_switch(struct hostapd_iface *iface)
- 	channel = dfs_get_valid_channel(iface, &secondary_channel,
- 					&oper_centr_freq_seg0_idx,
- 					&oper_centr_freq_seg1_idx,
--					skip_radar);
-+					skip_radar ? DFS_AVAILABLE :
-+					DFS_ANY_CHANNEL);
- 
- 	if (!channel) {
- 		/*
--- 
-2.29.2
-
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/802-nl80211-Report-background-radar-CAC-detection-capabi.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/802-nl80211-Report-background-radar-CAC-detection-capabi.patch
deleted file mode 100644
index 1647f8f..0000000
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/802-nl80211-Report-background-radar-CAC-detection-capabi.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 5fb4920aa49934d3a602556fbe35ab6ed11374d1 Mon Sep 17 00:00:00 2001
-From: dzou <dzou@company.com>
-Date: Sun, 5 Jun 2022 23:17:28 +0800
-Subject: [PATCH 902/911] nl80211: Report background radar/CAC detection
- capability
-
-Report background radar/CAC detection capability if supported
-by the underlying driver/hardware.
-
-Tested-by: Owen Peng <owen.peng@mediatek.com>
-Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
----
- src/drivers/driver.h              | 2 ++
- src/drivers/driver_nl80211_capa.c | 4 ++++
- 2 files changed, 6 insertions(+)
-
-diff --git a/src/drivers/driver.h b/src/drivers/driver.h
-index 44304d487..68964c9d5 100644
---- a/src/drivers/driver.h
-+++ b/src/drivers/driver.h
-@@ -2032,6 +2032,8 @@ struct wpa_driver_capa {
- #define WPA_DRIVER_FLAGS2_OCV			0x0000000000000080ULL
- /** Driver expects user space implementation of SME in AP mode */
- #define WPA_DRIVER_FLAGS2_AP_SME		0x0000000000000100ULL
-+/** Driver supports background radar/CAC detection */
-+#define WPA_DRIVER_RADAR_BACKGROUND            0x0000000000000400ULL
- 	u64 flags2;
- 
- #define FULL_AP_CLIENT_STATE_SUPP(drv_flags) \
-diff --git a/src/drivers/driver_nl80211_capa.c b/src/drivers/driver_nl80211_capa.c
-index 83868b78e..05703ec64 100644
---- a/src/drivers/driver_nl80211_capa.c
-+++ b/src/drivers/driver_nl80211_capa.c
-@@ -665,6 +665,10 @@ static void wiphy_info_ext_feature_flags(struct wiphy_info_data *info,
- 	if (ext_feature_isset(ext_features, len,
- 			      NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION))
- 		capa->flags2 |= WPA_DRIVER_FLAGS2_OCV;
-+
-+	if (ext_feature_isset(ext_features, len,
-+			      NL80211_EXT_FEATURE_RADAR_BACKGROUND))
-+		capa->flags2 |= WPA_DRIVER_RADAR_BACKGROUND;
- }
- 
- 
--- 
-2.29.2
-
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/803-DFS-Rely-on-channel_type-in-dfs_downgrade_bandwidth.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/803-DFS-Rely-on-channel_type-in-dfs_downgrade_bandwidth.patch
deleted file mode 100644
index 9c5d850..0000000
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/803-DFS-Rely-on-channel_type-in-dfs_downgrade_bandwidth.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-From 18111f0a47b33da2f75cebd65f9201150bc3a1a9 Mon Sep 17 00:00:00 2001
-From: dzou <dzou@company.com>
-Date: Sun, 5 Jun 2022 23:18:45 +0800
-Subject: [PATCH 903/911] DFS: Rely on channel_type in
- dfs_downgrade_bandwidth()
-
-Add the capability to specify all 3 channel type possibilities in
-dfs_downgrade_bandwidth(). This is a preliminary change to introduce
-radar/CAC background detection support.
-
-Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
----
- src/ap/dfs.c | 32 +++++++++++++++-----------------
- 1 file changed, 15 insertions(+), 17 deletions(-)
-
-diff --git a/src/ap/dfs.c b/src/ap/dfs.c
-index 56564b901..05cb63ac4 100644
---- a/src/ap/dfs.c
-+++ b/src/ap/dfs.c
-@@ -987,7 +987,8 @@ int hostapd_dfs_pre_cac_expired(struct hostapd_iface *iface, int freq,
- static struct hostapd_channel_data *
- dfs_downgrade_bandwidth(struct hostapd_iface *iface, int *secondary_channel,
- 			u8 *oper_centr_freq_seg0_idx,
--			u8 *oper_centr_freq_seg1_idx, int *skip_radar)
-+			u8 *oper_centr_freq_seg1_idx,
-+			enum dfs_channel_type *channel_type)
- {
- 	struct hostapd_channel_data *channel;
- 
-@@ -995,23 +996,22 @@ dfs_downgrade_bandwidth(struct hostapd_iface *iface, int *secondary_channel,
- 		channel = dfs_get_valid_channel(iface, secondary_channel,
- 						oper_centr_freq_seg0_idx,
- 						oper_centr_freq_seg1_idx,
--						*skip_radar ? DFS_AVAILABLE :
--						DFS_ANY_CHANNEL);
-+						*channel_type);
- 		if (channel) {
- 			wpa_printf(MSG_DEBUG, "DFS: Selected channel: %d",
- 				   channel->chan);
- 			return channel;
- 		}
- 
--		if (*skip_radar) {
--			*skip_radar = 0;
-+		if (*channel_type != DFS_ANY_CHANNEL) {
-+			*channel_type = DFS_ANY_CHANNEL;
- 		} else {
- 			int oper_chwidth;
- 
- 			oper_chwidth = hostapd_get_oper_chwidth(iface->conf);
- 			if (oper_chwidth == CHANWIDTH_USE_HT)
- 				break;
--			*skip_radar = 1;
-+			*channel_type = DFS_AVAILABLE;
- 			hostapd_set_oper_chwidth(iface->conf, oper_chwidth - 1);
- 		}
- 	}
-@@ -1029,7 +1029,7 @@ static int hostapd_dfs_start_channel_switch_cac(struct hostapd_iface *iface)
- 	int secondary_channel;
- 	u8 oper_centr_freq_seg0_idx = 0;
- 	u8 oper_centr_freq_seg1_idx = 0;
--	int skip_radar = 0;
-+	enum dfs_channel_type channel_type = DFS_ANY_CHANNEL;
- 	int err = 1;
- 
- 	/* Radar detected during active CAC */
-@@ -1037,14 +1037,13 @@ static int hostapd_dfs_start_channel_switch_cac(struct hostapd_iface *iface)
- 	channel = dfs_get_valid_channel(iface, &secondary_channel,
- 					&oper_centr_freq_seg0_idx,
- 					&oper_centr_freq_seg1_idx,
--					skip_radar ? DFS_AVAILABLE :
--					DFS_ANY_CHANNEL);
-+					channel_type);
- 
- 	if (!channel) {
- 		channel = dfs_downgrade_bandwidth(iface, &secondary_channel,
- 						  &oper_centr_freq_seg0_idx,
- 						  &oper_centr_freq_seg1_idx,
--						  &skip_radar);
-+						  &channel_type);
- 		if (!channel) {
- 			wpa_printf(MSG_ERROR, "No valid channel available");
- 			return err;
-@@ -1078,7 +1077,7 @@ static int hostapd_dfs_start_channel_switch(struct hostapd_iface *iface)
- 	u8 oper_centr_freq_seg0_idx;
- 	u8 oper_centr_freq_seg1_idx;
- 	u8 new_vht_oper_chwidth;
--	int skip_radar = 1;
-+	enum dfs_channel_type channel_type = DFS_AVAILABLE;
- 	struct csa_settings csa_settings;
- 	unsigned int i;
- 	int err = 1;
-@@ -1103,14 +1102,13 @@ static int hostapd_dfs_start_channel_switch(struct hostapd_iface *iface)
- 	 * uniform spreading.
- 	 */
- 	if (iface->dfs_domain == HOSTAPD_DFS_REGION_ETSI)
--		skip_radar = 0;
-+		channel_type = DFS_ANY_CHANNEL;
- 
- 	/* Perform channel switch/CSA */
- 	channel = dfs_get_valid_channel(iface, &secondary_channel,
- 					&oper_centr_freq_seg0_idx,
- 					&oper_centr_freq_seg1_idx,
--					skip_radar ? DFS_AVAILABLE :
--					DFS_ANY_CHANNEL);
-+					channel_type);
- 
- 	if (!channel) {
- 		/*
-@@ -1118,11 +1116,11 @@ static int hostapd_dfs_start_channel_switch(struct hostapd_iface *iface)
- 		 * there is another channel where we can switch even if it
- 		 * requires to perform a CAC first.
- 		 */
--		skip_radar = 0;
-+		channel_type = DFS_ANY_CHANNEL;
- 		channel = dfs_downgrade_bandwidth(iface, &secondary_channel,
- 						  &oper_centr_freq_seg0_idx,
- 						  &oper_centr_freq_seg1_idx,
--						  &skip_radar);
-+						  &channel_type);
- 		if (!channel) {
- 			/*
- 			 * Toggle interface state to enter DFS state
-@@ -1133,7 +1131,7 @@ static int hostapd_dfs_start_channel_switch(struct hostapd_iface *iface)
- 			return 0;
- 		}
- 
--		if (!skip_radar) {
-+		if (channel_type == DFS_ANY_CHANNEL) {
- 			iface->freq = channel->freq;
- 			iface->conf->channel = channel->chan;
- 			iface->conf->secondary_channel = secondary_channel;
--- 
-2.29.2
-
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/804-nl80211-Radar-background-flag-setting.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/804-nl80211-Radar-background-flag-setting.patch
deleted file mode 100644
index ace1b11..0000000
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/804-nl80211-Radar-background-flag-setting.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 9ac9d78cb92dd3ffce4dd514f80d5a166d722ce0 Mon Sep 17 00:00:00 2001
-From: dzou <dzou@company.com>
-Date: Sun, 5 Jun 2022 23:19:45 +0800
-Subject: [PATCH 904/911] nl80211: Radar background flag setting
-
-Allow background radar detection flag to be set when specifying a
-channel. This is a preliminary change to introduce radar/CAC background
-detection support.
-
-Tested-by: Owen Peng <owen.peng@mediatek.com>
-Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
----
- src/drivers/driver.h         | 5 +++++
- src/drivers/driver_nl80211.c | 5 +++++
- 2 files changed, 10 insertions(+)
-
-diff --git a/src/drivers/driver.h b/src/drivers/driver.h
-index 68964c9d5..90adbf0f4 100644
---- a/src/drivers/driver.h
-+++ b/src/drivers/driver.h
-@@ -783,6 +783,11 @@ struct hostapd_freq_params {
- 	 * for IEEE 802.11ay EDMG configuration.
- 	 */
- 	struct ieee80211_edmg_config edmg;
-+
-+	/**
-+	 * radar_background - Whether radar/CAC background is requested
-+	 */
-+	bool radar_background;
- };
- 
- /**
-diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
-index bf4fda770..6cf127ca7 100644
---- a/src/drivers/driver_nl80211.c
-+++ b/src/drivers/driver_nl80211.c
-@@ -4901,6 +4901,8 @@ static int nl80211_put_freq_params(struct nl_msg *msg,
- 	wpa_printf(MSG_DEBUG, "  * he_enabled=%d", freq->he_enabled);
- 	wpa_printf(MSG_DEBUG, "  * vht_enabled=%d", freq->vht_enabled);
- 	wpa_printf(MSG_DEBUG, "  * ht_enabled=%d", freq->ht_enabled);
-+	wpa_printf(MSG_DEBUG, "  * radar_background=%d",
-+		   freq->radar_background);
- 
- 	hw_mode = ieee80211_freq_to_chan(freq->freq, &channel);
- 	is_24ghz = hw_mode == HOSTAPD_MODE_IEEE80211G ||
-@@ -4978,6 +4980,9 @@ static int nl80211_put_freq_params(struct nl_msg *msg,
- 				NL80211_CHAN_NO_HT))
- 			return -ENOBUFS;
- 	}
-+	if (freq->radar_background)
-+		nla_put_flag(msg, NL80211_ATTR_RADAR_BACKGROUND);
-+
- 	return 0;
- }
- 
--- 
-2.29.2
-
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/805-DFS-Configure-background-radar-CAC-detection.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/805-DFS-Configure-background-radar-CAC-detection.patch
deleted file mode 100644
index 1d94fe0..0000000
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/805-DFS-Configure-background-radar-CAC-detection.patch
+++ /dev/null
@@ -1,352 +0,0 @@
-From e1171aa4bd128d019fc5d53431472abddeb5cca0 Mon Sep 17 00:00:00 2001
-From: dzou <dzou@company.com>
-Date: Sun, 5 Jun 2022 23:20:30 +0800
-Subject: [PATCH 905/911] DFS: Configure background radar/CAC detection
-
-Introduce the capability to perform radar/CAC detection on an offchannel
-radar chain available on some hardware (e.g., mt7915). This feature
-allows to avoid CAC downtime switching on a different channel during CAC
-detection on the selected radar channel.
-
-Tested-by: Owen Peng <owen.peng@mediatek.com>
-Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
----
- src/ap/ap_drv_ops.c |   9 ++-
- src/ap/ap_drv_ops.h |   3 +-
- src/ap/dfs.c        | 181 ++++++++++++++++++++++++++++++++++++++++----
- src/ap/hostapd.h    |  15 ++++
- 4 files changed, 189 insertions(+), 19 deletions(-)
-
-diff --git a/src/ap/ap_drv_ops.c b/src/ap/ap_drv_ops.c
-index 033ad097e..1fc538104 100644
---- a/src/ap/ap_drv_ops.c
-+++ b/src/ap/ap_drv_ops.c
-@@ -810,7 +810,8 @@ int hostapd_start_dfs_cac(struct hostapd_iface *iface,
- 			  int channel, int ht_enabled, int vht_enabled,
- 			  int he_enabled,
- 			  int sec_channel_offset, int oper_chwidth,
--			  int center_segment0, int center_segment1)
-+			  int center_segment0, int center_segment1,
-+			  bool radar_background)
- {
- 	struct hostapd_data *hapd = iface->bss[0];
- 	struct hostapd_freq_params data;
-@@ -836,10 +837,14 @@ int hostapd_start_dfs_cac(struct hostapd_iface *iface,
- 		wpa_printf(MSG_ERROR, "Can't set freq params");
- 		return -1;
- 	}
-+	data.radar_background = radar_background;
- 
- 	res = hapd->driver->start_dfs_cac(hapd->drv_priv, &data);
- 	if (!res) {
--		iface->cac_started = 1;
-+		if (radar_background)
-+			iface->radar_background.cac_started = 1;
-+		else
-+			iface->cac_started = 1;
- 		os_get_reltime(&iface->dfs_cac_start);
- 	}
- 
-diff --git a/src/ap/ap_drv_ops.h b/src/ap/ap_drv_ops.h
-index 61c8f64eb..b4d6395ae 100644
---- a/src/ap/ap_drv_ops.h
-+++ b/src/ap/ap_drv_ops.h
-@@ -130,7 +130,8 @@ int hostapd_start_dfs_cac(struct hostapd_iface *iface,
- 			  int channel, int ht_enabled, int vht_enabled,
- 			  int he_enabled,
- 			  int sec_channel_offset, int oper_chwidth,
--			  int center_segment0, int center_segment1);
-+			  int center_segment0, int center_segment1,
-+			  bool radar_background);
- int hostapd_drv_do_acs(struct hostapd_data *hapd);
- int hostapd_drv_update_dh_ie(struct hostapd_data *hapd, const u8 *peer,
- 			     u16 reason_code, const u8 *ie, size_t ielen);
-diff --git a/src/ap/dfs.c b/src/ap/dfs.c
-index 05cb63ac4..5dc261589 100644
---- a/src/ap/dfs.c
-+++ b/src/ap/dfs.c
-@@ -20,6 +20,25 @@
- #include "crypto/crypto.h"
- 
- 
-+enum dfs_channel_type {
-+	DFS_ANY_CHANNEL,
-+	DFS_AVAILABLE, /* non-radar or radar-available */
-+	DFS_NO_CAC_YET, /* radar-not-yet-available */
-+};
-+
-+static struct hostapd_channel_data *
-+dfs_downgrade_bandwidth(struct hostapd_iface *iface, int *secondary_channel,
-+			u8 *oper_centr_freq_seg0_idx,
-+			u8 *oper_centr_freq_seg1_idx,
-+			enum dfs_channel_type *channel_type);
-+
-+
-+static bool dfs_use_radar_background(struct hostapd_iface *iface)
-+{
-+	return iface->drv_flags2 & WPA_DRIVER_RADAR_BACKGROUND;
-+}
-+
-+
- static int dfs_get_used_n_chans(struct hostapd_iface *iface, int *seg1)
- {
- 	int n_chans = 1;
-@@ -52,12 +71,6 @@ static int dfs_get_used_n_chans(struct hostapd_iface *iface, int *seg1)
- }
- 
- 
--enum dfs_channel_type {
--	DFS_ANY_CHANNEL,
--	DFS_AVAILABLE, /* non-radar or radar-available */
--	DFS_NO_CAC_YET, /* radar-not-yet-available */
--};
--
- /* dfs_channel_available: select new channel according to type parameter */
- static int dfs_channel_available(struct hostapd_channel_data *chan,
- 				 enum dfs_channel_type type)
-@@ -878,7 +891,8 @@ int hostapd_handle_dfs(struct hostapd_iface *iface)
- 
- 	/* Finally start CAC */
- 	hostapd_set_state(iface, HAPD_IFACE_DFS);
--	wpa_printf(MSG_DEBUG, "DFS start CAC on %d MHz", iface->freq);
-+	wpa_printf(MSG_DEBUG, "DFS start CAC on %d MHz%s", iface->freq,
-+		   dfs_use_radar_background(iface) ? " (background)" : "");
- 	wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_CAC_START
- 		"freq=%d chan=%d sec_chan=%d, width=%d, seg0=%d, seg1=%d, cac_time=%ds",
- 		iface->freq,
-@@ -895,13 +909,37 @@ int hostapd_handle_dfs(struct hostapd_iface *iface)
- 		iface->conf->secondary_channel,
- 		hostapd_get_oper_chwidth(iface->conf),
- 		hostapd_get_oper_centr_freq_seg0_idx(iface->conf),
--		hostapd_get_oper_centr_freq_seg1_idx(iface->conf));
-+		hostapd_get_oper_centr_freq_seg1_idx(iface->conf),
-+		dfs_use_radar_background(iface));
- 
- 	if (res) {
- 		wpa_printf(MSG_ERROR, "DFS start_dfs_cac() failed, %d", res);
- 		return -1;
- 	}
- 
-+	if (dfs_use_radar_background(iface)) {
-+		/* Cache background radar parameters. */
-+		iface->radar_background.channel = iface->conf->channel;
-+		iface->radar_background.secondary_channel =
-+			iface->conf->secondary_channel;
-+		iface->radar_background.freq = iface->freq;
-+		iface->radar_background.centr_freq_seg0_idx =
-+			hostapd_get_oper_centr_freq_seg0_idx(iface->conf);
-+		iface->radar_background.centr_freq_seg1_idx =
-+			hostapd_get_oper_centr_freq_seg1_idx(iface->conf);
-+
-+		/*
-+		 * Let's select a random channel according to the
-+		 * regulations and perform CAC on dedicated radar chain.
-+		 */
-+		res = dfs_set_valid_channel(iface, 1);
-+		if (res < 0)
-+			return res;
-+
-+		iface->radar_background.temp_ch = 1;
-+		return 1;
-+	}
-+
- 	return 0;
- }
- 
-@@ -923,6 +961,86 @@ int hostapd_is_dfs_chan_available(struct hostapd_iface *iface)
- }
- 
- 
-+static void hostpad_dfs_update_background_chain(struct hostapd_iface *iface)
-+{
-+	int sec = 0;
-+	enum dfs_channel_type channel_type = DFS_NO_CAC_YET;
-+	struct hostapd_channel_data *channel;
-+	u8 oper_centr_freq_seg0_idx = 0;
-+	u8 oper_centr_freq_seg1_idx = 0;
-+
-+	/*
-+	 * Allow selection of DFS channel in ETSI to comply with
-+	 * uniform spreading.
-+	 */
-+	if (iface->dfs_domain == HOSTAPD_DFS_REGION_ETSI)
-+		channel_type = DFS_ANY_CHANNEL;
-+
-+	channel = dfs_get_valid_channel(iface, &sec, &oper_centr_freq_seg0_idx,
-+					&oper_centr_freq_seg1_idx,
-+					channel_type);
-+	if (!channel ||
-+	    channel->chan == iface->conf->channel ||
-+	    channel->chan == iface->radar_background.channel)
-+		channel = dfs_downgrade_bandwidth(iface, &sec,
-+						  &oper_centr_freq_seg0_idx,
-+						  &oper_centr_freq_seg1_idx,
-+						  &channel_type);
-+	if (!channel ||
-+	    hostapd_start_dfs_cac(iface, iface->conf->hw_mode,
-+				  channel->freq, channel->chan,
-+				  iface->conf->ieee80211n,
-+				  iface->conf->ieee80211ac,
-+				  iface->conf->ieee80211ax,
-+				  sec, hostapd_get_oper_chwidth(iface->conf),
-+				  oper_centr_freq_seg0_idx,
-+				  oper_centr_freq_seg1_idx, true)) {
-+		wpa_printf(MSG_ERROR, "DFS failed to start CAC offchannel");
-+		iface->radar_background.channel = -1;
-+		return;
-+	}
-+
-+	iface->radar_background.channel = channel->chan;
-+	iface->radar_background.freq = channel->freq;
-+	iface->radar_background.secondary_channel = sec;
-+	iface->radar_background.centr_freq_seg0_idx = oper_centr_freq_seg0_idx;
-+	iface->radar_background.centr_freq_seg1_idx = oper_centr_freq_seg1_idx;
-+
-+	wpa_printf(MSG_DEBUG,
-+		   "%s: setting background chain to chan %d (%d MHz)",
-+		   __func__, channel->chan, channel->freq);
-+}
-+
-+
-+static bool
-+hostapd_dfs_is_background_event(struct hostapd_iface *iface, int freq)
-+{
-+	return dfs_use_radar_background(iface) &&
-+		iface->radar_background.channel != -1 &&
-+		iface->radar_background.freq == freq;
-+}
-+
-+
-+static int
-+hostapd_dfs_start_channel_switch_background(struct hostapd_iface *iface)
-+{
-+	iface->conf->channel = iface->radar_background.channel;
-+	iface->freq = iface->radar_background.freq;
-+	iface->conf->secondary_channel =
-+		iface->radar_background.secondary_channel;
-+	hostapd_set_oper_centr_freq_seg0_idx(
-+		iface->conf, iface->radar_background.centr_freq_seg0_idx);
-+	hostapd_set_oper_centr_freq_seg1_idx(
-+		iface->conf, iface->radar_background.centr_freq_seg1_idx);
-+
-+	hostpad_dfs_update_background_chain(iface);
-+	hostapd_disable_iface(iface);
-+	hostapd_enable_iface(iface);
-+
-+	return 0;
-+}
-+
-+
- int hostapd_dfs_complete_cac(struct hostapd_iface *iface, int success, int freq,
- 			     int ht_enabled, int chan_offset, int chan_width,
- 			     int cf1, int cf2)
-@@ -943,6 +1061,22 @@ int hostapd_dfs_complete_cac(struct hostapd_iface *iface, int success, int freq,
- 			set_dfs_state(iface, freq, ht_enabled, chan_offset,
- 				      chan_width, cf1, cf2,
- 				      HOSTAPD_CHAN_DFS_AVAILABLE);
-+
-+			/*
-+			 * Radar event from background chain for the selected
-+			 * channel. Perform CSA, move the main chain to the
-+			 * selected channel and configure the background chain
-+			 * to a new DFS channel.
-+			 */
-+			if (hostapd_dfs_is_background_event(iface, freq)) {
-+				iface->radar_background.cac_started = 0;
-+				if (!iface->radar_background.temp_ch)
-+					return 0;
-+
-+				iface->radar_background.temp_ch = 0;
-+				return hostapd_dfs_start_channel_switch_background(iface);
-+			}
-+
- 			/*
- 			 * Just mark the channel available when CAC completion
- 			 * event is received in enabled state. CAC result could
-@@ -959,6 +1093,9 @@ int hostapd_dfs_complete_cac(struct hostapd_iface *iface, int success, int freq,
- 				iface->cac_started = 0;
- 			}
- 		}
-+	} else if (hostapd_dfs_is_background_event(iface, freq)) {
-+		iface->radar_background.cac_started = 0;
-+		hostpad_dfs_update_background_chain(iface);
- 	}
- 
- 	return 0;
-@@ -1269,9 +1406,14 @@ int hostapd_dfs_nop_finished(struct hostapd_iface *iface, int freq,
- 	set_dfs_state(iface, freq, ht_enabled, chan_offset, chan_width,
- 		      cf1, cf2, HOSTAPD_CHAN_DFS_USABLE);
- 
--	/* Handle cases where all channels were initially unavailable */
--	if (iface->state == HAPD_IFACE_DFS && !iface->cac_started)
-+	if (iface->state == HAPD_IFACE_DFS && !iface->cac_started) {
-+		/* Handle cases where all channels were initially unavailable */
- 		hostapd_handle_dfs(iface);
-+	} else if (dfs_use_radar_background(iface) &&
-+		   iface->radar_background.channel == -1) {
-+		/* Reset radar background chain if disabled */
-+		hostpad_dfs_update_background_chain(iface);
-+	}
- 
- 	return 0;
- }
-@@ -1309,17 +1451,24 @@ int hostapd_dfs_start_cac(struct hostapd_iface *iface, int freq,
- 			  int ht_enabled, int chan_offset, int chan_width,
- 			  int cf1, int cf2)
- {
--	/* This is called when the driver indicates that an offloaded DFS has
--	 * started CAC. */
--	hostapd_set_state(iface, HAPD_IFACE_DFS);
-+	if (hostapd_dfs_is_background_event(iface, freq)) {
-+		iface->radar_background.cac_started = 1;
-+	} else {
-+		/* This is called when the driver indicates that an offloaded
-+		 * DFS has started CAC. */
-+		hostapd_set_state(iface, HAPD_IFACE_DFS);
-+		iface->cac_started = 1;
-+	}
- 	/* TODO: How to check CAC time for ETSI weather channels? */
- 	iface->dfs_cac_ms = 60000;
- 	wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_CAC_START
- 		"freq=%d chan=%d chan_offset=%d width=%d seg0=%d "
--		"seg1=%d cac_time=%ds",
-+		"seg1=%d cac_time=%ds%s",
- 		freq, (freq - 5000) / 5, chan_offset, chan_width, cf1, cf2,
--		iface->dfs_cac_ms / 1000);
--	iface->cac_started = 1;
-+		iface->dfs_cac_ms / 1000,
-+		hostapd_dfs_is_background_event(iface, freq) ?
-+		" (background)" : "");
-+
- 	os_get_reltime(&iface->dfs_cac_start);
- 	return 0;
- }
-diff --git a/src/ap/hostapd.h b/src/ap/hostapd.h
-index a4ea32517..095524e49 100644
---- a/src/ap/hostapd.h
-+++ b/src/ap/hostapd.h
-@@ -541,6 +541,21 @@ struct hostapd_iface {
- 	int *basic_rates;
- 	int freq;
- 
-+	/* Background radar configuration */
-+	struct {
-+		int channel;
-+		int secondary_channel;
-+		int freq;
-+		int centr_freq_seg0_idx;
-+		int centr_freq_seg1_idx;
-+		/* Main chain is on temporary channel during
-+		 * CAC detection on radar offchain.
-+		 */
-+		unsigned int temp_ch:1;
-+		/* CAC started on radar offchain */
-+		unsigned int cac_started:1;
-+	} radar_background;
-+
- 	u16 hw_flags;
- 
- 	/* Number of associated Non-ERP stations (i.e., stations using 802.11b
--- 
-2.29.2
-
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/806-DFS-Introduce-hostapd_dfs_request_channel_switch.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/806-DFS-Introduce-hostapd_dfs_request_channel_switch.patch
deleted file mode 100644
index da1cb94..0000000
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/806-DFS-Introduce-hostapd_dfs_request_channel_switch.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-From 22eb74742a126bd356e6f25e3522e1c5bb5229ef Mon Sep 17 00:00:00 2001
-From: dzou <dzou@company.com>
-Date: Sun, 5 Jun 2022 23:21:17 +0800
-Subject: [PATCH 906/911] DFS: Introduce hostapd_dfs_request_channel_switch()
-
-This is a preliminary patch to add Channel Switch Announcement for
-background radar detection.
-
-Tested-by: Owen Peng <owen.peng@mediatek.com>
-Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
----
- src/ap/dfs.c | 163 ++++++++++++++++++++++++++++-----------------------
- 1 file changed, 90 insertions(+), 73 deletions(-)
-
-diff --git a/src/ap/dfs.c b/src/ap/dfs.c
-index 5dc261589..000b411be 100644
---- a/src/ap/dfs.c
-+++ b/src/ap/dfs.c
-@@ -961,6 +961,90 @@ int hostapd_is_dfs_chan_available(struct hostapd_iface *iface)
- }
- 
- 
-+static int hostapd_dfs_request_channel_switch(struct hostapd_iface *iface,
-+					      int channel, int freq,
-+					      int secondary_channel,
-+					      u8 current_vht_oper_chwidth,
-+					      u8 oper_centr_freq_seg0_idx,
-+					      u8 oper_centr_freq_seg1_idx)
-+{
-+	struct hostapd_hw_modes *cmode = iface->current_mode;
-+	int ieee80211_mode = IEEE80211_MODE_AP, err;
-+	struct csa_settings csa_settings;
-+	u8 new_vht_oper_chwidth;
-+	unsigned int i;
-+
-+	wpa_printf(MSG_DEBUG, "DFS will switch to a new channel %d", channel);
-+	wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_NEW_CHANNEL
-+		"freq=%d chan=%d sec_chan=%d", freq, channel,
-+		secondary_channel);
-+
-+	new_vht_oper_chwidth = hostapd_get_oper_chwidth(iface->conf);
-+	hostapd_set_oper_chwidth(iface->conf, current_vht_oper_chwidth);
-+
-+	/* Setup CSA request */
-+	os_memset(&csa_settings, 0, sizeof(csa_settings));
-+	csa_settings.cs_count = 5;
-+	csa_settings.block_tx = 1;
-+#ifdef CONFIG_MESH
-+	if (iface->mconf)
-+		ieee80211_mode = IEEE80211_MODE_MESH;
-+#endif /* CONFIG_MESH */
-+	err = hostapd_set_freq_params(&csa_settings.freq_params,
-+				      iface->conf->hw_mode,
-+				      freq, channel,
-+				      iface->conf->enable_edmg,
-+				      iface->conf->edmg_channel,
-+				      iface->conf->ieee80211n,
-+				      iface->conf->ieee80211ac,
-+				      iface->conf->ieee80211ax,
-+				      secondary_channel,
-+				      new_vht_oper_chwidth,
-+				      oper_centr_freq_seg0_idx,
-+				      oper_centr_freq_seg1_idx,
-+				      cmode->vht_capab,
-+				      &cmode->he_capab[ieee80211_mode]);
-+
-+	if (err) {
-+		wpa_printf(MSG_ERROR,
-+			   "DFS failed to calculate CSA freq params");
-+		hostapd_disable_iface(iface);
-+		return err;
-+	}
-+
-+	for (i = 0; i < iface->num_bss; i++) {
-+		err = hostapd_switch_channel(iface->bss[i], &csa_settings);
-+		if (err)
-+			break;
-+	}
-+
-+	if (err) {
-+		wpa_printf(MSG_WARNING,
-+			   "DFS failed to schedule CSA (%d) - trying fallback",
-+			   err);
-+		iface->freq = freq;
-+		iface->conf->channel = channel;
-+		iface->conf->secondary_channel = secondary_channel;
-+		hostapd_set_oper_chwidth(iface->conf, new_vht_oper_chwidth);
-+		hostapd_set_oper_centr_freq_seg0_idx(iface->conf,
-+						     oper_centr_freq_seg0_idx);
-+		hostapd_set_oper_centr_freq_seg1_idx(iface->conf,
-+						     oper_centr_freq_seg1_idx);
-+
-+		hostapd_disable_iface(iface);
-+		hostapd_enable_iface(iface);
-+
-+		return 0;
-+	}
-+
-+	/* Channel configuration will be updated once CSA completes and
-+	 * ch_switch_notify event is received */
-+	wpa_printf(MSG_DEBUG, "DFS waiting channel switch event");
-+
-+	return 0;
-+}
-+
-+
- static void hostpad_dfs_update_background_chain(struct hostapd_iface *iface)
- {
- 	int sec = 0;
-@@ -1213,14 +1297,8 @@ static int hostapd_dfs_start_channel_switch(struct hostapd_iface *iface)
- 	int secondary_channel;
- 	u8 oper_centr_freq_seg0_idx;
- 	u8 oper_centr_freq_seg1_idx;
--	u8 new_vht_oper_chwidth;
- 	enum dfs_channel_type channel_type = DFS_AVAILABLE;
--	struct csa_settings csa_settings;
--	unsigned int i;
--	int err = 1;
--	struct hostapd_hw_modes *cmode = iface->current_mode;
- 	u8 current_vht_oper_chwidth = hostapd_get_oper_chwidth(iface->conf);
--	int ieee80211_mode = IEEE80211_MODE_AP;
- 
- 	wpa_printf(MSG_DEBUG, "%s called (CAC active: %s, CSA active: %s)",
- 		   __func__, iface->cac_started ? "yes" : "no",
-@@ -1283,73 +1361,12 @@ static int hostapd_dfs_start_channel_switch(struct hostapd_iface *iface)
- 		}
- 	}
- 
--	wpa_printf(MSG_DEBUG, "DFS will switch to a new channel %d",
--		   channel->chan);
--	wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_NEW_CHANNEL
--		"freq=%d chan=%d sec_chan=%d", channel->freq,
--		channel->chan, secondary_channel);
--
--	new_vht_oper_chwidth = hostapd_get_oper_chwidth(iface->conf);
--	hostapd_set_oper_chwidth(iface->conf, current_vht_oper_chwidth);
--
--	/* Setup CSA request */
--	os_memset(&csa_settings, 0, sizeof(csa_settings));
--	csa_settings.cs_count = 5;
--	csa_settings.block_tx = 1;
--#ifdef CONFIG_MESH
--	if (iface->mconf)
--		ieee80211_mode = IEEE80211_MODE_MESH;
--#endif /* CONFIG_MESH */
--	err = hostapd_set_freq_params(&csa_settings.freq_params,
--				      iface->conf->hw_mode,
--				      channel->freq,
--				      channel->chan,
--				      iface->conf->enable_edmg,
--				      iface->conf->edmg_channel,
--				      iface->conf->ieee80211n,
--				      iface->conf->ieee80211ac,
--				      iface->conf->ieee80211ax,
--				      secondary_channel,
--				      new_vht_oper_chwidth,
--				      oper_centr_freq_seg0_idx,
--				      oper_centr_freq_seg1_idx,
--				      cmode->vht_capab,
--				      &cmode->he_capab[ieee80211_mode]);
--
--	if (err) {
--		wpa_printf(MSG_ERROR, "DFS failed to calculate CSA freq params");
--		hostapd_disable_iface(iface);
--		return err;
--	}
--
--	for (i = 0; i < iface->num_bss; i++) {
--		err = hostapd_switch_channel(iface->bss[i], &csa_settings);
--		if (err)
--			break;
--	}
--
--	if (err) {
--		wpa_printf(MSG_WARNING, "DFS failed to schedule CSA (%d) - trying fallback",
--			   err);
--		iface->freq = channel->freq;
--		iface->conf->channel = channel->chan;
--		iface->conf->secondary_channel = secondary_channel;
--		hostapd_set_oper_chwidth(iface->conf, new_vht_oper_chwidth);
--		hostapd_set_oper_centr_freq_seg0_idx(iface->conf,
--						     oper_centr_freq_seg0_idx);
--		hostapd_set_oper_centr_freq_seg1_idx(iface->conf,
--						     oper_centr_freq_seg1_idx);
--
--		hostapd_disable_iface(iface);
--		hostapd_enable_iface(iface);
--		return 0;
--	}
--
--	/* Channel configuration will be updated once CSA completes and
--	 * ch_switch_notify event is received */
--
--	wpa_printf(MSG_DEBUG, "DFS waiting channel switch event");
--	return 0;
-+	return hostapd_dfs_request_channel_switch(iface, channel->chan,
-+						  channel->freq,
-+						  secondary_channel,
-+						  current_vht_oper_chwidth,
-+						  oper_centr_freq_seg0_idx,
-+						  oper_centr_freq_seg1_idx);
- }
- 
- 
--- 
-2.29.2
-
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/807-DFS-Enable-CSA-for-background-radar-detection.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/807-DFS-Enable-CSA-for-background-radar-detection.patch
deleted file mode 100644
index bd258ad..0000000
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/807-DFS-Enable-CSA-for-background-radar-detection.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 4445b818de45ca5511e81dc535606a368c97b86d Mon Sep 17 00:00:00 2001
-From: dzou <dzou@company.com>
-Date: Sun, 5 Jun 2022 23:22:12 +0800
-Subject: [PATCH 907/911] DFS: Enable CSA for background radar detection
-
-Rely on hostapd_dfs_request_channel_switch() to enable CSA for
-background radar detection switching back to the selected channel.
-
-Tested-by: Owen Peng <owen.peng@mediatek.com>
-Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
----
- src/ap/dfs.c | 10 +++++++---
- 1 file changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/src/ap/dfs.c b/src/ap/dfs.c
-index 000b411be..1224acd31 100644
---- a/src/ap/dfs.c
-+++ b/src/ap/dfs.c
-@@ -1108,6 +1108,8 @@ hostapd_dfs_is_background_event(struct hostapd_iface *iface, int freq)
- static int
- hostapd_dfs_start_channel_switch_background(struct hostapd_iface *iface)
- {
-+	u8 current_vht_oper_chwidth = hostapd_get_oper_chwidth(iface->conf);
-+
- 	iface->conf->channel = iface->radar_background.channel;
- 	iface->freq = iface->radar_background.freq;
- 	iface->conf->secondary_channel =
-@@ -1118,10 +1120,12 @@ hostapd_dfs_start_channel_switch_background(struct hostapd_iface *iface)
- 		iface->conf, iface->radar_background.centr_freq_seg1_idx);
- 
- 	hostpad_dfs_update_background_chain(iface);
--	hostapd_disable_iface(iface);
--	hostapd_enable_iface(iface);
- 
--	return 0;
-+	return hostapd_dfs_request_channel_switch(
-+		iface, iface->conf->channel, iface->freq,
-+		iface->conf->secondary_channel, current_vht_oper_chwidth,
-+		hostapd_get_oper_centr_freq_seg0_idx(iface->conf),
-+		hostapd_get_oper_centr_freq_seg1_idx(iface->conf));
- }
- 
- 
--- 
-2.29.2
-
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/808-DFS-Switch-to-background-radar-channel-if-available.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/808-DFS-Switch-to-background-radar-channel-if-available.patch
deleted file mode 100644
index b6b0b86..0000000
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/808-DFS-Switch-to-background-radar-channel-if-available.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From 5615f7c8b3abded17febe19e0d4f9914b561285c Mon Sep 17 00:00:00 2001
-From: dzou <dzou@company.com>
-Date: Sun, 5 Jun 2022 23:22:49 +0800
-Subject: [PATCH 908/911] DFS: Switch to background radar channel if available
-
-On radar detection on the main chain switch to the channel monitored
-by the background chain if we have already performed the CAC there.
-If a radar pattern is reported on the background chain, just select a
-new random channel according to the regulations for monitoring.
-
-Tested-by: Owen Peng <owen.peng@mediatek.com>
-Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
----
- src/ap/dfs.c | 65 ++++++++++++++++++++++++++++++++++++++++++++++------
- 1 file changed, 58 insertions(+), 7 deletions(-)
-
-diff --git a/src/ap/dfs.c b/src/ap/dfs.c
-index 1224acd31..d63caaee3 100644
---- a/src/ap/dfs.c
-+++ b/src/ap/dfs.c
-@@ -1295,6 +1295,53 @@ static int hostapd_dfs_start_channel_switch_cac(struct hostapd_iface *iface)
- }
- 
- 
-+static int
-+hostapd_dfs_background_start_channel_switch(struct hostapd_iface *iface,
-+					    int freq)
-+{
-+	if (!dfs_use_radar_background(iface))
-+		return -1; /* Background radar chain not supported. */
-+
-+	wpa_printf(MSG_DEBUG,
-+		   "%s called (background CAC active: %s, CSA active: %s)",
-+		   __func__, iface->radar_background.cac_started ? "yes" : "no",
-+		   hostapd_csa_in_progress(iface) ? "yes" : "no");
-+
-+	/* Check if CSA in progress */
-+	if (hostapd_csa_in_progress(iface))
-+		return 0;
-+
-+	if (hostapd_dfs_is_background_event(iface, freq)) {
-+		/*
-+		 * Radar pattern is reported on the background chain.
-+		 * Just select a new random channel according to the
-+		 * regulations for monitoring.
-+		 */
-+		hostpad_dfs_update_background_chain(iface);
-+		return 0;
-+	}
-+
-+	/*
-+	 * If background radar detection is supported and the radar channel
-+	 * monitored by the background chain is available switch to it without
-+	 * waiting for the CAC.
-+	 */
-+	if (iface->radar_background.channel == -1)
-+		return -1; /* Background radar chain not available. */
-+
-+	if (iface->radar_background.cac_started) {
-+		/*
-+		 * Background channel not available yet. Perform CAC on the
-+		 * main chain.
-+		 */
-+		iface->radar_background.temp_ch = 1;
-+		return -1;
-+	}
-+
-+	return hostapd_dfs_start_channel_switch_background(iface);
-+}
-+
-+
- static int hostapd_dfs_start_channel_switch(struct hostapd_iface *iface)
- {
- 	struct hostapd_channel_data *channel;
-@@ -1399,15 +1446,19 @@ int hostapd_dfs_radar_detected(struct hostapd_iface *iface, int freq,
- 	if (!res)
- 		return 0;
- 
--	/* Skip if reported radar event not overlapped our channels */
--	res = dfs_are_channels_overlapped(iface, freq, chan_width, cf1, cf2);
--	if (!res)
--		return 0;
-+	if (!hostapd_dfs_is_background_event(iface, freq)) {
-+		/* Skip if reported radar event not overlapped our channels */
-+		if (!dfs_are_channels_overlapped(iface, freq, chan_width,
-+						 cf1, cf2))
-+			return 0;
-+	}
- 
--	/* radar detected while operating, switch the channel. */
--	res = hostapd_dfs_start_channel_switch(iface);
-+	if (hostapd_dfs_background_start_channel_switch(iface, freq)) {
-+		/* Radar detected while operating, switch the channel. */
-+		return hostapd_dfs_start_channel_switch(iface);
-+	}
- 
--	return res;
-+	return 0;
- }
- 
- 
--- 
-2.29.2
-
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/809-hostapd-Allow-enabling-background-radar.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/809-hostapd-Allow-enabling-background-radar.patch
deleted file mode 100644
index 82ce87f..0000000
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/809-hostapd-Allow-enabling-background-radar.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From c9205badb2f9bc385c3cdfe74ceae033fc3e4923 Mon Sep 17 00:00:00 2001
-From: dzou <dzou@company.com>
-Date: Sun, 5 Jun 2022 23:23:40 +0800
-Subject: [PATCH 909/911] hostapd: Allow enabling background radar
-
-This feature does not work on all radios that advertise this feature
-with the current driver implementation, and possibly some users don't
-want to use it even if it works fine, so disable it by default for now,
-but let users enable it as desired with enable_background_radar=1.
-
-Signed-off-by: Ben Greear <greearb@candelatech.com>
----
- hostapd/config_file.c |  2 ++
- hostapd/hostapd.conf  | 10 ++++++++++
- src/ap/ap_config.h    |  1 +
- src/ap/dfs.c          |  3 ++-
- 4 files changed, 15 insertions(+), 1 deletion(-)
-
-diff --git a/hostapd/config_file.c b/hostapd/config_file.c
-index 0d3554375..b423789b8 100644
---- a/hostapd/config_file.c
-+++ b/hostapd/config_file.c
-@@ -3211,6 +3211,8 @@ static int hostapd_config_fill(struct hostapd_config *conf,
- 		conf->acs_freq_list_present = 1;
- 	} else if (os_strcmp(buf, "acs_exclude_6ghz_non_psc") == 0) {
- 		conf->acs_exclude_6ghz_non_psc = atoi(pos);
-+	} else if (os_strcmp(buf, "enable_background_radar") == 0) {
-+		conf->enable_background_radar = atoi(pos);
- 	} else if (os_strcmp(buf, "min_tx_power") == 0) {
- 		int val = atoi(pos);
- 
-diff --git a/hostapd/hostapd.conf b/hostapd/hostapd.conf
-index 3c2019f73..f839ba708 100644
---- a/hostapd/hostapd.conf
-+++ b/hostapd/hostapd.conf
-@@ -225,6 +225,16 @@ channel=1
- # Default behavior is to include all PSC and non-PSC channels.
- #acs_exclude_6ghz_non_psc=1
- 
-+# Enable background radar feature
-+# This feature allows CAC to be run on dedicated radio RF chains while the
-+# radio(s) are otherwise running normal AP activities on other channels.
-+# This requires that the driver and the radio support it before feature will
-+# actually be enabled, i.e., this parameter value is ignored with drivers that
-+# do not advertise support for the capability.
-+# 0: Leave disabled (default)
-+# 1: Enable it.
-+#enable_background_radar=1
-+
- # Set minimum permitted max TX power (in dBm) for ACS and DFS channel selection.
- # (default 0, i.e., not constraint)
- #min_tx_power=20
-diff --git a/src/ap/ap_config.h b/src/ap/ap_config.h
-index f3aff369f..8ed7c2aa1 100644
---- a/src/ap/ap_config.h
-+++ b/src/ap/ap_config.h
-@@ -964,6 +964,7 @@ struct hostapd_config {
- 	u8 min_tx_power;
- 	enum hostapd_hw_mode hw_mode; /* HOSTAPD_MODE_IEEE80211A, .. */
- 	int acs_exclude_6ghz_non_psc;
-+	int enable_background_radar;
- 	enum {
- 		LONG_PREAMBLE = 0,
- 		SHORT_PREAMBLE = 1
-diff --git a/src/ap/dfs.c b/src/ap/dfs.c
-index d63caaee3..48cd93507 100644
---- a/src/ap/dfs.c
-+++ b/src/ap/dfs.c
-@@ -35,7 +35,8 @@ dfs_downgrade_bandwidth(struct hostapd_iface *iface, int *secondary_channel,
- 
- static bool dfs_use_radar_background(struct hostapd_iface *iface)
- {
--	return iface->drv_flags2 & WPA_DRIVER_RADAR_BACKGROUND;
-+	return (iface->drv_flags2 & WPA_DRIVER_RADAR_BACKGROUND) &&
-+		iface->conf->enable_background_radar;
- }
- 
- 
--- 
-2.29.2
-
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/810-nl80211-Verify-that-nla_put_flag-succeeds-for-backgr.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/810-nl80211-Verify-that-nla_put_flag-succeeds-for-backgr.patch
deleted file mode 100644
index d9561da..0000000
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/810-nl80211-Verify-that-nla_put_flag-succeeds-for-backgr.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From f16170300d304dbfc7c4d265101136ae2dc912b0 Mon Sep 17 00:00:00 2001
-From: dzou <dzou@company.com>
-Date: Sun, 5 Jun 2022 23:24:20 +0800
-Subject: [PATCH 910/911] nl80211: Verify that nla_put_flag() succeeds for
- background radar
-
-Signed-off-by: Jouni Malinen <j@w1.fi>
----
- src/drivers/driver_nl80211.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
-index 6cf127ca7..9de01f391 100644
---- a/src/drivers/driver_nl80211.c
-+++ b/src/drivers/driver_nl80211.c
-@@ -4980,8 +4980,9 @@ static int nl80211_put_freq_params(struct nl_msg *msg,
- 				NL80211_CHAN_NO_HT))
- 			return -ENOBUFS;
- 	}
--	if (freq->radar_background)
--		nla_put_flag(msg, NL80211_ATTR_RADAR_BACKGROUND);
-+	if (freq->radar_background &&
-+	    nla_put_flag(msg, NL80211_ATTR_RADAR_BACKGROUND))
-+		return -ENOBUFS;
- 
- 	return 0;
- }
--- 
-2.29.2
-
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/811-Sync-with-mac80211-next.git-include-uapi-linux-nl802.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/811-Sync-with-mac80211-next.git-include-uapi-linux-nl802.patch
deleted file mode 100644
index 7d1ae65..0000000
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/811-Sync-with-mac80211-next.git-include-uapi-linux-nl802.patch
+++ /dev/null
@@ -1,414 +0,0 @@
-From 3204e0177e4d67fb1500c8296ee062110852383b Mon Sep 17 00:00:00 2001
-From: dzou <dzou@company.com>
-Date: Sun, 5 Jun 2022 23:46:07 +0800
-Subject: [PATCH 911/911] Sync with mac80211-next.git
- include/uapi/linux/nl80211.h
-
-This brings in nl80211 definitions as of 2022-01-04. In addition, update
-nl80211_command_to_string() to cover the new defined commands.
-
-Signed-off-by: Jouni Malinen <j@w1.fi>
----
- src/drivers/driver_nl80211_event.c |   7 +
- src/drivers/nl80211_copy.h         | 230 +++++++++++++++++++++++++++--
- 2 files changed, 226 insertions(+), 11 deletions(-)
-
-diff --git a/src/drivers/driver_nl80211_event.c b/src/drivers/driver_nl80211_event.c
-index c44cc27e8..83d32ed6d 100644
---- a/src/drivers/driver_nl80211_event.c
-+++ b/src/drivers/driver_nl80211_event.c
-@@ -172,6 +172,13 @@ static const char * nl80211_command_to_string(enum nl80211_commands cmd)
- 	C2S(NL80211_CMD_UNPROT_BEACON)
- 	C2S(NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS)
- 	C2S(NL80211_CMD_SET_SAR_SPECS)
-+	C2S(NL80211_CMD_OBSS_COLOR_COLLISION)
-+	C2S(NL80211_CMD_COLOR_CHANGE_REQUEST)
-+	C2S(NL80211_CMD_COLOR_CHANGE_STARTED)
-+	C2S(NL80211_CMD_COLOR_CHANGE_ABORTED)
-+	C2S(NL80211_CMD_COLOR_CHANGE_COMPLETED)
-+	C2S(NL80211_CMD_SET_FILS_AAD)
-+	C2S(NL80211_CMD_ASSOC_COMEBACK)
- 	C2S(__NL80211_CMD_AFTER_LAST)
- 	}
- #undef C2S
-diff --git a/src/drivers/nl80211_copy.h b/src/drivers/nl80211_copy.h
-index f962c06e9..195a238a3 100644
---- a/src/drivers/nl80211_copy.h
-+++ b/src/drivers/nl80211_copy.h
-@@ -11,7 +11,7 @@
-  * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
-  * Copyright 2008 Colin McCabe <colin@cozybit.com>
-  * Copyright 2015-2017	Intel Deutschland GmbH
-- * Copyright (C) 2018-2020 Intel Corporation
-+ * Copyright (C) 2018-2021 Intel Corporation
-  *
-  * Permission to use, copy, modify, and/or distribute this software for any
-  * purpose with or without fee is hereby granted, provided that the above
-@@ -300,6 +300,29 @@
-  * the interface goes down.
-  */
- 
-+/**
-+ * DOC: FILS shared key crypto offload
-+ *
-+ * This feature is applicable to drivers running in AP mode.
-+ *
-+ * FILS shared key crypto offload can be advertised by drivers by setting
-+ * @NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD flag. The drivers that support
-+ * FILS shared key crypto offload should be able to encrypt and decrypt
-+ * association frames for FILS shared key authentication as per IEEE 802.11ai.
-+ * With this capability, for FILS key derivation, drivers depend on userspace.
-+ *
-+ * After FILS key derivation, userspace shares the FILS AAD details with the
-+ * driver and the driver stores the same to use in decryption of association
-+ * request and in encryption of association response. The below parameters
-+ * should be given to the driver in %NL80211_CMD_SET_FILS_AAD.
-+ *	%NL80211_ATTR_MAC - STA MAC address, used for storing FILS AAD per STA
-+ *	%NL80211_ATTR_FILS_KEK - Used for encryption or decryption
-+ *	%NL80211_ATTR_FILS_NONCES - Used for encryption or decryption
-+ *			(STA Nonce 16 bytes followed by AP Nonce 16 bytes)
-+ *
-+ * Once the association is done, the driver cleans the FILS AAD data.
-+ */
-+
- /**
-  * enum nl80211_commands - supported nl80211 commands
-  *
-@@ -337,7 +360,10 @@
-  * @NL80211_CMD_DEL_INTERFACE: Virtual interface was deleted, has attributes
-  *	%NL80211_ATTR_IFINDEX and %NL80211_ATTR_WIPHY. Can also be sent from
-  *	userspace to request deletion of a virtual interface, then requires
-- *	attribute %NL80211_ATTR_IFINDEX.
-+ *	attribute %NL80211_ATTR_IFINDEX. If multiple BSSID advertisements are
-+ *	enabled using %NL80211_ATTR_MBSSID_CONFIG, %NL80211_ATTR_MBSSID_ELEMS,
-+ *	and if this command is used for the transmitting interface, then all
-+ *	the non-transmitting interfaces are deleted as well.
-  *
-  * @NL80211_CMD_GET_KEY: Get sequence counter information for a key specified
-  *	by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC.
-@@ -1185,6 +1211,32 @@
-  *	passed using %NL80211_ATTR_SAR_SPEC. %NL80211_ATTR_WIPHY is used to
-  *	specify the wiphy index to be applied to.
-  *
-+ * @NL80211_CMD_OBSS_COLOR_COLLISION: This notification is sent out whenever
-+ *	mac80211/drv detects a bss color collision.
-+ *
-+ * @NL80211_CMD_COLOR_CHANGE_REQUEST: This command is used to indicate that
-+ *	userspace wants to change the BSS color.
-+ *
-+ * @NL80211_CMD_COLOR_CHANGE_STARTED: Notify userland, that a color change has
-+ *	started
-+ *
-+ * @NL80211_CMD_COLOR_CHANGE_ABORTED: Notify userland, that the color change has
-+ *	been aborted
-+ *
-+ * @NL80211_CMD_COLOR_CHANGE_COMPLETED: Notify userland that the color change
-+ *	has completed
-+ *
-+ * @NL80211_CMD_SET_FILS_AAD: Set FILS AAD data to the driver using -
-+ *	&NL80211_ATTR_MAC - for STA MAC address
-+ *	&NL80211_ATTR_FILS_KEK - for KEK
-+ *	&NL80211_ATTR_FILS_NONCES - for FILS Nonces
-+ *		(STA Nonce 16 bytes followed by AP Nonce 16 bytes)
-+ *
-+ * @NL80211_CMD_ASSOC_COMEBACK: notification about an association
-+ *      temporal rejection with comeback. The event includes %NL80211_ATTR_MAC
-+ *      to describe the BSSID address of the AP and %NL80211_ATTR_TIMEOUT to
-+ *      specify the timeout value.
-+ *
-  * @NL80211_CMD_MAX: highest used command number
-  * @__NL80211_CMD_AFTER_LAST: internal use
-  */
-@@ -1417,6 +1469,18 @@ enum nl80211_commands {
- 
- 	NL80211_CMD_SET_SAR_SPECS,
- 
-+	NL80211_CMD_OBSS_COLOR_COLLISION,
-+
-+	NL80211_CMD_COLOR_CHANGE_REQUEST,
-+
-+	NL80211_CMD_COLOR_CHANGE_STARTED,
-+	NL80211_CMD_COLOR_CHANGE_ABORTED,
-+	NL80211_CMD_COLOR_CHANGE_COMPLETED,
-+
-+	NL80211_CMD_SET_FILS_AAD,
-+
-+	NL80211_CMD_ASSOC_COMEBACK,
-+
- 	/* add new commands above here */
- 
- 	/* used to define NL80211_CMD_MAX below */
-@@ -2413,7 +2477,9 @@ enum nl80211_commands {
-  *	space supports external authentication. This attribute shall be used
-  *	with %NL80211_CMD_CONNECT and %NL80211_CMD_START_AP request. The driver
-  *	may offload authentication processing to user space if this capability
-- *	is indicated in the respective requests from the user space.
-+ *	is indicated in the respective requests from the user space. (This flag
-+ *	attribute deprecated for %NL80211_CMD_START_AP, use
-+ *	%NL80211_ATTR_AP_SETTINGS_FLAGS)
-  *
-  * @NL80211_ATTR_NSS: Station's New/updated  RX_NSS value notified using this
-  *	u8 attribute. This is used with %NL80211_CMD_STA_OPMODE_CHANGED.
-@@ -2560,6 +2626,39 @@ enum nl80211_commands {
-  *	disassoc events to indicate that an immediate reconnect to the AP
-  *	is desired.
-  *
-+ * @NL80211_ATTR_OBSS_COLOR_BITMAP: bitmap of the u64 BSS colors for the
-+ *	%NL80211_CMD_OBSS_COLOR_COLLISION event.
-+ *
-+ * @NL80211_ATTR_COLOR_CHANGE_COUNT: u8 attribute specifying the number of TBTT's
-+ *	until the color switch event.
-+ * @NL80211_ATTR_COLOR_CHANGE_COLOR: u8 attribute specifying the color that we are
-+ *	switching to
-+ * @NL80211_ATTR_COLOR_CHANGE_ELEMS: Nested set of attributes containing the IE
-+ *	information for the time while performing a color switch.
-+ *
-+ * @NL80211_ATTR_MBSSID_CONFIG: Nested attribute for multiple BSSID
-+ *	advertisements (MBSSID) parameters in AP mode.
-+ *	Kernel uses this attribute to indicate the driver's support for MBSSID
-+ *	and enhanced multi-BSSID advertisements (EMA AP) to the userspace.
-+ *	Userspace should use this attribute to configure per interface MBSSID
-+ *	parameters.
-+ *	See &enum nl80211_mbssid_config_attributes for details.
-+ *
-+ * @NL80211_ATTR_MBSSID_ELEMS: Nested parameter to pass multiple BSSID elements.
-+ *	Mandatory parameter for the transmitting interface to enable MBSSID.
-+ *	Optional for the non-transmitting interfaces.
-+ *
-+ * @NL80211_ATTR_RADAR_BACKGROUND: Configure dedicated offchannel chain
-+ *	available for radar/CAC detection on some hw. This chain can't be used
-+ *	to transmit or receive frames and it is bounded to a running wdev.
-+ *	Background radar/CAC detection allows to avoid the CAC downtime
-+ *	switching on a different channel during CAC detection on the selected
-+ *	radar channel.
-+ *
-+ * @NL80211_ATTR_AP_SETTINGS_FLAGS: u32 attribute contains ap settings flags,
-+ *	enumerated in &enum nl80211_ap_settings_flags. This attribute shall be
-+ *	used with %NL80211_CMD_START_AP request.
-+ *
-  * @NUM_NL80211_ATTR: total number of nl80211_attrs available
-  * @NL80211_ATTR_MAX: highest attribute number currently defined
-  * @__NL80211_ATTR_AFTER_LAST: internal use
-@@ -3057,6 +3156,19 @@ enum nl80211_attrs {
- 
- 	NL80211_ATTR_DISABLE_HE,
- 
-+	NL80211_ATTR_OBSS_COLOR_BITMAP,
-+
-+	NL80211_ATTR_COLOR_CHANGE_COUNT,
-+	NL80211_ATTR_COLOR_CHANGE_COLOR,
-+	NL80211_ATTR_COLOR_CHANGE_ELEMS,
-+
-+	NL80211_ATTR_MBSSID_CONFIG,
-+	NL80211_ATTR_MBSSID_ELEMS,
-+
-+	NL80211_ATTR_RADAR_BACKGROUND,
-+
-+	NL80211_ATTR_AP_SETTINGS_FLAGS,
-+
- 	/* add attributes here, update the policy in nl80211.c */
- 
- 	__NL80211_ATTR_AFTER_LAST,
-@@ -3650,11 +3762,12 @@ enum nl80211_mpath_info {
-  *     capabilities IE
-  * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE: HE PPE thresholds information as
-  *     defined in HE capabilities IE
-- * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band HE capability attribute currently
-- *     defined
-  * @NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA: HE 6GHz band capabilities (__le16),
-  *	given for all 6 GHz band channels
-+ * @NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS: vendor element capabilities that are
-+ *	advertised on this band/for this iftype (binary)
-  * @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use
-+ * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band attribute currently defined
-  */
- enum nl80211_band_iftype_attr {
- 	__NL80211_BAND_IFTYPE_ATTR_INVALID,
-@@ -3665,6 +3778,7 @@ enum nl80211_band_iftype_attr {
- 	NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET,
- 	NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
- 	NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA,
-+	NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS,
- 
- 	/* keep last */
- 	__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST,
-@@ -4887,6 +5001,7 @@ enum nl80211_txrate_gi {
-  * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 69.12 GHz)
-  * @NL80211_BAND_6GHZ: around 6 GHz band (5.9 - 7.2 GHz)
-  * @NL80211_BAND_S1GHZ: around 900MHz, supported by S1G PHYs
-+ * @NL80211_BAND_LC: light communication band (placeholder)
-  * @NUM_NL80211_BANDS: number of bands, avoid using this in userspace
-  *	since newer kernel versions may support more bands
-  */
-@@ -4896,6 +5011,7 @@ enum nl80211_band {
- 	NL80211_BAND_60GHZ,
- 	NL80211_BAND_6GHZ,
- 	NL80211_BAND_S1GHZ,
-+	NL80211_BAND_LC,
- 
- 	NUM_NL80211_BANDS,
- };
-@@ -5462,7 +5578,7 @@ enum nl80211_iface_limit_attrs {
-  *	=> allows 8 of AP/GO that can have BI gcd >= min gcd
-  *
-  *	numbers = [ #{STA} <= 2 ], channels = 2, max = 2
-- *	=> allows two STAs on different channels
-+ *	=> allows two STAs on the same or on different channels
-  *
-  *	numbers = [ #{STA} <= 1, #{P2P-client,P2P-GO} <= 3 ], max = 4
-  *	=> allows a STA plus three P2P interfaces
-@@ -5507,7 +5623,7 @@ enum nl80211_if_combination_attrs {
-  * @NL80211_PLINK_ESTAB: mesh peer link is established
-  * @NL80211_PLINK_HOLDING: mesh peer link is being closed or cancelled
-  * @NL80211_PLINK_BLOCKED: all frames transmitted from this mesh
-- *	plink are discarded
-+ *	plink are discarded, except for authentication frames
-  * @NUM_NL80211_PLINK_STATES: number of peer link states
-  * @MAX_NL80211_PLINK_STATES: highest numerical value of plink states
-  */
-@@ -5644,13 +5760,15 @@ enum nl80211_tdls_operation {
- 	NL80211_TDLS_DISABLE_LINK,
- };
- 
--/*
-+/**
-  * enum nl80211_ap_sme_features - device-integrated AP features
-- * Reserved for future use, no bits are defined in
-- * NL80211_ATTR_DEVICE_AP_SME yet.
-+ * @NL80211_AP_SME_SA_QUERY_OFFLOAD: SA Query procedures offloaded to driver
-+ *	when user space indicates support for SA Query procedures offload during
-+ *	"start ap" with %NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT.
-+ */
- enum nl80211_ap_sme_features {
-+	NL80211_AP_SME_SA_QUERY_OFFLOAD		= 1 << 0,
- };
-- */
- 
- /**
-  * enum nl80211_feature_flags - device/driver features
-@@ -5950,6 +6068,17 @@ enum nl80211_feature_flags {
-  *      frame protection for all management frames exchanged during the
-  *      negotiation and range measurement procedure.
-  *
-+ * @NL80211_EXT_FEATURE_BSS_COLOR: The driver supports BSS color collision
-+ *	detection and change announcemnts.
-+ *
-+ * @NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD: Driver running in AP mode supports
-+ *	FILS encryption and decryption for (Re)Association Request and Response
-+ *	frames. Userspace has to share FILS AAD details to the driver by using
-+ *	@NL80211_CMD_SET_FILS_AAD.
-+ *
-+ * @NL80211_EXT_FEATURE_RADAR_BACKGROUND: Device supports background radar/CAC
-+ *	detection.
-+ *
-  * @NUM_NL80211_EXT_FEATURES: number of extended features.
-  * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
-  */
-@@ -6014,6 +6143,9 @@ enum nl80211_ext_feature_index {
- 	NL80211_EXT_FEATURE_SECURE_LTF,
- 	NL80211_EXT_FEATURE_SECURE_RTT,
- 	NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE,
-+	NL80211_EXT_FEATURE_BSS_COLOR,
-+	NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
-+	NL80211_EXT_FEATURE_RADAR_BACKGROUND,
- 
- 	/* add new features before the definition below */
- 	NUM_NL80211_EXT_FEATURES,
-@@ -6912,6 +7044,9 @@ enum nl80211_peer_measurement_ftm_capa {
-  * @NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK: negotiate for LMR feedback. Only
-  *	valid if either %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED or
-  *	%NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set.
-+ * @NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR: optional. The BSS color of the
-+ *	responder. Only valid if %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED
-+ *	or %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED is set.
-  *
-  * @NUM_NL80211_PMSR_FTM_REQ_ATTR: internal
-  * @NL80211_PMSR_FTM_REQ_ATTR_MAX: highest attribute number
-@@ -6931,6 +7066,7 @@ enum nl80211_peer_measurement_ftm_req {
- 	NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED,
- 	NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED,
- 	NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK,
-+	NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR,
- 
- 	/* keep last */
- 	NUM_NL80211_PMSR_FTM_REQ_ATTR,
-@@ -7299,4 +7435,76 @@ enum nl80211_sar_specs_attrs {
- 	NL80211_SAR_ATTR_SPECS_MAX = __NL80211_SAR_ATTR_SPECS_LAST - 1,
- };
- 
-+/**
-+ * enum nl80211_mbssid_config_attributes - multiple BSSID (MBSSID) and enhanced
-+ * multi-BSSID advertisements (EMA) in AP mode.
-+ * Kernel uses some of these attributes to advertise driver's support for
-+ * MBSSID and EMA.
-+ * Remaining attributes should be used by the userspace to configure the
-+ * features.
-+ *
-+ * @__NL80211_MBSSID_CONFIG_ATTR_INVALID: Invalid
-+ *
-+ * @NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES: Used by the kernel to advertise
-+ *	the maximum number of MBSSID interfaces supported by the driver.
-+ *	Driver should indicate MBSSID support by setting
-+ *	wiphy->mbssid_max_interfaces to a value more than or equal to 2.
-+ *
-+ * @NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY: Used by the kernel
-+ *	to advertise the maximum profile periodicity supported by the driver
-+ *	if EMA is enabled. Driver should indicate EMA support to the userspace
-+ *	by setting wiphy->ema_max_profile_periodicity to
-+ *	a non-zero value.
-+ *
-+ * @NL80211_MBSSID_CONFIG_ATTR_INDEX: Mandatory parameter to pass the index of
-+ *	this BSS (u8) in the multiple BSSID set.
-+ *	Value must be set to 0 for the transmitting interface and non-zero for
-+ *	all non-transmitting interfaces. The userspace will be responsible
-+ *	for using unique indices for the interfaces.
-+ *	Range: 0 to wiphy->mbssid_max_interfaces-1.
-+ *
-+ * @NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX: Mandatory parameter for
-+ *	a non-transmitted profile which provides the interface index (u32) of
-+ *	the transmitted profile. The value must match one of the interface
-+ *	indices advertised by the kernel. Optional if the interface being set up
-+ *	is the transmitting one, however, if provided then the value must match
-+ *	the interface index of the same.
-+ *
-+ * @NL80211_MBSSID_CONFIG_ATTR_EMA: Flag used to enable EMA AP feature.
-+ *	Setting this flag is permitted only if the driver advertises EMA support
-+ *	by setting wiphy->ema_max_profile_periodicity to non-zero.
-+ *
-+ * @__NL80211_MBSSID_CONFIG_ATTR_LAST: Internal
-+ * @NL80211_MBSSID_CONFIG_ATTR_MAX: highest attribute
-+ */
-+enum nl80211_mbssid_config_attributes {
-+	__NL80211_MBSSID_CONFIG_ATTR_INVALID,
-+
-+	NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES,
-+	NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY,
-+	NL80211_MBSSID_CONFIG_ATTR_INDEX,
-+	NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX,
-+	NL80211_MBSSID_CONFIG_ATTR_EMA,
-+
-+	/* keep last */
-+	__NL80211_MBSSID_CONFIG_ATTR_LAST,
-+	NL80211_MBSSID_CONFIG_ATTR_MAX = __NL80211_MBSSID_CONFIG_ATTR_LAST - 1,
-+};
-+
-+/**
-+ * enum nl80211_ap_settings_flags - AP settings flags
-+ *
-+ * @NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT: AP supports external
-+ *	authentication.
-+ * @NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT: Userspace supports SA Query
-+ *	procedures offload to driver. If driver advertises
-+ *	%NL80211_AP_SME_SA_QUERY_OFFLOAD in AP SME features, userspace shall
-+ *	ignore SA Query procedures and validations when this flag is set by
-+ *	userspace.
-+ */
-+enum nl80211_ap_settings_flags {
-+	NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT	= 1 << 0,
-+	NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT	= 1 << 1,
-+};
-+
- #endif /* __LINUX_NL80211_H */
--- 
-2.29.2
-