diff --git a/autobuild_mac80211_release/package/kernel/mac80211/patches/subsys/900-mac80211-mtk-export-del-all-station-for-ampdu-amsdu-on-off-function.patch b/autobuild_mac80211_release/package/kernel/mac80211/patches/subsys/900-mac80211-mtk-export-del-all-station-for-ampdu-amsdu-on-off-function.patch
deleted file mode 100755
index 388d9cb..0000000
--- a/autobuild_mac80211_release/package/kernel/mac80211/patches/subsys/900-mac80211-mtk-export-del-all-station-for-ampdu-amsdu-on-off-function.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From ae8bd933a1ef1499863dbb8313a61375b7d00c11 Mon Sep 17 00:00:00 2001
-From: TomLiu <tomml.liu@mediatek.com>
-Date: Wed, 19 Oct 2022 13:33:02 +0800
-Subject: [PATCH 900/914] mac80211: export del all station for ampdu amsdu on
- off function
-
-Signed-off-by: TomLiu <tomml.liu@mediatek.com>
----
- include/net/mac80211.h  | 13 +++++++++++++
- net/mac80211/cfg.c      | 13 +++++++++++++
- net/mac80211/sta_info.c |  3 ++-
- 3 files changed, 28 insertions(+), 1 deletion(-)
-
-diff --git a/include/net/mac80211.h b/include/net/mac80211.h
-index c85050f..edcad3b 100644
---- a/include/net/mac80211.h
-+++ b/include/net/mac80211.h
-@@ -2662,6 +2662,13 @@ static inline void _ieee80211_hw_set(struct ieee80211_hw *hw,
- }
- #define ieee80211_hw_set(hw, flg)	_ieee80211_hw_set(hw, IEEE80211_HW_##flg)
- 
-+static inline void _ieee80211_hw_clear(struct ieee80211_hw *hw,
-+				     enum ieee80211_hw_flags flg)
-+{
-+	return __clear_bit(flg, hw->flags);
-+}
-+#define ieee80211_hw_clear(hw, flg)	_ieee80211_hw_clear(hw, IEEE80211_HW_##flg)
-+
- /**
-  * struct ieee80211_scan_request - hw scan request
-  *
-@@ -5056,6 +5063,12 @@ void ieee80211_beacon_set_cntdwn(struct ieee80211_vif *vif, u8 counter);
-  */
- void ieee80211_csa_finish(struct ieee80211_vif *vif);
- 
-+/**
-+ * ieee80211_del_all_station - request mac80211 to delete all stations
-+ * @hw: pointer obtained from ieee80211_alloc_hw().
-+ */
-+void ieee80211_del_all_station(struct ieee80211_hw *hw);
-+
- /**
-  * ieee80211_beacon_cntdwn_is_complete - find out if countdown reached 1
-  * @vif: &struct ieee80211_vif pointer from the add_interface callback.
-diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
-index abe7318..b582730 100644
---- a/net/mac80211/cfg.c
-+++ b/net/mac80211/cfg.c
-@@ -1822,6 +1822,19 @@ static int ieee80211_del_station(struct wiphy *wiphy, struct net_device *dev,
- 	return 0;
- }
- 
-+void ieee80211_del_all_station(struct ieee80211_hw *hw)
-+{
-+	struct ieee80211_local *local = hw_to_local(hw);
-+	struct sta_info *sta, *tmp;
-+
-+	mutex_lock(&local->sta_mtx);
-+	list_for_each_entry_safe(sta, tmp, &local->sta_list, list) {
-+		WARN_ON(__sta_info_destroy(sta));
-+	}
-+	mutex_unlock(&local->sta_mtx);
-+}
-+EXPORT_SYMBOL(ieee80211_del_all_station);
-+
- static int ieee80211_change_station(struct wiphy *wiphy,
- 				    struct net_device *dev, const u8 *mac,
- 				    struct station_parameters *params)
-diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
-index 541c769..a703e83 100644
---- a/net/mac80211/sta_info.c
-+++ b/net/mac80211/sta_info.c
-@@ -683,7 +683,8 @@ static int sta_info_insert_finish(struct sta_info *sta) __acquires(RCU)
- 	}
- 
- 	/* accept BA sessions now */
--	clear_sta_flag(sta, WLAN_STA_BLOCK_BA);
-+	if (ieee80211_hw_check(&local->hw, AMPDU_AGGREGATION))
-+		clear_sta_flag(sta, WLAN_STA_BLOCK_BA);
- 
- 	ieee80211_sta_debugfs_add(sta);
- 	rate_control_add_sta_debugfs(sta);
--- 
-2.18.0
-
diff --git a/autobuild_mac80211_release/package/kernel/mt76/patches/1126-mt76-mt7915-add-AMPDU-AMSDU-OnOff-ctonrol.patch b/autobuild_mac80211_release/package/kernel/mt76/patches/1126-mt76-mt7915-add-AMPDU-AMSDU-OnOff-ctonrol.patch
deleted file mode 100644
index bbeca19..0000000
--- a/autobuild_mac80211_release/package/kernel/mt76/patches/1126-mt76-mt7915-add-AMPDU-AMSDU-OnOff-ctonrol.patch
+++ /dev/null
@@ -1,173 +0,0 @@
-From 6545cf953298db275cb7373c797be2b6ae2e0d81 Mon Sep 17 00:00:00 2001
-From: TomLiu <tomml.liu@mediatek.com>
-Date: Wed, 21 Sep 2022 13:55:15 -0700
-Subject: [PATCH 1126/1128] mt76: mt7915: add AMPDU/AMSDU OnOff ctonrol
-
-Change-Id: I6030b3a420e96b02e83b0c7a3c3626a3b23c97e3
----
- mt7915/mac.c    | 28 ++++++++++++++++++++++++++++
- mt7915/mt7915.h |  2 ++
- mt7915/vendor.c | 39 +++++++++++++++++++++++++++++++++++++++
- mt7915/vendor.h | 14 ++++++++++++++
- 4 files changed, 83 insertions(+)
-
-diff --git a/mt7915/mac.c b/mt7915/mac.c
-index acc9871..5a809c2 100644
---- a/mt7915/mac.c
-+++ b/mt7915/mac.c
-@@ -2020,6 +2020,34 @@ static void mt7915_mac_severe_check(struct mt7915_phy *phy)
- 	phy->trb_ts = trb;
- }
- 
-+void mt7915_set_wireless_ampdu(struct ieee80211_hw *hw, u8 en)
-+{
-+	ieee80211_del_all_station(hw);
-+	/* clear/set the feature ampdu support */
-+	if (en)
-+		ieee80211_hw_set(hw, AMPDU_AGGREGATION);
-+	else
-+		ieee80211_hw_clear(hw, AMPDU_AGGREGATION);
-+}
-+
-+void mt7915_set_wireless_amsdu(struct ieee80211_hw *hw, u8 en) {
-+	struct mt76_phy *mphy = hw->priv;
-+	struct mt76_dev *mdev = mphy->dev;
-+
-+	if (!ieee80211_hw_check(hw, AMPDU_AGGREGATION)) {
-+		dev_err(mdev->dev, "AMSDU set failed, please enable ampdu first!\n");
-+		return;
-+	}
-+
-+	ieee80211_del_all_station(hw);
-+
-+	/* clear/set the feature ampdu support */
-+	if (en)
-+		ieee80211_hw_set(hw, SUPPORTS_AMSDU_IN_AMPDU);
-+	else
-+		ieee80211_hw_clear(hw, SUPPORTS_AMSDU_IN_AMPDU);
-+}
-+
- #ifdef CONFIG_MTK_VENDOR
- void mt7915_capi_sta_rc_work(void *data, struct ieee80211_sta *sta)
- {
-diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 98c35d2..4cdcb63 100644
---- a/mt7915/mt7915.h
-+++ b/mt7915/mt7915.h
-@@ -738,6 +738,8 @@ int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr,
- 			 bool pci, int *irq);
- 
- #ifdef CONFIG_MTK_VENDOR
-+void mt7915_set_wireless_ampdu(struct ieee80211_hw *hw, u8 en);
-+void mt7915_set_wireless_amsdu(struct ieee80211_hw *hw, u8 en);
- void mt7915_capi_sta_rc_work(void *data, struct ieee80211_sta *sta);
- void mt7915_set_wireless_vif(void *data, u8 *mac, struct ieee80211_vif *vif);
- void mt7915_mcu_set_rfeature_starec(void *data, struct mt7915_dev *dev,
-diff --git a/mt7915/vendor.c b/mt7915/vendor.c
-index cbbb084..d73fdd4 100644
---- a/mt7915/vendor.c
-+++ b/mt7915/vendor.c
-@@ -30,10 +30,18 @@ wireless_ctrl_policy[NUM_MTK_VENDOR_ATTRS_WIRELESS_CTRL] = {
- 	[MTK_VENDOR_ATTR_WIRELESS_CTRL_NUSERS_OFDMA] = {.type = NLA_U8 },
- 	[MTK_VENDOR_ATTR_WIRELESS_CTRL_MIMO] = {.type = NLA_U8 },
- 	[MTK_VENDOR_ATTR_WIRELESS_CTRL_BA_BUFFER_SIZE] = {.type = NLA_U16 },
-+	[MTK_VENDOR_ATTR_WIRELESS_CTRL_AMPDU] = {.type = NLA_U8 },
-+	[MTK_VENDOR_ATTR_WIRELESS_CTRL_AMSDU] = {.type = NLA_U8 },
- 	[MTK_VENDOR_ATTR_WIRELESS_CTRL_MU_EDCA] = {.type = NLA_U8 },
- 	[MTK_VENDOR_ATTR_WIRELESS_CTRL_CERT] = {.type = NLA_U8 },
- };
- 
-+static const struct nla_policy
-+wireless_dump_policy[NUM_MTK_VENDOR_ATTRS_WIRELESS_DUMP] = {
-+	[MTK_VENDOR_ATTR_WIRELESS_DUMP_AMPDU] = { .type = NLA_U8 },
-+	[MTK_VENDOR_ATTR_WIRELESS_DUMP_AMSDU] = { .type = NLA_U8 },
-+};
-+
- static const struct nla_policy
- hemu_ctrl_policy[NUM_MTK_VENDOR_ATTRS_HEMU_CTRL] = {
- 	[MTK_VENDOR_ATTR_HEMU_CTRL_ONOFF] = {.type = NLA_U8 },
-@@ -981,11 +989,41 @@ static int mt7915_vendor_wireless_ctrl(struct wiphy *wiphy,
- 		val8 = nla_get_u8(tb[MTK_VENDOR_ATTR_WIRELESS_CTRL_CERT]);
- 		mt7915_mcu_set_cfg(phy, CFGINFO_CERT_CFG, val8); /* Cert Enable for OMI */
- 		mt7915_mcu_set_bypass_smthint(phy, val8); /* Cert bypass smooth interpolation */
-+	} else if (tb[MTK_VENDOR_ATTR_WIRELESS_CTRL_AMPDU]) {
-+		val8 = nla_get_u8(tb[MTK_VENDOR_ATTR_WIRELESS_CTRL_AMPDU]);
-+		mt7915_set_wireless_ampdu(hw, val8);
-+	} else if (tb[MTK_VENDOR_ATTR_WIRELESS_CTRL_AMSDU]) {
-+		val8 = nla_get_u8(tb[MTK_VENDOR_ATTR_WIRELESS_CTRL_AMSDU]);
-+		mt7915_set_wireless_amsdu(hw, val8);
- 	}
- 
- 	return 0;
- }
- 
-+static int
-+mt7915_vendor_wireless_ctrl_dump(struct wiphy *wiphy, struct wireless_dev *wdev,
-+			     struct sk_buff *skb, const void *data, int data_len,
-+			     unsigned long *storage)
-+{
-+	struct ieee80211_hw *hw = wiphy_to_ieee80211_hw(wiphy);
-+	struct mt7915_phy *phy = mt7915_hw_phy(hw);
-+	struct mt7915_dev *dev = phy->dev;
-+	int len = 0;
-+	if (*storage == 1)
-+		return -ENOENT;
-+	*storage = 1;
-+
-+
-+	if (nla_put_u8(skb,
-+	    MTK_VENDOR_ATTR_WIRELESS_DUMP_AMPDU, ieee80211_hw_check(hw, AMPDU_AGGREGATION)) ||
-+	    nla_put_u8(skb,
-+	    MTK_VENDOR_ATTR_WIRELESS_DUMP_AMSDU, ieee80211_hw_check(hw, SUPPORTS_AMSDU_IN_AMPDU)))
-+		return -ENOMEM;
-+	len += 2;
-+
-+	return len;
-+}
-+
- static int mt7915_vendor_hemu_ctrl(struct wiphy *wiphy,
- 				  struct wireless_dev *wdev,
- 				  const void *data,
-@@ -1223,6 +1261,7 @@ static const struct wiphy_vendor_command mt7915_vendor_commands[] = {
- 		.flags = WIPHY_VENDOR_CMD_NEED_NETDEV |
- 			WIPHY_VENDOR_CMD_NEED_RUNNING,
- 		.doit = mt7915_vendor_wireless_ctrl,
-+		.dumpit = mt7915_vendor_wireless_ctrl_dump,
- 		.policy = wireless_ctrl_policy,
- 		.maxattr = MTK_VENDOR_ATTR_WIRELESS_CTRL_MAX,
- 	},
-diff --git a/mt7915/vendor.h b/mt7915/vendor.h
-index 5aac559..53abb10 100644
---- a/mt7915/vendor.h
-+++ b/mt7915/vendor.h
-@@ -58,6 +58,8 @@ enum mtk_vendor_attr_wireless_ctrl {
- 	MTK_VENDOR_ATTR_WIRELESS_CTRL_NUSERS_OFDMA,
- 	MTK_VENDOR_ATTR_WIRELESS_CTRL_BA_BUFFER_SIZE,
- 	MTK_VENDOR_ATTR_WIRELESS_CTRL_MIMO,
-+	MTK_VENDOR_ATTR_WIRELESS_CTRL_AMPDU,
-+	MTK_VENDOR_ATTR_WIRELESS_CTRL_AMSDU,
- 	MTK_VENDOR_ATTR_WIRELESS_CTRL_CERT = 9,
- 
- 	MTK_VENDOR_ATTR_WIRELESS_CTRL_MU_EDCA, /* reserve */
-@@ -67,6 +69,18 @@ enum mtk_vendor_attr_wireless_ctrl {
- 		NUM_MTK_VENDOR_ATTRS_WIRELESS_CTRL - 1
- };
- 
-+enum mtk_vendor_attr_wireless_dump {
-+	MTK_VENDOR_ATTR_WIRELESS_DUMP_UNSPEC,
-+
-+	MTK_VENDOR_ATTR_WIRELESS_DUMP_AMPDU,
-+	MTK_VENDOR_ATTR_WIRELESS_DUMP_AMSDU,
-+
-+	/* keep last */
-+	NUM_MTK_VENDOR_ATTRS_WIRELESS_DUMP,
-+	MTK_VENDOR_ATTR_WIRELESS_DUMP_MAX =
-+		NUM_MTK_VENDOR_ATTRS_WIRELESS_DUMP - 1
-+};
-+
- enum mtk_vendor_attr_hemu_ctrl {
- 	MTK_VENDOR_ATTR_HEMU_CTRL_UNSPEC,
- 
--- 
-2.18.0
-
diff --git a/autobuild_mac80211_release/package/kernel/mt76/patches/1127-mt76-mt7915-add-E3-re-bonding-for-low-yield-rate-iss.patch b/autobuild_mac80211_release/package/kernel/mt76/patches/1126-mt76-mt7915-add-E3-re-bonding-for-low-yield-rate-iss.patch
similarity index 100%
rename from autobuild_mac80211_release/package/kernel/mt76/patches/1127-mt76-mt7915-add-E3-re-bonding-for-low-yield-rate-iss.patch
rename to autobuild_mac80211_release/package/kernel/mt76/patches/1126-mt76-mt7915-add-E3-re-bonding-for-low-yield-rate-iss.patch
diff --git a/autobuild_mac80211_release/package/kernel/mt76/patches/1128-mt76-support-on-off-SW-ACI-through-debugfs.patch b/autobuild_mac80211_release/package/kernel/mt76/patches/1127-mt76-support-on-off-SW-ACI-through-debugfs.patch
similarity index 100%
rename from autobuild_mac80211_release/package/kernel/mt76/patches/1128-mt76-support-on-off-SW-ACI-through-debugfs.patch
rename to autobuild_mac80211_release/package/kernel/mt76/patches/1127-mt76-support-on-off-SW-ACI-through-debugfs.patch
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/99900-hostapd-mtk-Add-hostapd_neighbor_count-and-hostapd_neighbor_ins.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/99900-hostapd-mtk-Add-hostapd_neighbor_count-and-hostapd_neighbor_ins.patch
index ce6d8a2..e8e8b8c 100644
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/99900-hostapd-mtk-Add-hostapd_neighbor_count-and-hostapd_neighbor_ins.patch
+++ b/autobuild_mac80211_release/package/network/services/hostapd/patches/99900-hostapd-mtk-Add-hostapd_neighbor_count-and-hostapd_neighbor_ins.patch
@@ -1,7 +1,7 @@
-From ad6a0480d6e495796ac74b8ec53bcc2e85534caf Mon Sep 17 00:00:00 2001
+From 194a2405c98852358de25d96cb9d1c7c56ea4bdc 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 99900/99916] Add hostapd_neighbor_count() and
+Subject: [PATCH 99900/99917] 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 52f25eb7a..c12139067 100644
+index 52f25eb..c121390 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 992671b62..1ae194d98 100644
+index 992671b..1ae194d 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.25.1
+2.36.1
 
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/99901-hostapd-mtk-Support-including-neighbor-report-elements-in-ANQP-.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/99901-hostapd-mtk-Support-including-neighbor-report-elements-in-ANQP-.patch
index d908add..752584b 100644
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/99901-hostapd-mtk-Support-including-neighbor-report-elements-in-ANQP-.patch
+++ b/autobuild_mac80211_release/package/network/services/hostapd/patches/99901-hostapd-mtk-Support-including-neighbor-report-elements-in-ANQP-.patch
@@ -1,7 +1,7 @@
-From 5773e6a27eb2d2028972fb0ab1206faf6a117d17 Mon Sep 17 00:00:00 2001
+From 0a4f464da1089e59eb5155b5479ceff785697881 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 99901/99916] Support including neighbor report elements in
+Subject: [PATCH 99901/99917] Support including neighbor report elements in
  ANQP response
 
 ---
@@ -10,7 +10,7 @@
  2 files changed, 31 insertions(+)
 
 diff --git a/src/ap/gas_serv.c b/src/ap/gas_serv.c
-index 90f15778b..5845ff857 100644
+index 90f1577..5845ff8 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 1528af4af..d0241f23c 100644
+index 1528af4..d0241f2 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.25.1
+2.36.1
 
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/99902-hostapd-mtk-Support-including-neignbor-report-elements-in-BTM-r.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/99902-hostapd-mtk-Support-including-neignbor-report-elements-in-BTM-r.patch
index cc10887..99bea80 100644
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/99902-hostapd-mtk-Support-including-neignbor-report-elements-in-BTM-r.patch
+++ b/autobuild_mac80211_release/package/network/services/hostapd/patches/99902-hostapd-mtk-Support-including-neignbor-report-elements-in-BTM-r.patch
@@ -1,7 +1,7 @@
-From dc41ee6abddd05f25cba50126afe7890b890dfbc Mon Sep 17 00:00:00 2001
+From d283e4c84ece2f6b6dc21889b6b326ea3de11545 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 99902/99916] Support including neignbor report elements in BTM
+Subject: [PATCH 99902/99917] 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 3ea92af2d..532d9dbe6 100644
+index 3ea92af..532d9db 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.25.1
+2.36.1
 
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/99903-hostapd-mtk-Support-configuring-BSS-Termination-TSF-by-using-ho.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/99903-hostapd-mtk-Support-configuring-BSS-Termination-TSF-by-using-ho.patch
index 5370298..cac4092 100644
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/99903-hostapd-mtk-Support-configuring-BSS-Termination-TSF-by-using-ho.patch
+++ b/autobuild_mac80211_release/package/network/services/hostapd/patches/99903-hostapd-mtk-Support-configuring-BSS-Termination-TSF-by-using-ho.patch
@@ -1,7 +1,7 @@
-From e3453cf75d1d9067e97b6d0d370afb3805eccea7 Mon Sep 17 00:00:00 2001
+From de13e08cb3e1210bfed2de824c6a19e8dbed057e 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 99903/99916] Support configuring BSS Termination TSF by using
+Subject: [PATCH 99903/99917] Support configuring BSS Termination TSF by using
  hostapd_cli command
 
 ---
