[rdk-b][common][bsp][Refactor and sync kernel/wifi from Openwrt]

[Description]
Refactor and sync kernel/wifi from Openwrt

[Release-log]
N/A

diff --git a/recipes-connectivity/wpa-supplicant/files/patches/001-wolfssl-init-RNG-with-ECC-key.patch b/recipes-connectivity/wpa-supplicant/files/patches/001-wolfssl-init-RNG-with-ECC-key.patch
index 994aa30..269dcaa 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/001-wolfssl-init-RNG-with-ECC-key.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/001-wolfssl-init-RNG-with-ECC-key.patch
@@ -16,7 +16,7 @@
 
 --- a/src/crypto/crypto_wolfssl.c
 +++ b/src/crypto/crypto_wolfssl.c
-@@ -1307,6 +1307,7 @@ int ecc_projective_add_point(ecc_point *
+@@ -1340,6 +1340,7 @@ int ecc_projective_add_point(ecc_point *
  
  struct crypto_ec {
  	ecc_key key;
@@ -24,7 +24,7 @@
  	mp_int a;
  	mp_int prime;
  	mp_int order;
-@@ -1361,6 +1362,8 @@ struct crypto_ec * crypto_ec_init(int gr
+@@ -1394,6 +1395,8 @@ struct crypto_ec * crypto_ec_init(int gr
  		return NULL;
  
  	if (wc_ecc_init(&e->key) != 0 ||
@@ -33,7 +33,7 @@
  	    wc_ecc_set_curve(&e->key, 0, curve_id) != 0 ||
  	    mp_init(&e->a) != MP_OKAY ||
  	    mp_init(&e->prime) != MP_OKAY ||
-@@ -1392,6 +1395,7 @@ void crypto_ec_deinit(struct crypto_ec*
+@@ -1425,6 +1428,7 @@ void crypto_ec_deinit(struct crypto_ec*
  	mp_clear(&e->order);
  	mp_clear(&e->prime);
  	mp_clear(&e->a);
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch b/recipes-connectivity/wpa-supplicant/files/patches/010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch
index 16d24d1..6bc48ab 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/010-mesh-Allow-DFS-channels-to-be-selected-if-dfs-is-ena.patch
@@ -14,7 +14,7 @@
 
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -2409,7 +2409,7 @@ static int drv_supports_vht(struct wpa_s
+@@ -2436,7 +2436,7 @@ static int drv_supports_vht(struct wpa_s
  }
  
  
@@ -23,7 +23,7 @@
  {
  	int i;
  
-@@ -2418,7 +2418,10 @@ static bool ibss_mesh_is_80mhz_avail(int
+@@ -2445,7 +2445,10 @@ static bool ibss_mesh_is_80mhz_avail(int
  
  		chan = hw_get_channel_chan(mode, i, NULL);
  		if (!chan ||
@@ -35,7 +35,7 @@
  			return false;
  	}
  
-@@ -2447,6 +2450,8 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -2474,6 +2477,8 @@ void ibss_mesh_setup_freq(struct wpa_sup
  	int chwidth, seg0, seg1;
  	u32 vht_caps = 0;
  	bool is_24ghz, is_6ghz;
@@ -44,7 +44,7 @@
  
  	freq->freq = ssid->frequency;
  
-@@ -2543,8 +2548,11 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -2570,8 +2575,11 @@ void ibss_mesh_setup_freq(struct wpa_sup
  		return;
  
  	/* Check primary channel flags */
@@ -57,7 +57,7 @@
  
  	freq->channel = pri_chan->chan;
  
-@@ -2577,8 +2585,11 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -2604,8 +2612,11 @@ void ibss_mesh_setup_freq(struct wpa_sup
  		return;
  
  	/* Check secondary channel flags */
@@ -70,7 +70,7 @@
  
  	if (ht40 == -1) {
  		if (!(pri_chan->flag & HOSTAPD_CHAN_HT40MINUS))
-@@ -2667,7 +2678,7 @@ skip_to_6ghz:
+@@ -2694,7 +2705,7 @@ skip_to_6ghz:
  		return;
  
  	/* Back to HT configuration if channel not usable */
@@ -78,8 +78,8 @@
 +	if (!ibss_mesh_is_80mhz_avail(channel, mode, dfs_enabled))
  		return;
  
- 	chwidth = CHANWIDTH_80MHZ;
-@@ -2681,7 +2692,7 @@ skip_to_6ghz:
+ 	chwidth = CONF_OPER_CHWIDTH_80MHZ;
+@@ -2708,7 +2719,7 @@ skip_to_6ghz:
  		 * above; check the remaining four 20 MHz channels for the total
  		 * of 160 MHz bandwidth.
  		 */
@@ -88,7 +88,7 @@
  			return;
  
  		for (j = 0; j < ARRAY_SIZE(bw160); j++) {
-@@ -2711,10 +2722,12 @@ skip_to_6ghz:
+@@ -2738,10 +2749,12 @@ skip_to_6ghz:
  				if (!chan)
  					continue;
  
@@ -103,4 +103,4 @@
 +						continue;
  
  				/* Found a suitable second segment for 80+80 */
- 				chwidth = CHANWIDTH_80P80MHZ;
+ 				chwidth = CONF_OPER_CHWIDTH_80P80MHZ;
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/011-mesh-use-deterministic-channel-on-channel-switch.patch b/recipes-connectivity/wpa-supplicant/files/patches/011-mesh-use-deterministic-channel-on-channel-switch.patch
index 1faeacf..32a4479 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/011-mesh-use-deterministic-channel-on-channel-switch.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/011-mesh-use-deterministic-channel-on-channel-switch.patch
@@ -28,8 +28,8 @@
 +#include "crypto/crypto.h"
  
  
- static int dfs_get_used_n_chans(struct hostapd_iface *iface, int *seg1)
-@@ -483,9 +484,14 @@ dfs_get_valid_channel(struct hostapd_ifa
+ enum dfs_channel_type {
+@@ -515,9 +516,14 @@ dfs_get_valid_channel(struct hostapd_ifa
  	int num_available_chandefs;
  	int chan_idx, chan_idx2;
  	int sec_chan_idx_80p80 = -1;
@@ -44,7 +44,7 @@
  	wpa_printf(MSG_DEBUG, "DFS: Selecting random channel");
  	*secondary_channel = 0;
  	*oper_centr_freq_seg0_idx = 0;
-@@ -505,8 +511,20 @@ dfs_get_valid_channel(struct hostapd_ifa
+@@ -537,8 +543,20 @@ dfs_get_valid_channel(struct hostapd_ifa
  	if (num_available_chandefs == 0)
  		return NULL;
  
@@ -64,11 +64,11 @@
  		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) {
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -9895,6 +9895,10 @@ static int nl80211_switch_channel(void *
+@@ -9948,6 +9948,10 @@ static int nl80211_switch_channel(void *
  	if (ret)
  		goto error;
  
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/021-fix-sta-add-after-previous-connection.patch b/recipes-connectivity/wpa-supplicant/files/patches/021-fix-sta-add-after-previous-connection.patch
index ac02ec5..80b23bd 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/021-fix-sta-add-after-previous-connection.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/021-fix-sta-add-after-previous-connection.patch
@@ -1,6 +1,6 @@
 --- a/src/ap/ieee802_11.c
 +++ b/src/ap/ieee802_11.c
-@@ -4944,6 +4944,13 @@ static int add_associated_sta(struct hos
+@@ -4963,6 +4963,13 @@ static int add_associated_sta(struct hos
  	 * drivers to accept the STA parameter configuration. Since this is
  	 * after a new FT-over-DS exchange, a new TK has been derived, so key
  	 * reinstallation is not a concern for this case.
@@ -14,7 +14,7 @@
  	 */
  	wpa_printf(MSG_DEBUG, "Add associated STA " MACSTR
  		   " (added_unassoc=%d auth_alg=%u ft_over_ds=%u reassoc=%d authorized=%d ft_tk=%d fils_tk=%d)",
-@@ -4957,7 +4964,8 @@ static int add_associated_sta(struct hos
+@@ -4976,7 +4983,8 @@ static int add_associated_sta(struct hos
  	    (!(sta->flags & WLAN_STA_AUTHORIZED) ||
  	     (reassoc && sta->ft_over_ds && sta->auth_alg == WLAN_AUTH_FT) ||
  	     (!wpa_auth_sta_ft_tk_already_set(sta->wpa_sm) &&
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/022-hostapd-fix-use-of-uninitialized-stack-variables.patch b/recipes-connectivity/wpa-supplicant/files/patches/022-hostapd-fix-use-of-uninitialized-stack-variables.patch
index c7da33f..25801da 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/022-hostapd-fix-use-of-uninitialized-stack-variables.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/022-hostapd-fix-use-of-uninitialized-stack-variables.patch
@@ -14,7 +14,7 @@
 
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -3431,7 +3431,7 @@ static int hostapd_change_config_freq(st
+@@ -3453,7 +3453,7 @@ static int hostapd_change_config_freq(st
  				      struct hostapd_freq_params *old_params)
  {
  	int channel;
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/030-driver_nl80211-rewrite-neigh-code-to-not-depend-on-l.patch b/recipes-connectivity/wpa-supplicant/files/patches/030-driver_nl80211-rewrite-neigh-code-to-not-depend-on-l.patch
index ade0b11..988fbbc 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/030-driver_nl80211-rewrite-neigh-code-to-not-depend-on-l.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/030-driver_nl80211-rewrite-neigh-code-to-not-depend-on-l.patch
@@ -20,7 +20,7 @@
  #include <linux/rtnetlink.h>
  #include <netpacket/packet.h>
  #include <linux/errqueue.h>
-@@ -5300,26 +5297,29 @@ fail:
+@@ -5344,26 +5341,29 @@ fail:
  
  static void rtnl_neigh_delete_fdb_entry(struct i802_bss *bss, const u8 *addr)
  {
@@ -64,7 +64,7 @@
  	if (err < 0) {
  		wpa_printf(MSG_DEBUG, "nl80211: bridge FDB entry delete for "
  			   MACSTR " ifindex=%d failed: %s", MAC2STR(addr),
-@@ -5329,9 +5329,8 @@ static void rtnl_neigh_delete_fdb_entry(
+@@ -5373,9 +5373,8 @@ static void rtnl_neigh_delete_fdb_entry(
  			   MACSTR, MAC2STR(addr));
  	}
  
@@ -76,7 +76,7 @@
  }
  
  
-@@ -7714,7 +7713,6 @@ static void *i802_init(struct hostapd_da
+@@ -7763,7 +7762,6 @@ static void *i802_init(struct hostapd_da
  	    (params->num_bridge == 0 || !params->bridge[0]))
  		add_ifidx(drv, br_ifindex, drv->ifindex);
  
@@ -84,7 +84,7 @@
  	if (bss->added_if_into_bridge || bss->already_in_bridge) {
  		int err;
  
-@@ -7731,7 +7729,6 @@ static void *i802_init(struct hostapd_da
+@@ -7780,7 +7778,6 @@ static void *i802_init(struct hostapd_da
  			goto failed;
  		}
  	}
@@ -92,7 +92,7 @@
  
  	if (drv->capa.flags2 & WPA_DRIVER_FLAGS2_CONTROL_PORT_RX) {
  		wpa_printf(MSG_DEBUG,
-@@ -10678,13 +10675,14 @@ static int wpa_driver_br_add_ip_neigh(vo
+@@ -10813,13 +10810,14 @@ static int wpa_driver_br_add_ip_neigh(vo
  				      const u8 *ipaddr, int prefixlen,
  				      const u8 *addr)
  {
@@ -112,7 +112,7 @@
  	int res;
  
  	if (!ipaddr || prefixlen == 0 || !addr)
-@@ -10703,85 +10701,66 @@ static int wpa_driver_br_add_ip_neigh(vo
+@@ -10838,85 +10836,66 @@ static int wpa_driver_br_add_ip_neigh(vo
  	}
  
  	if (version == 4) {
@@ -220,7 +220,7 @@
  		addrsize = 16;
  	} else {
  		return -EINVAL;
-@@ -10799,41 +10778,30 @@ static int wpa_driver_br_delete_ip_neigh
+@@ -10934,41 +10913,30 @@ static int wpa_driver_br_delete_ip_neigh
  		return -1;
  	}
  
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/040-mesh-allow-processing-authentication-frames-in-block.patch b/recipes-connectivity/wpa-supplicant/files/patches/040-mesh-allow-processing-authentication-frames-in-block.patch
index 6d9fd81..6b34cd4 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/040-mesh-allow-processing-authentication-frames-in-block.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/040-mesh-allow-processing-authentication-frames-in-block.patch
@@ -16,7 +16,7 @@
 
 --- a/src/ap/ieee802_11.c
 +++ b/src/ap/ieee802_11.c
-@@ -3761,15 +3761,6 @@ static void handle_auth(struct hostapd_d
+@@ -3781,15 +3781,6 @@ static void handle_auth(struct hostapd_d
  				       seq_ctrl);
  			return;
  		}
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/050-build_fix.patch b/recipes-connectivity/wpa-supplicant/files/patches/050-build_fix.patch
index 2652a83..c9268f5 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/050-build_fix.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/050-build_fix.patch
@@ -1,6 +1,6 @@
 --- a/hostapd/Makefile
 +++ b/hostapd/Makefile
-@@ -323,6 +323,7 @@ ifdef CONFIG_FILS
+@@ -324,6 +324,7 @@ ifdef CONFIG_FILS
  CFLAGS += -DCONFIG_FILS
  OBJS += ../src/ap/fils_hlp.o
  NEED_SHA384=y
@@ -10,7 +10,7 @@
  CFLAGS += -DCONFIG_FILS_SK_PFS
 --- a/wpa_supplicant/Makefile
 +++ b/wpa_supplicant/Makefile
-@@ -312,6 +312,7 @@ endif
+@@ -320,6 +320,7 @@ endif
  ifdef CONFIG_FILS
  CFLAGS += -DCONFIG_FILS
  NEED_SHA384=y
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/200-multicall.patch b/recipes-connectivity/wpa-supplicant/files/patches/200-multicall.patch
index ad82e02..576c671 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/200-multicall.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/200-multicall.patch
@@ -18,7 +18,7 @@
  OBJS += ../src/ap/vlan_init.o
  OBJS += ../src/ap/vlan_ifconfig.o
  OBJS += ../src/ap/vlan.o
-@@ -350,10 +352,14 @@ CFLAGS += -DCONFIG_MBO
+@@ -357,10 +359,14 @@ CFLAGS += -DCONFIG_MBO
  OBJS += ../src/ap/mbo_ap.o
  endif
  
@@ -36,7 +36,7 @@
  LIBS += $(DRV_AP_LIBS)
  
  ifdef CONFIG_L2_PACKET
-@@ -1281,6 +1287,12 @@ install: $(addprefix $(DESTDIR)$(BINDIR)
+@@ -1291,6 +1297,12 @@ install: $(addprefix $(DESTDIR)$(BINDIR)
  _OBJS_VAR := OBJS
  include ../src/objs.mk
  
@@ -49,7 +49,7 @@
  hostapd: $(OBJS)
  	$(Q)$(CC) $(LDFLAGS) -o hostapd $(OBJS) $(LIBS)
  	@$(E) "  LD " $@
-@@ -1355,6 +1367,12 @@ include ../src/objs.mk
+@@ -1365,6 +1377,12 @@ include ../src/objs.mk
  _OBJS_VAR := SOBJS
  include ../src/objs.mk
  
@@ -64,15 +64,15 @@
  	@$(E) "  LD " $@
 --- a/wpa_supplicant/Makefile
 +++ b/wpa_supplicant/Makefile
-@@ -17,6 +17,7 @@ endif
+@@ -10,6 +10,7 @@ ALL += dbus/fi.w1.wpa_supplicant1.servic
  EXTRA_TARGETS=dynamic_eap_methods
  
  CONFIG_FILE=.config
 +-include $(if $(MULTICALL),../hostapd/.config)
  include ../src/build.rules
  
- ifdef LIBS
-@@ -363,7 +364,9 @@ endif
+ ifdef CONFIG_BUILD_WPA_CLIENT_SO
+@@ -371,7 +372,9 @@ endif
  ifdef CONFIG_IBSS_RSN
  NEED_RSN_AUTHENTICATOR=y
  CFLAGS += -DCONFIG_IBSS_RSN
@@ -82,7 +82,7 @@
  OBJS += ibss_rsn.o
  endif
  
-@@ -900,6 +903,10 @@ ifdef CONFIG_DYNAMIC_EAP_METHODS
+@@ -912,6 +915,10 @@ ifdef CONFIG_DYNAMIC_EAP_METHODS
  CFLAGS += -DCONFIG_DYNAMIC_EAP_METHODS
  LIBS += -ldl -rdynamic
  endif
@@ -93,7 +93,7 @@
  endif
  
  ifdef CONFIG_AP
-@@ -907,9 +914,11 @@ NEED_EAP_COMMON=y
+@@ -919,9 +926,11 @@ NEED_EAP_COMMON=y
  NEED_RSN_AUTHENTICATOR=y
  CFLAGS += -DCONFIG_AP
  OBJS += ap.o
@@ -105,7 +105,7 @@
  OBJS += ../src/ap/hostapd.o
  OBJS += ../src/ap/wpa_auth_glue.o
  OBJS += ../src/ap/utils.o
-@@ -989,6 +998,12 @@ endif
+@@ -1008,6 +1017,12 @@ endif
  ifdef CONFIG_HS20
  OBJS += ../src/ap/hs20.o
  endif
@@ -118,7 +118,7 @@
  endif
  
  ifdef CONFIG_MBO
-@@ -997,7 +1012,9 @@ CFLAGS += -DCONFIG_MBO
+@@ -1016,7 +1031,9 @@ CFLAGS += -DCONFIG_MBO
  endif
  
  ifdef NEED_RSN_AUTHENTICATOR
@@ -128,7 +128,7 @@
  NEED_AES_WRAP=y
  OBJS += ../src/ap/wpa_auth.o
  OBJS += ../src/ap/wpa_auth_ie.o
-@@ -1891,6 +1908,12 @@ wpa_priv: $(BCHECK) $(OBJS_priv)
+@@ -1920,6 +1937,12 @@ wpa_priv: $(BCHECK) $(OBJS_priv)
  
  _OBJS_VAR := OBJS
  include ../src/objs.mk
@@ -141,7 +141,7 @@
  wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)
  	$(Q)$(LDO) $(LDFLAGS) -o wpa_supplicant $(OBJS) $(LIBS) $(EXTRALIBS)
  	@$(E) "  LD " $@
-@@ -2023,6 +2046,12 @@ eap_gpsk.so: $(SRC_EAP_GPSK)
+@@ -2052,6 +2075,12 @@ eap_gpsk.so: $(SRC_EAP_GPSK)
  	$(Q)sed -e 's|\@BINDIR\@|$(BINDIR)|g' $< >$@
  	@$(E) "  sed" $<
  
@@ -156,7 +156,7 @@
  wpa_cli.exe: wpa_cli
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -6033,8 +6033,8 @@ union wpa_event_data {
+@@ -6171,8 +6171,8 @@ union wpa_event_data {
   * Driver wrapper code should call this function whenever an event is received
   * from the driver.
   */
@@ -167,7 +167,7 @@
  
  /**
   * wpa_supplicant_event_global - Report a driver event for wpa_supplicant
-@@ -6046,7 +6046,7 @@ void wpa_supplicant_event(void *ctx, enu
+@@ -6184,7 +6184,7 @@ void wpa_supplicant_event(void *ctx, enu
   * Same as wpa_supplicant_event(), but we search for the interface in
   * wpa_global.
   */
@@ -178,7 +178,7 @@
  /*
 --- a/src/ap/drv_callbacks.c
 +++ b/src/ap/drv_callbacks.c
-@@ -1842,8 +1842,8 @@ err:
+@@ -1872,8 +1872,8 @@ err:
  #endif /* CONFIG_OWE */
  
  
@@ -189,7 +189,7 @@
  {
  	struct hostapd_data *hapd = ctx;
  #ifndef CONFIG_NO_STDOUT_DEBUG
-@@ -2088,7 +2088,7 @@ void wpa_supplicant_event(void *ctx, enu
+@@ -2145,7 +2145,7 @@ void wpa_supplicant_event(void *ctx, enu
  }
  
  
@@ -220,7 +220,7 @@
  				 union wpa_event_data *data)
  {
  	struct wpa_priv_global *global = ctx;
-@@ -1215,6 +1215,8 @@ int main(int argc, char *argv[])
+@@ -1216,6 +1216,8 @@ int main(int argc, char *argv[])
  	if (os_program_init())
  		return -1;
  
@@ -231,7 +231,7 @@
  	os_memset(&global, 0, sizeof(global));
 --- a/wpa_supplicant/events.c
 +++ b/wpa_supplicant/events.c
-@@ -4891,8 +4891,8 @@ static void wpas_event_unprot_beacon(str
+@@ -4953,8 +4953,8 @@ static void wpas_event_unprot_beacon(str
  }
  
  
@@ -242,7 +242,7 @@
  {
  	struct wpa_supplicant *wpa_s = ctx;
  	int resched;
-@@ -5745,7 +5745,7 @@ void wpa_supplicant_event(void *ctx, enu
+@@ -5813,7 +5813,7 @@ void wpa_supplicant_event(void *ctx, enu
  }
  
  
@@ -253,7 +253,7 @@
  	struct wpa_supplicant *wpa_s;
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -7043,7 +7043,6 @@ struct wpa_interface * wpa_supplicant_ma
+@@ -7087,7 +7087,6 @@ struct wpa_interface * wpa_supplicant_ma
  	return NULL;
  }
  
@@ -261,7 +261,7 @@
  /**
   * wpa_supplicant_match_existing - Match existing interfaces
   * @global: Pointer to global data from wpa_supplicant_init()
-@@ -7078,6 +7077,11 @@ static int wpa_supplicant_match_existing
+@@ -7122,6 +7121,11 @@ static int wpa_supplicant_match_existing
  
  #endif /* CONFIG_MATCH_IFACE */
  
@@ -273,7 +273,7 @@
  
  /**
   * wpa_supplicant_add_iface - Add a new network interface
-@@ -7334,6 +7338,8 @@ struct wpa_global * wpa_supplicant_init(
+@@ -7378,6 +7382,8 @@ struct wpa_global * wpa_supplicant_init(
  #ifndef CONFIG_NO_WPA_MSG
  	wpa_msg_register_ifname_cb(wpa_supplicant_msg_ifname_cb);
  #endif /* CONFIG_NO_WPA_MSG */
@@ -284,7 +284,7 @@
  		wpa_debug_open_file(params->wpa_debug_file_path);
 --- a/hostapd/main.c
 +++ b/hostapd/main.c
-@@ -590,6 +590,11 @@ fail:
+@@ -591,6 +591,11 @@ fail:
  	return -1;
  }
  
@@ -296,14 +296,14 @@
  
  #ifdef CONFIG_WPS
  static int gen_uuid(const char *txt_addr)
-@@ -683,6 +688,8 @@ int main(int argc, char *argv[])
+@@ -684,6 +689,8 @@ int main(int argc, char *argv[])
  		return -1;
  #endif /* CONFIG_DPP */
  
 +	wpa_supplicant_event = hostapd_wpa_event;
 +	wpa_supplicant_event_global = hostapd_wpa_event_global;
  	for (;;) {
- 		c = getopt(argc, argv, "b:Bde:f:hi:KP:sSTtu:vg:G:");
+ 		c = getopt(argc, argv, "b:Bde:f:hi:KP:sSTtu:vg:G:q");
  		if (c < 0)
 --- a/src/drivers/drivers.c
 +++ b/src/drivers/drivers.c
@@ -320,7 +320,7 @@
  {
 --- a/wpa_supplicant/eapol_test.c
 +++ b/wpa_supplicant/eapol_test.c
-@@ -30,7 +30,12 @@
+@@ -31,7 +31,12 @@
  #include "ctrl_iface.h"
  #include "pcsc_funcs.h"
  #include "wpas_glue.h"
@@ -333,7 +333,7 @@
  
  const struct wpa_driver_ops *const wpa_drivers[] = { NULL };
  
-@@ -1291,6 +1296,10 @@ static void usage(void)
+@@ -1303,6 +1308,10 @@ static void usage(void)
  	       "option several times.\n");
  }
  
@@ -344,7 +344,7 @@
  
  int main(int argc, char *argv[])
  {
-@@ -1311,6 +1320,8 @@ int main(int argc, char *argv[])
+@@ -1323,6 +1332,8 @@ int main(int argc, char *argv[])
  	if (os_program_init())
  		return -1;
  
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/300-noscan.patch b/recipes-connectivity/wpa-supplicant/files/patches/300-noscan.patch
index 01a33d0..a0e00c4 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/300-noscan.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/300-noscan.patch
@@ -1,6 +1,6 @@
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -3474,6 +3474,10 @@ static int hostapd_config_fill(struct ho
+@@ -3439,6 +3439,10 @@ static int hostapd_config_fill(struct ho
  		if (bss->ocv && !bss->ieee80211w)
  			bss->ieee80211w = 1;
  #endif /* CONFIG_OCV */
@@ -13,7 +13,7 @@
  	} else if (os_strcmp(buf, "ht_capab") == 0) {
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -1014,6 +1014,8 @@ struct hostapd_config {
+@@ -1043,6 +1043,8 @@ struct hostapd_config {
  
  	int ht_op_mode_fixed;
  	u16 ht_capab;
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/301-mesh-noscan.patch b/recipes-connectivity/wpa-supplicant/files/patches/301-mesh-noscan.patch
index e682efb..9985401 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/301-mesh-noscan.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/301-mesh-noscan.patch
@@ -1,6 +1,6 @@
 --- a/wpa_supplicant/config.c
 +++ b/wpa_supplicant/config.c
-@@ -2532,6 +2532,7 @@ static const struct parse_data ssid_fiel
+@@ -2555,6 +2555,7 @@ static const struct parse_data ssid_fiel
  #else /* CONFIG_MESH */
  	{ INT_RANGE(mode, 0, 4) },
  #endif /* CONFIG_MESH */
@@ -10,7 +10,7 @@
  	{ STR(id_str) },
 --- a/wpa_supplicant/config_file.c
 +++ b/wpa_supplicant/config_file.c
-@@ -769,6 +769,7 @@ static void wpa_config_write_network(FIL
+@@ -766,6 +766,7 @@ static void wpa_config_write_network(FIL
  #endif /* IEEE8021X_EAPOL */
  	INT(mode);
  	INT(no_auto_peer);
@@ -20,7 +20,7 @@
  	INT(enable_edmg);
 --- a/wpa_supplicant/mesh.c
 +++ b/wpa_supplicant/mesh.c
-@@ -505,6 +505,8 @@ static int wpa_supplicant_mesh_init(stru
+@@ -506,6 +506,8 @@ static int wpa_supplicant_mesh_init(stru
  			   frequency);
  		goto out_free;
  	}
@@ -31,7 +31,7 @@
  		/*
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -2436,7 +2436,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -2463,7 +2463,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
  	int ieee80211_mode = wpas_mode_to_ieee80211_mode(ssid->mode);
  	enum hostapd_hw_mode hw_mode;
  	struct hostapd_hw_modes *mode = NULL;
@@ -40,7 +40,7 @@
  			   184, 192 };
  	int bw80[] = { 5180, 5260, 5500, 5580, 5660, 5745, 5955,
  		       6035, 6115, 6195, 6275, 6355, 6435, 6515,
-@@ -2444,7 +2444,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -2471,7 +2471,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
  	int bw160[] = { 5955, 6115, 6275, 6435, 6595, 6755, 6915 };
  	struct hostapd_channel_data *pri_chan = NULL, *sec_chan = NULL;
  	u8 channel;
@@ -49,7 +49,7 @@
  	unsigned int j, k;
  	struct hostapd_freq_params vht_freq;
  	int chwidth, seg0, seg1;
-@@ -2535,7 +2535,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -2562,7 +2562,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
  #endif /* CONFIG_HE_OVERRIDES */
  
  	/* Setup higher BW only for 5 GHz */
@@ -60,7 +60,7 @@
  	for (chan_idx = 0; chan_idx < mode->num_channels; chan_idx++) {
 --- a/wpa_supplicant/config_ssid.h
 +++ b/wpa_supplicant/config_ssid.h
-@@ -974,6 +974,8 @@ struct wpa_ssid {
+@@ -981,6 +981,8 @@ struct wpa_ssid {
  	 */
  	int no_auto_peer;
  
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/310-rescan_immediately.patch b/recipes-connectivity/wpa-supplicant/files/patches/310-rescan_immediately.patch
index b0c1cb8..2c25419 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/310-rescan_immediately.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/310-rescan_immediately.patch
@@ -1,6 +1,6 @@
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -5377,7 +5377,7 @@ wpa_supplicant_alloc(struct wpa_supplica
+@@ -5419,7 +5419,7 @@ wpa_supplicant_alloc(struct wpa_supplica
  	if (wpa_s == NULL)
  		return NULL;
  	wpa_s->scan_req = INITIAL_SCAN_REQ;
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/330-nl80211_fix_set_freq.patch b/recipes-connectivity/wpa-supplicant/files/patches/330-nl80211_fix_set_freq.patch
index 37033c3..8218a43 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/330-nl80211_fix_set_freq.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/330-nl80211_fix_set_freq.patch
@@ -1,8 +1,8 @@
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -4986,7 +4986,7 @@ static int nl80211_set_channel(struct i8
- 		   freq->freq, freq->ht_enabled, freq->vht_enabled, freq->he_enabled,
- 		   freq->bandwidth, freq->center_freq1, freq->center_freq2);
+@@ -5022,7 +5022,7 @@ static int nl80211_set_channel(struct i8
+ 		   freq->he_enabled, freq->eht_enabled, freq->bandwidth,
+ 		   freq->center_freq1, freq->center_freq2);
  
 -	msg = nl80211_drv_msg(drv, 0, set_chan ? NL80211_CMD_SET_CHANNEL :
 +	msg = nl80211_bss_msg(bss, 0, set_chan ? NL80211_CMD_SET_CHANNEL :
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/340-reload_freq_change.patch b/recipes-connectivity/wpa-supplicant/files/patches/340-reload_freq_change.patch
index 89259f2..b591074 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/340-reload_freq_change.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/340-reload_freq_change.patch
@@ -1,6 +1,6 @@
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -115,6 +115,29 @@ static void hostapd_reload_bss(struct ho
+@@ -119,6 +119,29 @@ static void hostapd_reload_bss(struct ho
  #endif /* CONFIG_NO_RADIUS */
  
  	ssid = &hapd->conf->ssid;
@@ -30,7 +30,7 @@
  	if (!ssid->wpa_psk_set && ssid->wpa_psk && !ssid->wpa_psk->next &&
  	    ssid->wpa_passphrase_set && ssid->wpa_passphrase) {
  		/*
-@@ -216,6 +238,7 @@ int hostapd_reload_config(struct hostapd
+@@ -220,6 +243,7 @@ int hostapd_reload_config(struct hostapd
  	struct hostapd_data *hapd = iface->bss[0];
  	struct hostapd_config *newconf, *oldconf;
  	size_t j;
@@ -38,7 +38,7 @@
  
  	if (iface->config_fname == NULL) {
  		/* Only in-memory config in use - assume it has been updated */
-@@ -266,24 +289,20 @@ int hostapd_reload_config(struct hostapd
+@@ -270,24 +294,20 @@ int hostapd_reload_config(struct hostapd
  	}
  	iface->conf = newconf;
  
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/341-mesh-ctrl-iface-channel-switch.patch b/recipes-connectivity/wpa-supplicant/files/patches/341-mesh-ctrl-iface-channel-switch.patch
index b13dcb0..29a3799 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/341-mesh-ctrl-iface-channel-switch.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/341-mesh-ctrl-iface-channel-switch.patch
@@ -1,6 +1,6 @@
 --- a/wpa_supplicant/ap.c
 +++ b/wpa_supplicant/ap.c
-@@ -1611,15 +1611,35 @@ int ap_switch_channel(struct wpa_supplic
+@@ -1803,15 +1803,35 @@ int ap_switch_channel(struct wpa_supplic
  
  
  #ifdef CONFIG_CTRL_IFACE
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/350-nl80211_del_beacon_bss.patch b/recipes-connectivity/wpa-supplicant/files/patches/350-nl80211_del_beacon_bss.patch
index 8a2beb3..85298df 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/350-nl80211_del_beacon_bss.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/350-nl80211_del_beacon_bss.patch
@@ -1,6 +1,6 @@
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -2932,11 +2932,11 @@ static int wpa_driver_nl80211_del_beacon
+@@ -2938,11 +2938,11 @@ static int wpa_driver_nl80211_del_beacon
  	struct wpa_driver_nl80211_data *drv = bss->drv;
  
  	wpa_printf(MSG_DEBUG, "nl80211: Remove beacon (ifindex=%d)",
@@ -14,7 +14,7 @@
  	return send_and_recv_msgs(drv, msg, NULL, NULL, NULL, NULL);
  }
  
-@@ -5650,7 +5650,7 @@ static void nl80211_teardown_ap(struct i
+@@ -5661,7 +5661,7 @@ static void nl80211_teardown_ap(struct i
  		nl80211_mgmt_unsubscribe(bss, "AP teardown");
  
  	nl80211_put_wiphy_data_ap(bss);
@@ -23,7 +23,7 @@
  }
  
  
-@@ -8104,8 +8104,6 @@ static int wpa_driver_nl80211_if_remove(
+@@ -8120,8 +8120,6 @@ static int wpa_driver_nl80211_if_remove(
  	} else {
  		wpa_printf(MSG_DEBUG, "nl80211: First BSS - reassign context");
  		nl80211_teardown_ap(bss);
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/360-ctrl_iface_reload.patch b/recipes-connectivity/wpa-supplicant/files/patches/360-ctrl_iface_reload.patch
index 7f3aa91..7699541 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/360-ctrl_iface_reload.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/360-ctrl_iface_reload.patch
@@ -78,7 +78,7 @@
  
  #ifdef NEED_AP_MLME
  static int hostapd_ctrl_iface_sa_query(struct hostapd_data *hapd,
-@@ -3771,6 +3828,8 @@ static int hostapd_ctrl_iface_receive_pr
+@@ -3449,6 +3506,8 @@ static int hostapd_ctrl_iface_receive_pr
  	} else if (os_strncmp(buf, "VENDOR ", 7) == 0) {
  		reply_len = hostapd_ctrl_iface_vendor(hapd, buf + 7, reply,
  						      reply_size);
@@ -89,7 +89,7 @@
  #ifdef RADIUS_SERVER
 --- a/src/ap/ctrl_iface_ap.c
 +++ b/src/ap/ctrl_iface_ap.c
-@@ -927,7 +927,13 @@ int hostapd_parse_csa_settings(const cha
+@@ -945,7 +945,13 @@ int hostapd_parse_csa_settings(const cha
  
  int hostapd_ctrl_iface_stop_ap(struct hostapd_data *hapd)
  {
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/370-ap_sta_support.patch b/recipes-connectivity/wpa-supplicant/files/patches/370-ap_sta_support.patch
index c81c841..6faaffc 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/370-ap_sta_support.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/370-ap_sta_support.patch
@@ -1,6 +1,6 @@
 --- a/wpa_supplicant/Makefile
 +++ b/wpa_supplicant/Makefile
-@@ -108,6 +108,8 @@ OBJS_c += ../src/utils/common.o
+@@ -115,6 +115,8 @@ OBJS_c += ../src/utils/common.o
  OBJS_c += ../src/common/cli.o
  OBJS += wmm_ac.o
  
@@ -30,7 +30,7 @@
  	dst->flags = src->flags;
  	os_memcpy(dst->bssid, src->bssid, ETH_ALEN);
  	dst->freq = src->freq;
-@@ -294,6 +299,15 @@ static void wpa_bss_copy_res(struct wpa_
+@@ -295,6 +300,15 @@ static void wpa_bss_copy_res(struct wpa_
  	dst->est_throughput = src->est_throughput;
  	dst->snr = src->snr;
  
@@ -61,7 +61,7 @@
  	/** Beacon interval in TUs (host byte order) */
 --- a/wpa_supplicant/main.c
 +++ b/wpa_supplicant/main.c
-@@ -34,7 +34,7 @@ static void usage(void)
+@@ -35,7 +35,7 @@ static void usage(void)
  	       "vW] [-P<pid file>] "
  	       "[-g<global ctrl>] \\\n"
  	       "        [-G<group>] \\\n"
@@ -70,7 +70,7 @@
  	       "[-p<driver_param>] \\\n"
  	       "        [-b<br_ifname>] [-e<entropy file>]"
  #ifdef CONFIG_DEBUG_FILE
-@@ -74,6 +74,7 @@ static void usage(void)
+@@ -75,6 +75,7 @@ static void usage(void)
  	       "  -g = global ctrl_interface\n"
  	       "  -G = global ctrl_interface group\n"
  	       "  -h = show this help text\n"
@@ -78,7 +78,7 @@
  	       "  -i = interface name\n"
  	       "  -I = additional configuration file\n"
  	       "  -K = include keys (passwords, etc.) in debug output\n"
-@@ -201,7 +202,7 @@ int main(int argc, char *argv[])
+@@ -202,7 +203,7 @@ int main(int argc, char *argv[])
  
  	for (;;) {
  		c = getopt(argc, argv,
@@ -87,7 +87,7 @@
  		if (c < 0)
  			break;
  		switch (c) {
-@@ -248,6 +249,9 @@ int main(int argc, char *argv[])
+@@ -249,6 +250,9 @@ int main(int argc, char *argv[])
  			usage();
  			exitcode = 0;
  			goto out;
@@ -99,7 +99,7 @@
  			break;
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -130,6 +130,54 @@ static void wpas_update_fils_connect_par
+@@ -131,6 +131,54 @@ static void wpas_update_fils_connect_par
  static void wpas_update_owe_connect_params(struct wpa_supplicant *wpa_s);
  #endif /* CONFIG_OWE */
  
@@ -154,7 +154,7 @@
  
  #ifdef CONFIG_WEP
  /* Configure default/group WEP keys for static WEP */
-@@ -1015,6 +1063,8 @@ void wpa_supplicant_set_state(struct wpa
+@@ -1016,6 +1064,8 @@ void wpa_supplicant_set_state(struct wpa
  
  		sme_sched_obss_scan(wpa_s, 1);
  
@@ -163,7 +163,7 @@
  #if defined(CONFIG_FILS) && defined(IEEE8021X_EAPOL)
  		if (!fils_hlp_sent && ssid && ssid->eap.erp)
  			update_fils_connect_params = true;
-@@ -1025,6 +1075,8 @@ void wpa_supplicant_set_state(struct wpa
+@@ -1026,6 +1076,8 @@ void wpa_supplicant_set_state(struct wpa
  #endif /* CONFIG_OWE */
  	} else if (state == WPA_DISCONNECTED || state == WPA_ASSOCIATING ||
  		   state == WPA_ASSOCIATED) {
@@ -172,7 +172,7 @@
  		wpa_s->new_connection = 1;
  		wpa_drv_set_operstate(wpa_s, 0);
  #ifndef IEEE8021X_EAPOL
-@@ -2308,6 +2360,8 @@ void wpa_supplicant_associate(struct wpa
+@@ -2335,6 +2387,8 @@ void wpa_supplicant_associate(struct wpa
  			return;
  		}
  		wpa_s->current_bss = bss;
@@ -181,7 +181,7 @@
  #else /* CONFIG_MESH */
  		wpa_msg(wpa_s, MSG_ERROR,
  			"mesh mode support not included in the build");
-@@ -6650,6 +6704,16 @@ static int wpa_supplicant_init_iface(str
+@@ -6693,6 +6747,16 @@ static int wpa_supplicant_init_iface(str
  			   sizeof(wpa_s->bridge_ifname));
  	}
  
@@ -198,7 +198,7 @@
  	/* RSNA Supplicant Key Management - INITIALIZE */
  	eapol_sm_notify_portEnabled(wpa_s->eapol, false);
  	eapol_sm_notify_portValid(wpa_s->eapol, false);
-@@ -6987,6 +7051,11 @@ static void wpa_supplicant_deinit_iface(
+@@ -7031,6 +7095,11 @@ static void wpa_supplicant_deinit_iface(
  	if (terminate)
  		wpa_msg(wpa_s, MSG_INFO, WPA_EVENT_TERMINATING);
  
@@ -212,7 +212,7 @@
  
 --- a/wpa_supplicant/wpa_supplicant_i.h
 +++ b/wpa_supplicant/wpa_supplicant_i.h
-@@ -104,6 +104,11 @@ struct wpa_interface {
+@@ -105,6 +105,11 @@ struct wpa_interface {
  	const char *ifname;
  
  	/**
@@ -224,7 +224,7 @@
  	 * bridge_ifname - Optional bridge interface name
  	 *
  	 * If the driver interface (ifname) is included in a Linux bridge
-@@ -718,6 +723,8 @@ struct wpa_supplicant {
+@@ -717,6 +722,8 @@ struct wpa_supplicant {
  #endif /* CONFIG_CTRL_IFACE_BINDER */
  	char bridge_ifname[16];
  
@@ -235,7 +235,7 @@
  
 --- a/hostapd/ctrl_iface.c
 +++ b/hostapd/ctrl_iface.c
-@@ -2889,6 +2889,12 @@ static int hostapd_ctrl_iface_chan_switc
+@@ -2641,6 +2641,12 @@ static int hostapd_ctrl_iface_chan_switc
  		return 0;
  	}
  
@@ -247,10 +247,10 @@
 +
  	for (i = 0; i < iface->num_bss; i++) {
  
- 		/* Save CHAN_SWITCH VHT and HE config */
+ 		/* Save CHAN_SWITCH VHT, HE, and EHT config */
 --- a/src/ap/beacon.c
 +++ b/src/ap/beacon.c
-@@ -1791,11 +1791,6 @@ static int __ieee802_11_set_beacon(struc
+@@ -1903,11 +1903,6 @@ static int __ieee802_11_set_beacon(struc
  		return -1;
  	}
  
@@ -264,7 +264,7 @@
  	if (ieee802_11_build_ap_params(hapd, &params) < 0)
 --- a/wpa_supplicant/events.c
 +++ b/wpa_supplicant/events.c
-@@ -4891,6 +4891,60 @@ static void wpas_event_unprot_beacon(str
+@@ -4953,6 +4953,60 @@ static void wpas_event_unprot_beacon(str
  }
  
  
@@ -325,7 +325,7 @@
  void supplicant_event(void *ctx, enum wpa_event_type event,
  		      union wpa_event_data *data)
  {
-@@ -5206,8 +5260,10 @@ void supplicant_event(void *ctx, enum wp
+@@ -5268,8 +5322,10 @@ void supplicant_event(void *ctx, enum wp
  			channel_width_to_string(data->ch_switch.ch_width),
  			data->ch_switch.cf1,
  			data->ch_switch.cf2);
@@ -339,7 +339,7 @@
  		wpa_s->current_ssid->frequency = data->ch_switch.freq;
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -5837,6 +5837,7 @@ union wpa_event_data {
+@@ -5968,6 +5968,7 @@ union wpa_event_data {
  
  	/**
  	 * struct ch_switch
@@ -347,7 +347,7 @@
  	 * @freq: Frequency of new channel in MHz
  	 * @ht_enabled: Whether this is an HT channel
  	 * @ch_offset: Secondary channel offset
-@@ -5845,6 +5846,7 @@ union wpa_event_data {
+@@ -5976,6 +5977,7 @@ union wpa_event_data {
  	 * @cf2: Center frequency 2
  	 */
  	struct ch_switch {
@@ -357,7 +357,7 @@
  		int ch_offset;
 --- a/src/drivers/driver_nl80211_event.c
 +++ b/src/drivers/driver_nl80211_event.c
-@@ -684,7 +684,7 @@ static void mlme_event_ch_switch(struct
+@@ -694,7 +694,7 @@ static void mlme_event_ch_switch(struct
  				 struct nlattr *ifindex, struct nlattr *freq,
  				 struct nlattr *type, struct nlattr *bw,
  				 struct nlattr *cf1, struct nlattr *cf2,
@@ -366,7 +366,7 @@
  {
  	struct i802_bss *bss;
  	union wpa_event_data data;
-@@ -745,6 +745,8 @@ static void mlme_event_ch_switch(struct
+@@ -755,6 +755,8 @@ static void mlme_event_ch_switch(struct
  		data.ch_switch.cf1 = nla_get_u32(cf1);
  	if (cf2)
  		data.ch_switch.cf2 = nla_get_u32(cf2);
@@ -375,7 +375,7 @@
  
  	if (finished)
  		bss->freq = data.ch_switch.freq;
-@@ -3003,6 +3005,7 @@ static void do_process_drv_event(struct
+@@ -3113,6 +3115,7 @@ static void do_process_drv_event(struct
  				     tb[NL80211_ATTR_CHANNEL_WIDTH],
  				     tb[NL80211_ATTR_CENTER_FREQ1],
  				     tb[NL80211_ATTR_CENTER_FREQ2],
@@ -383,7 +383,7 @@
  				     0);
  		break;
  	case NL80211_CMD_CH_SWITCH_NOTIFY:
-@@ -3013,6 +3016,7 @@ static void do_process_drv_event(struct
+@@ -3123,6 +3126,7 @@ static void do_process_drv_event(struct
  				     tb[NL80211_ATTR_CHANNEL_WIDTH],
  				     tb[NL80211_ATTR_CENTER_FREQ1],
  				     tb[NL80211_ATTR_CENTER_FREQ2],
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/380-disable_ctrl_iface_mib.patch b/recipes-connectivity/wpa-supplicant/files/patches/380-disable_ctrl_iface_mib.patch
index 92b52a6..1f78c42 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/380-disable_ctrl_iface_mib.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/380-disable_ctrl_iface_mib.patch
@@ -12,7 +12,7 @@
  else
 --- a/hostapd/ctrl_iface.c
 +++ b/hostapd/ctrl_iface.c
-@@ -3587,6 +3587,7 @@ static int hostapd_ctrl_iface_receive_pr
+@@ -3265,6 +3265,7 @@ static int hostapd_ctrl_iface_receive_pr
  						      reply_size);
  	} else if (os_strcmp(buf, "STATUS-DRIVER") == 0) {
  		reply_len = hostapd_drv_status(hapd, reply, reply_size);
@@ -20,7 +20,7 @@
  	} else if (os_strcmp(buf, "MIB") == 0) {
  		reply_len = ieee802_11_get_mib(hapd, reply, reply_size);
  		if (reply_len >= 0) {
-@@ -3628,6 +3629,7 @@ static int hostapd_ctrl_iface_receive_pr
+@@ -3306,6 +3307,7 @@ static int hostapd_ctrl_iface_receive_pr
  	} else if (os_strncmp(buf, "STA-NEXT ", 9) == 0) {
  		reply_len = hostapd_ctrl_iface_sta_next(hapd, buf + 9, reply,
  							reply_size);
@@ -30,7 +30,7 @@
  			reply_len = -1;
 --- a/wpa_supplicant/Makefile
 +++ b/wpa_supplicant/Makefile
-@@ -958,6 +958,9 @@ ifdef CONFIG_FILS
+@@ -973,6 +973,9 @@ ifdef CONFIG_FILS
  OBJS += ../src/ap/fils_hlp.o
  endif
  ifdef CONFIG_CTRL_IFACE
@@ -42,7 +42,7 @@
  
 --- a/wpa_supplicant/ctrl_iface.c
 +++ b/wpa_supplicant/ctrl_iface.c
-@@ -2314,7 +2314,7 @@ static int wpa_supplicant_ctrl_iface_sta
+@@ -2325,7 +2325,7 @@ static int wpa_supplicant_ctrl_iface_sta
  			pos += ret;
  		}
  
@@ -51,7 +51,7 @@
  		if (wpa_s->ap_iface) {
  			pos += ap_ctrl_iface_wpa_get_status(wpa_s, pos,
  							    end - pos,
-@@ -11494,6 +11494,7 @@ char * wpa_supplicant_ctrl_iface_process
+@@ -11565,6 +11565,7 @@ char * wpa_supplicant_ctrl_iface_process
  			reply_len = -1;
  	} else if (os_strncmp(buf, "NOTE ", 5) == 0) {
  		wpa_printf(MSG_INFO, "NOTE: %s", buf + 5);
@@ -59,7 +59,7 @@
  	} else if (os_strcmp(buf, "MIB") == 0) {
  		reply_len = wpa_sm_get_mib(wpa_s->wpa, reply, reply_size);
  		if (reply_len >= 0) {
-@@ -11506,6 +11507,7 @@ char * wpa_supplicant_ctrl_iface_process
+@@ -11577,6 +11578,7 @@ char * wpa_supplicant_ctrl_iface_process
  				reply_size - reply_len);
  #endif /* CONFIG_MACSEC */
  		}
@@ -67,7 +67,7 @@
  	} else if (os_strncmp(buf, "STATUS", 6) == 0) {
  		reply_len = wpa_supplicant_ctrl_iface_status(
  			wpa_s, buf + 6, reply, reply_size);
-@@ -11994,6 +11996,7 @@ char * wpa_supplicant_ctrl_iface_process
+@@ -12065,6 +12067,7 @@ char * wpa_supplicant_ctrl_iface_process
  		reply_len = wpa_supplicant_ctrl_iface_bss(
  			wpa_s, buf + 4, reply, reply_size);
  #ifdef CONFIG_AP
@@ -75,7 +75,7 @@
  	} else if (os_strcmp(buf, "STA-FIRST") == 0) {
  		reply_len = ap_ctrl_iface_sta_first(wpa_s, reply, reply_size);
  	} else if (os_strncmp(buf, "STA ", 4) == 0) {
-@@ -12002,12 +12005,15 @@ char * wpa_supplicant_ctrl_iface_process
+@@ -12073,12 +12076,15 @@ char * wpa_supplicant_ctrl_iface_process
  	} else if (os_strncmp(buf, "STA-NEXT ", 9) == 0) {
  		reply_len = ap_ctrl_iface_sta_next(wpa_s, buf + 9, reply,
  						   reply_size);
@@ -93,15 +93,15 @@
  			reply_len = -1;
 --- a/src/ap/ctrl_iface_ap.c
 +++ b/src/ap/ctrl_iface_ap.c
-@@ -25,6 +25,7 @@
- #include "mbo_ap.h"
+@@ -26,6 +26,7 @@
  #include "taxonomy.h"
+ #include "wnm_ap.h"
  
 +#ifdef CONFIG_CTRL_IFACE_MIB
  
  static size_t hostapd_write_ht_mcs_bitmask(char *buf, size_t buflen,
  					   size_t curr_len, const u8 *mcs_set)
-@@ -459,6 +460,7 @@ int hostapd_ctrl_iface_sta_next(struct h
+@@ -460,6 +461,7 @@ int hostapd_ctrl_iface_sta_next(struct h
  	return hostapd_ctrl_iface_sta_mib(hapd, sta->next, buf, buflen);
  }
  
@@ -109,7 +109,7 @@
  
  #ifdef CONFIG_P2P_MANAGER
  static int p2p_manager_disconnect(struct hostapd_data *hapd, u16 stype,
-@@ -815,12 +817,12 @@ int hostapd_ctrl_iface_status(struct hos
+@@ -832,12 +834,12 @@ int hostapd_ctrl_iface_status(struct hos
  			return len;
  		len += ret;
  	}
@@ -126,7 +126,7 @@
  		if (os_snprintf_error(buflen - len, ret))
 --- a/src/ap/ieee802_1x.c
 +++ b/src/ap/ieee802_1x.c
-@@ -2712,6 +2712,7 @@ static const char * bool_txt(bool val)
+@@ -2740,6 +2740,7 @@ static const char * bool_txt(bool val)
  	return val ? "TRUE" : "FALSE";
  }
  
@@ -134,7 +134,7 @@
  
  int ieee802_1x_get_mib(struct hostapd_data *hapd, char *buf, size_t buflen)
  {
-@@ -2898,6 +2899,7 @@ int ieee802_1x_get_mib_sta(struct hostap
+@@ -2926,6 +2927,7 @@ int ieee802_1x_get_mib_sta(struct hostap
  	return len;
  }
  
@@ -144,7 +144,7 @@
  static void ieee802_1x_wnm_notif_send(void *eloop_ctx, void *timeout_ctx)
 --- a/src/ap/wpa_auth.c
 +++ b/src/ap/wpa_auth.c
-@@ -4519,6 +4519,7 @@ static const char * wpa_bool_txt(int val
+@@ -4559,6 +4559,7 @@ static const char * wpa_bool_txt(int val
  	return val ? "TRUE" : "FALSE";
  }
  
@@ -152,7 +152,7 @@
  
  #define RSN_SUITE "%02x-%02x-%02x-%d"
  #define RSN_SUITE_ARG(s) \
-@@ -4669,7 +4670,7 @@ int wpa_get_mib_sta(struct wpa_state_mac
+@@ -4709,7 +4710,7 @@ int wpa_get_mib_sta(struct wpa_state_mac
  
  	return len;
  }
@@ -163,7 +163,7 @@
  {
 --- a/src/rsn_supp/wpa.c
 +++ b/src/rsn_supp/wpa.c
-@@ -2777,6 +2777,8 @@ static u32 wpa_key_mgmt_suite(struct wpa
+@@ -2802,6 +2802,8 @@ static u32 wpa_key_mgmt_suite(struct wpa
  }
  
  
@@ -172,7 +172,7 @@
  #define RSN_SUITE "%02x-%02x-%02x-%d"
  #define RSN_SUITE_ARG(s) \
  ((s) >> 24) & 0xff, ((s) >> 16) & 0xff, ((s) >> 8) & 0xff, (s) & 0xff
-@@ -2858,6 +2860,7 @@ int wpa_sm_get_mib(struct wpa_sm *sm, ch
+@@ -2883,6 +2885,7 @@ int wpa_sm_get_mib(struct wpa_sm *sm, ch
  
  	return (int) len;
  }
@@ -182,7 +182,7 @@
  
 --- a/wpa_supplicant/ap.c
 +++ b/wpa_supplicant/ap.c
-@@ -1462,7 +1462,7 @@ int wpas_ap_wps_nfc_report_handover(stru
+@@ -1477,7 +1477,7 @@ int wpas_ap_wps_nfc_report_handover(stru
  #endif /* CONFIG_WPS */
  
  
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/390-wpa_ie_cap_workaround.patch b/recipes-connectivity/wpa-supplicant/files/patches/390-wpa_ie_cap_workaround.patch
index 65a8b07..bf481c3 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/390-wpa_ie_cap_workaround.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/390-wpa_ie_cap_workaround.patch
@@ -1,6 +1,6 @@
 --- a/src/common/wpa_common.c
 +++ b/src/common/wpa_common.c
-@@ -2444,6 +2444,31 @@ u32 wpa_akm_to_suite(int akm)
+@@ -2529,6 +2529,31 @@ u32 wpa_akm_to_suite(int akm)
  }
  
  
@@ -32,7 +32,7 @@
  int wpa_compare_rsn_ie(int ft_initial_assoc,
  		       const u8 *ie1, size_t ie1len,
  		       const u8 *ie2, size_t ie2len)
-@@ -2451,8 +2476,19 @@ int wpa_compare_rsn_ie(int ft_initial_as
+@@ -2536,8 +2561,19 @@ int wpa_compare_rsn_ie(int ft_initial_as
  	if (ie1 == NULL || ie2 == NULL)
  		return -1;
  
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/400-wps_single_auth_enc_type.patch b/recipes-connectivity/wpa-supplicant/files/patches/400-wps_single_auth_enc_type.patch
index f708bf3..edcd985 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/400-wps_single_auth_enc_type.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/400-wps_single_auth_enc_type.patch
@@ -11,7 +11,7 @@
  			bss->wpa_pairwise |= WPA_CIPHER_TKIP;
  #endif /* CONFIG_NO_TKIP */
  		bss->rsn_pairwise = bss->wpa_pairwise;
-@@ -1180,8 +1179,7 @@ int hostapd_init_wps(struct hostapd_data
+@@ -1181,8 +1180,7 @@ int hostapd_init_wps(struct hostapd_data
  					  WPA_CIPHER_GCMP_256)) {
  			wps->encr_types |= WPS_ENCR_AES;
  			wps->encr_types_rsn |= WPS_ENCR_AES;
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/430-hostapd_cli_ifdef.patch b/recipes-connectivity/wpa-supplicant/files/patches/430-hostapd_cli_ifdef.patch
index dc1fa3d..e524209 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/430-hostapd_cli_ifdef.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/430-hostapd_cli_ifdef.patch
@@ -32,7 +32,7 @@
  
  
  static int hostapd_cli_cmd_disassoc_imminent(struct wpa_ctrl *ctrl, int argc,
-@@ -1579,13 +1575,10 @@ static const struct hostapd_cli_cmd host
+@@ -1588,13 +1584,10 @@ static const struct hostapd_cli_cmd host
  	{ "disassociate", hostapd_cli_cmd_disassociate,
  	  hostapd_complete_stations,
  	  "<addr> = disassociate a station" },
@@ -46,7 +46,7 @@
  	{ "wps_pin", hostapd_cli_cmd_wps_pin, NULL,
  	  "<uuid> <pin> [timeout] [addr] = add WPS Enrollee PIN" },
  	{ "wps_check_pin", hostapd_cli_cmd_wps_check_pin, NULL,
-@@ -1610,7 +1603,6 @@ static const struct hostapd_cli_cmd host
+@@ -1619,7 +1612,6 @@ static const struct hostapd_cli_cmd host
  	  "<SSID> <auth> <encr> <key> = configure AP" },
  	{ "wps_get_status", hostapd_cli_cmd_wps_get_status, NULL,
  	  "= show current WPS status" },
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch b/recipes-connectivity/wpa-supplicant/files/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch
index 28f07c7..38ff663 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/460-wpa_supplicant-add-new-config-params-to-be-used-with.patch
@@ -22,7 +22,7 @@
  #include "common/defs.h"
  #include "common/ieee802_11_defs.h"
  #include "common/wpa_common.h"
-@@ -857,6 +858,9 @@ struct wpa_driver_associate_params {
+@@ -894,6 +895,9 @@ struct wpa_driver_associate_params {
  	 * responsible for selecting with which BSS to associate. */
  	const u8 *bssid;
  
@@ -42,7 +42,7 @@
  #include "config.h"
  
  
-@@ -2321,6 +2322,97 @@ static char * wpa_config_write_peerkey(c
+@@ -2345,6 +2346,97 @@ static char * wpa_config_write_peerkey(c
  #endif /* NO_CONFIG_WRITE */
  
  
@@ -140,7 +140,7 @@
  /* Helper macros for network block parser */
  
  #ifdef OFFSET
-@@ -2606,6 +2698,8 @@ static const struct parse_data ssid_fiel
+@@ -2629,6 +2721,8 @@ static const struct parse_data ssid_fiel
  	{ INT(ap_max_inactivity) },
  	{ INT(dtim_period) },
  	{ INT(beacon_int) },
@@ -174,7 +174,7 @@
  	 * macsec_policy - Determines the policy for MACsec secure session
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -3865,6 +3865,12 @@ static void wpas_start_assoc_cb(struct w
+@@ -3899,6 +3899,12 @@ static void wpas_start_assoc_cb(struct w
  			params.beacon_int = ssid->beacon_int;
  		else
  			params.beacon_int = wpa_s->conf->beacon_int;
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/461-driver_nl80211-use-new-parameters-during-ibss-join.patch b/recipes-connectivity/wpa-supplicant/files/patches/461-driver_nl80211-use-new-parameters-during-ibss-join.patch
index 0be77f9..65d67b8 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/461-driver_nl80211-use-new-parameters-during-ibss-join.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/461-driver_nl80211-use-new-parameters-during-ibss-join.patch
@@ -10,7 +10,7 @@
 
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -5966,7 +5966,7 @@ static int wpa_driver_nl80211_ibss(struc
+@@ -6005,7 +6005,7 @@ static int wpa_driver_nl80211_ibss(struc
  				   struct wpa_driver_associate_params *params)
  {
  	struct nl_msg *msg;
@@ -19,7 +19,7 @@
  	int count = 0;
  
  	wpa_printf(MSG_DEBUG, "nl80211: Join IBSS (ifindex=%d)", drv->ifindex);
-@@ -5993,6 +5993,37 @@ retry:
+@@ -6032,6 +6032,37 @@ retry:
  	    nl80211_put_beacon_int(msg, params->beacon_int))
  		goto fail;
  
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/463-add-mcast_rate-to-11s.patch b/recipes-connectivity/wpa-supplicant/files/patches/463-add-mcast_rate-to-11s.patch
index bd1d4d7..5dc19fe 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/463-add-mcast_rate-to-11s.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/463-add-mcast_rate-to-11s.patch
@@ -19,7 +19,7 @@
 
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -1624,6 +1624,7 @@ struct wpa_driver_mesh_join_params {
+@@ -1661,6 +1661,7 @@ struct wpa_driver_mesh_join_params {
  #define WPA_DRIVER_MESH_FLAG_AMPE	0x00000008
  	unsigned int flags;
  	bool handle_dfs;
@@ -29,7 +29,7 @@
  struct wpa_driver_set_key_params {
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -10496,6 +10496,18 @@ static int nl80211_put_mesh_id(struct nl
+@@ -10627,6 +10627,18 @@ static int nl80211_put_mesh_id(struct nl
  }
  
  
@@ -48,7 +48,7 @@
  static int nl80211_put_mesh_config(struct nl_msg *msg,
  				   struct wpa_driver_mesh_bss_params *params)
  {
-@@ -10557,6 +10569,7 @@ static int nl80211_join_mesh(struct i802
+@@ -10688,6 +10700,7 @@ static int nl80211_join_mesh(struct i802
  	    nl80211_put_basic_rates(msg, params->basic_rates) ||
  	    nl80211_put_mesh_id(msg, params->meshid, params->meshid_len) ||
  	    nl80211_put_beacon_int(msg, params->beacon_int) ||
@@ -58,7 +58,7 @@
  
 --- a/wpa_supplicant/mesh.c
 +++ b/wpa_supplicant/mesh.c
-@@ -631,6 +631,7 @@ int wpa_supplicant_join_mesh(struct wpa_
+@@ -632,6 +632,7 @@ int wpa_supplicant_join_mesh(struct wpa_
  
  	params->meshid = ssid->ssid;
  	params->meshid_len = ssid->ssid_len;
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/464-fix-mesh-obss-check.patch b/recipes-connectivity/wpa-supplicant/files/patches/464-fix-mesh-obss-check.patch
index 4807727..48086ea 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/464-fix-mesh-obss-check.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/464-fix-mesh-obss-check.patch
@@ -1,6 +1,6 @@
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -2512,11 +2512,13 @@ void ibss_mesh_setup_freq(struct wpa_sup
+@@ -2539,11 +2539,13 @@ void ibss_mesh_setup_freq(struct wpa_sup
  	for (j = 0; j < wpa_s->last_scan_res_used; j++) {
  		struct wpa_bss *bss = wpa_s->last_scan_res[j];
  
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/465-hostapd-config-support-random-BSS-color.patch b/recipes-connectivity/wpa-supplicant/files/patches/465-hostapd-config-support-random-BSS-color.patch
index c0b0119..6810b79 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/465-hostapd-config-support-random-BSS-color.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/465-hostapd-config-support-random-BSS-color.patch
@@ -13,7 +13,7 @@
 
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -3485,6 +3485,8 @@ static int hostapd_config_fill(struct ho
+@@ -3489,6 +3489,8 @@ static int hostapd_config_fill(struct ho
  	} else if (os_strcmp(buf, "he_bss_color") == 0) {
  		conf->he_op.he_bss_color = atoi(pos) & 0x3f;
  		conf->he_op.he_bss_color_disabled = 0;
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/500-lto-jobserver-support.patch b/recipes-connectivity/wpa-supplicant/files/patches/500-lto-jobserver-support.patch
index c51db01..e0458b2 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/500-lto-jobserver-support.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/500-lto-jobserver-support.patch
@@ -1,6 +1,6 @@
 --- a/hostapd/Makefile
 +++ b/hostapd/Makefile
-@@ -1297,7 +1297,7 @@ hostapd_multi.a: $(BCHECK) $(OBJS)
+@@ -1307,7 +1307,7 @@ hostapd_multi.a: $(BCHECK) $(OBJS)
  	@$(AR) cr $@ hostapd_multi.o $(OBJS)
  
  hostapd: $(OBJS)
@@ -9,7 +9,7 @@
  	@$(E) "  LD " $@
  
  ifdef CONFIG_WPA_TRACE
-@@ -1308,7 +1308,7 @@ _OBJS_VAR := OBJS_c
+@@ -1318,7 +1318,7 @@ _OBJS_VAR := OBJS_c
  include ../src/objs.mk
  
  hostapd_cli: $(OBJS_c)
@@ -20,7 +20,7 @@
  NOBJS = nt_password_hash.o ../src/crypto/ms_funcs.o $(SHA1OBJS)
 --- a/wpa_supplicant/Makefile
 +++ b/wpa_supplicant/Makefile
-@@ -1920,31 +1920,31 @@ wpa_supplicant_multi.a: .config $(BCHECK
+@@ -1949,31 +1949,31 @@ wpa_supplicant_multi.a: .config $(BCHECK
  	@$(AR) cr $@ wpa_supplicant_multi.o $(OBJS)
  
  wpa_supplicant: $(BCHECK) $(OBJS) $(EXTRA_progs)
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/590-rrm-wnm-statistics.patch b/recipes-connectivity/wpa-supplicant/files/patches/590-rrm-wnm-statistics.patch
index ee3ab79..98b8820 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/590-rrm-wnm-statistics.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/590-rrm-wnm-statistics.patch
@@ -1,6 +1,6 @@
 --- a/src/ap/hostapd.h
 +++ b/src/ap/hostapd.h
-@@ -150,6 +150,21 @@ struct hostapd_sae_commit_queue {
+@@ -162,6 +162,21 @@ struct hostapd_sae_commit_queue {
  };
  
  /**
@@ -22,7 +22,7 @@
   * struct hostapd_data - hostapd per-BSS data structure
   */
  struct hostapd_data {
-@@ -163,6 +178,9 @@ struct hostapd_data {
+@@ -175,6 +190,9 @@ struct hostapd_data {
  
  	u8 own_addr[ETH_ALEN];
  
@@ -42,7 +42,7 @@
  	wpa_printf(MSG_DEBUG, "WNM: Send BSS Transition Management Request to "
  		   MACSTR " dialog_token=%u req_mode=0x%x disassoc_timer=%u "
  		   "validity_interval=%u",
-@@ -646,10 +647,12 @@ int ieee802_11_rx_wnm_action_ap(struct h
+@@ -659,10 +660,12 @@ int ieee802_11_rx_wnm_action_ap(struct h
  
  	switch (action) {
  	case WNM_BSS_TRANS_MGMT_QUERY:
@@ -55,7 +55,7 @@
  		ieee802_11_rx_bss_trans_mgmt_resp(hapd, mgmt->sa, payload,
  						  plen);
  		return 0;
-@@ -696,6 +699,7 @@ int wnm_send_disassoc_imminent(struct ho
+@@ -709,6 +712,7 @@ int wnm_send_disassoc_imminent(struct ho
  
  	pos = mgmt->u.action.u.bss_tm_req.variable;
  
@@ -63,7 +63,7 @@
  	wpa_printf(MSG_DEBUG, "WNM: Send BSS Transition Management Request frame to indicate imminent disassociation (disassoc_timer=%d) to "
  		   MACSTR, disassoc_timer, MAC2STR(sta->addr));
  	if (hostapd_drv_send_mlme(hapd, buf, pos - buf, 0, NULL, 0, 0) < 0) {
-@@ -777,6 +781,7 @@ int wnm_send_ess_disassoc_imminent(struc
+@@ -790,6 +794,7 @@ int wnm_send_ess_disassoc_imminent(struc
  		return -1;
  	}
  
@@ -71,7 +71,7 @@
  	if (disassoc_timer) {
  		/* send disassociation frame after time-out */
  		set_disassoc_timer(hapd, sta, disassoc_timer);
-@@ -857,6 +862,7 @@ int wnm_send_bss_tm_req(struct hostapd_d
+@@ -870,6 +875,7 @@ int wnm_send_bss_tm_req(struct hostapd_d
  	}
  	os_free(buf);
  
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/600-ubus_support.patch b/recipes-connectivity/wpa-supplicant/files/patches/600-ubus_support.patch
index 4abb688..7c6c5e3 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/600-ubus_support.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/600-ubus_support.patch
@@ -14,7 +14,7 @@
  CFLAGS += -O0 -fprofile-arcs -ftest-coverage
 --- a/src/ap/hostapd.h
 +++ b/src/ap/hostapd.h
-@@ -17,6 +17,7 @@
+@@ -18,6 +18,7 @@
  #include "utils/list.h"
  #include "ap_config.h"
  #include "drivers/driver.h"
@@ -22,7 +22,7 @@
  
  #define OCE_STA_CFON_ENABLED(hapd) \
  	((hapd->conf->oce & OCE_STA_CFON) && \
-@@ -80,7 +81,7 @@ struct hapd_interfaces {
+@@ -92,7 +93,7 @@ struct hapd_interfaces {
  #ifdef CONFIG_CTRL_IFACE_UDP
         unsigned char ctrl_iface_cookie[CTRL_IFACE_COOKIE_LEN];
  #endif /* CONFIG_CTRL_IFACE_UDP */
@@ -31,7 +31,7 @@
  };
  
  enum hostapd_chan_status {
-@@ -171,6 +172,7 @@ struct hostapd_data {
+@@ -183,6 +184,7 @@ struct hostapd_data {
  	struct hostapd_iface *iface;
  	struct hostapd_config *iconf;
  	struct hostapd_bss_config *conf;
@@ -39,7 +39,7 @@
  	int interface_added; /* virtual interface added for this BSS */
  	unsigned int started:1;
  	unsigned int disabled:1;
-@@ -630,6 +632,7 @@ hostapd_alloc_bss_data(struct hostapd_if
+@@ -673,6 +675,7 @@ hostapd_alloc_bss_data(struct hostapd_if
  		       struct hostapd_bss_config *bss);
  int hostapd_setup_interface(struct hostapd_iface *iface);
  int hostapd_setup_interface_complete(struct hostapd_iface *iface, int err);
@@ -49,7 +49,7 @@
  struct hostapd_iface * hostapd_alloc_iface(void);
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -396,6 +396,7 @@ void hostapd_free_hapd_data(struct hosta
+@@ -401,6 +401,7 @@ void hostapd_free_hapd_data(struct hosta
  	hapd->beacon_set_done = 0;
  
  	wpa_printf(MSG_DEBUG, "%s(%s)", __func__, hapd->conf->iface);
@@ -57,7 +57,7 @@
  	accounting_deinit(hapd);
  	hostapd_deinit_wpa(hapd);
  	vlan_deinit(hapd);
-@@ -1422,6 +1423,8 @@ static int hostapd_setup_bss(struct host
+@@ -1431,6 +1432,8 @@ static int hostapd_setup_bss(struct host
  	if (hapd->driver && hapd->driver->set_operstate)
  		hapd->driver->set_operstate(hapd->drv_priv, 1);
  
@@ -66,7 +66,7 @@
  	return 0;
  }
  
-@@ -2028,6 +2031,7 @@ static int hostapd_setup_interface_compl
+@@ -2050,6 +2053,7 @@ static int hostapd_setup_interface_compl
  	if (err)
  		goto fail;
  
@@ -74,7 +74,7 @@
  	wpa_printf(MSG_DEBUG, "Completing interface initialization");
  	if (iface->freq) {
  #ifdef NEED_AP_MLME
-@@ -2225,6 +2229,7 @@ dfs_offload:
+@@ -2248,6 +2252,7 @@ dfs_offload:
  
  fail:
  	wpa_printf(MSG_ERROR, "Interface initialization failed");
@@ -82,7 +82,7 @@
  	hostapd_set_state(iface, HAPD_IFACE_DISABLED);
  	wpa_msg(hapd->msg_ctx, MSG_INFO, AP_EVENT_DISABLED);
  #ifdef CONFIG_FST
-@@ -2700,6 +2705,7 @@ void hostapd_interface_deinit_free(struc
+@@ -2723,6 +2728,7 @@ void hostapd_interface_deinit_free(struc
  		   (unsigned int) iface->conf->num_bss);
  	driver = iface->bss[0]->driver;
  	drv_priv = iface->bss[0]->drv_priv;
@@ -92,7 +92,7 @@
  		   __func__, driver, drv_priv);
 --- a/src/ap/ieee802_11.c
 +++ b/src/ap/ieee802_11.c
-@@ -3553,13 +3553,18 @@ static void handle_auth(struct hostapd_d
+@@ -3573,13 +3573,18 @@ static void handle_auth(struct hostapd_d
  	u16 auth_alg, auth_transaction, status_code;
  	u16 resp = WLAN_STATUS_SUCCESS;
  	struct sta_info *sta = NULL;
@@ -112,7 +112,7 @@
  
  	if (len < IEEE80211_HDRLEN + sizeof(mgmt->u.auth)) {
  		wpa_printf(MSG_INFO, "handle_auth - too short payload (len=%lu)",
-@@ -3727,6 +3732,13 @@ static void handle_auth(struct hostapd_d
+@@ -3747,6 +3752,13 @@ static void handle_auth(struct hostapd_d
  		resp = WLAN_STATUS_UNSPECIFIED_FAILURE;
  		goto fail;
  	}
@@ -126,7 +126,7 @@
  	if (res == HOSTAPD_ACL_PENDING)
  		return;
  
-@@ -5447,7 +5459,7 @@ static void handle_assoc(struct hostapd_
+@@ -5488,7 +5500,7 @@ static void handle_assoc(struct hostapd_
  	int resp = WLAN_STATUS_SUCCESS;
  	u16 reply_res = WLAN_STATUS_UNSPECIFIED_FAILURE;
  	const u8 *pos;
@@ -135,7 +135,7 @@
  	struct sta_info *sta;
  	u8 *tmp = NULL;
  #ifdef CONFIG_FILS
-@@ -5660,6 +5672,11 @@ static void handle_assoc(struct hostapd_
+@@ -5701,6 +5713,11 @@ static void handle_assoc(struct hostapd_
  		left = res;
  	}
  #endif /* CONFIG_FILS */
@@ -147,7 +147,7 @@
  
  	/* followed by SSID and Supported rates; and HT capabilities if 802.11n
  	 * is used */
-@@ -5758,6 +5775,13 @@ static void handle_assoc(struct hostapd_
+@@ -5799,6 +5816,13 @@ static void handle_assoc(struct hostapd_
  	}
  #endif /* CONFIG_FILS */
  
@@ -161,7 +161,7 @@
   fail:
  
  	/*
-@@ -5851,6 +5875,7 @@ static void handle_disassoc(struct hosta
+@@ -5892,6 +5916,7 @@ static void handle_disassoc(struct hosta
  	wpa_printf(MSG_DEBUG, "disassocation: STA=" MACSTR " reason_code=%d",
  		   MAC2STR(mgmt->sa),
  		   le_to_host16(mgmt->u.disassoc.reason_code));
@@ -169,7 +169,7 @@
  
  	sta = ap_get_sta(hapd, mgmt->sa);
  	if (sta == NULL) {
-@@ -5920,6 +5945,8 @@ static void handle_deauth(struct hostapd
+@@ -5961,6 +5986,8 @@ static void handle_deauth(struct hostapd
  	/* Clear the PTKSA cache entries for PASN */
  	ptksa_cache_flush(hapd->ptksa, mgmt->sa, WPA_CIPHER_NONE);
  
@@ -180,7 +180,7 @@
  		wpa_msg(hapd->msg_ctx, MSG_DEBUG, "Station " MACSTR " trying "
 --- a/src/ap/beacon.c
 +++ b/src/ap/beacon.c
-@@ -852,6 +852,12 @@ void handle_probe_req(struct hostapd_dat
+@@ -919,6 +919,12 @@ void handle_probe_req(struct hostapd_dat
  	u16 csa_offs[2];
  	size_t csa_offs_len;
  	struct radius_sta rad_info;
@@ -193,7 +193,7 @@
  
  	if (hapd->iconf->rssi_ignore_probe_request && ssi_signal &&
  	    ssi_signal < hapd->iconf->rssi_ignore_probe_request)
-@@ -1038,6 +1044,12 @@ void handle_probe_req(struct hostapd_dat
+@@ -1105,6 +1111,12 @@ void handle_probe_req(struct hostapd_dat
  	}
  #endif /* CONFIG_P2P */
  
@@ -234,7 +234,7 @@
  		wpabuf_free(sta->p2p_ie);
 --- a/src/ap/sta_info.c
 +++ b/src/ap/sta_info.c
-@@ -458,6 +458,7 @@ void ap_handle_timer(void *eloop_ctx, vo
+@@ -460,6 +460,7 @@ void ap_handle_timer(void *eloop_ctx, vo
  		hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
  			       HOSTAPD_LEVEL_INFO, "deauthenticated due to "
  			       "local deauth request");
@@ -242,7 +242,7 @@
  		ap_free_sta(hapd, sta);
  		return;
  	}
-@@ -613,6 +614,7 @@ skip_poll:
+@@ -615,6 +616,7 @@ skip_poll:
  		mlme_deauthenticate_indication(
  			hapd, sta,
  			WLAN_REASON_PREV_AUTH_NOT_VALID);
@@ -260,7 +260,7 @@
  		    hapd->msg_ctx_parent != hapd->msg_ctx)
 --- a/src/ap/wpa_auth_glue.c
 +++ b/src/ap/wpa_auth_glue.c
-@@ -265,6 +265,7 @@ static void hostapd_wpa_auth_psk_failure
+@@ -268,6 +268,7 @@ static void hostapd_wpa_auth_psk_failure
  	struct hostapd_data *hapd = ctx;
  	wpa_msg(hapd->msg_ctx, MSG_INFO, AP_STA_POSSIBLE_PSK_MISMATCH MACSTR,
  		MAC2STR(addr));
@@ -270,7 +270,7 @@
  
 --- a/wpa_supplicant/Makefile
 +++ b/wpa_supplicant/Makefile
-@@ -176,6 +176,12 @@ ifdef CONFIG_EAPOL_TEST
+@@ -183,6 +183,12 @@ ifdef CONFIG_EAPOL_TEST
  CFLAGS += -Werror -DEAPOL_TEST
  endif
  
@@ -283,7 +283,7 @@
  ifdef CONFIG_CODE_COVERAGE
  CFLAGS += -O0 -fprofile-arcs -ftest-coverage
  LIBS += -lgcov
-@@ -962,6 +968,9 @@ ifdef CONFIG_CTRL_IFACE_MIB
+@@ -977,6 +983,9 @@ ifdef CONFIG_CTRL_IFACE_MIB
  CFLAGS += -DCONFIG_CTRL_IFACE_MIB
  endif
  OBJS += ../src/ap/ctrl_iface_ap.o
@@ -295,7 +295,7 @@
  CFLAGS += -DEAP_SERVER -DEAP_SERVER_IDENTITY
 --- a/wpa_supplicant/wpa_supplicant.c
 +++ b/wpa_supplicant/wpa_supplicant.c
-@@ -7241,6 +7241,8 @@ struct wpa_supplicant * wpa_supplicant_a
+@@ -7285,6 +7285,8 @@ struct wpa_supplicant * wpa_supplicant_a
  	}
  #endif /* CONFIG_P2P */
  
@@ -304,7 +304,7 @@
  	return wpa_s;
  }
  
-@@ -7267,6 +7269,8 @@ int wpa_supplicant_remove_iface(struct w
+@@ -7311,6 +7313,8 @@ int wpa_supplicant_remove_iface(struct w
  	struct wpa_supplicant *parent = wpa_s->parent;
  #endif /* CONFIG_MESH */
  
@@ -313,7 +313,7 @@
  	/* Remove interface from the global list of interfaces */
  	prev = global->ifaces;
  	if (prev == wpa_s) {
-@@ -7570,8 +7574,12 @@ int wpa_supplicant_run(struct wpa_global
+@@ -7614,8 +7618,12 @@ int wpa_supplicant_run(struct wpa_global
  	eloop_register_signal_terminate(wpa_supplicant_terminate, global);
  	eloop_register_signal_reconfig(wpa_supplicant_reconfig, global);
  
@@ -328,7 +328,7 @@
  
 --- a/wpa_supplicant/wpa_supplicant_i.h
 +++ b/wpa_supplicant/wpa_supplicant_i.h
-@@ -19,6 +19,7 @@
+@@ -20,6 +20,7 @@
  #include "wps/wps_defs.h"
  #include "config_ssid.h"
  #include "wmm_ac.h"
@@ -336,7 +336,7 @@
  
  extern const char *const wpa_supplicant_version;
  extern const char *const wpa_supplicant_license;
-@@ -322,6 +323,8 @@ struct wpa_global {
+@@ -323,6 +324,8 @@ struct wpa_global {
  #endif /* CONFIG_WIFI_DISPLAY */
  
  	struct psk_list_entry *add_psk; /* From group formation */
@@ -345,7 +345,7 @@
  };
  
  
-@@ -708,6 +711,7 @@ struct wpa_supplicant {
+@@ -707,6 +710,7 @@ struct wpa_supplicant {
  	unsigned char own_addr[ETH_ALEN];
  	unsigned char perm_addr[ETH_ALEN];
  	char ifname[100];
@@ -363,7 +363,7 @@
  
  
  #ifndef WPS_PIN_SCAN_IGNORE_SEL_REG
-@@ -393,6 +394,8 @@ static int wpa_supplicant_wps_cred(void
+@@ -391,6 +392,8 @@ static int wpa_supplicant_wps_cred(void
  	wpa_hexdump_key(MSG_DEBUG, "WPS: Received Credential attribute",
  			cred->cred_attr, cred->cred_attr_len);
  
@@ -374,7 +374,7 @@
  
 --- a/hostapd/main.c
 +++ b/hostapd/main.c
-@@ -895,6 +895,7 @@ int main(int argc, char *argv[])
+@@ -897,6 +897,7 @@ int main(int argc, char *argv[])
  	}
  
  	hostapd_global_ctrl_iface_init(&interfaces);
@@ -382,7 +382,7 @@
  
  	if (hostapd_global_run(&interfaces, daemonize, pid_file)) {
  		wpa_printf(MSG_ERROR, "Failed to start eloop");
-@@ -904,6 +905,7 @@ int main(int argc, char *argv[])
+@@ -906,6 +907,7 @@ int main(int argc, char *argv[])
  	ret = 0;
  
   out:
@@ -392,7 +392,7 @@
  	for (i = 0; i < interfaces.count; i++) {
 --- a/wpa_supplicant/main.c
 +++ b/wpa_supplicant/main.c
-@@ -203,7 +203,7 @@ int main(int argc, char *argv[])
+@@ -204,7 +204,7 @@ int main(int argc, char *argv[])
  
  	for (;;) {
  		c = getopt(argc, argv,
@@ -401,7 +401,7 @@
  		if (c < 0)
  			break;
  		switch (c) {
-@@ -271,6 +271,9 @@ int main(int argc, char *argv[])
+@@ -272,6 +272,9 @@ int main(int argc, char *argv[])
  			params.conf_p2p_dev = optarg;
  			break;
  #endif /* CONFIG_P2P */
@@ -473,7 +473,7 @@
  
 --- a/src/ap/dfs.c
 +++ b/src/ap/dfs.c
-@@ -1196,6 +1196,8 @@ int hostapd_dfs_radar_detected(struct ho
+@@ -1203,6 +1203,8 @@ int hostapd_dfs_pre_cac_expired(struct h
  		"freq=%d ht_enabled=%d chan_offset=%d chan_width=%d cf1=%d cf2=%d",
  		freq, ht_enabled, chan_offset, chan_width, cf1, cf2);
  
@@ -515,7 +515,7 @@
  	}
 --- a/src/ap/sta_info.h
 +++ b/src/ap/sta_info.h
-@@ -324,6 +324,7 @@ struct sta_info {
+@@ -328,6 +328,7 @@ struct sta_info {
  #endif /* CONFIG_TESTING_OPTIONS */
  #ifdef CONFIG_AIRTIME_POLICY
  	unsigned int airtime_weight;
@@ -525,9 +525,9 @@
  
 --- a/src/ap/wnm_ap.c
 +++ b/src/ap/wnm_ap.c
-@@ -442,7 +442,8 @@ static void ieee802_11_rx_bss_trans_mgmt
- 	wpa_hexdump(MSG_DEBUG, "WNM: BSS Transition Candidate List Entries",
- 		    pos, end - pos);
+@@ -455,7 +455,8 @@ static void ieee802_11_rx_bss_trans_mgmt
+ 		MAC2STR(addr), reason, hex ? " neighbor=" : "", hex);
+ 	os_free(hex);
  
 -	ieee802_11_send_bss_trans_mgmt_request(hapd, addr, dialog_token);
 +	if (!hostapd_ubus_notify_bss_transition_query(hapd, addr, dialog_token, reason, pos, end - pos))
@@ -535,7 +535,7 @@
  }
  
  
-@@ -464,7 +465,7 @@ static void ieee802_11_rx_bss_trans_mgmt
+@@ -477,7 +478,7 @@ static void ieee802_11_rx_bss_trans_mgmt
  					      size_t len)
  {
  	u8 dialog_token, status_code, bss_termination_delay;
@@ -544,7 +544,7 @@
  	int enabled = hapd->conf->bss_transition;
  	struct sta_info *sta;
  
-@@ -511,6 +512,7 @@ static void ieee802_11_rx_bss_trans_mgmt
+@@ -524,6 +525,7 @@ static void ieee802_11_rx_bss_trans_mgmt
  			wpa_printf(MSG_DEBUG, "WNM: not enough room for Target BSSID field");
  			return;
  		}
@@ -552,7 +552,7 @@
  		sta->agreed_to_steer = 1;
  		eloop_cancel_timeout(ap_sta_reset_steer_flag_timer, hapd, sta);
  		eloop_register_timeout(2, 0, ap_sta_reset_steer_flag_timer,
-@@ -530,6 +532,10 @@ static void ieee802_11_rx_bss_trans_mgmt
+@@ -543,6 +545,10 @@ static void ieee802_11_rx_bss_trans_mgmt
  			MAC2STR(addr), status_code, bss_termination_delay);
  	}
  
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/700-wifi-reload.patch b/recipes-connectivity/wpa-supplicant/files/patches/700-wifi-reload.patch
index e6d7c2f..174127d 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/700-wifi-reload.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/700-wifi-reload.patch
@@ -1,6 +1,6 @@
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -2458,6 +2458,8 @@ static int hostapd_config_fill(struct ho
+@@ -2416,6 +2416,8 @@ static int hostapd_config_fill(struct ho
  		bss->isolate = atoi(pos);
  	} else if (os_strcmp(buf, "ap_max_inactivity") == 0) {
  		bss->ap_max_inactivity = atoi(pos);
@@ -9,7 +9,7 @@
  	} else if (os_strcmp(buf, "skip_inactivity_poll") == 0) {
  		bss->skip_inactivity_poll = atoi(pos);
  	} else if (os_strcmp(buf, "country_code") == 0) {
-@@ -3158,6 +3160,8 @@ static int hostapd_config_fill(struct ho
+@@ -3121,6 +3123,8 @@ static int hostapd_config_fill(struct ho
  		}
  	} else if (os_strcmp(buf, "acs_exclude_dfs") == 0) {
  		conf->acs_exclude_dfs = atoi(pos);
@@ -20,7 +20,7 @@
  	} else if (os_strcmp(buf, "channel") == 0) {
 --- a/src/ap/ap_config.c
 +++ b/src/ap/ap_config.c
-@@ -792,6 +792,7 @@ void hostapd_config_free_bss(struct host
+@@ -796,6 +796,7 @@ void hostapd_config_free_bss(struct host
  	os_free(conf->radius_req_attr_sqlite);
  	os_free(conf->rsn_preauth_interfaces);
  	os_free(conf->ctrl_interface);
@@ -28,7 +28,7 @@
  	os_free(conf->ca_cert);
  	os_free(conf->server_cert);
  	os_free(conf->server_cert2);
-@@ -988,6 +989,7 @@ void hostapd_config_free(struct hostapd_
+@@ -995,6 +996,7 @@ void hostapd_config_free(struct hostapd_
  
  	for (i = 0; i < conf->num_bss; i++)
  		hostapd_config_free_bss(conf->bss[i]);
@@ -38,7 +38,7 @@
  	os_free(conf->basic_rates);
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -279,6 +279,8 @@ struct hostapd_bss_config {
+@@ -285,6 +285,8 @@ struct hostapd_bss_config {
  	char vlan_bridge[IFNAMSIZ + 1];
  	char wds_bridge[IFNAMSIZ + 1];
  
@@ -47,7 +47,7 @@
  	enum hostapd_logger_level logger_syslog_level, logger_stdout_level;
  
  	unsigned int logger_syslog; /* module bitfield */
-@@ -942,6 +944,7 @@ struct spatial_reuse {
+@@ -969,6 +971,7 @@ struct eht_phy_capabilities_info {
  struct hostapd_config {
  	struct hostapd_bss_config **bss, *last_bss;
  	size_t num_bss;
@@ -57,7 +57,7 @@
  	int rts_threshold;
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -219,6 +219,10 @@ static int hostapd_iface_conf_changed(st
+@@ -224,6 +224,10 @@ static int hostapd_iface_conf_changed(st
  {
  	size_t i;
  
@@ -68,7 +68,7 @@
  	if (newconf->num_bss != oldconf->num_bss)
  		return 1;
  
-@@ -232,7 +236,7 @@ static int hostapd_iface_conf_changed(st
+@@ -237,7 +241,7 @@ static int hostapd_iface_conf_changed(st
  }
  
  
@@ -77,7 +77,7 @@
  {
  	struct hapd_interfaces *interfaces = iface->interfaces;
  	struct hostapd_data *hapd = iface->bss[0];
-@@ -255,13 +259,16 @@ int hostapd_reload_config(struct hostapd
+@@ -260,13 +264,16 @@ int hostapd_reload_config(struct hostapd
  	if (newconf == NULL)
  		return -1;
  
@@ -96,7 +96,7 @@
  		wpa_printf(MSG_DEBUG,
  			   "Configuration changes include interface/BSS modification - force full disable+enable sequence");
  		fname = os_strdup(iface->config_fname);
-@@ -286,6 +293,24 @@ int hostapd_reload_config(struct hostapd
+@@ -291,6 +298,24 @@ int hostapd_reload_config(struct hostapd
  			wpa_printf(MSG_ERROR,
  				   "Failed to enable interface on config reload");
  		return res;
@@ -121,7 +121,7 @@
  	}
  	iface->conf = newconf;
  
-@@ -302,6 +327,12 @@ int hostapd_reload_config(struct hostapd
+@@ -307,6 +332,12 @@ int hostapd_reload_config(struct hostapd
  
  	for (j = 0; j < iface->num_bss; j++) {
  		hapd = iface->bss[j];
@@ -134,7 +134,7 @@
  		hapd->iconf = newconf;
  		hapd->conf = newconf->bss[j];
  		hostapd_reload_bss(hapd);
-@@ -2397,6 +2428,10 @@ hostapd_alloc_bss_data(struct hostapd_if
+@@ -2420,6 +2451,10 @@ hostapd_alloc_bss_data(struct hostapd_if
  	hapd->iconf = conf;
  	hapd->conf = bss;
  	hapd->iface = hapd_iface;
@@ -147,7 +147,7 @@
  	hapd->ctrl_sock = -1;
 --- a/src/ap/hostapd.h
 +++ b/src/ap/hostapd.h
-@@ -46,7 +46,7 @@ struct mesh_conf;
+@@ -47,7 +47,7 @@ struct mesh_conf;
  struct hostapd_iface;
  
  struct hapd_interfaces {
@@ -156,7 +156,7 @@
  	struct hostapd_config * (*config_read_cb)(const char *config_fname);
  	int (*ctrl_iface_init)(struct hostapd_data *hapd);
  	void (*ctrl_iface_deinit)(struct hostapd_data *hapd);
-@@ -173,6 +173,7 @@ struct hostapd_data {
+@@ -185,6 +185,7 @@ struct hostapd_data {
  	struct hostapd_config *iconf;
  	struct hostapd_bss_config *conf;
  	struct hostapd_ubus_bss ubus;
@@ -164,7 +164,7 @@
  	int interface_added; /* virtual interface added for this BSS */
  	unsigned int started:1;
  	unsigned int disabled:1;
-@@ -624,7 +625,7 @@ struct hostapd_iface {
+@@ -667,7 +668,7 @@ struct hostapd_iface {
  int hostapd_for_each_interface(struct hapd_interfaces *interfaces,
  			       int (*cb)(struct hostapd_iface *iface,
  					 void *ctx), void *ctx);
@@ -175,7 +175,7 @@
  hostapd_alloc_bss_data(struct hostapd_iface *hapd_iface,
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -4833,6 +4833,9 @@ static int wpa_driver_nl80211_set_ap(voi
+@@ -4852,6 +4852,9 @@ static int wpa_driver_nl80211_set_ap(voi
  	if (ret) {
  		wpa_printf(MSG_DEBUG, "nl80211: Beacon set failed: %d (%s)",
  			   ret, strerror(-ret));
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/710-vlan_no_bridge.patch b/recipes-connectivity/wpa-supplicant/files/patches/710-vlan_no_bridge.patch
index 856dc8b..b06ef8f 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/710-vlan_no_bridge.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/710-vlan_no_bridge.patch
@@ -1,6 +1,6 @@
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -115,6 +115,7 @@ struct hostapd_ssid {
+@@ -121,6 +121,7 @@ struct hostapd_ssid {
  #define DYNAMIC_VLAN_OPTIONAL 1
  #define DYNAMIC_VLAN_REQUIRED 2
  	int dynamic_vlan;
@@ -30,7 +30,7 @@
  
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -3381,6 +3381,8 @@ static int hostapd_config_fill(struct ho
+@@ -3346,6 +3346,8 @@ static int hostapd_config_fill(struct ho
  #ifndef CONFIG_NO_VLAN
  	} else if (os_strcmp(buf, "dynamic_vlan") == 0) {
  		bss->ssid.dynamic_vlan = atoi(pos);
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/711-wds_bridge_force.patch b/recipes-connectivity/wpa-supplicant/files/patches/711-wds_bridge_force.patch
index a22580c..169807c 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/711-wds_bridge_force.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/711-wds_bridge_force.patch
@@ -1,6 +1,6 @@
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -2358,6 +2358,8 @@ static int hostapd_config_fill(struct ho
+@@ -2316,6 +2316,8 @@ static int hostapd_config_fill(struct ho
  			   sizeof(conf->bss[0]->iface));
  	} else if (os_strcmp(buf, "bridge") == 0) {
  		os_strlcpy(bss->bridge, pos, sizeof(bss->bridge));
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/720-iface_max_num_sta.patch b/recipes-connectivity/wpa-supplicant/files/patches/720-iface_max_num_sta.patch
index 106f9d7..ed76d22 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/720-iface_max_num_sta.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/720-iface_max_num_sta.patch
@@ -1,6 +1,6 @@
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -2880,6 +2880,14 @@ static int hostapd_config_fill(struct ho
+@@ -2841,6 +2841,14 @@ static int hostapd_config_fill(struct ho
  				   line, bss->max_num_sta, MAX_STA_COUNT);
  			return 1;
  		}
@@ -17,17 +17,17 @@
  	} else if (os_strcmp(buf, "extended_key_id") == 0) {
 --- a/src/ap/hostapd.h
 +++ b/src/ap/hostapd.h
-@@ -668,6 +668,7 @@ void hostapd_cleanup_cs_params(struct ho
+@@ -711,6 +711,7 @@ void hostapd_cleanup_cs_params(struct ho
  void hostapd_periodic_iface(struct hostapd_iface *iface);
  int hostapd_owe_trans_get_info(struct hostapd_data *hapd);
  void hostapd_ocv_check_csa_sa_query(void *eloop_ctx, void *timeout_ctx);
 +int hostapd_check_max_sta(struct hostapd_data *hapd);
  
- /* utils.c */
- int hostapd_register_probereq_cb(struct hostapd_data *hapd,
+ void hostapd_switch_color(struct hostapd_data *hapd, u64 bitmap);
+ void hostapd_cleanup_cca_params(struct hostapd_data *hapd);
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -236,6 +236,30 @@ static int hostapd_iface_conf_changed(st
+@@ -241,6 +241,30 @@ static int hostapd_iface_conf_changed(st
  }
  
  
@@ -60,7 +60,7 @@
  	struct hapd_interfaces *interfaces = iface->interfaces;
 --- a/src/ap/beacon.c
 +++ b/src/ap/beacon.c
-@@ -1068,7 +1068,7 @@ void handle_probe_req(struct hostapd_dat
+@@ -1135,7 +1135,7 @@ void handle_probe_req(struct hostapd_dat
  	if (hapd->conf->no_probe_resp_if_max_sta &&
  	    is_multicast_ether_addr(mgmt->da) &&
  	    is_multicast_ether_addr(mgmt->bssid) &&
@@ -71,7 +71,7 @@
  			   " since no room for additional STA",
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -981,6 +981,8 @@ struct hostapd_config {
+@@ -1010,6 +1010,8 @@ struct hostapd_config {
  	unsigned int track_sta_max_num;
  	unsigned int track_sta_max_age;
  
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/730-ft_iface.patch b/recipes-connectivity/wpa-supplicant/files/patches/730-ft_iface.patch
index b580922..d9a4f15 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/730-ft_iface.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/730-ft_iface.patch
@@ -1,6 +1,6 @@
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -3038,6 +3038,8 @@ static int hostapd_config_fill(struct ho
+@@ -3000,6 +3000,8 @@ static int hostapd_config_fill(struct ho
  		wpa_printf(MSG_INFO,
  			   "Line %d: Obsolete peerkey parameter ignored", line);
  #ifdef CONFIG_IEEE80211R_AP
@@ -11,7 +11,7 @@
  		    hexstr2bin(pos, bss->mobility_domain,
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -277,6 +277,7 @@ struct airtime_sta_weight {
+@@ -283,6 +283,7 @@ struct airtime_sta_weight {
  struct hostapd_bss_config {
  	char iface[IFNAMSIZ + 1];
  	char bridge[IFNAMSIZ + 1];
@@ -21,7 +21,7 @@
  
 --- a/src/ap/wpa_auth_glue.c
 +++ b/src/ap/wpa_auth_glue.c
-@@ -1566,8 +1566,12 @@ int hostapd_setup_wpa(struct hostapd_dat
+@@ -1595,8 +1595,12 @@ int hostapd_setup_wpa(struct hostapd_dat
  	    wpa_key_mgmt_ft(hapd->conf->wpa_key_mgmt)) {
  		const char *ft_iface;
  
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/740-snoop_iface.patch b/recipes-connectivity/wpa-supplicant/files/patches/740-snoop_iface.patch
index 2ed7375..608f15a 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/740-snoop_iface.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/740-snoop_iface.patch
@@ -1,6 +1,6 @@
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -278,6 +278,7 @@ struct hostapd_bss_config {
+@@ -284,6 +284,7 @@ struct hostapd_bss_config {
  	char iface[IFNAMSIZ + 1];
  	char bridge[IFNAMSIZ + 1];
  	char ft_iface[IFNAMSIZ + 1];
@@ -10,9 +10,9 @@
  
 --- a/src/ap/x_snoop.c
 +++ b/src/ap/x_snoop.c
-@@ -31,14 +31,16 @@ int x_snoop_init(struct hostapd_data *ha
- 		return -1;
- 	}
+@@ -33,14 +33,16 @@ int x_snoop_init(struct hostapd_data *ha
+ 
+ 	hapd->x_snoop_initialized = true;
  
 -	if (hostapd_drv_br_port_set_attr(hapd, DRV_BR_PORT_ATTR_HAIRPIN_MODE,
 +	if (!conf->snoop_iface[0] &&
@@ -29,7 +29,7 @@
  		wpa_printf(MSG_DEBUG,
  			   "x_snoop: Failed to enable proxyarp on the bridge port");
  		return -1;
-@@ -52,7 +54,8 @@ int x_snoop_init(struct hostapd_data *ha
+@@ -54,7 +56,8 @@ int x_snoop_init(struct hostapd_data *ha
  	}
  
  #ifdef CONFIG_IPV6
@@ -39,7 +39,7 @@
  		wpa_printf(MSG_DEBUG,
  			   "x_snoop: Failed to enable multicast snooping on the bridge");
  		return -1;
-@@ -71,8 +74,12 @@ x_snoop_get_l2_packet(struct hostapd_dat
+@@ -73,8 +76,12 @@ x_snoop_get_l2_packet(struct hostapd_dat
  {
  	struct hostapd_bss_config *conf = hapd->conf;
  	struct l2_packet_data *l2;
@@ -55,7 +55,7 @@
  			   "x_snoop: Failed to initialize L2 packet processing %s",
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -2360,6 +2360,8 @@ static int hostapd_config_fill(struct ho
+@@ -2318,6 +2318,8 @@ static int hostapd_config_fill(struct ho
  		os_strlcpy(bss->bridge, pos, sizeof(bss->bridge));
  		if (!bss->wds_bridge[0])
  			os_strlcpy(bss->wds_bridge, pos, sizeof(bss->wds_bridge));
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/750-qos_map_set_without_interworking.patch b/recipes-connectivity/wpa-supplicant/files/patches/750-qos_map_set_without_interworking.patch
index ff1d076..479d561 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/750-qos_map_set_without_interworking.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/750-qos_map_set_without_interworking.patch
@@ -1,6 +1,6 @@
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -1598,6 +1598,8 @@ static int parse_anqp_elem(struct hostap
+@@ -1602,6 +1602,8 @@ static int parse_anqp_elem(struct hostap
  	return 0;
  }
  
@@ -9,7 +9,7 @@
  
  static int parse_qos_map_set(struct hostapd_bss_config *bss,
  			     char *buf, int line)
-@@ -1639,8 +1641,6 @@ static int parse_qos_map_set(struct host
+@@ -1643,8 +1645,6 @@ static int parse_qos_map_set(struct host
  	return 0;
  }
  
@@ -18,7 +18,7 @@
  
  #ifdef CONFIG_HS20
  static int hs20_parse_conn_capab(struct hostapd_bss_config *bss, char *buf,
-@@ -4042,10 +4042,10 @@ static int hostapd_config_fill(struct ho
+@@ -4046,10 +4046,10 @@ static int hostapd_config_fill(struct ho
  		bss->gas_frag_limit = val;
  	} else if (os_strcmp(buf, "gas_comeback_delay") == 0) {
  		bss->gas_comeback_delay = atoi(pos);
@@ -32,7 +32,7 @@
  		os_free(bss->dump_msk_file);
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
-@@ -1423,6 +1423,7 @@ static int hostapd_setup_bss(struct host
+@@ -1424,6 +1424,7 @@ static int hostapd_setup_bss(struct host
  		wpa_printf(MSG_ERROR, "GAS server initialization failed");
  		return -1;
  	}
@@ -40,7 +40,7 @@
  
  	if (conf->qos_map_set_len &&
  	    hostapd_drv_set_qos_map(hapd, conf->qos_map_set,
-@@ -1430,7 +1431,6 @@ static int hostapd_setup_bss(struct host
+@@ -1431,7 +1432,6 @@ static int hostapd_setup_bss(struct host
  		wpa_printf(MSG_ERROR, "Failed to initialize QoS Map");
  		return -1;
  	}
@@ -81,7 +81,7 @@
  			   data->assoc_info.resp_ies_len, WLAN_EID_VHT_CAP))
 --- a/src/ap/ieee802_11_shared.c
 +++ b/src/ap/ieee802_11_shared.c
-@@ -1098,13 +1098,11 @@ u8 * hostapd_eid_rsnxe(struct hostapd_da
+@@ -1100,13 +1100,11 @@ u8 * hostapd_eid_rsnxe(struct hostapd_da
  u16 check_ext_capab(struct hostapd_data *hapd, struct sta_info *sta,
  		    const u8 *ext_capab_ie, size_t ext_capab_ie_len)
  {
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/751-qos_map_ignore_when_unsupported.patch b/recipes-connectivity/wpa-supplicant/files/patches/751-qos_map_ignore_when_unsupported.patch
index 8af5a0a..d90a275 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/751-qos_map_ignore_when_unsupported.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/751-qos_map_ignore_when_unsupported.patch
@@ -1,6 +1,6 @@
 --- a/src/ap/ap_drv_ops.c
 +++ b/src/ap/ap_drv_ops.c
-@@ -850,7 +850,8 @@ int hostapd_start_dfs_cac(struct hostapd
+@@ -864,7 +864,8 @@ int hostapd_start_dfs_cac(struct hostapd
  int hostapd_drv_set_qos_map(struct hostapd_data *hapd,
  			    const u8 *qos_map_set, u8 qos_map_set_len)
  {
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/800-acs-don-t-select-indoor-channel-on-outdoor-operation.patch b/recipes-connectivity/wpa-supplicant/files/patches/800-acs-don-t-select-indoor-channel-on-outdoor-operation.patch
index 96ebdef..1d9e956 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/800-acs-don-t-select-indoor-channel-on-outdoor-operation.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/800-acs-don-t-select-indoor-channel-on-outdoor-operation.patch
@@ -34,7 +34,7 @@
  		if (!chan_bw_allowed(chan, bw, 1, 1)) {
  			wpa_printf(MSG_DEBUG,
  				   "ACS: Channel %d: BW %u is not supported",
-@@ -1065,6 +1071,9 @@ static int * acs_request_scan_add_freqs(
+@@ -1067,6 +1073,9 @@ static int * acs_request_scan_add_freqs(
  		if (chan->max_tx_power < iface->conf->min_tx_power)
  			continue;
  
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/911-master-print-sae-groups-by-hostapd-ctrl.patch b/recipes-connectivity/wpa-supplicant/files/patches/911-master-print-sae-groups-by-hostapd-ctrl.patch
deleted file mode 100644
index 859fdbf..0000000
--- a/recipes-connectivity/wpa-supplicant/files/patches/911-master-print-sae-groups-by-hostapd-ctrl.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/hostapd/ctrl_iface.c
-+++ b/hostapd/ctrl_iface.c
-@@ -1584,6 +1584,19 @@ static int hostapd_ctrl_iface_get(struct
- 		if (os_snprintf_error(buflen, res))
- 			return -1;
- 		return res;
-+	} else if (os_strcmp(cmd, "sae_group_capability") == 0) {
-+#ifdef CONFIG_SAE
-+		/* see sae_set_group() */
-+		res = os_snprintf(buf, buflen, "%s%s%s%s19 20 21",
-+				  dh_groups_get(15) ? "15 ": "",
-+				  dh_groups_get(16) ? "16 ": "",
-+				  dh_groups_get(17) ? "17 ": "",
-+				  dh_groups_get(18) ? "18 ": "");
-+
-+		if (os_snprintf_error(buflen, res))
-+			return -1;
-+		return res;
-+#endif /* CONFIG_SAE */
- 	}
- 
- 	return -1;
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/990-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch b/recipes-connectivity/wpa-supplicant/files/patches/990-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch
index 3665c6c..e78a4ef 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/990-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/990-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch
@@ -11,11 +11,9 @@
  wpa_supplicant/ctrl_iface.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
-diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c
-index ac337e0f5..6e23114e6 100644
 --- a/wpa_supplicant/ctrl_iface.c
 +++ b/wpa_supplicant/ctrl_iface.c
-@@ -12185,7 +12185,7 @@ char * wpa_supplicant_ctrl_iface_process(struct wpa_supplicant *wpa_s,
+@@ -12241,7 +12241,7 @@ char * wpa_supplicant_ctrl_iface_process
  		if (wpas_ctrl_iface_coloc_intf_report(wpa_s, buf + 18))
  			reply_len = -1;
  #endif /* CONFIG_WNM */
@@ -24,7 +22,7 @@
  	} else if (os_strncmp(buf, "DISASSOC_IMMINENT ", 18) == 0) {
  		if (ap_ctrl_iface_disassoc_imminent(wpa_s, buf + 18))
  			reply_len = -1;
-@@ -12195,7 +12195,7 @@ char * wpa_supplicant_ctrl_iface_process(struct wpa_supplicant *wpa_s,
+@@ -12251,7 +12251,7 @@ char * wpa_supplicant_ctrl_iface_process
  	} else if (os_strncmp(buf, "BSS_TM_REQ ", 11) == 0) {
  		if (ap_ctrl_iface_bss_tm_req(wpa_s, buf + 11))
  			reply_len = -1;
@@ -33,6 +31,3 @@
  	} else if (os_strcmp(buf, "FLUSH") == 0) {
  		wpa_supplicant_ctrl_iface_flush(wpa_s);
  	} else if (os_strncmp(buf, "RADIO_WORK ", 11) == 0) {
--- 
-2.35.1
-
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/991-fix-compile.patch b/recipes-connectivity/wpa-supplicant/files/patches/991-fix-compile.patch
deleted file mode 100644
index d08efa0..0000000
--- a/recipes-connectivity/wpa-supplicant/files/patches/991-fix-compile.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- a/wpa_supplicant/wpa_supplicant.c
-+++ b/wpa_supplicant/wpa_supplicant.c
-@@ -8104,6 +8104,7 @@ int wpas_network_disabled(struct wpa_sup
- 	    !ssid->mem_only_psk)
- 		return 1;
- 
-+#ifdef CONFIG_IEEE8021X_EAPOL
- #ifdef CRYPTO_RSA_OAEP_SHA256
- 	if (ssid->eap.imsi_privacy_cert) {
- 		struct crypto_rsa_key *key;
-@@ -8121,7 +8122,7 @@ int wpas_network_disabled(struct wpa_sup
- 		}
- 	}
- #endif /* CRYPTO_RSA_OAEP_SHA256 */
--
-+#endif /* CONFIG_IEEE8021X_EAPOL */
- 	return 0;
- }
- 
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/902-master-Add-hostapd_neighbor_count-and-hostapd_neighbor_inse.patch b/recipes-connectivity/wpa-supplicant/files/patches/99900-master-Add-hostapd_neighbor_count-and-hostapd_neighbor_ins.patch
similarity index 90%
rename from recipes-connectivity/wpa-supplicant/files/patches/902-master-Add-hostapd_neighbor_count-and-hostapd_neighbor_inse.patch
rename to recipes-connectivity/wpa-supplicant/files/patches/99900-master-Add-hostapd_neighbor_count-and-hostapd_neighbor_ins.patch
index e761c00..ce6d8a2 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/902-master-Add-hostapd_neighbor_count-and-hostapd_neighbor_inse.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/99900-master-Add-hostapd_neighbor_count-and-hostapd_neighbor_ins.patch
@@ -1,7 +1,7 @@
-From 413cb1d917383c5f4cb4bb6b94310c4f193a9187 Mon Sep 17 00:00:00 2001
+From ad6a0480d6e495796ac74b8ec53bcc2e85534caf Mon Sep 17 00:00:00 2001
 From: "howard.hsu" <howard-yh.hsu@mediatek.com>
 Date: Wed, 19 Jan 2022 19:18:07 +0800
-Subject: [PATCH 1/9] Add hostapd_neighbor_count() and
+Subject: [PATCH 99900/99916] Add hostapd_neighbor_count() and
  hostapd_neighbor_insert_buffer ()
 
 The first function can count the number of neighbor report in neighbore report
@@ -13,7 +13,7 @@
  2 files changed, 35 insertions(+)
 
 diff --git a/src/ap/neighbor_db.c b/src/ap/neighbor_db.c
-index 229edd2..ce6865d 100644
+index 52f25eb7a..c12139067 100644
 --- a/src/ap/neighbor_db.c
 +++ b/src/ap/neighbor_db.c
 @@ -89,6 +89,38 @@ int hostapd_neighbor_show(struct hostapd_data *hapd, char *buf, size_t buflen)
@@ -56,7 +56,7 @@
  {
  	wpabuf_free(nr->nr);
 diff --git a/src/ap/neighbor_db.h b/src/ap/neighbor_db.h
-index 992671b..1ae194d 100644
+index 992671b62..1ae194d98 100644
 --- a/src/ap/neighbor_db.h
 +++ b/src/ap/neighbor_db.h
 @@ -24,4 +24,7 @@ int hostapd_neighbor_remove(struct hostapd_data *hapd, const u8 *bssid,
@@ -68,5 +68,5 @@
 +        size_t buflen);
  #endif /* NEIGHBOR_DB_H */
 -- 
-2.18.0
+2.25.1
 
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/903-master-Support-including-neighbor-report-elements-in-ANQP-r.patch b/recipes-connectivity/wpa-supplicant/files/patches/99901-master-Support-including-neighbor-report-elements-in-ANQP-.patch
similarity index 92%
rename from recipes-connectivity/wpa-supplicant/files/patches/903-master-Support-including-neighbor-report-elements-in-ANQP-r.patch
rename to recipes-connectivity/wpa-supplicant/files/patches/99901-master-Support-including-neighbor-report-elements-in-ANQP-.patch
index 3e6506a..d908add 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/903-master-Support-including-neighbor-report-elements-in-ANQP-r.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/99901-master-Support-including-neighbor-report-elements-in-ANQP-.patch
@@ -1,8 +1,8 @@
-From adacd810f97a89472f26b454805cd67d0e6f5d31 Mon Sep 17 00:00:00 2001
+From 5773e6a27eb2d2028972fb0ab1206faf6a117d17 Mon Sep 17 00:00:00 2001
 From: "howard.hsu" <howard-yh.hsu@mediatek.com>
 Date: Wed, 19 Jan 2022 19:25:05 +0800
-Subject: [PATCH 2/9] Support including neighbor report elements in ANQP
- response
+Subject: [PATCH 99901/99916] Support including neighbor report elements in
+ ANQP response
 
 ---
  src/ap/gas_serv.c | 29 +++++++++++++++++++++++++++++
@@ -10,7 +10,7 @@
  2 files changed, 31 insertions(+)
 
 diff --git a/src/ap/gas_serv.c b/src/ap/gas_serv.c
-index 90f1577..5845ff8 100644
+index 90f15778b..5845ff857 100644
 --- a/src/ap/gas_serv.c
 +++ b/src/ap/gas_serv.c
 @@ -19,6 +19,7 @@
@@ -78,7 +78,7 @@
  #ifdef CONFIG_FILS
  		if (info_id == ANQP_FILS_REALM_INFO &&
 diff --git a/src/ap/gas_serv.h b/src/ap/gas_serv.h
-index 1528af4..d0241f2 100644
+index 1528af4af..d0241f23c 100644
 --- a/src/ap/gas_serv.h
 +++ b/src/ap/gas_serv.h
 @@ -40,6 +40,8 @@
@@ -91,5 +91,5 @@
   * First 15 Hotspot 2.0 vendor specific ANQP-elements can be included in the
   * optimized bitmap.
 -- 
-2.18.0
+2.25.1
 
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/904-master-Support-including-neignbor-report-elements-in-BTM-re.patch b/recipes-connectivity/wpa-supplicant/files/patches/99902-master-Support-including-neignbor-report-elements-in-BTM-r.patch
similarity index 91%
rename from recipes-connectivity/wpa-supplicant/files/patches/904-master-Support-including-neignbor-report-elements-in-BTM-re.patch
rename to recipes-connectivity/wpa-supplicant/files/patches/99902-master-Support-including-neignbor-report-elements-in-BTM-r.patch
index 86d8fd1..cc10887 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/904-master-Support-including-neignbor-report-elements-in-BTM-re.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/99902-master-Support-including-neignbor-report-elements-in-BTM-r.patch
@@ -1,7 +1,7 @@
-From 4a7b4a0fe05dd01ae64dd4e291d05de6d5f05bb7 Mon Sep 17 00:00:00 2001
+From dc41ee6abddd05f25cba50126afe7890b890dfbc Mon Sep 17 00:00:00 2001
 From: "howard.hsu" <howard-yh.hsu@mediatek.com>
 Date: Wed, 19 Jan 2022 19:49:09 +0800
-Subject: [PATCH 3/9] Support including neignbor report elements in BTM
+Subject: [PATCH 99902/99916] Support including neignbor report elements in BTM
  response
 
 ---
@@ -9,7 +9,7 @@
  1 file changed, 23 insertions(+), 2 deletions(-)
 
 diff --git a/src/ap/wnm_ap.c b/src/ap/wnm_ap.c
-index 72cd126..b55b3f3 100644
+index 3ea92af2d..532d9dbe6 100644
 --- a/src/ap/wnm_ap.c
 +++ b/src/ap/wnm_ap.c
 @@ -20,6 +20,7 @@
@@ -64,5 +64,5 @@
  	wpa_printf(MSG_DEBUG, "WNM: Send BSS Transition Management Request to "
  		   MACSTR " dialog_token=%u req_mode=0x%x disassoc_timer=%u "
 -- 
-2.18.0
+2.25.1
 
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/905-master-Support-configuring-BSS-Termination-TSF-by-using-hos.patch b/recipes-connectivity/wpa-supplicant/files/patches/99903-master-Support-configuring-BSS-Termination-TSF-by-using-ho.patch
similarity index 81%
rename from recipes-connectivity/wpa-supplicant/files/patches/905-master-Support-configuring-BSS-Termination-TSF-by-using-hos.patch
rename to recipes-connectivity/wpa-supplicant/files/patches/99903-master-Support-configuring-BSS-Termination-TSF-by-using-ho.patch
index ad9c926..5370298 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/905-master-Support-configuring-BSS-Termination-TSF-by-using-hos.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/99903-master-Support-configuring-BSS-Termination-TSF-by-using-ho.patch
@@ -1,7 +1,7 @@
-From 6a949f8644546d689b7271228d19b1b1ad80632f Mon Sep 17 00:00:00 2001
+From e3453cf75d1d9067e97b6d0d370afb3805eccea7 Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Thu, 9 Jun 2022 19:56:18 +0800
-Subject: [PATCH 1/6] Support configuring BSS Termination TSF by using
+Subject: [PATCH 99903/99916] Support configuring BSS Termination TSF by using
  hostapd_cli command
 
 ---
@@ -12,10 +12,10 @@
  4 files changed, 11 insertions(+)
 
 diff --git a/hostapd/ctrl_iface.c b/hostapd/ctrl_iface.c
-index 4718368..e0a7e4f 100644
+index a2584920c..c2a282227 100644
 --- a/hostapd/ctrl_iface.c
 +++ b/hostapd/ctrl_iface.c
-@@ -1326,6 +1326,11 @@ static int hostapd_ctrl_iface_set(struct hostapd_data *hapd, char *cmd)
+@@ -1338,6 +1338,11 @@ static int hostapd_ctrl_iface_set(struct hostapd_data *hapd, char *cmd)
  #endif /* CONFIG_DPP */
  	} else if (os_strcasecmp(cmd, "setband") == 0) {
  		ret = hostapd_ctrl_iface_set_band(hapd, value);
@@ -28,7 +28,7 @@
  		ret = hostapd_set_iface(hapd->iconf, hapd->conf, cmd, value);
  		if (ret)
 diff --git a/src/ap/ap_config.c b/src/ap/ap_config.c
-index 23b67e1..f248281 100644
+index d7a0c7c80..4a20eb4e1 100644
 --- a/src/ap/ap_config.c
 +++ b/src/ap/ap_config.c
 @@ -170,6 +170,7 @@ void hostapd_config_defaults_bss(struct hostapd_bss_config *bss)
@@ -40,7 +40,7 @@
  
  
 diff --git a/src/ap/ap_config.h b/src/ap/ap_config.h
-index f795ee9..5dab8be 100644
+index ed3bec7fe..3f68e76d5 100644
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
 @@ -557,6 +557,7 @@ struct hostapd_bss_config {
@@ -52,10 +52,10 @@
  	/* IEEE 802.11u - Interworking */
  	int interworking;
 diff --git a/src/ap/ctrl_iface_ap.c b/src/ap/ctrl_iface_ap.c
-index c496e4f..aad5180 100644
+index 96209ce7e..46a860905 100644
 --- a/src/ap/ctrl_iface_ap.c
 +++ b/src/ap/ctrl_iface_ap.c
-@@ -1202,6 +1202,10 @@ int hostapd_ctrl_iface_bss_tm_req(struct hostapd_data *hapd,
+@@ -1203,6 +1203,10 @@ int hostapd_ctrl_iface_bss_tm_req(struct hostapd_data *hapd,
  			wpa_printf(MSG_DEBUG, "Invalid bss_term data");
  			return -1;
  		}
@@ -67,5 +67,5 @@
  		WPA_PUT_LE16(&bss_term_dur[10], atoi(end));
  	}
 -- 
-2.18.0
+2.25.1
 
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/906-master-Disable-interface-if-BSS-Termination-TSF-is-set.patch b/recipes-connectivity/wpa-supplicant/files/patches/99904-master-Disable-interface-if-BSS-Termination-TSF-is-set.patch
similarity index 78%
rename from recipes-connectivity/wpa-supplicant/files/patches/906-master-Disable-interface-if-BSS-Termination-TSF-is-set.patch
rename to recipes-connectivity/wpa-supplicant/files/patches/99904-master-Disable-interface-if-BSS-Termination-TSF-is-set.patch
index 0d28e4e..f147d68 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/906-master-Disable-interface-if-BSS-Termination-TSF-is-set.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/99904-master-Disable-interface-if-BSS-Termination-TSF-is-set.patch
@@ -1,17 +1,17 @@
-From dcedb231bc62949d458792530a14ceddfee20e96 Mon Sep 17 00:00:00 2001
+From 17c48cab4058c5183f3fedc1bfbd6877a706e003 Mon Sep 17 00:00:00 2001
 From: "howard.hsu" <howard-yh.hsu@mediatek.com>
 Date: Wed, 19 Jan 2022 21:03:38 +0800
-Subject: [PATCH 5/9] Disable interface if BSS Termination TSF is set
+Subject: [PATCH 99904/99916] Disable interface if BSS Termination TSF is set
 
 ---
  src/ap/wnm_ap.c | 17 +++++++++++++++++
  1 file changed, 17 insertions(+)
 
 diff --git a/src/ap/wnm_ap.c b/src/ap/wnm_ap.c
-index b55b3f3..6eac3ac 100644
+index 532d9dbe6..f6761aba3 100644
 --- a/src/ap/wnm_ap.c
 +++ b/src/ap/wnm_ap.c
-@@ -767,6 +767,22 @@ static void set_disassoc_timer(struct hostapd_data *hapd, struct sta_info *sta,
+@@ -780,6 +780,22 @@ static void set_disassoc_timer(struct hostapd_data *hapd, struct sta_info *sta,
  }
  
  
@@ -34,7 +34,7 @@
  int wnm_send_ess_disassoc_imminent(struct hostapd_data *hapd,
  				   struct sta_info *sta, const char *url,
  				   int disassoc_timer)
-@@ -856,6 +872,7 @@ int wnm_send_bss_tm_req(struct hostapd_data *hapd, struct sta_info *sta,
+@@ -869,6 +885,7 @@ int wnm_send_bss_tm_req(struct hostapd_data *hapd, struct sta_info *sta,
  	    bss_term_dur) {
  		os_memcpy(pos, bss_term_dur, 12);
  		pos += 12;
@@ -43,5 +43,5 @@
  
  	if (url) {
 -- 
-2.18.0
+2.25.1
 
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/907-master-Add-set_send_disassoc_frame_timer-to-send-disassocia.patch b/recipes-connectivity/wpa-supplicant/files/patches/99905-master-Add-set_send_disassoc_frame_timer-to-send-disassoci.patch
similarity index 84%
rename from recipes-connectivity/wpa-supplicant/files/patches/907-master-Add-set_send_disassoc_frame_timer-to-send-disassocia.patch
rename to recipes-connectivity/wpa-supplicant/files/patches/99905-master-Add-set_send_disassoc_frame_timer-to-send-disassoci.patch
index be0f823..c967ebf 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/907-master-Add-set_send_disassoc_frame_timer-to-send-disassocia.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/99905-master-Add-set_send_disassoc_frame_timer-to-send-disassoci.patch
@@ -1,8 +1,8 @@
-From cb31775e39eaa2b8a0bd36f5e195ac8bff967535 Mon Sep 17 00:00:00 2001
+From 1538a92c53326c958133d5859c8dff0d56050c68 Mon Sep 17 00:00:00 2001
 From: "howard.hsu" <howard-yh.hsu@mediatek.com>
 Date: Wed, 19 Jan 2022 21:15:07 +0800
-Subject: [PATCH 6/9] Add set_send_disassoc_frame_timer() to send disassociate
- frame
+Subject: [PATCH 99905/99916] Add set_send_disassoc_frame_timer() to send
+ disassociate frame
 
 Function set_disassoc_timer() may fail if key was deleted first. This new
 function will not ask to delete key as set_disassoc_timer() did.
@@ -11,10 +11,10 @@
  1 file changed, 29 insertions(+), 1 deletion(-)
 
 diff --git a/src/ap/wnm_ap.c b/src/ap/wnm_ap.c
-index 6eac3ac..fad132c 100644
+index f6761aba3..4349e1df2 100644
 --- a/src/ap/wnm_ap.c
 +++ b/src/ap/wnm_ap.c
-@@ -767,6 +767,34 @@ static void set_disassoc_timer(struct hostapd_data *hapd, struct sta_info *sta,
+@@ -780,6 +780,34 @@ static void set_disassoc_timer(struct hostapd_data *hapd, struct sta_info *sta,
  }
  
  
@@ -49,7 +49,7 @@
  void bss_termination_disable_iface(void *eloop_ctx, void *timeout_ctx)
  {
  	struct hostapd_data *hapd = eloop_ctx;
-@@ -909,7 +937,7 @@ int wnm_send_bss_tm_req(struct hostapd_data *hapd, struct sta_info *sta,
+@@ -922,7 +950,7 @@ int wnm_send_bss_tm_req(struct hostapd_data *hapd, struct sta_info *sta,
  	hapd->openwrt_stats.wnm.bss_transition_request_tx++;
  	if (disassoc_timer) {
  		/* send disassociation frame after time-out */
@@ -59,5 +59,5 @@
  
  	return 0;
 -- 
-2.18.0
+2.25.1
 
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/908-master-Support-including-neighbor-report-elements-in-BTM-re.patch b/recipes-connectivity/wpa-supplicant/files/patches/99906-master-Support-including-neighbor-report-elements-in-BTM-r.patch
similarity index 75%
rename from recipes-connectivity/wpa-supplicant/files/patches/908-master-Support-including-neighbor-report-elements-in-BTM-re.patch
rename to recipes-connectivity/wpa-supplicant/files/patches/99906-master-Support-including-neighbor-report-elements-in-BTM-r.patch
index 37f2d96..c88f3e5 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/908-master-Support-including-neighbor-report-elements-in-BTM-re.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/99906-master-Support-including-neighbor-report-elements-in-BTM-r.patch
@@ -1,17 +1,18 @@
-From e6f1c893d375aa952e1f9c8c1eb4ecacf588e4e2 Mon Sep 17 00:00:00 2001
+From 8b4c91eee579bb232b7a921abbfe07f3630d73b9 Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Thu, 9 Jun 2022 19:58:57 +0800
-Subject: [PATCH 4/6] Support including neighbor report elements in BTM request
+Subject: [PATCH 99906/99916] Support including neighbor report elements in BTM
+ request
 
 ---
  src/ap/ctrl_iface_ap.c | 7 ++++++-
  1 file changed, 6 insertions(+), 1 deletion(-)
 
 diff --git a/src/ap/ctrl_iface_ap.c b/src/ap/ctrl_iface_ap.c
-index aad5180..fccc5f9 100644
+index 46a860905..1cbec537a 100644
 --- a/src/ap/ctrl_iface_ap.c
 +++ b/src/ap/ctrl_iface_ap.c
-@@ -1232,8 +1232,13 @@ int hostapd_ctrl_iface_bss_tm_req(struct hostapd_data *hapd,
+@@ -1233,8 +1233,13 @@ int hostapd_ctrl_iface_bss_tm_req(struct hostapd_data *hapd,
  		req_mode |= WNM_BSS_TM_REQ_ESS_DISASSOC_IMMINENT;
  	}
  
@@ -27,5 +28,5 @@
  		req_mode |= WNM_BSS_TM_REQ_ABRIDGED;
  	if (os_strstr(cmd, " disassoc_imminent=1"))
 -- 
-2.18.0
+2.25.1
 
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/909-master-Add-hostapd_neighbor_set_own_report_pref.patch b/recipes-connectivity/wpa-supplicant/files/patches/99907-master-Add-hostapd_neighbor_set_own_report_pref.patch
similarity index 86%
rename from recipes-connectivity/wpa-supplicant/files/patches/909-master-Add-hostapd_neighbor_set_own_report_pref.patch
rename to recipes-connectivity/wpa-supplicant/files/patches/99907-master-Add-hostapd_neighbor_set_own_report_pref.patch
index f77deb2..37ff1ac 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/909-master-Add-hostapd_neighbor_set_own_report_pref.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/99907-master-Add-hostapd_neighbor_set_own_report_pref.patch
@@ -1,7 +1,7 @@
-From 12b95b365372ca8167b8fdbfd192fcd4dcb11419 Mon Sep 17 00:00:00 2001
+From 9af8c262f5405028d704a3b7f93c4fcb7ed5f7b4 Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Thu, 9 Jun 2022 20:00:49 +0800
-Subject: [PATCH 5/6] Add hostapd_neighbor_set_own_report_pref()
+Subject: [PATCH 99907/99916] Add hostapd_neighbor_set_own_report_pref()
 
 ---
  src/ap/ctrl_iface_ap.c |  6 +++++-
@@ -10,10 +10,10 @@
  3 files changed, 43 insertions(+), 1 deletion(-)
 
 diff --git a/src/ap/ctrl_iface_ap.c b/src/ap/ctrl_iface_ap.c
-index fccc5f9..d5d4e33 100644
+index 1cbec537a..274b43587 100644
 --- a/src/ap/ctrl_iface_ap.c
 +++ b/src/ap/ctrl_iface_ap.c
-@@ -1241,8 +1241,12 @@ int hostapd_ctrl_iface_bss_tm_req(struct hostapd_data *hapd,
+@@ -1242,8 +1242,12 @@ int hostapd_ctrl_iface_bss_tm_req(struct hostapd_data *hapd,
  	}
  	if (os_strstr(cmd, " abridged=1"))
  		req_mode |= WNM_BSS_TM_REQ_ABRIDGED;
@@ -28,10 +28,10 @@
  #ifdef CONFIG_MBO
  	pos = os_strstr(cmd, "mbo=");
 diff --git a/src/ap/neighbor_db.c b/src/ap/neighbor_db.c
-index fabe64d..20a4417 100644
+index c12139067..134ed4a71 100644
 --- a/src/ap/neighbor_db.c
 +++ b/src/ap/neighbor_db.c
-@@ -355,3 +355,39 @@ void hostapd_neighbor_set_own_report(struct hostapd_data *hapd)
+@@ -357,3 +357,39 @@ void hostapd_neighbor_set_own_report(struct hostapd_data *hapd)
  	wpabuf_free(nr);
  #endif /* NEED_AP_MLME */
  }
@@ -72,7 +72,7 @@
 +	}
 +}
 diff --git a/src/ap/neighbor_db.h b/src/ap/neighbor_db.h
-index 1ae194d..2e16f72 100644
+index 1ae194d98..2e16f7268 100644
 --- a/src/ap/neighbor_db.h
 +++ b/src/ap/neighbor_db.h
 @@ -27,4 +27,6 @@ void hostapd_free_neighbor_db(struct hostapd_data *hapd);
@@ -83,5 +83,5 @@
 +			 size_t buflen, const int pref);
  #endif /* NEIGHBOR_DB_H */
 -- 
-2.18.0
+2.25.1
 
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/910-master-Add-hostapd_neighbor_set_pref_by_non_pref_chan.patch b/recipes-connectivity/wpa-supplicant/files/patches/99908-master-Add-hostapd_neighbor_set_pref_by_non_pref_chan.patch
similarity index 87%
rename from recipes-connectivity/wpa-supplicant/files/patches/910-master-Add-hostapd_neighbor_set_pref_by_non_pref_chan.patch
rename to recipes-connectivity/wpa-supplicant/files/patches/99908-master-Add-hostapd_neighbor_set_pref_by_non_pref_chan.patch
index 8a9e47e..563588e 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/910-master-Add-hostapd_neighbor_set_pref_by_non_pref_chan.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/99908-master-Add-hostapd_neighbor_set_pref_by_non_pref_chan.patch
@@ -1,7 +1,7 @@
-From be49aa855a83b3bb0c6a96380960b54cbdabcb56 Mon Sep 17 00:00:00 2001
+From 21c1940ecfd6d9404097868ad4a59a0d6a54ea69 Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Thu, 9 Jun 2022 20:02:06 +0800
-Subject: [PATCH 6/6] Add hostapd_neighbor_set_pref_by_non_pref_chan()
+Subject: [PATCH 99908/99916] Add hostapd_neighbor_set_pref_by_non_pref_chan()
 
 ---
  src/ap/ctrl_iface_ap.c |  2 ++
@@ -10,10 +10,10 @@
  3 files changed, 57 insertions(+)
 
 diff --git a/src/ap/ctrl_iface_ap.c b/src/ap/ctrl_iface_ap.c
-index d5d4e33..a888b76 100644
+index 274b43587..18bae5c8b 100644
 --- a/src/ap/ctrl_iface_ap.c
 +++ b/src/ap/ctrl_iface_ap.c
-@@ -1249,6 +1249,8 @@ int hostapd_ctrl_iface_bss_tm_req(struct hostapd_data *hapd,
+@@ -1250,6 +1250,8 @@ int hostapd_ctrl_iface_bss_tm_req(struct hostapd_data *hapd,
  
  
  #ifdef CONFIG_MBO
@@ -23,10 +23,10 @@
  	if (pos) {
  		unsigned int mbo_reason, cell_pref, reassoc_delay;
 diff --git a/src/ap/neighbor_db.c b/src/ap/neighbor_db.c
-index 20a4417..8c27da9 100644
+index 134ed4a71..9254d09fd 100644
 --- a/src/ap/neighbor_db.c
 +++ b/src/ap/neighbor_db.c
-@@ -391,3 +391,54 @@ void hostapd_neighbor_set_own_report_pref(struct hostapd_data *hapd, char *nei_b
+@@ -393,3 +393,54 @@ void hostapd_neighbor_set_own_report_pref(struct hostapd_data *hapd, char *nei_b
  		}
  	}
  }
@@ -82,7 +82,7 @@
 +}
 +#endif
 diff --git a/src/ap/neighbor_db.h b/src/ap/neighbor_db.h
-index 2e16f72..a1ddc07 100644
+index 2e16f7268..a1ddc075b 100644
 --- a/src/ap/neighbor_db.h
 +++ b/src/ap/neighbor_db.h
 @@ -29,4 +29,8 @@ int hostapd_neighbor_insert_buffer(struct hostapd_data *hapd, char *buf,
@@ -95,5 +95,5 @@
 +#endif
  #endif /* NEIGHBOR_DB_H */
 -- 
-2.18.0
+2.25.1
 
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/99909-master-print-sae-groups-by-hostapd-ctrl.patch b/recipes-connectivity/wpa-supplicant/files/patches/99909-master-print-sae-groups-by-hostapd-ctrl.patch
new file mode 100644
index 0000000..58b47fa
--- /dev/null
+++ b/recipes-connectivity/wpa-supplicant/files/patches/99909-master-print-sae-groups-by-hostapd-ctrl.patch
@@ -0,0 +1,36 @@
+From 0818f9258d0491387103ef7b98b8dbbd1ada12ec Mon Sep 17 00:00:00 2001
+From: Shayne Chen <shayne.chen@mediatek.com>
+Date: Tue, 20 Sep 2022 19:33:45 +0800
+Subject: [PATCH 99909/99916] print sae groups by hostapd ctrl
+
+---
+ hostapd/ctrl_iface.c | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/hostapd/ctrl_iface.c b/hostapd/ctrl_iface.c
+index c2a282227..bc690c526 100644
+--- a/hostapd/ctrl_iface.c
++++ b/hostapd/ctrl_iface.c
+@@ -1412,6 +1412,19 @@ static int hostapd_ctrl_iface_get(struct hostapd_data *hapd, char *cmd,
+ 		if (os_snprintf_error(buflen, res))
+ 			return -1;
+ 		return res;
++	} else if (os_strcmp(cmd, "sae_group_capability") == 0) {
++#ifdef CONFIG_SAE
++		/* see sae_set_group() */
++		res = os_snprintf(buf, buflen, "%s%s%s%s19 20 21",
++				  dh_groups_get(15) ? "15 ": "",
++				  dh_groups_get(16) ? "16 ": "",
++				  dh_groups_get(17) ? "17 ": "",
++				  dh_groups_get(18) ? "18 ": "");
++
++		if (os_snprintf_error(buflen, res))
++			return -1;
++		return res;
++#endif /* CONFIG_SAE */
+ 	}
+ 
+ 	return -1;
+-- 
+2.25.1
+
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/913-master-add-support-for-runtime-set-in-band-discover.patch b/recipes-connectivity/wpa-supplicant/files/patches/99910-master-hostapd-add-support-for-runtime-set-in-band-discove.patch
similarity index 87%
rename from recipes-connectivity/wpa-supplicant/files/patches/913-master-add-support-for-runtime-set-in-band-discover.patch
rename to recipes-connectivity/wpa-supplicant/files/patches/99910-master-hostapd-add-support-for-runtime-set-in-band-discove.patch
index dcbe915..b404963 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/913-master-add-support-for-runtime-set-in-band-discover.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/99910-master-hostapd-add-support-for-runtime-set-in-band-discove.patch
@@ -1,7 +1,8 @@
-From 76d110deecc1705295b3154ce91d046fb6115c66 Mon Sep 17 00:00:00 2001
+From cff3f584e921ce37fcd72a895666abc9227d16fd Mon Sep 17 00:00:00 2001
 From: MeiChia Chiu <meichia.chiu@mediatek.com>
 Date: Tue, 31 May 2022 21:15:54 +0800
-Subject: [PATCH] hostapd: add support for runtime set in-band discovery
+Subject: [PATCH 99910/99916] hostapd: add support for runtime set in-band
+ discovery
 
 Usage:
 hostapd_cli unsolic_probe_resp [tx_type] [interval]
@@ -20,10 +21,10 @@
  5 files changed, 98 insertions(+), 4 deletions(-)
 
 diff --git a/hostapd/ctrl_iface.c b/hostapd/ctrl_iface.c
-index 664c59df7..e6a2d4203 100644
+index bc690c526..bb8c74fd3 100644
 --- a/hostapd/ctrl_iface.c
 +++ b/hostapd/ctrl_iface.c
-@@ -769,6 +769,69 @@ static int hostapd_ctrl_iface_send_qos_map_conf(struct hostapd_data *hapd,
+@@ -826,6 +826,69 @@ static int hostapd_ctrl_iface_send_qos_map_conf(struct hostapd_data *hapd,
  
  #endif /* CONFIG_INTERWORKING */
  
@@ -93,7 +94,7 @@
  
  #ifdef CONFIG_WNM_AP
  
-@@ -3336,6 +3399,9 @@ static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
+@@ -3434,6 +3497,9 @@ static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
  		if (hostapd_ctrl_iface_coloc_intf_req(hapd, buf + 15))
  			reply_len = -1;
  #endif /* CONFIG_WNM_AP */
@@ -104,12 +105,12 @@
  		reply_len = hostapd_ctrl_iface_get_config(hapd, reply,
  							  reply_size);
 diff --git a/hostapd/hostapd_cli.c b/hostapd/hostapd_cli.c
-index 60396f3da..4c4c82c9a 100644
+index 85c41d0c3..db2125805 100644
 --- a/hostapd/hostapd_cli.c
 +++ b/hostapd/hostapd_cli.c
-@@ -646,6 +646,24 @@ static int hostapd_cli_cmd_wps_config(struct wpa_ctrl *ctrl, int argc,
+@@ -642,6 +642,24 @@ static int hostapd_cli_cmd_wps_config(struct wpa_ctrl *ctrl, int argc,
+ 	return wpa_ctrl_command(ctrl, buf);
  }
- #endif /* CONFIG_WPS */
  
 +static int hostapd_cli_cmd_inband_discovery(struct wpa_ctrl *ctrl, int argc,
 +					    char *argv[])
@@ -132,7 +133,7 @@
  
  static int hostapd_cli_cmd_disassoc_imminent(struct wpa_ctrl *ctrl, int argc,
  					     char *argv[])
-@@ -1744,6 +1762,8 @@ static const struct hostapd_cli_cmd hostapd_cli_commands[] = {
+@@ -1749,6 +1767,8 @@ static const struct hostapd_cli_cmd hostapd_cli_commands[] = {
  	{ "driver", hostapd_cli_cmd_driver, NULL,
  	  "<driver sub command> [<hex formatted data>] = send driver command data" },
  #endif /* ANDROID */
@@ -142,10 +143,10 @@
  };
  
 diff --git a/src/ap/beacon.c b/src/ap/beacon.c
-index 58872bfda..c8db86c6e 100644
+index 814e86efe..1a26f11ff 100644
 --- a/src/ap/beacon.c
 +++ b/src/ap/beacon.c
-@@ -1483,6 +1483,8 @@ static u8 * hostapd_fils_discovery(struct hostapd_data *hapd,
+@@ -1497,6 +1497,8 @@ static u8 * hostapd_fils_discovery(struct hostapd_data *hapd,
  				   struct wpa_driver_ap_params *params)
  {
  	params->fd_max_int = hapd->conf->fils_discovery_max_int;
@@ -154,7 +155,7 @@
  	if (is_6ghz_op_class(hapd->iconf->op_class) &&
  	    params->fd_max_int > FD_MAX_INTERVAL_6GHZ)
  		params->fd_max_int = FD_MAX_INTERVAL_6GHZ;
-@@ -1491,7 +1493,8 @@ static u8 * hostapd_fils_discovery(struct hostapd_data *hapd,
+@@ -1505,7 +1507,8 @@ static u8 * hostapd_fils_discovery(struct hostapd_data *hapd,
  	if (params->fd_min_int > params->fd_max_int)
  		params->fd_min_int = params->fd_max_int;
  
@@ -165,10 +166,10 @@
  						  &params->fd_frame_tmpl_len);
  
 diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
-index 0127a6be2..ee763990f 100644
+index 53f25030a..5eba0ea1b 100644
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -4493,9 +4493,10 @@ static int nl80211_fils_discovery(struct i802_bss *bss, struct nl_msg *msg,
+@@ -4498,9 +4498,10 @@ static int nl80211_fils_discovery(struct i802_bss *bss, struct nl_msg *msg,
  			params->fd_max_int) ||
  	    (params->fd_frame_tmpl &&
  	     nla_put(msg, NL80211_FILS_DISCOVERY_ATTR_TMPL,
@@ -181,7 +182,7 @@
  	nla_nest_end(msg, attr);
  	return 0;
  }
-@@ -4839,7 +4840,10 @@ static int wpa_driver_nl80211_set_ap(void *priv,
+@@ -4844,7 +4845,10 @@ static int wpa_driver_nl80211_set_ap(void *priv,
  #endif /* CONFIG_SAE */
  
  #ifdef CONFIG_FILS
@@ -206,5 +207,5 @@
  	/* keep last */
  	__NL80211_FILS_DISCOVERY_ATTR_LAST,
 -- 
-2.36.1
+2.25.1
 
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/914-Add-mtk_vendor.h.patch b/recipes-connectivity/wpa-supplicant/files/patches/99911-master-Add-mtk_vendor.h.patch
similarity index 97%
rename from recipes-connectivity/wpa-supplicant/files/patches/914-Add-mtk_vendor.h.patch
rename to recipes-connectivity/wpa-supplicant/files/patches/99911-master-Add-mtk_vendor.h.patch
index eb77284..e2a4cb2 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/914-Add-mtk_vendor.h.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/99911-master-Add-mtk_vendor.h.patch
@@ -1,7 +1,7 @@
-From 21ba11c81b8208280f112b0518735427edecedd8 Mon Sep 17 00:00:00 2001
+From 653bfcdadce50131c3c394b33acd94b110186744 Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Mon, 30 May 2022 15:04:57 +0800
-Subject: [PATCH 1/1] Add mtk_vendor.h
+Subject: [PATCH 99911/99916] Add mtk_vendor.h
 
 ---
  src/common/mtk_vendor.h | 195 ++++++++++++++++++++++++++++++++++++++++
@@ -10,7 +10,7 @@
 
 diff --git a/src/common/mtk_vendor.h b/src/common/mtk_vendor.h
 new file mode 100644
-index 0000000..528387f
+index 000000000..528387fa5
 --- /dev/null
 +++ b/src/common/mtk_vendor.h
 @@ -0,0 +1,195 @@
@@ -210,5 +210,5 @@
 +};
 +#endif /* MTK_VENDOR_H */
 -- 
-2.18.0
+2.25.1
 
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/915-Support-new-hostapd-configuration-edcca_enable-and-e.patch b/recipes-connectivity/wpa-supplicant/files/patches/99912-master-Support-new-hostapd-configuration-edcca_enable-and-.patch
similarity index 86%
rename from recipes-connectivity/wpa-supplicant/files/patches/915-Support-new-hostapd-configuration-edcca_enable-and-e.patch
rename to recipes-connectivity/wpa-supplicant/files/patches/99912-master-Support-new-hostapd-configuration-edcca_enable-and-.patch
index fbf45a4..be54e06 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/915-Support-new-hostapd-configuration-edcca_enable-and-e.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/99912-master-Support-new-hostapd-configuration-edcca_enable-and-.patch
@@ -1,8 +1,8 @@
-From 801aa2e893945b44d2a10b73fcc2cff269e02497 Mon Sep 17 00:00:00 2001
+From 166ba374624b2aed360427f087c20b8f511fb2e0 Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Mon, 30 May 2022 16:31:34 +0800
-Subject: [PATCH 915/917] Support new hostapd configuration, edcca_enable and
- edcca_compensation
+Subject: [PATCH 99912/99916] Support new hostapd configuration, edcca_enable
+ and edcca_compensation
 
 ---
  hostapd/config_file.c             | 20 +++++++++++++++
@@ -18,10 +18,10 @@
  10 files changed, 98 insertions(+), 1 deletion(-)
 
 diff --git a/hostapd/config_file.c b/hostapd/config_file.c
-index e57c78b..19a2fd5 100644
+index eda9db021..8a21c9698 100644
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -4741,6 +4741,26 @@ static int hostapd_config_fill(struct hostapd_config *conf,
+@@ -4753,6 +4753,26 @@ static int hostapd_config_fill(struct hostapd_config *conf,
  	} else if (os_strcmp(buf, "eht_mu_beamformer") == 0) {
  		conf->eht_phy_capab.mu_beamformer = atoi(pos);
  #endif /* CONFIG_IEEE80211BE */
@@ -49,7 +49,7 @@
  		wpa_printf(MSG_ERROR,
  			   "Line %d: unknown configuration item '%s'",
 diff --git a/src/ap/ap_config.c b/src/ap/ap_config.c
-index f248281..427f16e 100644
+index 4a20eb4e1..373879f79 100644
 --- a/src/ap/ap_config.c
 +++ b/src/ap/ap_config.c
 @@ -294,6 +294,9 @@ struct hostapd_config * hostapd_config_defaults(void)
@@ -63,10 +63,10 @@
  }
  
 diff --git a/src/ap/ap_config.h b/src/ap/ap_config.h
-index 5dab8be..9bbe7eb 100644
+index 3f68e76d5..3ac2ae070 100644
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -1150,8 +1150,18 @@ struct hostapd_config {
+@@ -1153,8 +1153,18 @@ struct hostapd_config {
  #define CH_SWITCH_EHT_ENABLED BIT(0)
  #define CH_SWITCH_EHT_DISABLED BIT(1)
  	unsigned int ch_switch_eht_config;
@@ -83,13 +83,13 @@
 +#define EDCCA_MIN_COMPENSATION -126
 +#define EDCCA_MAX_COMPENSATION 126
  
- static inline u8 hostapd_get_oper_chwidth(struct hostapd_config *conf)
- {
+ static inline enum oper_chan_width
+ hostapd_get_oper_chwidth(struct hostapd_config *conf)
 diff --git a/src/ap/ap_drv_ops.c b/src/ap/ap_drv_ops.c
-index f7ad3ed..b8b98e4 100644
+index 0c7aee276..5d2d79c38 100644
 --- a/src/ap/ap_drv_ops.c
 +++ b/src/ap/ap_drv_ops.c
-@@ -1012,3 +1012,12 @@ int hostapd_drv_dpp_listen(struct hostapd_data *hapd, bool enable)
+@@ -1015,3 +1015,12 @@ int hostapd_drv_dpp_listen(struct hostapd_data *hapd, bool enable)
  		return 0;
  	return hapd->driver->dpp_listen(hapd->drv_priv, enable);
  }
@@ -103,7 +103,7 @@
 +				hapd->iconf->edcca_compensation);
 +}
 diff --git a/src/ap/ap_drv_ops.h b/src/ap/ap_drv_ops.h
-index b4fb766..f8fef19 100644
+index b4fb766ee..f8fef1929 100644
 --- a/src/ap/ap_drv_ops.h
 +++ b/src/ap/ap_drv_ops.h
 @@ -138,7 +138,7 @@ int hostapd_drv_do_acs(struct hostapd_data *hapd);
@@ -116,7 +116,7 @@
  #include "drivers/driver.h"
  
 diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c
-index e61ac39..c1edaab 100644
+index 0dd8c13b7..6babb036a 100644
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
 @@ -2295,6 +2295,9 @@ dfs_offload:
@@ -130,10 +130,10 @@
  		   iface->bss[0]->conf->iface);
  	if (iface->interfaces && iface->interfaces->terminate_on_error > 0)
 diff --git a/src/drivers/driver.h b/src/drivers/driver.h
-index 836c16b..fc96fef 100644
+index 1d2b1b265..575448a93 100644
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -4673,6 +4673,8 @@ struct wpa_driver_ops {
+@@ -4676,6 +4676,8 @@ struct wpa_driver_ops {
  			      const u8 *match, size_t match_len,
  			      bool multicast);
  #endif /* CONFIG_TESTING_OPTIONS */
@@ -143,7 +143,7 @@
  
  /**
 diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
-index cd4a853..4351e74 100644
+index 5eba0ea1b..76680dfd3 100644
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
 @@ -35,6 +35,7 @@
@@ -154,7 +154,7 @@
  
  
  #ifndef NETLINK_CAP_ACK
-@@ -12350,6 +12351,45 @@ static int testing_nl80211_radio_disable(void *priv, int disabled)
+@@ -12368,6 +12369,45 @@ static int testing_nl80211_radio_disable(void *priv, int disabled)
  
  #endif /* CONFIG_TESTING_OPTIONS */
  
@@ -200,7 +200,7 @@
  
  const struct wpa_driver_ops wpa_driver_nl80211_ops = {
  	.name = "nl80211",
-@@ -12496,4 +12536,6 @@ const struct wpa_driver_ops wpa_driver_nl80211_ops = {
+@@ -12514,4 +12554,6 @@ const struct wpa_driver_ops wpa_driver_nl80211_ops = {
  	.register_frame = testing_nl80211_register_frame,
  	.radio_disable = testing_nl80211_radio_disable,
  #endif /* CONFIG_TESTING_OPTIONS */
@@ -208,19 +208,19 @@
 +	.configure_edcca_threshold = nl80211_configure_edcca_threshold,
  };
 diff --git a/src/drivers/driver_nl80211.h b/src/drivers/driver_nl80211.h
-index 80d4564..b677907 100644
+index 6e40d5556..13e5d248c 100644
 --- a/src/drivers/driver_nl80211.h
 +++ b/src/drivers/driver_nl80211.h
-@@ -180,6 +180,7 @@ struct wpa_driver_nl80211_data {
- 	unsigned int unsol_bcast_probe_resp:1;
+@@ -181,6 +181,7 @@ struct wpa_driver_nl80211_data {
  	unsigned int qca_do_acs:1;
  	unsigned int brcm_do_acs:1;
+ 	unsigned int uses_6ghz:1;
 +	unsigned int mtk_edcca_vendor_cmd_avail:1;
  
  	u64 vendor_scan_cookie;
  	u64 remain_on_chan_cookie;
 diff --git a/src/drivers/driver_nl80211_capa.c b/src/drivers/driver_nl80211_capa.c
-index a0803ba..6c743bf 100644
+index 7ede0d030..732ae292d 100644
 --- a/src/drivers/driver_nl80211_capa.c
 +++ b/src/drivers/driver_nl80211_capa.c
 @@ -18,6 +18,7 @@
@@ -231,7 +231,7 @@
  
  
  static int protocol_feature_handler(struct nl_msg *msg, void *arg)
-@@ -1044,6 +1045,12 @@ static int wiphy_info_handler(struct nl_msg *msg, void *arg)
+@@ -1050,6 +1051,12 @@ static int wiphy_info_handler(struct nl_msg *msg, void *arg)
  					break;
  				}
  #endif /* CONFIG_DRIVER_NL80211_BRCM */
@@ -245,5 +245,5 @@
  
  			wpa_printf(MSG_DEBUG, "nl80211: Supported vendor command: vendor_id=0x%x subcmd=%u",
 -- 
-2.18.0
+2.25.1
 
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/916-Add-hostapd-command-handler-for-SET_EDCCA-GET_EDCCA-.patch b/recipes-connectivity/wpa-supplicant/files/patches/99913-master-Add-hostapd-command-handler-for-SET_EDCCA-GET_EDCCA.patch
similarity index 90%
rename from recipes-connectivity/wpa-supplicant/files/patches/916-Add-hostapd-command-handler-for-SET_EDCCA-GET_EDCCA-.patch
rename to recipes-connectivity/wpa-supplicant/files/patches/99913-master-Add-hostapd-command-handler-for-SET_EDCCA-GET_EDCCA.patch
index 7f94fa3..e8e96d6 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/916-Add-hostapd-command-handler-for-SET_EDCCA-GET_EDCCA-.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/99913-master-Add-hostapd-command-handler-for-SET_EDCCA-GET_EDCCA.patch
@@ -1,15 +1,15 @@
-From a00f78d06067b5c139c043c9acf359810e963108 Mon Sep 17 00:00:00 2001
+From 64344c416f8d394552aeaa44f2b1cea4c9815141 Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Fri, 24 Jun 2022 22:32:40 +0800
-Subject: [PATCH 916/917] Add hostapd command handler for SET_EDCCA, GET_EDCCA
- and APPLY_EDCCA
+Subject: [PATCH 99913/99916] Add hostapd command handler for SET_EDCCA,
+ GET_EDCCA and APPLY_EDCCA
 
 ---
  hostapd/ctrl_iface.c | 99 ++++++++++++++++++++++++++++++++++++++++++++
  1 file changed, 99 insertions(+)
 
 diff --git a/hostapd/ctrl_iface.c b/hostapd/ctrl_iface.c
-index b997ed8..5e9af7f 100644
+index bb8c74fd3..b3e61ff3d 100644
 --- a/hostapd/ctrl_iface.c
 +++ b/hostapd/ctrl_iface.c
 @@ -598,6 +598,19 @@ static const char * pbc_status_str(enum pbc_status status)
@@ -32,7 +32,7 @@
  static int hostapd_ctrl_iface_wps_get_status(struct hostapd_data *hapd,
  					     char *buf, size_t buflen)
  {
-@@ -3307,6 +3320,85 @@ static int hostapd_ctrl_iface_driver_cmd(struct hostapd_data *hapd, char *cmd,
+@@ -3322,6 +3335,85 @@ static int hostapd_ctrl_iface_driver_cmd(struct hostapd_data *hapd, char *cmd,
  #endif /* ANDROID */
  
  
@@ -118,7 +118,7 @@
  static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
  					      char *buf, char *reply,
  					      int reply_size,
-@@ -3840,6 +3932,13 @@ static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
+@@ -3868,6 +3960,13 @@ static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
  		reply_len = hostapd_ctrl_iface_driver_cmd(hapd, buf + 7, reply,
  							  reply_size);
  #endif /* ANDROID */
@@ -133,5 +133,5 @@
  		os_memcpy(reply, "UNKNOWN COMMAND\n", 16);
  		reply_len = 16;
 -- 
-2.18.0
+2.25.1
 
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/920-Add-hostapd-HEMU-SET-GET-control.patch b/recipes-connectivity/wpa-supplicant/files/patches/99914-master-Add-hostapd-HEMU-SET-GET-control.patch
similarity index 90%
rename from recipes-connectivity/wpa-supplicant/files/patches/920-Add-hostapd-HEMU-SET-GET-control.patch
rename to recipes-connectivity/wpa-supplicant/files/patches/99914-master-Add-hostapd-HEMU-SET-GET-control.patch
index b31d521..f255d50 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/920-Add-hostapd-HEMU-SET-GET-control.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/99914-master-Add-hostapd-HEMU-SET-GET-control.patch
@@ -1,7 +1,7 @@
-From f815c6befdd5b0185ae476d649e3eff58d6e9b69 Mon Sep 17 00:00:00 2001
+From eb5eaa8daca8108be818aa5dc0021cc4b7f1f051 Mon Sep 17 00:00:00 2001
 From: TomLiu <tomml.liu@mediatek.com>
 Date: Tue, 9 Aug 2022 10:23:44 -0700
-Subject: [PATCH] [PATCH-920]Add hostapd HEMU SET/GET control
+Subject: [PATCH 99914/99916] Add hostapd HEMU SET/GET control
 
 ---
  hostapd/config_file.c             |   9 +++
@@ -20,10 +20,10 @@
  13 files changed, 251 insertions(+)
 
 diff --git a/hostapd/config_file.c b/hostapd/config_file.c
-index 19a2fd5..85d58cd 100644
+index 8a21c9698..0be53044a 100644
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -3655,6 +3655,15 @@ static int hostapd_config_fill(struct hostapd_config *conf,
+@@ -3659,6 +3659,15 @@ static int hostapd_config_fill(struct hostapd_config *conf,
  			return 1;
  		}
  		bss->unsol_bcast_probe_resp_interval = val;
@@ -40,10 +40,10 @@
  	} else if (os_strcmp(buf, "max_listen_interval") == 0) {
  		bss->max_listen_interval = atoi(pos);
 diff --git a/hostapd/ctrl_iface.c b/hostapd/ctrl_iface.c
-index 5e9af7f..5df5c84 100644
+index b3e61ff3d..60c1fb44e 100644
 --- a/hostapd/ctrl_iface.c
 +++ b/hostapd/ctrl_iface.c
-@@ -3399,6 +3399,63 @@ hostapd_ctrl_iface_apply_edcca(struct hostapd_data *hapd, char *buf,
+@@ -3414,6 +3414,63 @@ hostapd_ctrl_iface_apply_edcca(struct hostapd_data *hapd, char *buf,
  }
  
  
@@ -107,7 +107,7 @@
  static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
  					      char *buf, char *reply,
  					      int reply_size,
-@@ -3939,6 +3996,11 @@ static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
+@@ -3967,6 +4024,11 @@ static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
  		reply_len = hostapd_ctrl_iface_get_edcca(hapd, reply, reply_size);
  	} else if (os_strncmp(buf, "APPLY_EDCCA", 11) == 0) {
  		reply_len = hostapd_ctrl_iface_apply_edcca(hapd, reply, reply_size);
@@ -120,7 +120,7 @@
  		os_memcpy(reply, "UNKNOWN COMMAND\n", 16);
  		reply_len = 16;
 diff --git a/hostapd/hostapd_cli.c b/hostapd/hostapd_cli.c
-index 68133d4..41d244a 100644
+index db2125805..0d364773b 100644
 --- a/hostapd/hostapd_cli.c
 +++ b/hostapd/hostapd_cli.c
 @@ -1380,6 +1380,20 @@ static int hostapd_cli_cmd_driver_flags(struct wpa_ctrl *ctrl, int argc,
@@ -144,7 +144,7 @@
  #ifdef CONFIG_DPP
  
  static int hostapd_cli_cmd_dpp_qr_code(struct wpa_ctrl *ctrl, int argc,
-@@ -1696,6 +1710,10 @@ static const struct hostapd_cli_cmd hostapd_cli_commands[] = {
+@@ -1705,6 +1719,10 @@ static const struct hostapd_cli_cmd hostapd_cli_commands[] = {
  	  " = send FTM range request"},
  	{ "driver_flags", hostapd_cli_cmd_driver_flags, NULL,
  	  " = show supported driver flags"},
@@ -156,7 +156,7 @@
  	{ "dpp_qr_code", hostapd_cli_cmd_dpp_qr_code, NULL,
  	  "report a scanned DPP URI from a QR Code" },
 diff --git a/src/ap/ap_config.c b/src/ap/ap_config.c
-index 427f16e..79e215f 100644
+index 373879f79..8ce4d9a16 100644
 --- a/src/ap/ap_config.c
 +++ b/src/ap/ap_config.c
 @@ -280,6 +280,7 @@ struct hostapd_config * hostapd_config_defaults(void)
@@ -168,10 +168,10 @@
  
  	/* The third octet of the country string uses an ASCII space character
 diff --git a/src/ap/ap_config.h b/src/ap/ap_config.h
-index 9bbe7eb..737cc2f 100644
+index 3ac2ae070..4462f29b7 100644
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -1111,6 +1111,7 @@ struct hostapd_config {
+@@ -1114,6 +1114,7 @@ struct hostapd_config {
  	u8 he_6ghz_rx_ant_pat;
  	u8 he_6ghz_tx_ant_pat;
  	u8 he_6ghz_reg_pwr_type;
@@ -180,10 +180,10 @@
  
  	/* VHT enable/disable config from CHAN_SWITCH */
 diff --git a/src/ap/ap_drv_ops.c b/src/ap/ap_drv_ops.c
-index b8b98e4..3de6748 100644
+index 5d2d79c38..55452323d 100644
 --- a/src/ap/ap_drv_ops.c
 +++ b/src/ap/ap_drv_ops.c
-@@ -1021,3 +1021,17 @@ int hostapd_drv_configure_edcca_threshold(struct hostapd_data *hapd)
+@@ -1024,3 +1024,17 @@ int hostapd_drv_configure_edcca_threshold(struct hostapd_data *hapd)
  				hapd->iconf->edcca_enable,
  				hapd->iconf->edcca_compensation);
  }
@@ -202,7 +202,7 @@
 +	return hapd->driver->hemu_dump(hapd->drv_priv, hemu_onoff);
 +}
 diff --git a/src/ap/ap_drv_ops.h b/src/ap/ap_drv_ops.h
-index f8fef19..5bcb225 100644
+index f8fef1929..5bcb2251a 100644
 --- a/src/ap/ap_drv_ops.h
 +++ b/src/ap/ap_drv_ops.h
 @@ -139,6 +139,8 @@ int hostapd_drv_update_dh_ie(struct hostapd_data *hapd, const u8 *peer,
@@ -215,7 +215,7 @@
  #include "drivers/driver.h"
  
 diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c
-index c1edaab..3b752fc 100644
+index 6babb036a..0f3691ba3 100644
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
 @@ -2297,6 +2297,8 @@ dfs_offload:
@@ -228,7 +228,7 @@
  	wpa_printf(MSG_DEBUG, "%s: Setup of interface done.",
  		   iface->bss[0]->conf->iface);
 diff --git a/src/common/mtk_vendor.h b/src/common/mtk_vendor.h
-index 528387f..5c8f179 100644
+index 528387fa5..5c8f1792e 100644
 --- a/src/common/mtk_vendor.h
 +++ b/src/common/mtk_vendor.h
 @@ -10,6 +10,8 @@ enum mtk_nl80211_vendor_subcmds {
@@ -261,10 +261,10 @@
  #define ETH_ALEN 6
  
 diff --git a/src/drivers/driver.h b/src/drivers/driver.h
-index fc96fef..6cc7e9b 100644
+index 575448a93..88b371d61 100644
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -1622,6 +1622,11 @@ struct wpa_driver_ap_params {
+@@ -1623,6 +1623,11 @@ struct wpa_driver_ap_params {
  	 * Unsolicited broadcast Probe Response template length
  	 */
  	size_t unsol_bcast_probe_resp_tmpl_len;
@@ -276,7 +276,7 @@
  };
  
  struct wpa_driver_mesh_bss_params {
-@@ -4675,6 +4680,14 @@ struct wpa_driver_ops {
+@@ -4678,6 +4683,14 @@ struct wpa_driver_ops {
  #endif /* CONFIG_TESTING_OPTIONS */
  	int (*configure_edcca_threshold)(void *priv, const u8 edcca_enable,
  				  const s8 edcca_compensation);
@@ -292,10 +292,10 @@
  
  /**
 diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
-index b1e7b16..021a593 100644
+index 76680dfd3..b06de0687 100644
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -12287,6 +12287,114 @@ fail:
+@@ -12303,6 +12303,114 @@ fail:
  }
  
  
@@ -410,7 +410,7 @@
  #ifdef CONFIG_DPP
  static int nl80211_dpp_listen(void *priv, bool enable)
  {
-@@ -12531,6 +12639,8 @@ const struct wpa_driver_ops wpa_driver_nl80211_ops = {
+@@ -12547,6 +12655,8 @@ const struct wpa_driver_ops wpa_driver_nl80211_ops = {
  	.update_connect_params = nl80211_update_connection_params,
  	.send_external_auth_status = nl80211_send_external_auth_status,
  	.set_4addr_mode = nl80211_set_4addr_mode,
@@ -420,22 +420,22 @@
  	.dpp_listen = nl80211_dpp_listen,
  #endif /* CONFIG_DPP */
 diff --git a/src/drivers/driver_nl80211.h b/src/drivers/driver_nl80211.h
-index b677907..62d9696 100644
+index 13e5d248c..57f02497e 100644
 --- a/src/drivers/driver_nl80211.h
 +++ b/src/drivers/driver_nl80211.h
-@@ -181,6 +181,7 @@ struct wpa_driver_nl80211_data {
- 	unsigned int qca_do_acs:1;
+@@ -182,6 +182,7 @@ struct wpa_driver_nl80211_data {
  	unsigned int brcm_do_acs:1;
+ 	unsigned int uses_6ghz:1;
  	unsigned int mtk_edcca_vendor_cmd_avail:1;
 +	unsigned int mtk_hemu_vendor_cmd_avail:1;
  
  	u64 vendor_scan_cookie;
  	u64 remain_on_chan_cookie;
 diff --git a/src/drivers/driver_nl80211_capa.c b/src/drivers/driver_nl80211_capa.c
-index 6c743bf..b5cd2c5 100644
+index 732ae292d..cc146d9fc 100644
 --- a/src/drivers/driver_nl80211_capa.c
 +++ b/src/drivers/driver_nl80211_capa.c
-@@ -1050,6 +1050,9 @@ static int wiphy_info_handler(struct nl_msg *msg, void *arg)
+@@ -1056,6 +1056,9 @@ static int wiphy_info_handler(struct nl_msg *msg, void *arg)
  				case MTK_NL80211_VENDOR_SUBCMD_EDCCA_CTRL :
  					drv->mtk_edcca_vendor_cmd_avail = 1;
  					break;
@@ -446,5 +446,5 @@
  			}
  
 -- 
-2.32.0
+2.25.1
 
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/921-Add-three-wire-PTA-ctrl-hostapd-vendor-command.patch b/recipes-connectivity/wpa-supplicant/files/patches/99915-master-Add-three-wire-PTA-ctrl-hostapd-vendor-command.patch
similarity index 88%
rename from recipes-connectivity/wpa-supplicant/files/patches/921-Add-three-wire-PTA-ctrl-hostapd-vendor-command.patch
rename to recipes-connectivity/wpa-supplicant/files/patches/99915-master-Add-three-wire-PTA-ctrl-hostapd-vendor-command.patch
index a3d8837..a3183d7 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/921-Add-three-wire-PTA-ctrl-hostapd-vendor-command.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/99915-master-Add-three-wire-PTA-ctrl-hostapd-vendor-command.patch
@@ -1,7 +1,7 @@
-From 1bd8935beffa0d94c34a2ba4f3400c65b8629250 Mon Sep 17 00:00:00 2001
+From 476f2fe6698c32ddaca8e5f8c564b499f5dc4772 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Fri, 2 Sep 2022 01:03:23 +0800
-Subject: [PATCH] Add three wire PTA ctrl hostapd vendor command
+Subject: [PATCH 99915/99916] Add three wire PTA ctrl hostapd vendor command
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 ---
@@ -19,10 +19,10 @@
  11 files changed, 86 insertions(+)
 
 diff --git a/hostapd/config_file.c b/hostapd/config_file.c
-index 85d58cd..ee5decb 100644
+index 0be53044a..0bf8b6c72 100644
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -4770,6 +4770,10 @@ static int hostapd_config_fill(struct hostapd_config *conf,
+@@ -4782,6 +4782,10 @@ static int hostapd_config_fill(struct hostapd_config *conf,
  			return 1;
  		}
  		conf->edcca_compensation = (s8) val;
@@ -34,7 +34,7 @@
  		wpa_printf(MSG_ERROR,
  			   "Line %d: unknown configuration item '%s'",
 diff --git a/src/ap/ap_config.c b/src/ap/ap_config.c
-index 79e215f..34e4fb1 100644
+index 8ce4d9a16..2d720095a 100644
 --- a/src/ap/ap_config.c
 +++ b/src/ap/ap_config.c
 @@ -297,6 +297,7 @@ struct hostapd_config * hostapd_config_defaults(void)
@@ -46,10 +46,10 @@
  	return conf;
  }
 diff --git a/src/ap/ap_config.h b/src/ap/ap_config.h
-index 7528430..99edb49 100644
+index 4462f29b7..8b9e8873d 100644
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -1153,6 +1153,19 @@ struct hostapd_config {
+@@ -1156,6 +1156,19 @@ struct hostapd_config {
  	unsigned int ch_switch_eht_config;
  	u8 edcca_enable;
  	s8 edcca_compensation;
@@ -70,7 +70,7 @@
  
  enum edcca_mode {
 diff --git a/src/ap/ap_drv_ops.c b/src/ap/ap_drv_ops.c
-index 5545232..77d5f89 100644
+index 55452323d..77d5f8990 100644
 --- a/src/ap/ap_drv_ops.c
 +++ b/src/ap/ap_drv_ops.c
 @@ -1038,3 +1038,14 @@ int hostapd_drv_hemu_dump(struct hostapd_data *hapd, u8 *hemu_onoff)
@@ -89,7 +89,7 @@
 +	return hapd->driver->three_wire_ctrl(hapd->drv_priv, hapd->iconf->three_wire_enable);
 +}
 diff --git a/src/ap/ap_drv_ops.h b/src/ap/ap_drv_ops.h
-index 5bcb225..0a8bf0c 100644
+index 5bcb2251a..0a8bf0c7e 100644
 --- a/src/ap/ap_drv_ops.h
 +++ b/src/ap/ap_drv_ops.h
 @@ -141,6 +141,7 @@ int hostapd_drv_dpp_listen(struct hostapd_data *hapd, bool enable);
@@ -101,7 +101,7 @@
  #include "drivers/driver.h"
  
 diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c
-index 0f3691b..32b75dc 100644
+index 0f3691ba3..32b75dca7 100644
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
 @@ -2299,6 +2299,8 @@ dfs_offload:
@@ -114,7 +114,7 @@
  	wpa_printf(MSG_DEBUG, "%s: Setup of interface done.",
  		   iface->bss[0]->conf->iface);
 diff --git a/src/common/mtk_vendor.h b/src/common/mtk_vendor.h
-index 5c8f179..99a4d7f 100644
+index 5c8f1792e..99a4d7f94 100644
 --- a/src/common/mtk_vendor.h
 +++ b/src/common/mtk_vendor.h
 @@ -13,6 +13,7 @@ enum mtk_nl80211_vendor_subcmds {
@@ -148,10 +148,10 @@
  	MTK_VENDOR_ATTR_CSI_CTRL_UNSPEC,
  
 diff --git a/src/drivers/driver.h b/src/drivers/driver.h
-index 0f12feb..79e80b6 100644
+index 88b371d61..a137ffc14 100644
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -4689,6 +4689,7 @@ struct wpa_driver_ops {
+@@ -4691,6 +4691,7 @@ struct wpa_driver_ops {
  	 */
  	 int (*hemu_ctrl)(void *priv, u8 hemu_onoff);
  	 int (*hemu_dump)(void *priv, u8 *hemu_onoff);
@@ -160,10 +160,10 @@
  
  /**
 diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
-index b2c3a2e..02f4b95 100644
+index b06de0687..03babd8a2 100644
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -12505,6 +12505,38 @@ static int nl80211_configure_edcca_threshold(void *priv,
+@@ -12516,6 +12516,38 @@ static int nl80211_configure_edcca_threshold(void *priv,
  	return ret;
  }
  
@@ -202,18 +202,18 @@
  
  const struct wpa_driver_ops wpa_driver_nl80211_ops = {
  	.name = "nl80211",
-@@ -12655,4 +12687,5 @@ const struct wpa_driver_ops wpa_driver_nl80211_ops = {
+@@ -12666,4 +12698,5 @@ const struct wpa_driver_ops wpa_driver_nl80211_ops = {
  #endif /* CONFIG_TESTING_OPTIONS */
  /* Need ifdef CONFIG_DRIVER_NL80211_MTK */
  	.configure_edcca_threshold = nl80211_configure_edcca_threshold,
 +	.three_wire_ctrl = nl80211_enable_three_wire,
  };
 diff --git a/src/drivers/driver_nl80211.h b/src/drivers/driver_nl80211.h
-index 62d9696..196d24f 100644
+index 57f02497e..9fe7811b9 100644
 --- a/src/drivers/driver_nl80211.h
 +++ b/src/drivers/driver_nl80211.h
-@@ -182,6 +182,7 @@ struct wpa_driver_nl80211_data {
- 	unsigned int brcm_do_acs:1;
+@@ -183,6 +183,7 @@ struct wpa_driver_nl80211_data {
+ 	unsigned int uses_6ghz:1;
  	unsigned int mtk_edcca_vendor_cmd_avail:1;
  	unsigned int mtk_hemu_vendor_cmd_avail:1;
 +	unsigned int mtk_3wire_vendor_cmd_avail:1;
@@ -221,10 +221,10 @@
  	u64 vendor_scan_cookie;
  	u64 remain_on_chan_cookie;
 diff --git a/src/drivers/driver_nl80211_capa.c b/src/drivers/driver_nl80211_capa.c
-index b5cd2c5..f0397f5 100644
+index cc146d9fc..04bc54e77 100644
 --- a/src/drivers/driver_nl80211_capa.c
 +++ b/src/drivers/driver_nl80211_capa.c
-@@ -1053,6 +1053,9 @@ static int wiphy_info_handler(struct nl_msg *msg, void *arg)
+@@ -1059,6 +1059,9 @@ static int wiphy_info_handler(struct nl_msg *msg, void *arg)
  				case MTK_NL80211_VENDOR_SUBCMD_HEMU_CTRL :
  					drv->mtk_hemu_vendor_cmd_avail = 1;
  					break;
@@ -235,5 +235,5 @@
  			}
  
 -- 
-2.18.0
+2.25.1
 
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/922-Add-hostapd-iBF-control.patch b/recipes-connectivity/wpa-supplicant/files/patches/99916-master-Add-hostapd-iBF-control.patch
old mode 100755
new mode 100644
similarity index 83%
rename from recipes-connectivity/wpa-supplicant/files/patches/922-Add-hostapd-iBF-control.patch
rename to recipes-connectivity/wpa-supplicant/files/patches/99916-master-Add-hostapd-iBF-control.patch
index 37b2f53..740afab
--- a/recipes-connectivity/wpa-supplicant/files/patches/922-Add-hostapd-iBF-control.patch
+++ b/recipes-connectivity/wpa-supplicant/files/patches/99916-master-Add-hostapd-iBF-control.patch
@@ -1,30 +1,30 @@
-From b14ba5d1122fc9afbcf78ac5c31e416c0192bf3c Mon Sep 17 00:00:00 2001
+From 23b44ac3bf0c536873ce11d058a7ea7241f6ec95 Mon Sep 17 00:00:00 2001
 From: mtk27835 <shurong.wen@mediatek.com>
 Date: Wed, 7 Sep 2022 14:41:51 -0700
-Subject: [PATCH] [PATCH 922] Add hostapd iBF control
+Subject: [PATCH 99916/99916] Add hostapd iBF control
 
 Signed-off-by: mtk27835 <shurong.wen@mediatek.com>
 ---
- hostapd/config_file.c                     |   3 +
- hostapd/ctrl_iface.c                      |  26 +++++
- hostapd/hostapd_cli.c                     |   9 ++
- src/ap/ap_config.c                        |   1 +
- src/ap/ap_config.h                        |   2 +
- src/ap/ap_drv_ops.c                       |  14 +++
- src/ap/ap_drv_ops.h                       |   2 +
- src/ap/hostapd.c                          |   2 +
- src/common/mtk_vendor.h                   |  35 +++++-
- src/drivers/driver.h                      |  19 +++
- src/drivers/driver_nl80211.c              | 108 ++++++++++++++++++
- src/drivers/driver_nl80211.h              |   1 +
- src/drivers/driver_nl80211_capa.c         |   3 +
+ hostapd/config_file.c             |   3 +
+ hostapd/ctrl_iface.c              |  26 +++++++
+ hostapd/hostapd_cli.c             |   9 +++
+ src/ap/ap_config.c                |   1 +
+ src/ap/ap_config.h                |   2 +
+ src/ap/ap_drv_ops.c               |  14 ++++
+ src/ap/ap_drv_ops.h               |   2 +
+ src/ap/hostapd.c                  |   2 +
+ src/common/mtk_vendor.h           |  35 +++++++++-
+ src/drivers/driver.h              |  19 ++++++
+ src/drivers/driver_nl80211.c      | 108 ++++++++++++++++++++++++++++++
+ src/drivers/driver_nl80211.h      |   1 +
+ src/drivers/driver_nl80211_capa.c |   3 +
  13 files changed, 224 insertions(+), 1 deletion(-)
 
 diff --git a/hostapd/config_file.c b/hostapd/config_file.c
-index ee5decb..50bb536 100644
+index 0bf8b6c72..9b79be198 100644
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -4774,6 +4774,9 @@ static int hostapd_config_fill(struct hostapd_config *conf,
+@@ -4786,6 +4786,9 @@ static int hostapd_config_fill(struct hostapd_config *conf,
  		u8 en = atoi(pos);
  
  		conf->three_wire_enable = en;
@@ -35,10 +35,10 @@
  		wpa_printf(MSG_ERROR,
  			   "Line %d: unknown configuration item '%s'",
 diff --git a/hostapd/ctrl_iface.c b/hostapd/ctrl_iface.c
-index 5df5c84..75bf6e6 100644
+index 60c1fb44e..a010e7fe8 100644
 --- a/hostapd/ctrl_iface.c
 +++ b/hostapd/ctrl_iface.c
-@@ -3456,6 +3456,30 @@ hostapd_ctrl_iface_get_hemu(struct hostapd_data *hapd, char *buf,
+@@ -3471,6 +3471,30 @@ hostapd_ctrl_iface_get_hemu(struct hostapd_data *hapd, char *buf,
  }
  
  
@@ -69,7 +69,7 @@
  static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
  					      char *buf, char *reply,
  					      int reply_size,
-@@ -4001,6 +4025,8 @@ static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
+@@ -4029,6 +4053,8 @@ static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
  							  reply_size);
  	} else if (os_strncmp(buf, "GET_HEMU", 8) == 0) {
  		reply_len = hostapd_ctrl_iface_get_hemu(hapd, reply, reply_size);
@@ -79,10 +79,10 @@
  		os_memcpy(reply, "UNKNOWN COMMAND\n", 16);
  		reply_len = 16;
 diff --git a/hostapd/hostapd_cli.c b/hostapd/hostapd_cli.c
-index 41d244a..e98a0a4 100644
+index 0d364773b..c2a123a8c 100644
 --- a/hostapd/hostapd_cli.c
 +++ b/hostapd/hostapd_cli.c
-@@ -1577,6 +1577,13 @@ static int hostapd_cli_cmd_driver(struct wpa_ctrl *ctrl, int argc, char *argv[])
+@@ -1586,6 +1586,13 @@ static int hostapd_cli_cmd_driver(struct wpa_ctrl *ctrl, int argc, char *argv[])
  #endif /* ANDROID */
  
  
@@ -96,7 +96,7 @@
  struct hostapd_cli_cmd {
  	const char *cmd;
  	int (*handler)(struct wpa_ctrl *ctrl, int argc, char *argv[]);
-@@ -1774,6 +1781,8 @@ static const struct hostapd_cli_cmd hostapd_cli_commands[] = {
+@@ -1787,6 +1794,8 @@ static const struct hostapd_cli_cmd hostapd_cli_commands[] = {
  #endif /* ANDROID */
  	{ "inband_discovery", hostapd_cli_cmd_inband_discovery, NULL,
            "<tx type(0/1/2)> <interval> = runtime set inband discovery" },
@@ -106,7 +106,7 @@
  };
  
 diff --git a/src/ap/ap_config.c b/src/ap/ap_config.c
-index 34e4fb1..f28aa65 100644
+index 2d720095a..14b21cb46 100644
 --- a/src/ap/ap_config.c
 +++ b/src/ap/ap_config.c
 @@ -298,6 +298,7 @@ struct hostapd_config * hostapd_config_defaults(void)
@@ -118,10 +118,10 @@
  	return conf;
  }
 diff --git a/src/ap/ap_config.h b/src/ap/ap_config.h
-index db0379d..9c73e40 100644
+index 8b9e8873d..2a74e09fe 100644
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -1154,6 +1154,7 @@ struct hostapd_config {
+@@ -1157,6 +1157,7 @@ struct hostapd_config {
  	u8 edcca_enable;
  	s8 edcca_compensation;
  	u8 three_wire_enable;
@@ -129,19 +129,19 @@
  };
  
  enum three_wire_mode {
-@@ -1176,6 +1177,7 @@ enum edcca_mode {
+@@ -1179,6 +1180,7 @@ enum edcca_mode {
  #define EDCCA_DEFAULT_COMPENSATION -6
  #define EDCCA_MIN_COMPENSATION -126
  #define EDCCA_MAX_COMPENSATION 126
 +#define IBF_DEFAULT_ENABLE 0
  
- static inline u8 hostapd_get_oper_chwidth(struct hostapd_config *conf)
- {
+ static inline enum oper_chan_width
+ hostapd_get_oper_chwidth(struct hostapd_config *conf)
 diff --git a/src/ap/ap_drv_ops.c b/src/ap/ap_drv_ops.c
-index a48c22e..7b3af9c 100644
+index 77d5f8990..0b9b4101c 100644
 --- a/src/ap/ap_drv_ops.c
 +++ b/src/ap/ap_drv_ops.c
-@@ -1046,3 +1046,17 @@ int hostapd_drv_three_wire_ctrl(struct hostapd_data *hapd)
+@@ -1049,3 +1049,17 @@ int hostapd_drv_three_wire_ctrl(struct hostapd_data *hapd)
  	}
  	return hapd->driver->three_wire_ctrl(hapd->drv_priv, hapd->iconf->three_wire_enable);
  }
@@ -161,7 +161,7 @@
 +}
 \ No newline at end of file
 diff --git a/src/ap/ap_drv_ops.h b/src/ap/ap_drv_ops.h
-index 0a8bf0c..da82382 100644
+index 0a8bf0c7e..da8238249 100644
 --- a/src/ap/ap_drv_ops.h
 +++ b/src/ap/ap_drv_ops.h
 @@ -142,6 +142,8 @@ int hostapd_drv_configure_edcca_threshold(struct hostapd_data *hapd);
@@ -174,7 +174,7 @@
  #include "drivers/driver.h"
  
 diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c
-index 0c02171..c8a76b2 100644
+index 32b75dca7..f095fe42f 100644
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
 @@ -2301,6 +2301,8 @@ dfs_offload:
@@ -187,7 +187,7 @@
  	wpa_printf(MSG_DEBUG, "%s: Setup of interface done.",
  		   iface->bss[0]->conf->iface);
 diff --git a/src/common/mtk_vendor.h b/src/common/mtk_vendor.h
-index 99a4d7f..d6d04de 100644
+index 99a4d7f94..d6d04de95 100644
 --- a/src/common/mtk_vendor.h
 +++ b/src/common/mtk_vendor.h
 @@ -13,7 +13,8 @@ enum mtk_nl80211_vendor_subcmds {
@@ -240,10 +240,10 @@
  #define CSI_MAX_COUNT 256
  #define ETH_ALEN 6
 diff --git a/src/drivers/driver.h b/src/drivers/driver.h
-index 0048120..8ce11ba 100644
+index a137ffc14..f9f29d8d1 100644
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -1627,6 +1627,11 @@ struct wpa_driver_ap_params {
+@@ -1628,6 +1628,11 @@ struct wpa_driver_ap_params {
  	 * hemu onoff=<val> (bitmap- UL MU-MIMO(bit3), DL MU-MIMO(bit2), UL OFDMA(bit1), DL OFDMA(bit0))
  	 */
  	u8 hemu_onoff;
@@ -255,7 +255,7 @@
  };
  
  struct wpa_driver_mesh_bss_params {
-@@ -4689,6 +4694,20 @@ struct wpa_driver_ops {
+@@ -4692,6 +4697,20 @@ struct wpa_driver_ops {
  	 int (*hemu_ctrl)(void *priv, u8 hemu_onoff);
  	 int (*hemu_dump)(void *priv, u8 *hemu_onoff);
  	 int (*three_wire_ctrl)(void *priv, u8 three_wire_enable);
@@ -277,10 +277,10 @@
  
  /**
 diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
-index 5834720..8cac145 100644
+index 03babd8a2..1c065d458 100644
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -12533,6 +12533,112 @@ static int nl80211_enable_three_wire(void *priv, const u8 three_wire_enable)
+@@ -12549,6 +12549,112 @@ static int nl80211_enable_three_wire(void *priv, const u8 three_wire_enable)
  	return ret;
  }
  
@@ -393,7 +393,7 @@
  const struct wpa_driver_ops wpa_driver_nl80211_ops = {
  	.name = "nl80211",
  	.desc = "Linux nl80211/cfg80211",
-@@ -12683,4 +12789,6 @@ const struct wpa_driver_ops wpa_driver_nl80211_ops = {
+@@ -12699,4 +12805,6 @@ const struct wpa_driver_ops wpa_driver_nl80211_ops = {
  /* Need ifdef CONFIG_DRIVER_NL80211_MTK */
  	.configure_edcca_threshold = nl80211_configure_edcca_threshold,
  	.three_wire_ctrl = nl80211_enable_three_wire,
@@ -401,10 +401,10 @@
 +	.ibf_dump = nl80211_ibf_dump,
  };
 diff --git a/src/drivers/driver_nl80211.h b/src/drivers/driver_nl80211.h
-index 196d24f..11dd93a 100644
+index 9fe7811b9..607592ceb 100644
 --- a/src/drivers/driver_nl80211.h
 +++ b/src/drivers/driver_nl80211.h
-@@ -183,6 +183,7 @@ struct wpa_driver_nl80211_data {
+@@ -184,6 +184,7 @@ struct wpa_driver_nl80211_data {
  	unsigned int mtk_edcca_vendor_cmd_avail:1;
  	unsigned int mtk_hemu_vendor_cmd_avail:1;
  	unsigned int mtk_3wire_vendor_cmd_avail:1;
@@ -413,10 +413,10 @@
  	u64 vendor_scan_cookie;
  	u64 remain_on_chan_cookie;
 diff --git a/src/drivers/driver_nl80211_capa.c b/src/drivers/driver_nl80211_capa.c
-index f0397f5..8cf67fe 100644
+index 04bc54e77..9ecc0ff9a 100644
 --- a/src/drivers/driver_nl80211_capa.c
 +++ b/src/drivers/driver_nl80211_capa.c
-@@ -1056,6 +1056,9 @@ static int wiphy_info_handler(struct nl_msg *msg, void *arg)
+@@ -1062,6 +1062,9 @@ static int wiphy_info_handler(struct nl_msg *msg, void *arg)
  				case MTK_NL80211_VENDOR_SUBCMD_3WIRE_CTRL :
  					drv->mtk_3wire_vendor_cmd_avail = 1;
  					break;
@@ -427,5 +427,5 @@
  			}
  
 -- 
-2.32.0
+2.25.1
 
diff --git a/recipes-connectivity/wpa-supplicant/files/patches/patches.inc b/recipes-connectivity/wpa-supplicant/files/patches/patches.inc
index a00a464..f78c315 100644
--- a/recipes-connectivity/wpa-supplicant/files/patches/patches.inc
+++ b/recipes-connectivity/wpa-supplicant/files/patches/patches.inc
@@ -51,24 +51,23 @@
     file://750-qos_map_set_without_interworking.patch \
     file://751-qos_map_ignore_when_unsupported.patch \
     file://800-acs-don-t-select-indoor-channel-on-outdoor-operation.patch \
-    file://902-master-Add-hostapd_neighbor_count-and-hostapd_neighbor_inse.patch \
-    file://903-master-Support-including-neighbor-report-elements-in-ANQP-r.patch \
-    file://904-master-Support-including-neignbor-report-elements-in-BTM-re.patch \
-    file://905-master-Support-configuring-BSS-Termination-TSF-by-using-hos.patch \
-    file://906-master-Disable-interface-if-BSS-Termination-TSF-is-set.patch \
-    file://907-master-Add-set_send_disassoc_frame_timer-to-send-disassocia.patch \
-    file://908-master-Support-including-neighbor-report-elements-in-BTM-re.patch \
-    file://909-master-Add-hostapd_neighbor_set_own_report_pref.patch \
-    file://910-master-Add-hostapd_neighbor_set_pref_by_non_pref_chan.patch \
-    file://911-master-print-sae-groups-by-hostapd-ctrl.patch \
-    file://913-master-add-support-for-runtime-set-in-band-discover.patch \
-    file://914-Add-mtk_vendor.h.patch \
-    file://915-Support-new-hostapd-configuration-edcca_enable-and-e.patch \
-    file://916-Add-hostapd-command-handler-for-SET_EDCCA-GET_EDCCA-.patch \
-    file://920-Add-hostapd-HEMU-SET-GET-control.patch \
-    file://921-Add-three-wire-PTA-ctrl-hostapd-vendor-command.patch \
-    file://922-Add-hostapd-iBF-control.patch \
     file://990-ctrl-make-WNM_AP-functions-dependant-on-CONFIG_AP.patch \
-    file://991-fix-compile.patch \
     file://992-openssl-include-rsa.patch \
+    file://99900-master-Add-hostapd_neighbor_count-and-hostapd_neighbor_ins.patch \
+    file://99901-master-Support-including-neighbor-report-elements-in-ANQP-.patch \
+    file://99902-master-Support-including-neignbor-report-elements-in-BTM-r.patch \
+    file://99903-master-Support-configuring-BSS-Termination-TSF-by-using-ho.patch \
+    file://99904-master-Disable-interface-if-BSS-Termination-TSF-is-set.patch \
+    file://99905-master-Add-set_send_disassoc_frame_timer-to-send-disassoci.patch \
+    file://99906-master-Support-including-neighbor-report-elements-in-BTM-r.patch \
+    file://99907-master-Add-hostapd_neighbor_set_own_report_pref.patch \
+    file://99908-master-Add-hostapd_neighbor_set_pref_by_non_pref_chan.patch \
+    file://99909-master-print-sae-groups-by-hostapd-ctrl.patch \
+    file://99910-master-hostapd-add-support-for-runtime-set-in-band-discove.patch \
+    file://99911-master-Add-mtk_vendor.h.patch \
+    file://99912-master-Support-new-hostapd-configuration-edcca_enable-and-.patch \
+    file://99913-master-Add-hostapd-command-handler-for-SET_EDCCA-GET_EDCCA.patch \
+    file://99914-master-Add-hostapd-HEMU-SET-GET-control.patch \
+    file://99915-master-Add-three-wire-PTA-ctrl-hostapd-vendor-command.patch \
+    file://99916-master-Add-hostapd-iBF-control.patch \
     "