@@ -12,7 +12,7 @@
  4 files changed, 11 insertions(+)
 
 diff --git a/hostapd/ctrl_iface.c b/hostapd/ctrl_iface.c
-index a2584920c..c2a282227 100644
+index a258492..c2a2822 100644
 --- a/hostapd/ctrl_iface.c
 +++ b/hostapd/ctrl_iface.c
 @@ -1338,6 +1338,11 @@ static int hostapd_ctrl_iface_set(struct hostapd_data *hapd, char *cmd)
@@ -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 d7a0c7c80..4a20eb4e1 100644
+index d7a0c7c..4a20eb4 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 ed3bec7fe..3f68e76d5 100644
+index ed3bec7..3f68e76 100644
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
 @@ -557,6 +557,7 @@ struct hostapd_bss_config {
@@ -52,7 +52,7 @@
  	/* IEEE 802.11u - Interworking */
  	int interworking;
 diff --git a/src/ap/ctrl_iface_ap.c b/src/ap/ctrl_iface_ap.c
-index 96209ce7e..46a860905 100644
+index 96209ce..46a8609 100644
 --- a/src/ap/ctrl_iface_ap.c
 +++ b/src/ap/ctrl_iface_ap.c
 @@ -1203,6 +1203,10 @@ int hostapd_ctrl_iface_bss_tm_req(struct hostapd_data *hapd,
@@ -67,5 +67,5 @@
  		WPA_PUT_LE16(&bss_term_dur[10], atoi(end));
  	}
 -- 
-2.25.1
+2.36.1
 
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/99904-hostapd-mtk-Disable-interface-if-BSS-Termination-TSF-is-set.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/99904-hostapd-mtk-Disable-interface-if-BSS-Termination-TSF-is-set.patch
index f147d68..7334217 100644
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/99904-hostapd-mtk-Disable-interface-if-BSS-Termination-TSF-is-set.patch
+++ b/autobuild_mac80211_release/package/network/services/hostapd/patches/99904-hostapd-mtk-Disable-interface-if-BSS-Termination-TSF-is-set.patch
@@ -1,14 +1,14 @@
-From 17c48cab4058c5183f3fedc1bfbd6877a706e003 Mon Sep 17 00:00:00 2001
+From cdd0a088a13000d67a5bd821a609546f8b79c7e0 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 99904/99916] Disable interface if BSS Termination TSF is set
+Subject: [PATCH 99904/99917] 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 532d9dbe6..f6761aba3 100644
+index 532d9db..f6761ab 100644
 --- a/src/ap/wnm_ap.c
 +++ b/src/ap/wnm_ap.c
 @@ -780,6 +780,22 @@ static void set_disassoc_timer(struct hostapd_data *hapd, struct sta_info *sta,
@@ -43,5 +43,5 @@
  
  	if (url) {
 -- 
-2.25.1
+2.36.1
 
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/99905-hostapd-mtk-Add-set_send_disassoc_frame_timer-to-send-disassoci.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/99905-hostapd-mtk-Add-set_send_disassoc_frame_timer-to-send-disassoci.patch
index c967ebf..83d9814 100644
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/99905-hostapd-mtk-Add-set_send_disassoc_frame_timer-to-send-disassoci.patch
+++ b/autobuild_mac80211_release/package/network/services/hostapd/patches/99905-hostapd-mtk-Add-set_send_disassoc_frame_timer-to-send-disassoci.patch
@@ -1,7 +1,7 @@
-From 1538a92c53326c958133d5859c8dff0d56050c68 Mon Sep 17 00:00:00 2001
+From bd1816cb396a071cc5ae2fe13992362fcbf45fe9 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 99905/99916] Add set_send_disassoc_frame_timer() to send
+Subject: [PATCH 99905/99917] Add set_send_disassoc_frame_timer() to send
  disassociate frame
 
 Function set_disassoc_timer() may fail if key was deleted first. This new
@@ -11,7 +11,7 @@
  1 file changed, 29 insertions(+), 1 deletion(-)
 
 diff --git a/src/ap/wnm_ap.c b/src/ap/wnm_ap.c
-index f6761aba3..4349e1df2 100644
+index f6761ab..4349e1d 100644
 --- a/src/ap/wnm_ap.c
 +++ b/src/ap/wnm_ap.c
 @@ -780,6 +780,34 @@ static void set_disassoc_timer(struct hostapd_data *hapd, struct sta_info *sta,
@@ -59,5 +59,5 @@
  
  	return 0;
 -- 
-2.25.1
+2.36.1
 
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/99906-hostapd-mtk-Support-including-neighbor-report-elements-in-BTM-r.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/99906-hostapd-mtk-Support-including-neighbor-report-elements-in-BTM-r.patch
index c88f3e5..174d8a9 100644
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/99906-hostapd-mtk-Support-including-neighbor-report-elements-in-BTM-r.patch
+++ b/autobuild_mac80211_release/package/network/services/hostapd/patches/99906-hostapd-mtk-Support-including-neighbor-report-elements-in-BTM-r.patch
@@ -1,7 +1,7 @@
-From 8b4c91eee579bb232b7a921abbfe07f3630d73b9 Mon Sep 17 00:00:00 2001
+From 99665874b76ccacd85e56ea8767ebb0b8d4b3b1e 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 99906/99916] Support including neighbor report elements in BTM
+Subject: [PATCH 99906/99917] Support including neighbor report elements in BTM
  request
 
 ---
@@ -9,7 +9,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 46a860905..1cbec537a 100644
+index 46a8609..1cbec53 100644
 --- a/src/ap/ctrl_iface_ap.c
 +++ b/src/ap/ctrl_iface_ap.c
 @@ -1233,8 +1233,13 @@ int hostapd_ctrl_iface_bss_tm_req(struct hostapd_data *hapd,
@@ -28,5 +28,5 @@
  		req_mode |= WNM_BSS_TM_REQ_ABRIDGED;
  	if (os_strstr(cmd, " disassoc_imminent=1"))
 -- 
-2.25.1
+2.36.1
 
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/99907-hostapd-mtk-Add-hostapd_neighbor_set_own_report_pref.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/99907-hostapd-mtk-Add-hostapd_neighbor_set_own_report_pref.patch
index 37ff1ac..63658c9 100644
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/99907-hostapd-mtk-Add-hostapd_neighbor_set_own_report_pref.patch
+++ b/autobuild_mac80211_release/package/network/services/hostapd/patches/99907-hostapd-mtk-Add-hostapd_neighbor_set_own_report_pref.patch
@@ -1,7 +1,7 @@
-From 9af8c262f5405028d704a3b7f93c4fcb7ed5f7b4 Mon Sep 17 00:00:00 2001
+From bc2244e766d863c35369cc1641b058d062681abe 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 99907/99916] Add hostapd_neighbor_set_own_report_pref()
+Subject: [PATCH 99907/99917] Add hostapd_neighbor_set_own_report_pref()
 
 ---
  src/ap/ctrl_iface_ap.c |  6 +++++-
@@ -10,7 +10,7 @@
  3 files changed, 43 insertions(+), 1 deletion(-)
 
 diff --git a/src/ap/ctrl_iface_ap.c b/src/ap/ctrl_iface_ap.c
-index 1cbec537a..274b43587 100644
+index 1cbec53..274b435 100644
 --- a/src/ap/ctrl_iface_ap.c
 +++ b/src/ap/ctrl_iface_ap.c
 @@ -1242,8 +1242,12 @@ int hostapd_ctrl_iface_bss_tm_req(struct hostapd_data *hapd,
@@ -28,7 +28,7 @@
  #ifdef CONFIG_MBO
  	pos = os_strstr(cmd, "mbo=");
 diff --git a/src/ap/neighbor_db.c b/src/ap/neighbor_db.c
-index c12139067..134ed4a71 100644
+index c121390..134ed4a 100644
 --- a/src/ap/neighbor_db.c
 +++ b/src/ap/neighbor_db.c
 @@ -357,3 +357,39 @@ void hostapd_neighbor_set_own_report(struct hostapd_data *hapd)
@@ -72,7 +72,7 @@
 +	}
 +}
 diff --git a/src/ap/neighbor_db.h b/src/ap/neighbor_db.h
-index 1ae194d98..2e16f7268 100644
+index 1ae194d..2e16f72 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.25.1
+2.36.1
 
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/99908-hostapd-mtk-Add-hostapd_neighbor_set_pref_by_non_pref_chan.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/99908-hostapd-mtk-Add-hostapd_neighbor_set_pref_by_non_pref_chan.patch
index 563588e..8d23b84 100644
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/99908-hostapd-mtk-Add-hostapd_neighbor_set_pref_by_non_pref_chan.patch
+++ b/autobuild_mac80211_release/package/network/services/hostapd/patches/99908-hostapd-mtk-Add-hostapd_neighbor_set_pref_by_non_pref_chan.patch
@@ -1,7 +1,7 @@
-From 21c1940ecfd6d9404097868ad4a59a0d6a54ea69 Mon Sep 17 00:00:00 2001
+From 952404e8327c98817a2d975b5595ca5d9a15e739 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 99908/99916] Add hostapd_neighbor_set_pref_by_non_pref_chan()
+Subject: [PATCH 99908/99917] Add hostapd_neighbor_set_pref_by_non_pref_chan()
 
 ---
  src/ap/ctrl_iface_ap.c |  2 ++
@@ -10,7 +10,7 @@
  3 files changed, 57 insertions(+)
 
 diff --git a/src/ap/ctrl_iface_ap.c b/src/ap/ctrl_iface_ap.c
-index 274b43587..18bae5c8b 100644
+index 274b435..18bae5c 100644
 --- a/src/ap/ctrl_iface_ap.c
 +++ b/src/ap/ctrl_iface_ap.c
 @@ -1250,6 +1250,8 @@ int hostapd_ctrl_iface_bss_tm_req(struct hostapd_data *hapd,
@@ -23,7 +23,7 @@
  	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 134ed4a71..9254d09fd 100644
+index 134ed4a..9254d09 100644
 --- a/src/ap/neighbor_db.c
 +++ b/src/ap/neighbor_db.c
 @@ -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 2e16f7268..a1ddc075b 100644
+index 2e16f72..a1ddc07 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.25.1
+2.36.1
 
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/99909-hostapd-mtk-print-sae-groups-by-hostapd-ctrl.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/99909-hostapd-mtk-print-sae-groups-by-hostapd-ctrl.patch
index 58b47fa..12e0e36 100644
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/99909-hostapd-mtk-print-sae-groups-by-hostapd-ctrl.patch
+++ b/autobuild_mac80211_release/package/network/services/hostapd/patches/99909-hostapd-mtk-print-sae-groups-by-hostapd-ctrl.patch
@@ -1,14 +1,14 @@
-From 0818f9258d0491387103ef7b98b8dbbd1ada12ec Mon Sep 17 00:00:00 2001
+From b7a74dbae4ff2bdbc5c84d0299bc18020fe86d13 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
+Subject: [PATCH 99909/99917] 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
+index c2a2822..bc690c5 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,
@@ -32,5 +32,5 @@
  
  	return -1;
 -- 
-2.25.1
+2.36.1
 
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/99910-hostapd-mtk-hostapd-add-support-for-runtime-set-in-band-discove.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/99910-hostapd-mtk-hostapd-add-support-for-runtime-set-in-band-discove.patch
index b404963..2af1d8e 100644
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/99910-hostapd-mtk-hostapd-add-support-for-runtime-set-in-band-discove.patch
+++ b/autobuild_mac80211_release/package/network/services/hostapd/patches/99910-hostapd-mtk-hostapd-add-support-for-runtime-set-in-band-discove.patch
@@ -1,7 +1,7 @@
-From cff3f584e921ce37fcd72a895666abc9227d16fd Mon Sep 17 00:00:00 2001
+From 7a7b2284ad75cd20c788dad6e253bc2940203ff9 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 99910/99916] hostapd: add support for runtime set in-band
+Subject: [PATCH 99910/99917] hostapd: add support for runtime set in-band
  discovery
 
 Usage:
@@ -21,7 +21,7 @@
  5 files changed, 98 insertions(+), 4 deletions(-)
 
 diff --git a/hostapd/ctrl_iface.c b/hostapd/ctrl_iface.c
-index bc690c526..bb8c74fd3 100644
+index bc690c5..bb8c74f 100644
 --- a/hostapd/ctrl_iface.c
 +++ b/hostapd/ctrl_iface.c
 @@ -826,6 +826,69 @@ static int hostapd_ctrl_iface_send_qos_map_conf(struct hostapd_data *hapd,
@@ -105,7 +105,7 @@
  		reply_len = hostapd_ctrl_iface_get_config(hapd, reply,
  							  reply_size);
 diff --git a/hostapd/hostapd_cli.c b/hostapd/hostapd_cli.c
-index 85c41d0c3..db2125805 100644
+index 85c41d0..db21258 100644
 --- a/hostapd/hostapd_cli.c
 +++ b/hostapd/hostapd_cli.c
 @@ -642,6 +642,24 @@ static int hostapd_cli_cmd_wps_config(struct wpa_ctrl *ctrl, int argc,
@@ -143,7 +143,7 @@
  };
  
 diff --git a/src/ap/beacon.c b/src/ap/beacon.c
-index 814e86efe..1a26f11ff 100644
+index 814e86e..1a26f11 100644
 --- a/src/ap/beacon.c
 +++ b/src/ap/beacon.c
 @@ -1497,6 +1497,8 @@ static u8 * hostapd_fils_discovery(struct hostapd_data *hapd,
@@ -166,7 +166,7 @@
  						  &params->fd_frame_tmpl_len);
  
 diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
-index 53f25030a..5eba0ea1b 100644
+index 53f2503..5eba0ea 100644
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
 @@ -4498,9 +4498,10 @@ static int nl80211_fils_discovery(struct i802_bss *bss, struct nl_msg *msg,
@@ -195,7 +195,7 @@
  #endif /* CONFIG_FILS */
  
 diff --git a/src/drivers/nl80211_copy.h b/src/drivers/nl80211_copy.h
-index 0568a7909..c4bf3ad35 100644
+index 0568a79..c4bf3ad 100644
 --- a/src/drivers/nl80211_copy.h
 +++ b/src/drivers/nl80211_copy.h
 @@ -7379,6 +7379,7 @@ enum nl80211_fils_discovery_attributes {
@@ -207,5 +207,5 @@
  	/* keep last */
  	__NL80211_FILS_DISCOVERY_ATTR_LAST,
 -- 
-2.25.1
+2.36.1
 
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/99911-hostapd-mtk-Add-mtk_vendor.h.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/99911-hostapd-mtk-Add-mtk_vendor.h.patch
index e2a4cb2..ff4d232 100644
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/99911-hostapd-mtk-Add-mtk_vendor.h.patch
+++ b/autobuild_mac80211_release/package/network/services/hostapd/patches/99911-hostapd-mtk-Add-mtk_vendor.h.patch
@@ -1,7 +1,7 @@
-From 653bfcdadce50131c3c394b33acd94b110186744 Mon Sep 17 00:00:00 2001
+From f5ba1e7e33d0736602957f8131540202cec1c7ad 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 99911/99916] Add mtk_vendor.h
+Subject: [PATCH 99911/99917] 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 000000000..528387fa5
+index 0000000..528387f
 --- /dev/null
 +++ b/src/common/mtk_vendor.h
 @@ -0,0 +1,195 @@
@@ -210,5 +210,5 @@
 +};
 +#endif /* MTK_VENDOR_H */
 -- 
-2.25.1
+2.36.1
 
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/99912-hostapd-mtk-Support-new-hostapd-configuration-edcca_enable-and-.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/99912-hostapd-mtk-Support-new-hostapd-configuration-edcca_enable-and-.patch
index be526be..e1161f8 100644
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/99912-hostapd-mtk-Support-new-hostapd-configuration-edcca_enable-and-.patch
+++ b/autobuild_mac80211_release/package/network/services/hostapd/patches/99912-hostapd-mtk-Support-new-hostapd-configuration-edcca_enable-and-.patch
@@ -1,8 +1,8 @@
-From 17051f7a8b2193e24556e357f3f1665d67a79330 Mon Sep 17 00:00:00 2001
+From 27645d8206ad1a0276f05faa175f2ed4ffb8202e 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] Support new hostapd configuration, edcca_enable and
- edcca_compensation and implement edcca related handlers.
+Subject: [PATCH 99912/99917] Support new hostapd configuration, edcca_enable
+ and edcca_compensation and implement edcca related handlers.
 
 ---
  hostapd/config_file.c             |  32 ++++++
@@ -615,5 +615,5 @@
  
  			wpa_printf(MSG_DEBUG, "nl80211: Supported vendor command: vendor_id=0x%x subcmd=%u",
 -- 
-2.18.0
+2.36.1
 
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/99914-hostapd-mtk-Add-hostapd-HEMU-SET-GET-control.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/99913-hostapd-mtk-Add-hostapd-HEMU-SET-GET-control.patch
similarity index 98%
rename from autobuild_mac80211_release/package/network/services/hostapd/patches/99914-hostapd-mtk-Add-hostapd-HEMU-SET-GET-control.patch
rename to autobuild_mac80211_release/package/network/services/hostapd/patches/99913-hostapd-mtk-Add-hostapd-HEMU-SET-GET-control.patch
index 054dd47..572cdd1 100644
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/99914-hostapd-mtk-Add-hostapd-HEMU-SET-GET-control.patch
+++ b/autobuild_mac80211_release/package/network/services/hostapd/patches/99913-hostapd-mtk-Add-hostapd-HEMU-SET-GET-control.patch
@@ -1,7 +1,7 @@
-From d5c58b339c448a6d1d476205b68d434d7bf8e472 Mon Sep 17 00:00:00 2001
+From fe664c759cb79e130d35f6dd0236e9cb33320f70 Mon Sep 17 00:00:00 2001
 From: TomLiu <tomml.liu@mediatek.com>
 Date: Tue, 9 Aug 2022 10:23:44 -0700
-Subject: [PATCH 1/6] Add hostapd HEMU SET/GET control
+Subject: [PATCH 99913/99917] 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 c99e76d..afe0f0c 100644
+index 0ee8952..b22d10b 100644
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -3698,6 +3698,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;
@@ -292,7 +292,7 @@
  
  /**
 diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
-index 5fe1d33..ef0ca18 100644
+index 9c2782c..73dee2e 100644
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
 @@ -12304,6 +12304,114 @@ fail:
@@ -446,5 +446,5 @@
  			}
  
 -- 
-2.18.0
+2.36.1
 
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/99915-hostapd-mtk-Add-three-wire-PTA-ctrl-hostapd-vendor-command.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/99914-hostapd-mtk-Add-three-wire-PTA-ctrl-hostapd-vendor-command.patch
similarity index 96%
rename from autobuild_mac80211_release/package/network/services/hostapd/patches/99915-hostapd-mtk-Add-three-wire-PTA-ctrl-hostapd-vendor-command.patch
rename to autobuild_mac80211_release/package/network/services/hostapd/patches/99914-hostapd-mtk-Add-three-wire-PTA-ctrl-hostapd-vendor-command.patch
index c853b08..ca64eb8 100644
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/99915-hostapd-mtk-Add-three-wire-PTA-ctrl-hostapd-vendor-command.patch
+++ b/autobuild_mac80211_release/package/network/services/hostapd/patches/99914-hostapd-mtk-Add-three-wire-PTA-ctrl-hostapd-vendor-command.patch
@@ -1,7 +1,7 @@
-From f080902be233f0c28d205f62f737edabdb6b6aaa Mon Sep 17 00:00:00 2001
+From 4707ed85884be2ffe7860e28de80df5a6e479824 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 2/6] Add three wire PTA ctrl hostapd vendor command
+Subject: [PATCH 99914/99917] Add three wire PTA ctrl hostapd vendor command
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 ---
@@ -19,10 +19,10 @@
  11 files changed, 93 insertions(+)
 
 diff --git a/hostapd/config_file.c b/hostapd/config_file.c
-index afe0f0c..a4875ee 100644
+index b22d10b..18b372a 100644
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -4836,6 +4836,10 @@ static int hostapd_config_fill(struct hostapd_config *conf,
+@@ -4794,6 +4794,10 @@ static int hostapd_config_fill(struct hostapd_config *conf,
  			return 1;
  		}
  		conf->edcca_compensation = (s8) val;
@@ -167,7 +167,7 @@
  
  /**
 diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
-index ef0ca18..ec7b174 100644
+index 73dee2e..2bb8cc2 100644
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
 @@ -12637,6 +12637,38 @@ static int nl80211_get_edcca(void *priv, const u8 mode, u8 *value)
@@ -242,5 +242,5 @@
  			}
  
 -- 
-2.18.0
+2.36.1
 
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/99916-hostapd-mtk-Add-hostapd-iBF-control.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/99915-hostapd-mtk-Add-hostapd-iBF-control.patch
similarity index 98%
rename from autobuild_mac80211_release/package/network/services/hostapd/patches/99916-hostapd-mtk-Add-hostapd-iBF-control.patch
rename to autobuild_mac80211_release/package/network/services/hostapd/patches/99915-hostapd-mtk-Add-hostapd-iBF-control.patch
index eadaa63..a50cb9e 100644
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/99916-hostapd-mtk-Add-hostapd-iBF-control.patch
+++ b/autobuild_mac80211_release/package/network/services/hostapd/patches/99915-hostapd-mtk-Add-hostapd-iBF-control.patch
@@ -1,7 +1,7 @@
-From 1632fa308f5269dab803f94389026ae57d99375d Mon Sep 17 00:00:00 2001
+From e177f5069ff7e8f024676cf9d0e4af135cfea95b Mon Sep 17 00:00:00 2001
 From: mtk27835 <shurong.wen@mediatek.com>
 Date: Wed, 7 Sep 2022 14:41:51 -0700
-Subject: [PATCH 3/6] Add hostapd iBF control
+Subject: [PATCH 99915/99917] Add hostapd iBF control
 
 Signed-off-by: mtk27835 <shurong.wen@mediatek.com>
 ---
@@ -21,10 +21,10 @@
  13 files changed, 224 insertions(+), 1 deletion(-)
 
 diff --git a/hostapd/config_file.c b/hostapd/config_file.c
-index a4875ee..6b3b88d 100644
+index 18b372a..d9d882c 100644
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -4840,6 +4840,9 @@ static int hostapd_config_fill(struct hostapd_config *conf,
+@@ -4798,6 +4798,9 @@ static int hostapd_config_fill(struct hostapd_config *conf,
  		u8 en = atoi(pos);
  
  		conf->three_wire_enable = en;
@@ -277,7 +277,7 @@
  
  /**
 diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
-index ec7b174..00f9231 100644
+index 2bb8cc2..e974f85 100644
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
 @@ -12670,6 +12670,112 @@ static int nl80211_enable_three_wire(void *priv, const u8 three_wire_enable)
@@ -427,5 +427,5 @@
  			}
  
 -- 
-2.18.0
+2.36.1
 
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/99918-hostapd-mtk-Do-not-include-HE-capab-IE-if-associated-sta-s-HE-c.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/99916-hostapd-mtk-Do-not-include-HE-capab-IE-if-associated-sta-s-HE-c.patch
similarity index 85%
rename from autobuild_mac80211_release/package/network/services/hostapd/patches/99918-hostapd-mtk-Do-not-include-HE-capab-IE-if-associated-sta-s-HE-c.patch
rename to autobuild_mac80211_release/package/network/services/hostapd/patches/99916-hostapd-mtk-Do-not-include-HE-capab-IE-if-associated-sta-s-HE-c.patch
index 6544088..b1769a1 100644
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/99918-hostapd-mtk-Do-not-include-HE-capab-IE-if-associated-sta-s-HE-c.patch
+++ b/autobuild_mac80211_release/package/network/services/hostapd/patches/99916-hostapd-mtk-Do-not-include-HE-capab-IE-if-associated-sta-s-HE-c.patch
@@ -1,7 +1,7 @@
-From 52e2b550382387c45083982a900a9d6132710255 Mon Sep 17 00:00:00 2001
+From dbd8120e47621784647deb776bf4b4d0a97fb49e Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Thu, 22 Sep 2022 16:08:09 +0800
-Subject: [PATCH 99918/99920] Do not include HE capab IE if associated sta's HE
+Subject: [PATCH 99916/99917] Do not include HE capab IE if associated sta's HE
  capab IE is invalid
 
 ---
@@ -23,5 +23,5 @@
  		p = hostapd_eid_he_operation(hapd, p);
  		p = hostapd_eid_cca(hapd, p);
 -- 
-2.18.0
+2.36.1
 
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/99919-hostapd-mtk--Add-DFS-and-ZWDFS-support.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/99917-hostapd-mtk-Add-DFS-and-ZWDFS-support.patch
similarity index 89%
rename from autobuild_mac80211_release/package/network/services/hostapd/patches/99919-hostapd-mtk--Add-DFS-and-ZWDFS-support.patch
rename to autobuild_mac80211_release/package/network/services/hostapd/patches/99917-hostapd-mtk-Add-DFS-and-ZWDFS-support.patch
index 4315be0..83eac6e 100644
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/99919-hostapd-mtk--Add-DFS-and-ZWDFS-support.patch
+++ b/autobuild_mac80211_release/package/network/services/hostapd/patches/99917-hostapd-mtk-Add-DFS-and-ZWDFS-support.patch
@@ -1,7 +1,7 @@
-From 5fd8ba4e856b94c8753a468b9e8a7dbece63cfec Mon Sep 17 00:00:00 2001
+From 80ecd3e0398aa668e683ff582a0594f88b290f44 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Fri, 7 Oct 2022 10:46:29 +0800
-Subject: [PATCH] Add DFS and ZWDFS support
+Subject: [PATCH 99917/99917] Add DFS and ZWDFS support
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 ---
@@ -17,13 +17,13 @@
  9 files changed, 186 insertions(+), 17 deletions(-)
 
 diff --git a/hostapd/config_file.c b/hostapd/config_file.c
-index 310f97d..a2ee418 100644
+index d9d882c..fd61448 100644
 --- a/hostapd/config_file.c
 +++ b/hostapd/config_file.c
-@@ -4807,6 +4807,10 @@ static int hostapd_config_fill(struct hostapd_config *conf,
- 			return 1;
- 		}
- 		conf->amsdu = val;
+@@ -4801,6 +4801,10 @@ static int hostapd_config_fill(struct hostapd_config *conf,
+ 	} else if (os_strcmp(buf, "ibf_enable") == 0) { /*ibf setting is per device*/
+ 		int val = atoi(pos);
+ 		conf->ibf_enable = !!val;
 +	} else if (os_strcmp(buf, "dfs_detect_mode") == 0) { /*bypass channel switch*/
 +		u8 en = strtol(pos, NULL, 10);
 +
@@ -32,10 +32,10 @@
  		wpa_printf(MSG_ERROR,
  			   "Line %d: unknown configuration item '%s'",
 diff --git a/hostapd/ctrl_iface.c b/hostapd/ctrl_iface.c
-index 0c40175..296e42f 100644
+index c881d37..6ea1573 100644
 --- a/hostapd/ctrl_iface.c
 +++ b/hostapd/ctrl_iface.c
-@@ -3537,6 +3537,96 @@ hostapd_ctrl_iface_get_aggregation(struct hostapd_data *hapd, char *buf,
+@@ -3522,6 +3522,96 @@ hostapd_ctrl_iface_get_ibf(struct hostapd_data *hapd, char *buf,
  }
  
  
@@ -132,10 +132,10 @@
  static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
  					      char *buf, char *reply,
  					      int reply_size,
-@@ -4099,6 +4189,11 @@ static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
+@@ -4081,6 +4171,11 @@ static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
+ 		reply_len = hostapd_ctrl_iface_get_hemu(hapd, reply, reply_size);
+ 	} else if (os_strncmp(buf, "GET_IBF", 7) == 0) {
  		reply_len = hostapd_ctrl_iface_get_ibf(hapd, reply, reply_size);
- 	} else if (os_strncmp(buf, "GET_AGGR", 8) == 0) {
- 		reply_len = hostapd_ctrl_iface_get_aggregation(hapd, reply, reply_size);
 +	} else if (os_strncmp(buf, "DFS_DETECT_MODE ", 16) == 0) {
 +		reply_len = hostapd_ctrl_iface_set_dfs_detect_mode(hapd, buf + 16,
 +								   reply, reply_size);
@@ -145,18 +145,18 @@
  		os_memcpy(reply, "UNKNOWN COMMAND\n", 16);
  		reply_len = 16;
 diff --git a/src/ap/ap_config.h b/src/ap/ap_config.h
-index 01b051d..f567c37 100644
+index 44a0e7e..3f5afdf 100644
 --- a/src/ap/ap_config.h
 +++ b/src/ap/ap_config.h
-@@ -1160,6 +1160,7 @@ struct hostapd_config {
+@@ -1159,6 +1159,7 @@ struct hostapd_config {
+ 	int *edcca_threshold;
+ 	u8 three_wire_enable;
  	u8 ibf_enable;
- 	u8 ampdu;
- 	u8 amsdu;
 +	u8 dfs_detect_mode;
  };
  
  enum three_wire_mode {
-@@ -1174,6 +1175,18 @@ enum three_wire_mode {
+@@ -1173,6 +1174,18 @@ enum three_wire_mode {
  		NUM_THREE_WIRE_MODE - 1
  };
  
@@ -282,7 +282,7 @@
  
  #endif /* DFS_H */
 diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c
-index 5fc998e..ed1dfdb 100644
+index e44b73d..793ce2f 100644
 --- a/src/ap/hostapd.c
 +++ b/src/ap/hostapd.c
 @@ -1463,7 +1463,9 @@ static int hostapd_setup_bss(struct hostapd_data *hapd, int first)
@@ -297,13 +297,13 @@
  
  	if (flush_old_stations && !conf->start_disabled &&
 diff --git a/src/drivers/driver.h b/src/drivers/driver.h
-index e34903b..6ad6d84 100644
+index 71ded61..aa23fbd 100644
 --- a/src/drivers/driver.h
 +++ b/src/drivers/driver.h
-@@ -4722,6 +4722,13 @@ struct wpa_driver_ops {
- 	int (*ampdu_ctrl)(void *priv, u8 ampdu);
- 	int (*amsdu_ctrl)(void *priv, u8 amsdu);
- 	int (*aggregation_dump)(void *priv, u8 *aggr);
+@@ -4720,6 +4720,13 @@ struct wpa_driver_ops {
+ 	 *
+ 	 */
+ 	int (*ibf_dump)(void *priv, u8 *ibf_enable);
 +
 +	/**
 +	 * start_disabled - set start_disabled to cfg80211
@@ -315,10 +315,10 @@
  
  /**
 diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
-index a06ac58..af064c0 100644
+index e974f85..003adc4 100644
 --- a/src/drivers/driver_nl80211.c
 +++ b/src/drivers/driver_nl80211.c
-@@ -12812,6 +12812,34 @@ fail:
+@@ -12776,6 +12776,34 @@ fail:
  	return -ENOBUFS;
  }
  
@@ -353,10 +353,10 @@
  const struct wpa_driver_ops wpa_driver_nl80211_ops = {
  	.name = "nl80211",
  	.desc = "Linux nl80211/cfg80211",
-@@ -12967,4 +12995,5 @@ const struct wpa_driver_ops wpa_driver_nl80211_ops = {
- 	.ampdu_ctrl = nl80211_enable_ampdu,
- 	.amsdu_ctrl = nl80211_enable_amsdu,
- 	.aggregation_dump = nl80211_dump_aggregation,
+@@ -12930,4 +12958,5 @@ const struct wpa_driver_ops wpa_driver_nl80211_ops = {
+ 	.three_wire_ctrl = nl80211_enable_three_wire,
+ 	.ibf_ctrl = nl80211_ibf_enable,
+ 	.ibf_dump = nl80211_ibf_dump,
 +	.start_disabled = nl80211_start_disabled,
  };
 diff --git a/src/drivers/nl80211_copy.h b/src/drivers/nl80211_copy.h
@@ -372,5 +372,5 @@
  	__NL80211_ATTR_AFTER_LAST,
  	NUM_NL80211_ATTR = __NL80211_ATTR_AFTER_LAST,
 -- 
-2.18.0
+2.36.1
 
diff --git a/autobuild_mac80211_release/package/network/services/hostapd/patches/99917-hostapd-mtk-Add-hostapd-AMPDU-AMSDU-control.patch b/autobuild_mac80211_release/package/network/services/hostapd/patches/99917-hostapd-mtk-Add-hostapd-AMPDU-AMSDU-control.patch
deleted file mode 100644
index 796dc3f..0000000
--- a/autobuild_mac80211_release/package/network/services/hostapd/patches/99917-hostapd-mtk-Add-hostapd-AMPDU-AMSDU-control.patch
+++ /dev/null
@@ -1,482 +0,0 @@
-From 32816f9bf56aeff95ddfe4a735028bee0d552f4d Mon Sep 17 00:00:00 2001
-From: TomLiu <tomml.liu@mediatek.com>
-Date: Wed, 21 Sep 2022 15:14:11 -0700
-Subject: [PATCH 4/6] add hostapd AMPDU and AMSDU control command
-
----
- hostapd/config_file.c             |  18 ++++
- hostapd/ctrl_iface.c              |  44 ++++++++
- hostapd/hostapd_cli.c             |   9 ++
- src/ap/ap_config.c                |   2 +
- src/ap/ap_config.h                |   2 +
- src/ap/ap_drv_ops.c               |  23 ++++-
- src/ap/ap_drv_ops.h               |   3 +
- src/ap/hostapd.c                  |   4 +
- src/common/mtk_vendor.h           |  18 ++++
- src/drivers/driver.h              |  11 ++
- src/drivers/driver_nl80211.c      | 160 ++++++++++++++++++++++++++++++
- src/drivers/driver_nl80211.h      |   1 +
- src/drivers/driver_nl80211_capa.c |   3 +
- 13 files changed, 297 insertions(+), 1 deletion(-)
-
-diff --git a/hostapd/config_file.c b/hostapd/config_file.c
-index 6b3b88d..9660543 100644
---- a/hostapd/config_file.c
-+++ b/hostapd/config_file.c
-@@ -4843,6 +4843,24 @@ static int hostapd_config_fill(struct hostapd_config *conf,
- 	} else if (os_strcmp(buf, "ibf_enable") == 0) { /*ibf setting is per device*/
- 		int val = atoi(pos);
- 		conf->ibf_enable = !!val;
-+	} else if (os_strcmp(buf, "ampdu") == 0) {
-+		int val = atoi(pos);
-+		if (val < 0 || val > 1) {
-+			wpa_printf(MSG_ERROR,
-+					 "Line %d: invalid ampdu value",
-+					 line);
-+			return 1;
-+		}
-+		conf->ampdu = val;
-+	} else if (os_strcmp(buf, "amsdu") == 0) {
-+		int val = atoi(pos);
-+		if (val < 0 || val > 1) {
-+			wpa_printf(MSG_ERROR,
-+					 "Line %d: invalid amsdu value",
-+					 line);
-+			return 1;
-+		}
-+		conf->amsdu = val;
- 	} else {
- 		wpa_printf(MSG_ERROR,
- 			   "Line %d: unknown configuration item '%s'",
-diff --git a/hostapd/ctrl_iface.c b/hostapd/ctrl_iface.c
-index c881d37..e51488e 100644
---- a/hostapd/ctrl_iface.c
-+++ b/hostapd/ctrl_iface.c
-@@ -3522,6 +3522,48 @@ hostapd_ctrl_iface_get_ibf(struct hostapd_data *hapd, char *buf,
- }
- 
- 
-+static int
-+hostapd_ctrl_iface_get_aggregation(struct hostapd_data *hapd, char *buf,
-+					 size_t buflen)
-+{
-+	u8 aggr;
-+	int ret;
-+	char *pos, *end;
-+
-+	pos = buf;
-+	end = buf + buflen;
-+
-+	if (hostapd_drv_aggregation_dump(hapd, &aggr) == 0) {
-+		if (aggr == 0) {
-+				hapd->iconf->ampdu = 0;
-+				hapd->iconf->amsdu = 0;
-+				ret = os_snprintf(pos, end - pos, "[hostapd_cli] AMPDU: %u, AMSDU disabled\n",
-+					hapd->iconf->ampdu);
-+		} else if (aggr == 1) {
-+				hapd->iconf->ampdu = 0;
-+				hapd->iconf->amsdu = 1;
-+				ret = os_snprintf(pos, end - pos, "[hostapd_cli] AMPDU: %u, AMSDU disabled\n",
-+					hapd->iconf->ampdu);
-+		} else if (aggr == 2) {
-+				hapd->iconf->ampdu = 1;
-+				hapd->iconf->amsdu = 0;
-+				ret = os_snprintf(pos, end - pos, "[hostapd_cli] AMPDU: %u, AMSDU: %u\n",
-+					hapd->iconf->ampdu, hapd->iconf->amsdu);
-+		} else if (aggr == 3) {
-+				hapd->iconf->ampdu = 1;
-+				hapd->iconf->amsdu = 1;
-+				ret = os_snprintf(pos, end - pos, "[hostapd_cli] AMPDU: %u, AMSDU: %u\n",
-+					hapd->iconf->ampdu, hapd->iconf->amsdu);
-+		}
-+	}
-+
-+	if (os_snprintf_error(end - pos, ret))
-+		return 0;
-+
-+	return ret;
-+}
-+
-+
- static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
- 					      char *buf, char *reply,
- 					      int reply_size,
-@@ -4081,6 +4123,8 @@ static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd,
- 		reply_len = hostapd_ctrl_iface_get_hemu(hapd, reply, reply_size);
- 	} else if (os_strncmp(buf, "GET_IBF", 7) == 0) {
- 		reply_len = hostapd_ctrl_iface_get_ibf(hapd, reply, reply_size);
-+	} else if (os_strncmp(buf, "GET_AGGR", 8) == 0) {
-+		reply_len = hostapd_ctrl_iface_get_aggregation(hapd, reply, reply_size);
- 	} else {
- 		os_memcpy(reply, "UNKNOWN COMMAND\n", 16);
- 		reply_len = 16;
-diff --git a/hostapd/hostapd_cli.c b/hostapd/hostapd_cli.c
-index c2a123a..9a5a6b1 100644
---- a/hostapd/hostapd_cli.c
-+++ b/hostapd/hostapd_cli.c
-@@ -1593,6 +1593,13 @@ static int hostapd_cli_cmd_get_ibf(struct wpa_ctrl *ctrl, int argc,
- }
- 
- 
-+static int hostapd_cli_cmd_get_aggregation(struct wpa_ctrl *ctrl, int argc,
-+					   char *argv[])
-+{
-+	return hostapd_cli_cmd(ctrl, "GET_AGGR", 0, NULL, NULL);
-+}
-+
-+
- struct hostapd_cli_cmd {
- 	const char *cmd;
- 	int (*handler)(struct wpa_ctrl *ctrl, int argc, char *argv[]);
-@@ -1796,6 +1803,8 @@ static const struct hostapd_cli_cmd hostapd_cli_commands[] = {
-           "<tx type(0/1/2)> <interval> = runtime set inband discovery" },
- 	{ "get_ibf", hostapd_cli_cmd_get_ibf, NULL,
- 	  " = show iBF state (enabled/disabled)"},
-+	{ "get_aggr", hostapd_cli_cmd_get_aggregation, NULL,
-+		" = show AMPDU and AMSDU state"},
- 	{ NULL, NULL, NULL, NULL }
- };
- 
-diff --git a/src/ap/ap_config.c b/src/ap/ap_config.c
-index 7a96cb8..3ce8217 100644
---- a/src/ap/ap_config.c
-+++ b/src/ap/ap_config.c
-@@ -299,6 +299,8 @@ struct hostapd_config * hostapd_config_defaults(void)
- 	conf->edcca_compensation = EDCCA_DEFAULT_COMPENSATION;
- 	conf->three_wire_enable = THREE_WIRE_MODE_DISABLE;
- 	conf->ibf_enable = IBF_DEFAULT_ENABLE;
-+	conf->ampdu = 1;
-+	conf->amsdu = 1;
- 
- 	return conf;
- }
-diff --git a/src/ap/ap_config.h b/src/ap/ap_config.h
-index 44a0e7e..3e73236 100644
---- a/src/ap/ap_config.h
-+++ b/src/ap/ap_config.h
-@@ -1159,6 +1159,8 @@ struct hostapd_config {
- 	int *edcca_threshold;
- 	u8 three_wire_enable;
- 	u8 ibf_enable;
-+	u8 ampdu;
-+	u8 amsdu;
- };
- 
- enum three_wire_mode {
-diff --git a/src/ap/ap_drv_ops.c b/src/ap/ap_drv_ops.c
-index 60ae825..5d07272 100644
---- a/src/ap/ap_drv_ops.c
-+++ b/src/ap/ap_drv_ops.c
-@@ -1077,4 +1077,25 @@ int hostapd_drv_ibf_dump(struct hostapd_data *hapd, u8 *ibf_enable)
- 	if (!hapd->driver || !hapd->driver->ibf_dump)
- 		return 0;
- 	return hapd->driver->ibf_dump(hapd->drv_priv, ibf_enable);
--}
-\ No newline at end of file
-+}
-+
-+int hostapd_drv_ampdu_ctrl(struct hostapd_data *hapd)
-+{
-+	if (!hapd->driver || !hapd->driver->ampdu_ctrl)
-+		return 0;
-+	return hapd->driver->ampdu_ctrl(hapd->drv_priv, hapd->iconf->ampdu);
-+}
-+
-+int hostapd_drv_amsdu_ctrl(struct hostapd_data *hapd)
-+{
-+	if (!hapd->driver || !hapd->driver->amsdu_ctrl)
-+		return 0;
-+	return hapd->driver->amsdu_ctrl(hapd->drv_priv, hapd->iconf->amsdu);
-+}
-+
-+int hostapd_drv_aggregation_dump(struct hostapd_data *hapd, u8 *aggr)
-+{
-+	if (!hapd->driver || !hapd->driver->aggregation_dump)
-+		return 0;
-+	return hapd->driver->aggregation_dump(hapd->drv_priv, aggr);
-+}
-diff --git a/src/ap/ap_drv_ops.h b/src/ap/ap_drv_ops.h
-index ab9aedc..4c1c201 100644
---- a/src/ap/ap_drv_ops.h
-+++ b/src/ap/ap_drv_ops.h
-@@ -147,6 +147,9 @@ int hostapd_drv_hemu_dump(struct hostapd_data *hapd, u8 *hemu_onoff);
- int hostapd_drv_three_wire_ctrl(struct hostapd_data *hapd);
- int hostapd_drv_ibf_ctrl(struct hostapd_data *hapd);
- int hostapd_drv_ibf_dump(struct hostapd_data *hapd, u8 *ibf_enable);
-+int hostapd_drv_ampdu_ctrl(struct hostapd_data *hapd);
-+int hostapd_drv_amsdu_ctrl(struct hostapd_data *hapd);
-+int hostapd_drv_aggregation_dump(struct hostapd_data *hapd, u8 *aggr);
- 
- #include "drivers/driver.h"
- 
-diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c
-index e44b73d..60bd6f3 100644
---- a/src/ap/hostapd.c
-+++ b/src/ap/hostapd.c
-@@ -2307,6 +2307,10 @@ dfs_offload:
- 		goto fail;
- 	if (hostapd_drv_ibf_ctrl(hapd) < 0)
- 		goto fail;
-+	if (hostapd_drv_ampdu_ctrl(hapd) < 0)
-+		goto fail;
-+	if (hostapd_drv_amsdu_ctrl(hapd) < 0)
-+		goto fail;
- 
- 	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 4050cf8..d78e538 100644
---- a/src/common/mtk_vendor.h
-+++ b/src/common/mtk_vendor.h
-@@ -177,6 +177,24 @@ enum mtk_vendor_attr_wireless_ctrl {
- 		NUM_MTK_VENDOR_ATTRS_WIRELESS_CTRL - 1
- };
- 
-+enum mtk_vendor_attr_wireless_dump {
-+	MTK_VENDOR_ATTR_WIRELESS_DUMP_UNSPEC,
-+
-+	MTK_VENDOR_ATTR_WIRELESS_DUMP_AMPDU,
-+	MTK_VENDOR_ATTR_WIRELESS_DUMP_AMSDU,
-+
-+	/* keep last */
-+	NUM_MTK_VENDOR_ATTRS_WIRELESS_DUMP,
-+	MTK_VENDOR_ATTR_WIRELESS_DUMP_MAX =
-+		NUM_MTK_VENDOR_ATTRS_WIRELESS_DUMP - 1
-+};
-+
-+static const struct nla_policy
-+wireless_dump_policy[NUM_MTK_VENDOR_ATTRS_WIRELESS_DUMP] = {
-+	[MTK_VENDOR_ATTR_WIRELESS_DUMP_AMPDU] = { .type = NLA_U8 },
-+	[MTK_VENDOR_ATTR_WIRELESS_DUMP_AMSDU] = { .type = NLA_U8 },
-+};
-+
- enum mtk_vendor_attr_rfeature_ctrl {
- 	MTK_VENDOR_ATTR_RFEATURE_CTRL_UNSPEC,
- 
-diff --git a/src/drivers/driver.h b/src/drivers/driver.h
-index 71ded61..57f3be6 100644
---- a/src/drivers/driver.h
-+++ b/src/drivers/driver.h
-@@ -4720,6 +4720,17 @@ struct wpa_driver_ops {
- 	 *
- 	 */
- 	int (*ibf_dump)(void *priv, u8 *ibf_enable);
-+
-+	/**
-+	 * ampdu_ctrl - enable/disable ampdu
-+	 * amsdu_ctrl - enable/disable amsdu
-+	 * aggregation_dump - get current ampdu and amsdu status
-+	 * @priv: Private driver interface data
-+	 *
-+	 */
-+	int (*ampdu_ctrl)(void *priv, u8 ampdu);
-+	int (*amsdu_ctrl)(void *priv, u8 amsdu);
-+	int (*aggregation_dump)(void *priv, u8 *aggr);
- };
- 
- /**
-diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
-index 00f9231..07dac13 100644
---- a/src/drivers/driver_nl80211.c
-+++ b/src/drivers/driver_nl80211.c
-@@ -12776,6 +12776,163 @@ fail:
- 	return -ENOBUFS;
- }
- 
-+static int nl80211_enable_ampdu(void *priv, u8 ampdu)
-+{
-+	struct i802_bss *bss = priv;
-+	struct wpa_driver_nl80211_data *drv = bss->drv;
-+	struct nl_msg *msg;
-+	struct nlattr *data;
-+	int ret;
-+
-+	if (!drv->mtk_wireless_vendor_cmd_avail) {
-+		wpa_printf(MSG_INFO,
-+			   "nl80211: Driver does not support setting ap wireless control");
-+		return 0;
-+	}
-+
-+	msg = nl80211_drv_msg(drv, 0, NL80211_CMD_VENDOR);
-+	if (!msg)
-+		goto fail;
-+
-+	if (nla_put_u32(msg, NL80211_ATTR_VENDOR_ID, OUI_MTK) ||
-+		nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD, MTK_NL80211_VENDOR_SUBCMD_WIRELESS_CTRL))
-+		goto fail;
-+
-+	data = nla_nest_start(msg, NL80211_ATTR_VENDOR_DATA);
-+	if (!data)
-+		goto fail;
-+
-+	nla_put_u8(msg, MTK_VENDOR_ATTR_WIRELESS_CTRL_AMPDU, ampdu);
-+
-+	nla_nest_end(msg, data);
-+	ret = send_and_recv_msgs(drv, msg, NULL, NULL, NULL, NULL);
-+	if (ret) {
-+		wpa_printf(MSG_ERROR, "Failed to set ampdu. ret=%d (%s)", ret, strerror(-ret));
-+	}
-+
-+	return ret;
-+
-+fail:
-+	nlmsg_free(msg);
-+	return -ENOBUFS;
-+}
-+
-+static int nl80211_enable_amsdu(void *priv, u8 amsdu)
-+{
-+	struct i802_bss *bss = priv;
-+	struct wpa_driver_nl80211_data *drv = bss->drv;
-+	struct nl_msg *msg;
-+	struct nlattr *data;
-+	int ret;
-+
-+	if (!drv->mtk_wireless_vendor_cmd_avail) {
-+		wpa_printf(MSG_INFO,
-+			   "nl80211: Driver does not support setting ap wireless control");
-+		return 0;
-+	}
-+
-+	msg = nl80211_drv_msg(drv, 0, NL80211_CMD_VENDOR);
-+	if (!msg)
-+		goto fail;
-+
-+	if (nla_put_u32(msg, NL80211_ATTR_VENDOR_ID, OUI_MTK) ||
-+		nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD, MTK_NL80211_VENDOR_SUBCMD_WIRELESS_CTRL))
-+		goto fail;
-+
-+	data = nla_nest_start(msg, NL80211_ATTR_VENDOR_DATA);
-+	if (!data)
-+		goto fail;
-+
-+	nla_put_u8(msg, MTK_VENDOR_ATTR_WIRELESS_CTRL_AMSDU, amsdu);
-+
-+	nla_nest_end(msg, data);
-+	ret = send_and_recv_msgs(drv, msg, NULL, NULL, NULL, NULL);
-+	if (ret) {
-+		wpa_printf(MSG_ERROR, "Failed to set amsdu. ret=%d (%s)", ret, strerror(-ret));
-+	}
-+
-+	return ret;
-+
-+fail:
-+	nlmsg_free(msg);
-+	return -ENOBUFS;
-+}
-+
-+static int dump_aggregation_handler(struct nl_msg *msg, void *arg)
-+{
-+	u8 ampdu, amsdu;
-+	u8 *aggr = (u8 *) arg;
-+	struct nlattr *tb[NL80211_ATTR_MAX + 1];
-+	struct nlattr *tb_vendor[MTK_VENDOR_ATTR_WIRELESS_DUMP_MAX + 1];
-+	struct genlmsghdr *gnlh = nlmsg_data(nlmsg_hdr(msg));
-+	struct nlattr *nl_vend, *attr_ampdu, *attr_amsdu;
-+
-+	nla_parse(tb, NL80211_ATTR_MAX, genlmsg_attrdata(gnlh, 0),
-+			genlmsg_attrlen(gnlh, 0), NULL);
-+
-+	nl_vend = tb[NL80211_ATTR_VENDOR_DATA];
-+	if (!nl_vend)
-+		return NL_SKIP;
-+
-+	nla_parse(tb_vendor, MTK_VENDOR_ATTR_WIRELESS_DUMP_MAX,
-+			nla_data(nl_vend), nla_len(nl_vend), NULL);
-+
-+	attr_ampdu = tb_vendor[MTK_VENDOR_ATTR_WIRELESS_DUMP_AMPDU];
-+	attr_amsdu = tb_vendor[MTK_VENDOR_ATTR_WIRELESS_DUMP_AMSDU];
-+	if (!attr_ampdu || !attr_amsdu ){
-+		wpa_printf(MSG_ERROR, "nl80211: cannot find vendor attributes");
-+		return NL_SKIP;
-+	}
-+
-+	ampdu = nla_get_u8(attr_ampdu);
-+	amsdu = nla_get_u8(attr_amsdu);
-+
-+	*aggr = (ampdu<<1) + amsdu;
-+	return NL_SKIP;
-+}
-+
-+static int
-+nl80211_dump_aggregation(void *priv, u8 *aggr)
-+{
-+	struct i802_bss *bss = priv;
-+	struct wpa_driver_nl80211_data *drv = bss->drv;
-+	struct nl_msg *msg;
-+	struct nlattr *data;
-+	int ret;
-+
-+	if (!drv->mtk_wireless_vendor_cmd_avail) {
-+		wpa_printf(MSG_INFO,
-+				 "nl80211: Driver does not support ap_wireless control");
-+		return 0;
-+	}
-+
-+	msg = nl80211_drv_msg(drv, NLM_F_DUMP, NL80211_CMD_VENDOR);
-+	if (!msg)
-+		goto fail;
-+
-+	if (nla_put_u32(msg, NL80211_ATTR_VENDOR_ID, OUI_MTK) ||
-+		nla_put_u32(msg, NL80211_ATTR_VENDOR_SUBCMD, MTK_NL80211_VENDOR_SUBCMD_WIRELESS_CTRL))
-+		goto fail;
-+
-+	data = nla_nest_start(msg, NL80211_ATTR_VENDOR_DATA);
-+	if (!data)
-+		goto fail;
-+
-+	nla_nest_end(msg, data);
-+
-+	ret = send_and_recv_msgs(drv, msg, dump_aggregation_handler, aggr, NULL, NULL);
-+
-+	if (ret) {
-+		wpa_printf(MSG_ERROR, "Failed to dump aggregation. ret=%d (%s)", ret, strerror(-ret));
-+	}
-+
-+	return ret;
-+
-+fail:
-+	nlmsg_free(msg);
-+	return -ENOBUFS;
-+}
-+
- const struct wpa_driver_ops wpa_driver_nl80211_ops = {
- 	.name = "nl80211",
- 	.desc = "Linux nl80211/cfg80211",
-@@ -12930,4 +13087,7 @@ const struct wpa_driver_ops wpa_driver_nl80211_ops = {
- 	.three_wire_ctrl = nl80211_enable_three_wire,
- 	.ibf_ctrl = nl80211_ibf_enable,
- 	.ibf_dump = nl80211_ibf_dump,
-+	.ampdu_ctrl = nl80211_enable_ampdu,
-+	.amsdu_ctrl = nl80211_enable_amsdu,
-+	.aggregation_dump = nl80211_dump_aggregation,
- };
-diff --git a/src/drivers/driver_nl80211.h b/src/drivers/driver_nl80211.h
-index 607592c..e570224 100644
---- a/src/drivers/driver_nl80211.h
-+++ b/src/drivers/driver_nl80211.h
-@@ -185,6 +185,7 @@ struct wpa_driver_nl80211_data {
- 	unsigned int mtk_hemu_vendor_cmd_avail:1;
- 	unsigned int mtk_3wire_vendor_cmd_avail:1;
- 	unsigned int mtk_ibf_vendor_cmd_avail:1;
-+	unsigned int mtk_wireless_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 9ecc0ff..fcfa68b 100644
---- a/src/drivers/driver_nl80211_capa.c
-+++ b/src/drivers/driver_nl80211_capa.c
-@@ -1065,6 +1065,9 @@ static int wiphy_info_handler(struct nl_msg *msg, void *arg)
- 				case MTK_NL80211_VENDOR_SUBCMD_IBF_CTRL:
- 					drv->mtk_ibf_vendor_cmd_avail = 1;
- 					break;
-+				case MTK_NL80211_VENDOR_SUBCMD_WIRELESS_CTRL:
-+					drv->mtk_wireless_vendor_cmd_avail = 1;
-+					break;
- 				}
- 			}
- 
--- 
-2.18.0
-
