[][MAC80211][WiFi7][misc][Add wifi-scripts packages]

[Description]
Add wifi-scripts package in WiFi7 autobuild
Sync mt76's upstream base to 2024-02-04

[Release-log]
N/A

Change-Id: Ib0e2156a101f258236d849130ff2d24112c8ea35
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/8651213
diff --git a/autobuild_mac80211_release/0001-wifi7-mac80211-generate-hostapd-setting-from-ap-cap.patch b/autobuild_mac80211_release/0001-wifi7-mac80211-generate-hostapd-setting-from-ap-cap.patch
index ecbe516..f77b6a2 100644
--- a/autobuild_mac80211_release/0001-wifi7-mac80211-generate-hostapd-setting-from-ap-cap.patch
+++ b/autobuild_mac80211_release/0001-wifi7-mac80211-generate-hostapd-setting-from-ap-cap.patch
@@ -29,10 +29,10 @@
  	rm -rf \
  		$(PKG_BUILD_DIR)/include/linux/ssb \
  		$(PKG_BUILD_DIR)/include/linux/bcma \
-diff --git a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
+diff --git a/package/network/config/wifi-scripts/files/lib/netifd/wireless/mac80211.sh b/package/network/config/wifi-scripts/files/lib/netifd/wireless/mac80211.sh
 index 6572999f..5e44e663 100644
---- a/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
-+++ b/package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh
+--- a/package/network/config/wifi-scripts/files/lib/netifd/wireless/mac80211.sh
++++ b/package/network/config/wifi-scripts/files/lib/netifd/wireless/mac80211.sh
 @@ -29,10 +29,12 @@ drv_mac80211_init_device_config() {
  	config_add_string path phy 'macaddr:macaddr'
  	config_add_string tx_burst
@@ -571,10 +571,10 @@
  	[ -x /usr/sbin/wpa_supplicant ] && wpa_supplicant_start "$phy"
  
  	json_set_namespace wdev_uc prev
-diff --git a/package/kernel/mac80211/files/lib/wifi/mac80211.sh b/package/kernel/mac80211/files/lib/wifi/mac80211.sh
+diff --git a/package/network/config/wifi-scripts/files/lib/wifi/mac80211.sh b/package/network/config/wifi-scripts/files/lib/wifi/mac80211.sh
 index e24a2a63..58a0c9ff 100644
---- a/package/kernel/mac80211/files/lib/wifi/mac80211.sh
-+++ b/package/kernel/mac80211/files/lib/wifi/mac80211.sh
+--- a/package/network/config/wifi-scripts/files/lib/wifi/mac80211.sh
++++ b/package/network/config/wifi-scripts/files/lib/wifi/mac80211.sh
 @@ -60,6 +60,9 @@ BEGIN {
  		if (vht && band != "1:") mode="VHT80"
  		if (he) mode="HE80"
@@ -738,10 +738,10 @@
  		uci -q commit wireless
  	done
  }
-diff --git a/package/network/services/hostapd/files/hostapd.sh b/package/network/services/hostapd/files/hostapd.sh
+diff --git a/package/network/config/wifi-scripts/files/lib/netifd/hostapd.sh b/package/network/config/wifi-scripts/files/lib/netifd/hostapd.sh
 index 271c1f7b..80b95116 100644
---- a/package/network/services/hostapd/files/hostapd.sh
-+++ b/package/network/services/hostapd/files/hostapd.sh
+--- a/package/network/config/wifi-scripts/files/lib/netifd/hostapd.sh
++++ b/package/network/config/wifi-scripts/files/lib/netifd/hostapd.sh
 @@ -60,7 +60,14 @@ hostapd_append_wpa_key_mgmt() {
  			append wpa_key_mgmt "WPA-EAP-SHA256"
  		;;
diff --git a/autobuild_mac80211_release/0002-wifi7-hostapd-makefile-for-utils.patch b/autobuild_mac80211_release/0002-wifi7-hostapd-makefile-for-utils.patch
index 58881f5..32d4618 100644
--- a/autobuild_mac80211_release/0002-wifi7-hostapd-makefile-for-utils.patch
+++ b/autobuild_mac80211_release/0002-wifi7-hostapd-makefile-for-utils.patch
@@ -27,10 +27,8 @@
  endef
  
  define Package/eapol-test/Default
-@@ -719,6 +717,9 @@ define Package/hostapd-common/install
+@@ -719,4 +717,7 @@ define Package/hostapd-common/install
  	$(INSTALL_DATA) ./files/wpad.json $(1)/etc/capabilities
- 	$(INSTALL_DATA) ./files/common.uc $(1)/usr/share/hostap/
- 	$(INSTALL_DATA) ./files/wdev.uc $(1)/usr/share/hostap/
 +	[ ! -d $(STAGING_DIR)/usr/include/wpa_ctrl.h ] && $(CP) -f $(PKG_BUILD_DIR)/src/common/wpa_ctrl.h $(STAGING_DIR)/usr/include
 +	[ ! -d $(STAGING_DIR)/usr/lib/wpa_ctrl.o ] && $(CP) -f $(PKG_BUILD_DIR)/build/hostapd/src/common/wpa_ctrl.o $(STAGING_DIR)/usr/lib
 +	[ ! -d $(STAGING_DIR)/usr/lib/os_unix.o ] && $(CP) -f $(PKG_BUILD_DIR)/build/hostapd/src/utils/os_unix.o $(STAGING_DIR)/usr/lib
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0001-mtk-Revert-wifi-mt76-mt7996-fill-txd-by-host-driver.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0001-mtk-Revert-wifi-mt76-mt7996-fill-txd-by-host-driver.patch
index 427cc70..6d8b29c 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0001-mtk-Revert-wifi-mt76-mt7996-fill-txd-by-host-driver.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0001-mtk-Revert-wifi-mt76-mt7996-fill-txd-by-host-driver.patch
@@ -1,7 +1,7 @@
-From 79c8a28d435df3a9b0da8145675ea8d70a4de463 Mon Sep 17 00:00:00 2001
+From ed4d404869179bbebeab820a6271772f198d91fa Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Tue, 19 Sep 2023 11:21:23 +0800
-Subject: [PATCH 01/25] mtk: Revert "wifi: mt76: mt7996: fill txd by host
+Subject: [PATCH 01/15] mtk: Revert "wifi: mt76: mt7996: fill txd by host
  driver"
 
 This reverts commit 325a0c4931990d553487024c4f76c776492bdcc2.
@@ -10,10 +10,10 @@
  1 file changed, 9 insertions(+), 4 deletions(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 53258488..db06a982 100644
+index 0384fb05..3af537b6 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
-@@ -937,8 +937,11 @@ int mt7996_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
+@@ -938,8 +938,11 @@ int mt7996_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
  		return id;
  
  	pid = mt76_tx_status_skb_add(mdev, wcid, tx_info->skb);
@@ -27,7 +27,7 @@
  
  	txp = (struct mt76_connac_txp_common *)(txwi + MT_TXD_SIZE);
  	for (i = 0; i < nbuf; i++) {
-@@ -955,8 +958,10 @@ int mt7996_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
+@@ -956,8 +959,10 @@ int mt7996_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
  	}
  	txp->fw.nbuf = nbuf;
  
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0002-mtk-wifi-mt76-connac-use-peer-address-for-station-BM.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0002-mtk-wifi-mt76-connac-use-peer-address-for-station-BM.patch
index f7e8cb0..26f782f 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0002-mtk-wifi-mt76-connac-use-peer-address-for-station-BM.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0002-mtk-wifi-mt76-connac-use-peer-address-for-station-BM.patch
@@ -1,7 +1,7 @@
-From b7325781bb79f1ffa9d3f5a9ea9f79a59aa92e41 Mon Sep 17 00:00:00 2001
+From eefba7039b4edc74c78d70877a59dbb3a4c35ef9 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Thu, 24 Aug 2023 18:38:11 +0800
-Subject: [PATCH 02/25] mtk: wifi: mt76: connac: use peer address for station
+Subject: [PATCH 02/15] mtk: wifi: mt76: connac: use peer address for station
  BMC entry
 
 Set peer address and aid for the BMC wtbl of station interface. For some
@@ -16,10 +16,10 @@
  2 files changed, 11 insertions(+), 1 deletion(-)
 
 diff --git a/mt76_connac_mcu.c b/mt76_connac_mcu.c
-index 96494ba2..0d05404f 100644
+index 7602f979..1c910d9d 100644
 --- a/mt76_connac_mcu.c
 +++ b/mt76_connac_mcu.c
-@@ -389,7 +389,14 @@ void mt76_connac_mcu_sta_basic_tlv(struct mt76_dev *dev, struct sk_buff *skb,
+@@ -392,7 +392,14 @@ void mt76_connac_mcu_sta_basic_tlv(struct mt76_dev *dev, struct sk_buff *skb,
  
  	if (!sta) {
  		basic->conn_type = cpu_to_le32(CONNECTION_INFRA_BC);
@@ -36,10 +36,10 @@
  	}
  
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 51deea84..be914ced 100644
+index 2bf8e8a8..37e40f1d 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -595,6 +595,9 @@ static void mt7996_bss_info_changed(struct ieee80211_hw *hw,
+@@ -598,6 +598,9 @@ static void mt7996_bss_info_changed(struct ieee80211_hw *hw,
  	if ((changed & BSS_CHANGED_BSSID && !is_zero_ether_addr(info->bssid)) ||
  	    (changed & BSS_CHANGED_ASSOC && vif->cfg.assoc) ||
  	    (changed & BSS_CHANGED_BEACON_ENABLED && info->enable_beacon)) {
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0003-mtk-wifi-mt76-mt7996-disable-rx-header-translation-f.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0003-mtk-wifi-mt76-mt7996-disable-rx-header-translation-f.patch
index dde3572..33c78b6 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0003-mtk-wifi-mt76-mt7996-disable-rx-header-translation-f.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0003-mtk-wifi-mt76-mt7996-disable-rx-header-translation-f.patch
@@ -1,7 +1,7 @@
-From 70f582db962c977a71d3d618081f894c0e658046 Mon Sep 17 00:00:00 2001
+From aa6060100ddbf2bad579b2765e34740ea70f8752 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Tue, 5 Sep 2023 17:31:49 +0800
-Subject: [PATCH 03/25] mtk: wifi: mt76: mt7996: disable rx header translation
+Subject: [PATCH 03/15] mtk: wifi: mt76: mt7996: disable rx header translation
  for BMC entry
 
 Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
@@ -10,10 +10,10 @@
  1 file changed, 5 insertions(+), 4 deletions(-)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 3c729b56..5a2e2d12 100644
+index 1356ac14..7f412d6c 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -1769,10 +1769,10 @@ mt7996_mcu_sta_hdr_trans_tlv(struct mt7996_dev *dev, struct sk_buff *skb,
+@@ -1778,10 +1778,10 @@ mt7996_mcu_sta_hdr_trans_tlv(struct mt7996_dev *dev, struct sk_buff *skb,
  	else
  		hdr_trans->from_ds = true;
  
@@ -26,7 +26,7 @@
  	hdr_trans->dis_rx_hdr_tran = !test_bit(MT_WCID_FLAG_HDR_TRANS, &wcid->flags);
  	if (test_bit(MT_WCID_FLAG_4ADDR, &wcid->flags)) {
  		hdr_trans->to_ds = true;
-@@ -2145,6 +2145,9 @@ int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct ieee80211_vif *vif,
+@@ -2154,6 +2154,9 @@ int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct ieee80211_vif *vif,
  	if (!enable)
  		goto out;
  
@@ -36,7 +36,7 @@
  	/* tag order is in accordance with firmware dependency. */
  	if (sta) {
  		/* starec hdrt mode */
-@@ -2169,8 +2172,6 @@ int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct ieee80211_vif *vif,
+@@ -2178,8 +2181,6 @@ int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct ieee80211_vif *vif,
  		mt7996_mcu_sta_muru_tlv(dev, skb, vif, sta);
  		/* starec bfee */
  		mt7996_mcu_sta_bfee_tlv(dev, skb, vif, sta);
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0004-mtk-wifi-mt76-check-txs-format-before-getting-skb-by.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0004-mtk-wifi-mt76-check-txs-format-before-getting-skb-by.patch
deleted file mode 100644
index 930622b..0000000
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0004-mtk-wifi-mt76-check-txs-format-before-getting-skb-by.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 87a3fa3c38e1b840cebe5f3b088a0ff67e5920f0 Mon Sep 17 00:00:00 2001
-From: Peter Chiu <chui-hao.chiu@mediatek.com>
-Date: Thu, 7 Dec 2023 11:17:56 +0800
-Subject: [PATCH 04/25] mtk: wifi: mt76: check txs format before getting skb by
- pid
-
-The PPDU TxS does not include the error bit so it cannot use to report
-status to mac80211.
-
-Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
----
- mt76_connac3_mac.h | 5 +++++
- mt7996/mac.c       | 6 ++++--
- 2 files changed, 9 insertions(+), 2 deletions(-)
-
-diff --git a/mt76_connac3_mac.h b/mt76_connac3_mac.h
-index 83dcd964..8cfd479a 100644
---- a/mt76_connac3_mac.h
-+++ b/mt76_connac3_mac.h
-@@ -18,6 +18,11 @@ enum {
- 	MT_LMAC_PSMP0,
- };
- 
-+enum {
-+	MT_TXS_MPDU_FMT = 0,
-+	MT_TXS_PPDU_FMT = 2,
-+};
-+
- #define MT_CT_PARSE_LEN			72
- #define MT_CT_DMA_BUF_NUM		2
- 
-diff --git a/mt7996/mac.c b/mt7996/mac.c
-index db06a982..ff7e0753 100644
---- a/mt7996/mac.c
-+++ b/mt7996/mac.c
-@@ -1193,14 +1193,16 @@ mt7996_mac_add_txs_skb(struct mt7996_dev *dev, struct mt76_wcid *wcid,
- 	struct ieee80211_tx_info *info;
- 	struct sk_buff_head list;
- 	struct rate_info rate = {};
--	struct sk_buff *skb;
-+	struct sk_buff *skb = NULL;
- 	bool cck = false;
- 	u32 txrate, txs, mode, stbc;
- 
- 	txs = le32_to_cpu(txs_data[0]);
- 
- 	mt76_tx_status_lock(mdev, &list);
--	skb = mt76_tx_status_skb_get(mdev, wcid, pid, &list);
-+
-+	if (le32_get_bits(txs_data[0], MT_TXS0_TXS_FORMAT) == MT_TXS_MPDU_FMT)
-+		skb = mt76_tx_status_skb_get(mdev, wcid, pid, &list);
- 
- 	if (skb) {
- 		info = IEEE80211_SKB_CB(skb);
--- 
-2.18.0
-
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0013-mtk-wifi-mt76-mt7996-init-rcpi-to-use-better-init-mc.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0004-mtk-wifi-mt76-mt7996-set-RCPI-value-in-rate-control-.patch
similarity index 65%
rename from autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0013-mtk-wifi-mt76-mt7996-init-rcpi-to-use-better-init-mc.patch
rename to autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0004-mtk-wifi-mt76-mt7996-set-RCPI-value-in-rate-control-.patch
index 79499c0..8f05075 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0013-mtk-wifi-mt76-mt7996-init-rcpi-to-use-better-init-mc.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0004-mtk-wifi-mt76-mt7996-set-RCPI-value-in-rate-control-.patch
@@ -1,19 +1,23 @@
-From c59e5d1ee99fbe46418efb2eacb6755db54b8e57 Mon Sep 17 00:00:00 2001
+From 4c5eea6f2ddb3d0e47d7e3877989013b0554dae4 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Mon, 13 Nov 2023 20:15:39 +0800
-Subject: [PATCH 13/25] mtk: wifi: mt76: mt7996: init rcpi to use better init
- mcs
+Subject: [PATCH 04/15] mtk: wifi: mt76: mt7996: set RCPI value in rate control
+ command
+
+Set RCPI values in mt7996_mcu_sta_rate_ctrl_tlv(), which can make the
+FW rate control be initialized with a better MCS selection table.
 
 Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
+Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
 ---
  mt7996/mcu.c | 3 +++
  1 file changed, 3 insertions(+)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 8c756b31..48a1e822 100644
+index 7f412d6c..0f1905f2 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -1981,6 +1981,7 @@ static void
+@@ -1968,6 +1968,7 @@ static void
  mt7996_mcu_sta_rate_ctrl_tlv(struct sk_buff *skb, struct mt7996_dev *dev,
  			     struct ieee80211_vif *vif, struct ieee80211_sta *sta)
  {
@@ -21,7 +25,7 @@
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
  	struct mt76_phy *mphy = mvif->phy->mt76;
  	struct cfg80211_chan_def *chandef = &mphy->chandef;
-@@ -2078,6 +2079,8 @@ mt7996_mcu_sta_rate_ctrl_tlv(struct sk_buff *skb, struct mt7996_dev *dev,
+@@ -2065,6 +2066,8 @@ mt7996_mcu_sta_rate_ctrl_tlv(struct sk_buff *skb, struct mt7996_dev *dev,
  					       IEEE80211_HE_6GHZ_CAP_MAX_AMPDU_LEN_EXP);
  	}
  	ra->sta_cap = cpu_to_le32(cap);
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0012-mtk-wifi-mt76-mt7996-enable-ser-query.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0005-mtk-wifi-mt76-mt7996-enable-ser-query.patch
similarity index 71%
rename from autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0012-mtk-wifi-mt76-mt7996-enable-ser-query.patch
rename to autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0005-mtk-wifi-mt76-mt7996-enable-ser-query.patch
index 630a637..8a136ae 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0012-mtk-wifi-mt76-mt7996-enable-ser-query.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0005-mtk-wifi-mt76-mt7996-enable-ser-query.patch
@@ -1,7 +1,7 @@
-From ca4d4dc688f96320065b35c9b473e378dddef56b Mon Sep 17 00:00:00 2001
+From 3874c792c9987f38c91a10db6a9edf3c97ef3bc2 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Mon, 30 Oct 2023 20:19:41 +0800
-Subject: [PATCH 12/25] mtk: wifi: mt76: mt7996: enable ser query
+Subject: [PATCH 05/15] mtk: wifi: mt76: mt7996: enable ser query
 
 Do not return -EINVAL when action is UNI_CMD_SER_QUERY for user
 to dump SER information from FW.
@@ -12,10 +12,10 @@
  1 file changed, 2 insertions(+)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 98ea9c20..8c756b31 100644
+index 0f1905f2..0c1dd93f 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -3852,6 +3852,8 @@ int mt7996_mcu_set_ser(struct mt7996_dev *dev, u8 action, u8 val, u8 band)
+@@ -3842,6 +3842,8 @@ int mt7996_mcu_set_ser(struct mt7996_dev *dev, u8 action, u8 val, u8 band)
  	};
  
  	switch (action) {
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0005-mtk-wifi-mt76-mt7996-fix-some-twt-issues.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0005-mtk-wifi-mt76-mt7996-fix-some-twt-issues.patch
deleted file mode 100644
index 63f5b88..0000000
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0005-mtk-wifi-mt76-mt7996-fix-some-twt-issues.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From 651d207a15f2bc281edf3c92236b88853fc41006 Mon Sep 17 00:00:00 2001
-From: Peter Chiu <chui-hao.chiu@mediatek.com>
-Date: Wed, 8 Nov 2023 10:17:10 +0800
-Subject: [PATCH 05/25] mtk: wifi: mt76: mt7996: fix some twt issues
-
-1. Reject twt flows with the same parameters to prevent potential issues
-causing by duplicated establishment.
-2. mt7996 can support 16 twt stations so modify the table_mask to u16.
-3. The minimum twt duration supported by mt7996 is 64 according to hardware
-design. Reply station with TWT_SETUP_CMD_DICTATE if the min_twt_dur smaller
-than 64.
-4. Fix possible unaligned pointer.
-5. Remove TWT_CONTROL_WAKE_DUR_UNIT flag because mt7996 does not support it.
-
----
- mt7996/mac.c    | 53 +++++++++++++++++++++++++++++++++++++++++--------
- mt7996/mt7996.h |  3 ++-
- 2 files changed, 47 insertions(+), 9 deletions(-)
-
-diff --git a/mt7996/mac.c b/mt7996/mac.c
-index ff7e0753..e6583427 100644
---- a/mt7996/mac.c
-+++ b/mt7996/mac.c
-@@ -2534,6 +2534,34 @@ static int mt7996_mac_check_twt_req(struct ieee80211_twt_setup *twt)
- 	return 0;
- }
- 
-+static bool
-+mt7996_mac_twt_param_equal(struct mt7996_sta *msta,
-+			   struct ieee80211_twt_params *twt_agrt)
-+{
-+	u16 type = le16_to_cpu(twt_agrt->req_type);
-+	u8 exp;
-+	int i;
-+
-+	exp = FIELD_GET(IEEE80211_TWT_REQTYPE_WAKE_INT_EXP, type);
-+	for (i = 0; i < MT7996_MAX_STA_TWT_AGRT; i++) {
-+		struct mt7996_twt_flow *f;
-+
-+		if (!(msta->twt.flowid_mask & BIT(i)))
-+			continue;
-+
-+		f = &msta->twt.flow[i];
-+		if (f->duration == twt_agrt->min_twt_dur &&
-+		    f->mantissa == twt_agrt->mantissa &&
-+		    f->exp == exp &&
-+		    f->protection == !!(type & IEEE80211_TWT_REQTYPE_PROTECTION) &&
-+		    f->flowtype == !!(type & IEEE80211_TWT_REQTYPE_FLOWTYPE) &&
-+		    f->trigger == !!(type & IEEE80211_TWT_REQTYPE_TRIGGER))
-+			return true;
-+	}
-+
-+	return false;
-+}
-+
- void mt7996_mac_add_twt_setup(struct ieee80211_hw *hw,
- 			      struct ieee80211_sta *sta,
- 			      struct ieee80211_twt_setup *twt)
-@@ -2545,8 +2573,7 @@ void mt7996_mac_add_twt_setup(struct ieee80211_hw *hw,
- 	enum ieee80211_twt_setup_cmd sta_setup_cmd;
- 	struct mt7996_dev *dev = mt7996_hw_dev(hw);
- 	struct mt7996_twt_flow *flow;
--	int flowid, table_id;
--	u8 exp;
-+	u8 flowid, table_id, exp;
- 
- 	if (mt7996_mac_check_twt_req(twt))
- 		goto out;
-@@ -2559,9 +2586,19 @@ void mt7996_mac_add_twt_setup(struct ieee80211_hw *hw,
- 	if (hweight8(msta->twt.flowid_mask) == ARRAY_SIZE(msta->twt.flow))
- 		goto unlock;
- 
-+	if (twt_agrt->min_twt_dur < MT7996_MIN_TWT_DUR) {
-+		setup_cmd = TWT_SETUP_CMD_DICTATE;
-+		twt_agrt->min_twt_dur = MT7996_MIN_TWT_DUR;
-+		goto unlock;
-+	}
-+
-+	if (mt7996_mac_twt_param_equal(msta, twt_agrt))
-+		goto unlock;
-+
- 	flowid = ffs(~msta->twt.flowid_mask) - 1;
--	le16p_replace_bits(&twt_agrt->req_type, flowid,
--			   IEEE80211_TWT_REQTYPE_FLOWID);
-+	twt_agrt->req_type &= ~cpu_to_le16(IEEE80211_TWT_REQTYPE_FLOWID);
-+	twt_agrt->req_type |= le16_encode_bits(flowid,
-+					       IEEE80211_TWT_REQTYPE_FLOWID);
- 
- 	table_id = ffs(~dev->twt.table_mask) - 1;
- 	exp = FIELD_GET(IEEE80211_TWT_REQTYPE_WAKE_INT_EXP, req_type);
-@@ -2608,10 +2645,10 @@ void mt7996_mac_add_twt_setup(struct ieee80211_hw *hw,
- unlock:
- 	mutex_unlock(&dev->mt76.mutex);
- out:
--	le16p_replace_bits(&twt_agrt->req_type, setup_cmd,
--			   IEEE80211_TWT_REQTYPE_SETUP_CMD);
--	twt->control = (twt->control & IEEE80211_TWT_CONTROL_WAKE_DUR_UNIT) |
--		       (twt->control & IEEE80211_TWT_CONTROL_RX_DISABLED);
-+	twt_agrt->req_type &= ~cpu_to_le16(IEEE80211_TWT_REQTYPE_SETUP_CMD);
-+	twt_agrt->req_type |=
-+		le16_encode_bits(setup_cmd, IEEE80211_TWT_REQTYPE_SETUP_CMD);
-+	twt->control = twt->control & IEEE80211_TWT_CONTROL_RX_DISABLED;
- }
- 
- void mt7996_mac_twt_teardown_flow(struct mt7996_dev *dev,
-diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index bc73bcb4..8154ad37 100644
---- a/mt7996/mt7996.h
-+++ b/mt7996/mt7996.h
-@@ -53,6 +53,7 @@
- 
- #define MT7996_MAX_TWT_AGRT		16
- #define MT7996_MAX_STA_TWT_AGRT		8
-+#define MT7996_MIN_TWT_DUR		64
- #define MT7996_MAX_QUEUE		(__MT_RXQ_MAX +	__MT_MCUQ_MAX + 3)
- 
- /* NOTE: used to map mt76_rates. idx may change if firmware expands table */
-@@ -320,7 +321,7 @@ struct mt7996_dev {
- 	struct rchan *relay_fwlog;
- 
- 	struct {
--		u8 table_mask;
-+		u16 table_mask;
- 		u8 n_agrt;
- 	} twt;
- 
--- 
-2.18.0
-
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0014-mtk-wifi-mt76-mt7996-Fix-TGax-HE-4.51.1_24G-fail.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0006-mtk-wifi-mt76-mt7996-Fix-TGax-HE-4.51.1_24G-fail.patch
similarity index 84%
rename from autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0014-mtk-wifi-mt76-mt7996-Fix-TGax-HE-4.51.1_24G-fail.patch
rename to autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0006-mtk-wifi-mt76-mt7996-Fix-TGax-HE-4.51.1_24G-fail.patch
index f8bff26..382c4b3 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0014-mtk-wifi-mt76-mt7996-Fix-TGax-HE-4.51.1_24G-fail.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0006-mtk-wifi-mt76-mt7996-Fix-TGax-HE-4.51.1_24G-fail.patch
@@ -1,7 +1,7 @@
-From 73aed7092e7da26eaf17b1e29bdb94222e073e94 Mon Sep 17 00:00:00 2001
+From fdaf32684efac76b6e942db0e0748c4b488413a8 Mon Sep 17 00:00:00 2001
 From: mtk27745 <rex.lu@mediatek.com>
 Date: Fri, 17 Nov 2023 11:01:04 +0800
-Subject: [PATCH 14/25] mtk: wifi: mt76: mt7996: Fix TGax HE-4.51.1_24G fail
+Subject: [PATCH 06/15] mtk: wifi: mt76: mt7996: Fix TGax HE-4.51.1_24G fail
 
 According to sta capability to decide to enable/disable wed pao when create ppe entry.
 without this patch, TGax HE-4.51.1_24G will test fail
@@ -12,7 +12,7 @@
  1 file changed, 6 insertions(+), 1 deletion(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 6e88420e..4db8899c 100644
+index 37e40f1d..625f87b4 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -1447,7 +1447,12 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0006-mtk-wifi-mt76-mt7996-disable-AMSDU-for-non-data-fram.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0006-mtk-wifi-mt76-mt7996-disable-AMSDU-for-non-data-fram.patch
deleted file mode 100644
index 0fe3af0..0000000
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0006-mtk-wifi-mt76-mt7996-disable-AMSDU-for-non-data-fram.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From abd4da501a5b6d4159f8ef3dbcfc9f646ecc8a40 Mon Sep 17 00:00:00 2001
-From: Peter Chiu <chui-hao.chiu@mediatek.com>
-Date: Mon, 6 Nov 2023 20:17:16 +0800
-Subject: [PATCH 06/25] mtk: wifi: mt76: mt7996: disable AMSDU for non-data
- frames
-
-Mgmt. frames with amsdu may lead to unexpected errors.
-
-Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
----
- mt7996/mac.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/mt7996/mac.c b/mt7996/mac.c
-index e6583427..19b34066 100644
---- a/mt7996/mac.c
-+++ b/mt7996/mac.c
-@@ -732,6 +732,9 @@ mt7996_mac_write_txwi_8023(struct mt7996_dev *dev, __le32 *txwi,
- 	      FIELD_PREP(MT_TXD2_SUB_TYPE, fc_stype);
- 
- 	txwi[2] |= cpu_to_le32(val);
-+
-+	if (wcid->amsdu)
-+		txwi[3] |= cpu_to_le32(MT_TXD3_HW_AMSDU);
- }
- 
- static void
-@@ -862,8 +865,6 @@ void mt7996_mac_write_txwi(struct mt7996_dev *dev, __le32 *txwi,
- 		val |= MT_TXD3_PROTECT_FRAME;
- 	if (info->flags & IEEE80211_TX_CTL_NO_ACK)
- 		val |= MT_TXD3_NO_ACK;
--	if (wcid->amsdu)
--		val |= MT_TXD3_HW_AMSDU;
- 
- 	txwi[3] = cpu_to_le32(val);
- 	txwi[4] = 0;
--- 
-2.18.0
-
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0016-mtk-wifi-mt76-mt7996-add-eagle-default-bin-of-differ.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0007-mtk-wifi-mt76-mt7996-add-eagle-default-bin-of-differ.patch
similarity index 89%
rename from autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0016-mtk-wifi-mt76-mt7996-add-eagle-default-bin-of-differ.patch
rename to autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0007-mtk-wifi-mt76-mt7996-add-eagle-default-bin-of-differ.patch
index 2e1869a..d25deff 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0016-mtk-wifi-mt76-mt7996-add-eagle-default-bin-of-differ.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0007-mtk-wifi-mt76-mt7996-add-eagle-default-bin-of-differ.patch
@@ -1,7 +1,7 @@
-From db3119c60343e526a18e668a3b600c9c5feaa825 Mon Sep 17 00:00:00 2001
+From 524436a89b8cfc3bb45d1962280ab8d70cd7472e Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Thu, 20 Jul 2023 17:27:22 +0800
-Subject: [PATCH 16/25] mtk: wifi: mt76: mt7996: add eagle default bin of
+Subject: [PATCH 07/15] mtk: wifi: mt76: mt7996: add eagle default bin of
  different sku variants
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
@@ -25,7 +25,7 @@
  	case 0x7992:
  		return MT7992_EEPROM_DEFAULT;
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 1c464e2f..1b8a1bf6 100644
+index 9aa97e4a..274863dc 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
 @@ -897,6 +897,10 @@ static int mt7996_init_hardware(struct mt7996_dev *dev)
@@ -40,7 +40,7 @@
  	if (ret)
  		return ret;
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 8154ad37..eab96139 100644
+index 36d1f247..b6df2167 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -40,6 +40,7 @@
@@ -72,7 +72,7 @@
  	u16 chainmask;
  	u8 chainshift[__MT_MAX_BAND];
  	u32 hif_idx;
-@@ -399,6 +407,23 @@ mt7996_phy3(struct mt7996_dev *dev)
+@@ -398,6 +406,23 @@ mt7996_phy3(struct mt7996_dev *dev)
  	return __mt7996_phy(dev, MT_BAND2);
  }
  
@@ -96,7 +96,7 @@
  static inline bool
  mt7996_band_valid(struct mt7996_dev *dev, u8 band)
  {
-@@ -406,8 +431,7 @@ mt7996_band_valid(struct mt7996_dev *dev, u8 band)
+@@ -405,8 +430,7 @@ mt7996_band_valid(struct mt7996_dev *dev, u8 band)
  		return band <= MT_BAND1;
  
  	/* tri-band support */
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0007-mtk-wifi-mt76-mt7996-fix-incorrect-interpretation-of.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0007-mtk-wifi-mt76-mt7996-fix-incorrect-interpretation-of.patch
deleted file mode 100644
index 73f4337..0000000
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0007-mtk-wifi-mt76-mt7996-fix-incorrect-interpretation-of.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 27ad6ee9498d3293dca55d04af1fba221460d74c Mon Sep 17 00:00:00 2001
-From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
-Date: Mon, 4 Dec 2023 15:39:00 +0800
-Subject: [PATCH 07/25] mtk: wifi: mt76: mt7996: fix incorrect interpretation
- of EHT MCS and NSS capabilities
-
-The EHT-MCS Map (20 MHz-Only Non-AP STA) subfield of the Supported EHT-MCS And NSS Set field in the EHT Capabilities element is not present for AP. Therefore, STA should not parse the subfield.
-Moreover, AP should parse the subfield only if STA is 20 MHz-Only, which is confirmed by checking the Supported Channel Width Set subfield in the HE Capabilities element.
-
-Signed-off-by: Benjamin Lin <benjamin-jw.lin@mediatek.com>
----
- mt7996/mcu.c | 33 +++++++++++++++++++++++++++++----
- 1 file changed, 29 insertions(+), 4 deletions(-)
-
-diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 5a2e2d12..8c033030 100644
---- a/mt7996/mcu.c
-+++ b/mt7996/mcu.c
-@@ -1237,9 +1237,32 @@ mt7996_mcu_sta_he_6g_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
- 	he_6g->capa = sta->deflink.he_6ghz_capa.capa;
- }
- 
-+static bool
-+mt7996_mcu_sta_only_20mhz(struct ieee80211_sta *sta)
-+{
-+	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
-+	u8 bw = sta->deflink.he_cap.he_cap_elem.phy_cap_info[0];
-+	u8 band_idx = msta->vif->mt76.band_idx;
-+
-+	if (band_idx == MT_BAND0) {
-+		if (!(bw & IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_IN_2G))
-+			return true;
-+	} else {
-+		if (!(bw & (IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G |
-+		            IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G |
-+		            IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G)))
-+			return true;
-+	}
-+
-+	return false;
-+}
-+
- static void
- mt7996_mcu_sta_eht_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
- {
-+	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
-+	struct ieee80211_vif *vif = container_of((void *)msta->vif,
-+	                                         struct ieee80211_vif, drv_priv);
- 	struct ieee80211_eht_mcs_nss_supp *mcs_map;
- 	struct ieee80211_eht_cap_elem_fixed *elem;
- 	struct sta_rec_eht *eht;
-@@ -1259,11 +1282,13 @@ mt7996_mcu_sta_eht_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
- 	eht->phy_cap = cpu_to_le64(*(u64 *)elem->phy_cap_info);
- 	eht->phy_cap_ext = cpu_to_le64(elem->phy_cap_info[8]);
- 
--	if (sta->deflink.bandwidth == IEEE80211_STA_RX_BW_20)
-+	if (vif->type != NL80211_IFTYPE_STATION && mt7996_mcu_sta_only_20mhz(sta))
- 		memcpy(eht->mcs_map_bw20, &mcs_map->only_20mhz, sizeof(eht->mcs_map_bw20));
--	memcpy(eht->mcs_map_bw80, &mcs_map->bw._80, sizeof(eht->mcs_map_bw80));
--	memcpy(eht->mcs_map_bw160, &mcs_map->bw._160, sizeof(eht->mcs_map_bw160));
--	memcpy(eht->mcs_map_bw320, &mcs_map->bw._320, sizeof(eht->mcs_map_bw320));
-+	else {
-+		memcpy(eht->mcs_map_bw80, &mcs_map->bw._80, sizeof(eht->mcs_map_bw80));
-+		memcpy(eht->mcs_map_bw160, &mcs_map->bw._160, sizeof(eht->mcs_map_bw160));
-+		memcpy(eht->mcs_map_bw320, &mcs_map->bw._320, sizeof(eht->mcs_map_bw320));
-+	}
- }
- 
- static void
--- 
-2.18.0
-
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0008-mtk-wifi-mt76-mt7992-add-TLV-sanity-check.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0008-mtk-wifi-mt76-mt7992-add-TLV-sanity-check.patch
deleted file mode 100644
index 31badbe..0000000
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0008-mtk-wifi-mt76-mt7992-add-TLV-sanity-check.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 6bef1f8c48baa71a2c7b4bc22e30915fe0651b92 Mon Sep 17 00:00:00 2001
-From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
-Date: Thu, 9 Nov 2023 10:35:13 +0800
-Subject: [PATCH 08/25] mtk: wifi: mt76: mt7992: add TLV sanity check
-
-If TLV involves beacon content, its length might not be 4-byte aligned.
-Therefore, 4-byte alignment check and padding, if necessary, are performed before sending TLV to FW.
-
-Signed-off-by: Benjamin Lin <benjamin-jw.lin@mediatek.com>
----
- mt7996/mcu.c | 14 +++++---------
- mt7996/mcu.h |  4 ++--
- 2 files changed, 7 insertions(+), 11 deletions(-)
-
-diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 8c033030..071a9ec2 100644
---- a/mt7996/mcu.c
-+++ b/mt7996/mcu.c
-@@ -732,13 +732,10 @@ void mt7996_mcu_rx_event(struct mt7996_dev *dev, struct sk_buff *skb)
- static struct tlv *
- mt7996_mcu_add_uni_tlv(struct sk_buff *skb, u16 tag, u16 len)
- {
--	struct tlv *ptlv, tlv = {
--		.tag = cpu_to_le16(tag),
--		.len = cpu_to_le16(len),
--	};
-+	struct tlv *ptlv = skb_put(skb, len);
- 
--	ptlv = skb_put(skb, len);
--	memcpy(ptlv, &tlv, sizeof(tlv));
-+	ptlv->tag = cpu_to_le16(tag);
-+	ptlv->len = cpu_to_le16(len);
- 
- 	return ptlv;
- }
-@@ -2536,7 +2533,7 @@ int mt7996_mcu_add_beacon(struct ieee80211_hw *hw,
- 	info = IEEE80211_SKB_CB(skb);
- 	info->hw_queue |= FIELD_PREP(MT_TX_HW_QUEUE_PHY, phy->mt76->band_idx);
- 
--	len = sizeof(*bcn) + MT_TXD_SIZE + skb->len;
-+	len = ALIGN(sizeof(*bcn) + MT_TXD_SIZE + skb->len, 4);
- 	tlv = mt7996_mcu_add_uni_tlv(rskb, UNI_BSS_INFO_BCN_CONTENT, len);
- 	bcn = (struct bss_bcn_content_tlv *)tlv;
- 	bcn->enable = en;
-@@ -2605,8 +2602,7 @@ int mt7996_mcu_beacon_inband_discov(struct mt7996_dev *dev,
- 	info->band = band;
- 	info->hw_queue |= FIELD_PREP(MT_TX_HW_QUEUE_PHY, phy->mt76->band_idx);
- 
--	len = sizeof(*discov) + MT_TXD_SIZE + skb->len;
--
-+	len = ALIGN(sizeof(*discov) + MT_TXD_SIZE + skb->len, 4);
- 	tlv = mt7996_mcu_add_uni_tlv(rskb, UNI_BSS_INFO_OFFLOAD, len);
- 
- 	discov = (struct bss_inband_discovery_tlv *)tlv;
-diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 3e013b20..a9ba63d1 100644
---- a/mt7996/mcu.h
-+++ b/mt7996/mcu.h
-@@ -800,10 +800,10 @@ enum {
- 					 sizeof(struct sta_rec_hdr_trans) +	\
- 					 sizeof(struct tlv))
- 
--#define MT7996_MAX_BEACON_SIZE		1342
-+#define MT7996_MAX_BEACON_SIZE		1338
- #define MT7996_BEACON_UPDATE_SIZE	(sizeof(struct bss_req_hdr) +		\
- 					 sizeof(struct bss_bcn_content_tlv) +	\
--					 MT_TXD_SIZE +				\
-+					 4 + MT_TXD_SIZE +			\
- 					 sizeof(struct bss_bcn_cntdwn_tlv) +	\
- 					 sizeof(struct bss_bcn_mbss_tlv))
- #define MT7996_MAX_BSS_OFFLOAD_SIZE	(MT7996_MAX_BEACON_SIZE +		\
--- 
-2.18.0
-
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0017-mtk-wifi-mt76-mt7996-add-kite-fw-default-bin-for-dif.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0008-mtk-wifi-mt76-mt7996-add-kite-fw-default-bin-for-dif.patch
similarity index 96%
rename from autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0017-mtk-wifi-mt76-mt7996-add-kite-fw-default-bin-for-dif.patch
rename to autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0008-mtk-wifi-mt76-mt7996-add-kite-fw-default-bin-for-dif.patch
index dddfb1e..83ffab0 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0017-mtk-wifi-mt76-mt7996-add-kite-fw-default-bin-for-dif.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0008-mtk-wifi-mt76-mt7996-add-kite-fw-default-bin-for-dif.patch
@@ -1,7 +1,7 @@
-From 43d2e883f22101832564f6170fcdceb0efd7aa69 Mon Sep 17 00:00:00 2001
+From 5b98ee4acf66ca727a3e467133379636aed407ff Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Fri, 21 Jul 2023 10:41:28 +0800
-Subject: [PATCH 17/25] mtk: wifi: mt76: mt7996: add kite fw & default bin for
+Subject: [PATCH 08/15] mtk: wifi: mt76: mt7996: add kite fw & default bin for
  different sku variants
 
 Add fem type (2i5i, 2i5e, 2e5e, ...)
@@ -117,7 +117,7 @@
  #define MT_EE_WIFI_CONF1_TX_PATH_BAND0		GENMASK(5, 3)
  #define MT_EE_WIFI_CONF2_TX_PATH_BAND1		GENMASK(2, 0)
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 1b8a1bf6..5db85939 100644
+index 274863dc..0e3cdc05 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
 @@ -882,6 +882,65 @@ out:
@@ -187,7 +187,7 @@
  {
  	int ret, idx;
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 48a1e822..8a3b9f81 100644
+index 0c1dd93f..41f7b4b2 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -14,7 +14,12 @@
@@ -205,7 +205,7 @@
  	case 0x7990:						\
  	default:						\
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index eab96139..c34cb76b 100644
+index b6df2167..7e5ec212 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -39,9 +39,24 @@
@@ -267,7 +267,7 @@
  
  	u16 chainmask;
  	u8 chainshift[__MT_MAX_BAND];
-@@ -407,23 +436,6 @@ mt7996_phy3(struct mt7996_dev *dev)
+@@ -406,23 +435,6 @@ mt7996_phy3(struct mt7996_dev *dev)
  	return __mt7996_phy(dev, MT_BAND2);
  }
  
@@ -291,7 +291,7 @@
  static inline bool
  mt7996_band_valid(struct mt7996_dev *dev, u8 band)
  {
-@@ -462,6 +474,7 @@ int mt7996_init_tx_queues(struct mt7996_phy *phy, int idx,
+@@ -461,6 +473,7 @@ int mt7996_init_tx_queues(struct mt7996_phy *phy, int idx,
  			  int n_desc, int ring_base, struct mtk_wed_device *wed);
  void mt7996_init_txpower(struct mt7996_phy *phy);
  int mt7996_txbf_init(struct mt7996_dev *dev);
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0020-mtk-wifi-mt76-mt7996-ACS-channel-time-too-long-on-du.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0009-mtk-wifi-mt76-mt7996-ACS-channel-time-too-long-on-du.patch
similarity index 92%
rename from autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0020-mtk-wifi-mt76-mt7996-ACS-channel-time-too-long-on-du.patch
rename to autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0009-mtk-wifi-mt76-mt7996-ACS-channel-time-too-long-on-du.patch
index fd06410..12cfd7f 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0020-mtk-wifi-mt76-mt7996-ACS-channel-time-too-long-on-du.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0009-mtk-wifi-mt76-mt7996-ACS-channel-time-too-long-on-du.patch
@@ -1,7 +1,7 @@
-From da3d42e039ac3a62fda4f262811ff369df15e609 Mon Sep 17 00:00:00 2001
+From 7b1549ea7bd2b6015a6a3594c2a6b7327e27d0a3 Mon Sep 17 00:00:00 2001
 From: "fancy.liu" <fancy.liu@mediatek.com>
 Date: Tue, 14 Nov 2023 10:13:24 +0800
-Subject: [PATCH 20/25] mtk: wifi: mt76: mt7996: ACS channel time too long on
+Subject: [PATCH 09/15] mtk: wifi: mt76: mt7996: ACS channel time too long on
  duty channel
 
 Step and issue:
@@ -43,7 +43,7 @@
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/mac80211.c b/mac80211.c
-index cc9e9ff1..6c5b4f55 100644
+index b603d40c..6e8ac6f4 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -928,6 +928,7 @@ void mt76_set_channel(struct mt76_phy *phy)
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0009-mtk-wifi-mt76-mt7996-fix-HE-beamformer-phy-cap-for-s.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0009-mtk-wifi-mt76-mt7996-fix-HE-beamformer-phy-cap-for-s.patch
deleted file mode 100644
index 9d38428..0000000
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0009-mtk-wifi-mt76-mt7996-fix-HE-beamformer-phy-cap-for-s.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From cf403f86913aa78ea951d0dc11b89409f257c01b Mon Sep 17 00:00:00 2001
-From: Howard Hsu <howard-yh.hsu@mediatek.com>
-Date: Thu, 23 Nov 2023 20:06:26 +0800
-Subject: [PATCH 09/25] mtk: wifi: mt76: mt7996: fix HE beamformer phy cap for
- station vif
-
-Without this commit, station mode will not set all needed bit in HE Phy
-capabilities IE as 1.
-
-Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com>
----
- mt7996/init.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/mt7996/init.c b/mt7996/init.c
-index 1a9aa48c..50dcce9f 100644
---- a/mt7996/init.c
-+++ b/mt7996/init.c
-@@ -1011,11 +1011,12 @@ mt7996_set_stream_he_txbf_caps(struct mt7996_phy *phy,
- 	/* the maximum cap is 4 x 3, (Nr, Nc) = (3, 2) */
- 	elem->phy_cap_info[7] |= min_t(int, sts - 1, 2) << 3;
- 
--	if (vif != NL80211_IFTYPE_AP)
-+	if (!(vif == NL80211_IFTYPE_AP || vif == NL80211_IFTYPE_STATION))
- 		return;
- 
- 	elem->phy_cap_info[3] |= IEEE80211_HE_PHY_CAP3_SU_BEAMFORMER;
--	elem->phy_cap_info[4] |= IEEE80211_HE_PHY_CAP4_MU_BEAMFORMER;
-+	if (vif == NL80211_IFTYPE_AP)
-+		elem->phy_cap_info[4] |= IEEE80211_HE_PHY_CAP4_MU_BEAMFORMER;
- 
- 	c = FIELD_PREP(IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_MASK,
- 		       sts - 1) |
--- 
-2.18.0
-
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0021-mtk-wifi-mt76-mt7996-Fixed-null-pointer-dereference-.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0010-mtk-wifi-mt76-mt7996-Fixed-null-pointer-dereference-.patch
similarity index 88%
rename from autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0021-mtk-wifi-mt76-mt7996-Fixed-null-pointer-dereference-.patch
rename to autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0010-mtk-wifi-mt76-mt7996-Fixed-null-pointer-dereference-.patch
index 0ce194a..0afefb2 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0021-mtk-wifi-mt76-mt7996-Fixed-null-pointer-dereference-.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0010-mtk-wifi-mt76-mt7996-Fixed-null-pointer-dereference-.patch
@@ -1,7 +1,7 @@
-From f0ec3acdda2dd199e0eddcf0c5ae2dd8b305b547 Mon Sep 17 00:00:00 2001
+From 956274f340ff76472207679a71f0a9ae3f8db0b8 Mon Sep 17 00:00:00 2001
 From: MeiChia Chiu <meichia.chiu@mediatek.com>
 Date: Thu, 26 Oct 2023 10:08:10 +0800
-Subject: [PATCH 21/25] mtk: wifi: mt76: mt7996: Fixed null pointer dereference
+Subject: [PATCH 10/15] mtk: wifi: mt76: mt7996: Fixed null pointer dereference
  issue
 
 Without this patch, when the station is still in Authentication stage and
@@ -17,7 +17,7 @@
  1 file changed, 7 insertions(+)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 4db8899c..9fbd87d5 100644
+index 625f87b4..ad2c6a9d 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -1063,9 +1063,16 @@ static void mt7996_sta_rc_update(struct ieee80211_hw *hw,
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0010-mtk-wifi-mt76-mt7996-Let-MAC80211-handles-GCMP-IGTK.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0010-mtk-wifi-mt76-mt7996-Let-MAC80211-handles-GCMP-IGTK.patch
deleted file mode 100644
index 891bf4c..0000000
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0010-mtk-wifi-mt76-mt7996-Let-MAC80211-handles-GCMP-IGTK.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From e154e95bd733a456c5551ae89ef5673d57941b2a Mon Sep 17 00:00:00 2001
-From: Michael-CY Lee <michael-cy.lee@mediatek.com>
-Date: Fri, 8 Dec 2023 16:23:37 +0800
-Subject: [PATCH 10/25] mtk: wifi: mt76: mt7996: Let MAC80211 handles GCMP IGTK
-
-Because the FW does not support IGTK in GCMP mode, mt76 returns "not
-support" to mac80211, and mac80211 will handle the integrity calculation
-and validation.
-
----
- mt7996/main.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/mt7996/main.c b/mt7996/main.c
-index be914ced..6e88420e 100644
---- a/mt7996/main.c
-+++ b/mt7996/main.c
-@@ -350,9 +350,12 @@ static int mt7996_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
- 	case WLAN_CIPHER_SUITE_GCMP:
- 	case WLAN_CIPHER_SUITE_GCMP_256:
- 	case WLAN_CIPHER_SUITE_SMS4:
-+		break;
- 	case WLAN_CIPHER_SUITE_BIP_GMAC_128:
- 	case WLAN_CIPHER_SUITE_BIP_GMAC_256:
--		break;
-+		if (key->keyidx == 6 || key->keyidx == 7)
-+			break;
-+		fallthrough;
- 	case WLAN_CIPHER_SUITE_WEP40:
- 	case WLAN_CIPHER_SUITE_WEP104:
- 	default:
--- 
-2.18.0
-
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0022-mtk-wifi-mt76-add-sanity-check-to-prevent-kernel-cra.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0011-mtk-wifi-mt76-add-sanity-check-to-prevent-kernel-cra.patch
similarity index 87%
rename from autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0022-mtk-wifi-mt76-add-sanity-check-to-prevent-kernel-cra.patch
rename to autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0011-mtk-wifi-mt76-add-sanity-check-to-prevent-kernel-cra.patch
index 937cee2..3261f00 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0022-mtk-wifi-mt76-add-sanity-check-to-prevent-kernel-cra.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0011-mtk-wifi-mt76-add-sanity-check-to-prevent-kernel-cra.patch
@@ -1,7 +1,7 @@
-From 947abea1e4134b5a3f00feba7276b194089f13d0 Mon Sep 17 00:00:00 2001
+From d9933bb4c54345dc9e3edc03f93324fcca813fe9 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Mon, 30 Oct 2023 11:06:19 +0800
-Subject: [PATCH 22/25] mtk: wifi: mt76: add sanity check to prevent kernel
+Subject: [PATCH 11/15] mtk: wifi: mt76: add sanity check to prevent kernel
  crash
 
 wcid may not be initialized when mac80211 calls mt76.tx and it would lead to
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0011-mtk-wifi-mt76-mt7996-fix-efuse-read-issue.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0011-mtk-wifi-mt76-mt7996-fix-efuse-read-issue.patch
deleted file mode 100644
index 9b2fbb8..0000000
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0011-mtk-wifi-mt76-mt7996-fix-efuse-read-issue.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 68cbc6f4aa32410876f18d54f053b4f928b4b981 Mon Sep 17 00:00:00 2001
-From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
-Date: Wed, 29 Nov 2023 10:55:15 +0800
-Subject: [PATCH 11/25] mtk: wifi: mt76: mt7996: fix efuse read issue
-
-The efuse data starts at 48 bytes instead of 64 bytes in the returned
-skb.
-This patch should be upstreamed.
-
-Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
----
- mt7996/mcu.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 071a9ec2..98ea9c20 100644
---- a/mt7996/mcu.c
-+++ b/mt7996/mcu.c
-@@ -3561,7 +3561,7 @@ int mt7996_mcu_get_eeprom(struct mt7996_dev *dev, u32 offset)
- 		u32 addr = le32_to_cpu(*(__le32 *)(skb->data + 12));
- 		u8 *buf = (u8 *)dev->mt76.eeprom.data + addr;
- 
--		skb_pull(skb, 64);
-+		skb_pull(skb, 48);
- 		memcpy(buf, skb->data, MT7996_EEPROM_BLOCK_SIZE);
- 	}
- 
--- 
-2.18.0
-
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0023-mtk-wifi-mt76-mt7996-add-firmware-WA-s-coredump.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0012-mtk-wifi-mt76-mt7996-add-firmware-WA-s-coredump.patch
similarity index 96%
rename from autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0023-mtk-wifi-mt76-mt7996-add-firmware-WA-s-coredump.patch
rename to autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0012-mtk-wifi-mt76-mt7996-add-firmware-WA-s-coredump.patch
index c8ffc65..246cded 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0023-mtk-wifi-mt76-mt7996-add-firmware-WA-s-coredump.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0012-mtk-wifi-mt76-mt7996-add-firmware-WA-s-coredump.patch
@@ -1,7 +1,7 @@
-From b78ba04740ae976f2a6ce9703c97430667be170a Mon Sep 17 00:00:00 2001
+From 1570914f0f8b2b6c5d6de86b71fed6ef5edc355e Mon Sep 17 00:00:00 2001
 From: Bo Jiao <Bo.Jiao@mediatek.com>
 Date: Fri, 19 May 2023 14:16:50 +0800
-Subject: [PATCH 23/25] mtk: wifi: mt76: mt7996: add firmware WA's coredump.
+Subject: [PATCH 12/15] mtk: wifi: mt76: mt7996: add firmware WA's coredump.
 
 Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com>
 ---
@@ -428,10 +428,10 @@
  	return NULL;
  }
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 19b34066..adbfd23f 100644
+index 3af537b6..f35b17b6 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
-@@ -2001,28 +2001,25 @@ void mt7996_mac_reset_work(struct work_struct *work)
+@@ -2002,28 +2002,25 @@ void mt7996_mac_reset_work(struct work_struct *work)
  }
  
  /* firmware coredump */
@@ -464,7 +464,7 @@
  	if (!mem_region || !crash_data->memdump_buf_len) {
  		mutex_unlock(&dev->dump_mutex);
  		goto skip_memdump;
-@@ -2032,6 +2029,9 @@ void mt7996_mac_dump_work(struct work_struct *work)
+@@ -2033,6 +2030,9 @@ void mt7996_mac_dump_work(struct work_struct *work)
  	buf_len = crash_data->memdump_buf_len;
  
  	/* dumping memory content... */
@@ -474,7 +474,7 @@
  	memset(buf, 0, buf_len);
  	for (i = 0; i < num; i++) {
  		if (mem_region->len > buf_len) {
-@@ -2048,6 +2048,7 @@ void mt7996_mac_dump_work(struct work_struct *work)
+@@ -2049,6 +2049,7 @@ void mt7996_mac_dump_work(struct work_struct *work)
  		mt7996_memcpy_fromio(dev, buf, mem_region->start,
  				     mem_region->len);
  
@@ -482,7 +482,7 @@
  		hdr->start = mem_region->start;
  		hdr->len = mem_region->len;
  
-@@ -2064,8 +2065,20 @@ void mt7996_mac_dump_work(struct work_struct *work)
+@@ -2065,8 +2066,20 @@ void mt7996_mac_dump_work(struct work_struct *work)
  	mutex_unlock(&dev->dump_mutex);
  
  skip_memdump:
@@ -506,10 +506,10 @@
  }
  
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 8a3b9f81..475a5e18 100644
+index 41f7b4b2..9a03a2b2 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -2697,6 +2697,8 @@ static int mt7996_load_patch(struct mt7996_dev *dev)
+@@ -2684,6 +2684,8 @@ static int mt7996_load_patch(struct mt7996_dev *dev)
  
  	dev_info(dev->mt76.dev, "HW/SW Version: 0x%x, Build Time: %.16s\n",
  		 be32_to_cpu(hdr->hw_sw_ver), hdr->build_date);
@@ -518,7 +518,7 @@
  
  	for (i = 0; i < be32_to_cpu(hdr->desc.n_region); i++) {
  		struct mt7996_patch_sec *sec;
-@@ -2823,6 +2825,9 @@ static int __mt7996_load_ram(struct mt7996_dev *dev, const char *fw_type,
+@@ -2810,6 +2812,9 @@ static int __mt7996_load_ram(struct mt7996_dev *dev, const char *fw_type,
  	}
  
  	hdr = (const void *)(fw->data + fw->size - sizeof(*hdr));
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0024-mtk-wifi-mt76-mt7996-add-preamble-puncture-support-f.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0013-mtk-wifi-mt76-mt7996-add-preamble-puncture-support-f.patch
similarity index 90%
rename from autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0024-mtk-wifi-mt76-mt7996-add-preamble-puncture-support-f.patch
rename to autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0013-mtk-wifi-mt76-mt7996-add-preamble-puncture-support-f.patch
index eb45ff1..334c5be 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0024-mtk-wifi-mt76-mt7996-add-preamble-puncture-support-f.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0013-mtk-wifi-mt76-mt7996-add-preamble-puncture-support-f.patch
@@ -1,7 +1,7 @@
-From 5fd32e152d666b1385953a42193ca0063dc78a10 Mon Sep 17 00:00:00 2001
+From 63f17f147216ccb96e163af01e407925b50f8187 Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Fri, 22 Sep 2023 10:32:37 +0800
-Subject: [PATCH 24/25] mtk: wifi: mt76: mt7996: add preamble puncture support
+Subject: [PATCH 13/15] mtk: wifi: mt76: mt7996: add preamble puncture support
  for mt7996
 
 Add support configure preamble puncture feature through mcu commands.
@@ -15,10 +15,10 @@
  4 files changed, 37 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 84e77fa0..823b3626 100644
+index 2a4aa796..8402097d 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1259,6 +1259,7 @@ enum {
+@@ -1263,6 +1263,7 @@ enum {
  	MCU_UNI_CMD_CHANNEL_SWITCH = 0x34,
  	MCU_UNI_CMD_THERMAL = 0x35,
  	MCU_UNI_CMD_VOW = 0x37,
@@ -27,10 +27,10 @@
  	MCU_UNI_CMD_RRO = 0x57,
  	MCU_UNI_CMD_OFFCH_SCAN_CTRL = 0x58,
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 475a5e18..deabdb1f 100644
+index 9a03a2b2..52e4f0d1 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -4534,3 +4534,33 @@ int mt7996_mcu_set_txpower_sku(struct mt7996_phy *phy)
+@@ -4522,3 +4522,33 @@ int mt7996_mcu_set_txpower_sku(struct mt7996_phy *phy)
  	return mt76_mcu_skb_send_msg(&dev->mt76, skb,
  				     MCU_WM_UNI_CMD(TXPOWER), true);
  }
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0025-mtk-wifi-mt76-mt7996-enable-hw-cso-module.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0014-mtk-wifi-mt76-mt7996-enable-hw-cso-module.patch
similarity index 85%
rename from autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0025-mtk-wifi-mt76-mt7996-enable-hw-cso-module.patch
rename to autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0014-mtk-wifi-mt76-mt7996-enable-hw-cso-module.patch
index 1705e22..21427b5 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0025-mtk-wifi-mt76-mt7996-enable-hw-cso-module.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0014-mtk-wifi-mt76-mt7996-enable-hw-cso-module.patch
@@ -1,7 +1,7 @@
-From b6fa1060af0c2a8f2d950481fd3d962ba9bcbf41 Mon Sep 17 00:00:00 2001
+From d832255d8d7810670d39bc578dd0e04e798d304e Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Wed, 3 Jan 2024 15:21:44 +0800
-Subject: [PATCH 25/25] mtk: wifi: mt76: mt7996: enable hw cso module
+Subject: [PATCH 14/15] mtk: wifi: mt76: mt7996: enable hw cso module
 
 The cso module needs to be enabled. The cso mudule can help identify if the traffic
 is TCP traffic. This can assist the firmware in adjusting algorithms to
@@ -14,7 +14,7 @@
  2 files changed, 22 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 823b3626..d3c05894 100644
+index 8402097d..482782f7 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -610,6 +610,12 @@ struct sta_rec_ra_fixed {
@@ -39,10 +39,10 @@
  					 MT76_CONNAC_WTBL_UPDATE_MAX_SIZE)
  
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index deabdb1f..46ee93c0 100644
+index 52e4f0d1..42fcbd8f 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -1766,6 +1766,19 @@ mt7996_mcu_sta_bfee_tlv(struct mt7996_dev *dev, struct sk_buff *skb,
+@@ -1753,6 +1753,19 @@ mt7996_mcu_sta_bfee_tlv(struct mt7996_dev *dev, struct sk_buff *skb,
  	bfee->fb_identity_matrix = (nrow == 1 && tx_ant == 2);
  }
  
@@ -62,7 +62,7 @@
  static void
  mt7996_mcu_sta_hdrt_tlv(struct mt7996_dev *dev, struct sk_buff *skb)
  {
-@@ -2177,6 +2190,8 @@ int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct ieee80211_vif *vif,
+@@ -2164,6 +2177,8 @@ int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct ieee80211_vif *vif,
  
  	/* starec hdr trans */
  	mt7996_mcu_sta_hdr_trans_tlv(dev, skb, vif, sta);
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0015-mtk-wifi-mt76-mt7996-add-sanity-check-for-NAPI-sched.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0015-mtk-wifi-mt76-mt7996-add-sanity-check-for-NAPI-sched.patch
new file mode 100644
index 0000000..47700b8
--- /dev/null
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0015-mtk-wifi-mt76-mt7996-add-sanity-check-for-NAPI-sched.patch
@@ -0,0 +1,38 @@
+From 9af475ad49a4b79ebb4589bdf993d6d8bbff5dfc Mon Sep 17 00:00:00 2001
+From: "Henry.Yen" <henry.yen@mediatek.com>
+Date: Tue, 16 Jan 2024 11:30:02 +0800
+Subject: [PATCH 15/15] mtk: wifi: mt76: mt7996: add sanity check for NAPI
+ schedule
+
+Add sanity check for NAPI schedule.
+
+It's observed that host driver might occasionally receive
+interrupts from unexpected Rx ring, whose Rx NAPI hasn't been
+prepared yet. Under such situation, __napi_poll crash issue
+would occur, so we add sanity check to prevent it.
+
+If without this patch, we might encounter kernel crash issue
+especially in WED-on & RRO-on software path.
+
+Signed-off-by: Henry.Yen <henry.yen@mediatek.com>
+
+---
+ mt7996/mmio.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mt7996/mmio.c b/mt7996/mmio.c
+index 341fa089..fd4d41d9 100644
+--- a/mt7996/mmio.c
++++ b/mt7996/mmio.c
+@@ -560,7 +560,7 @@ static void mt7996_irq_tasklet(struct tasklet_struct *t)
+ 		napi_schedule(&dev->mt76.tx_napi);
+ 
+ 	for (i = 0; i < __MT_RXQ_MAX; i++) {
+-		if ((intr & MT_INT_RX(i)))
++		if ((intr & MT_INT_RX(i)) && dev->mt76.napi[i].poll)
+ 			napi_schedule(&dev->mt76.napi[i]);
+ 	}
+ 
+-- 
+2.18.0
+
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0015-mtk-wifi-mt76-mt7996-remove-TxS-queue-setting.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0015-mtk-wifi-mt76-mt7996-remove-TxS-queue-setting.patch
deleted file mode 100644
index 42575e9..0000000
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0015-mtk-wifi-mt76-mt7996-remove-TxS-queue-setting.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From bc44fe965f13651643513532a746aca9ed04362b Mon Sep 17 00:00:00 2001
-From: Peter Chiu <chui-hao.chiu@mediatek.com>
-Date: Fri, 22 Dec 2023 17:01:36 +0800
-Subject: [PATCH 15/25] mtk: wifi: mt76: mt7996: remove TxS queue setting
-
-Remove TxS queue setting which is set by FW.
-
-Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
----
- mt7996/init.c | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/mt7996/init.c b/mt7996/init.c
-index 50dcce9f..1c464e2f 100644
---- a/mt7996/init.c
-+++ b/mt7996/init.c
-@@ -506,11 +506,6 @@ void mt7996_mac_init(struct mt7996_dev *dev)
- 		mt76_rmw_field(dev, i, MT_LED_GPIO_SEL_MASK, 4);
- 	}
- 
--	/* txs report queue */
--	mt76_rmw_field(dev, MT_DMA_TCRF1(0), MT_DMA_TCRF1_QIDX, 0);
--	mt76_rmw_field(dev, MT_DMA_TCRF1(1), MT_DMA_TCRF1_QIDX, 6);
--	mt76_rmw_field(dev, MT_DMA_TCRF1(2), MT_DMA_TCRF1_QIDX, 0);
--
- 	/* rro module init */
- 	if (is_mt7996(&dev->mt76))
- 		mt7996_mcu_set_rro(dev, UNI_RRO_SET_PLATFORM_TYPE, 2);
--- 
-2.18.0
-
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0018-mtk-wifi-mt76-mt7996-add-lock-for-indirect-register-.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0018-mtk-wifi-mt76-mt7996-add-lock-for-indirect-register-.patch
deleted file mode 100644
index df69921..0000000
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0018-mtk-wifi-mt76-mt7996-add-lock-for-indirect-register-.patch
+++ /dev/null
@@ -1,169 +0,0 @@
-From 6c7a12a76766fba5030fcbc363dcdd9bb15f95b4 Mon Sep 17 00:00:00 2001
-From: Shayne Chen <shayne.chen@mediatek.com>
-Date: Mon, 3 Jul 2023 22:38:43 +0800
-Subject: [PATCH 18/25] mtk: wifi: mt76: mt7996: add lock for indirect register
- access
-
-Some races were observed during indirect register access, fix this
-by adding reg_lock and reworking l1/l2 remap flow.
-
-Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
----
- mt7996/mmio.c   | 69 +++++++++++++++++++++++++++++++++----------------
- mt7996/mt7996.h |  3 +--
- 2 files changed, 48 insertions(+), 24 deletions(-)
-
-diff --git a/mt7996/mmio.c b/mt7996/mmio.c
-index c50d89a4..d3d34f04 100644
---- a/mt7996/mmio.c
-+++ b/mt7996/mmio.c
-@@ -140,7 +140,6 @@ static u32 mt7996_reg_map_l1(struct mt7996_dev *dev, u32 addr)
- 	u32 offset = FIELD_GET(MT_HIF_REMAP_L1_OFFSET, addr);
- 	u32 base = FIELD_GET(MT_HIF_REMAP_L1_BASE, addr);
- 
--	dev->reg_l1_backup = dev->bus_ops->rr(&dev->mt76, MT_HIF_REMAP_L1);
- 	dev->bus_ops->rmw(&dev->mt76, MT_HIF_REMAP_L1,
- 			  MT_HIF_REMAP_L1_MASK,
- 			  FIELD_PREP(MT_HIF_REMAP_L1_MASK, base));
-@@ -155,7 +154,6 @@ static u32 mt7996_reg_map_l2(struct mt7996_dev *dev, u32 addr)
- 	u32 offset = FIELD_GET(MT_HIF_REMAP_L2_OFFSET, addr);
- 	u32 base = FIELD_GET(MT_HIF_REMAP_L2_BASE, addr);
- 
--	dev->reg_l2_backup = dev->bus_ops->rr(&dev->mt76, MT_HIF_REMAP_L2);
- 	dev->bus_ops->rmw(&dev->mt76, MT_HIF_REMAP_L2,
- 			  MT_HIF_REMAP_L2_MASK,
- 			  FIELD_PREP(MT_HIF_REMAP_L2_MASK, base));
-@@ -165,26 +163,10 @@ static u32 mt7996_reg_map_l2(struct mt7996_dev *dev, u32 addr)
- 	return MT_HIF_REMAP_BASE_L2 + offset;
- }
- 
--static void mt7996_reg_remap_restore(struct mt7996_dev *dev)
--{
--	/* remap to ori status */
--	if (unlikely(dev->reg_l1_backup)) {
--		dev->bus_ops->wr(&dev->mt76, MT_HIF_REMAP_L1, dev->reg_l1_backup);
--		dev->reg_l1_backup = 0;
--	}
--
--	if (dev->reg_l2_backup) {
--		dev->bus_ops->wr(&dev->mt76, MT_HIF_REMAP_L2, dev->reg_l2_backup);
--		dev->reg_l2_backup = 0;
--	}
--}
--
- static u32 __mt7996_reg_addr(struct mt7996_dev *dev, u32 addr)
- {
- 	int i;
- 
--	mt7996_reg_remap_restore(dev);
--
- 	if (addr < 0x100000)
- 		return addr;
- 
-@@ -201,6 +183,11 @@ static u32 __mt7996_reg_addr(struct mt7996_dev *dev, u32 addr)
- 		return dev->reg.map[i].mapped + ofs;
- 	}
- 
-+	return 0;
-+}
-+
-+static u32 __mt7996_reg_remap_addr(struct mt7996_dev *dev, u32 addr)
-+{
- 	if ((addr >= MT_INFRA_BASE && addr < MT_WFSYS0_PHY_START) ||
- 	    (addr >= MT_WFSYS0_PHY_START && addr < MT_WFSYS1_PHY_START) ||
- 	    (addr >= MT_WFSYS1_PHY_START && addr <= MT_WFSYS1_PHY_END))
-@@ -225,28 +212,65 @@ void mt7996_memcpy_fromio(struct mt7996_dev *dev, void *buf, u32 offset,
- {
- 	u32 addr = __mt7996_reg_addr(dev, offset);
- 
--	memcpy_fromio(buf, dev->mt76.mmio.regs + addr, len);
-+	unsigned long flags;
-+
-+	if (addr) {
-+		memcpy_fromio(buf, dev->mt76.mmio.regs + addr, len);
-+		return;
-+	}
-+
-+	spin_lock_irqsave(&dev->reg_lock, flags);
-+	memcpy_fromio(buf, dev->mt76.mmio.regs +
-+			   __mt7996_reg_remap_addr(dev, offset), len);
-+	spin_unlock_irqrestore(&dev->reg_lock, flags);
- }
- 
- static u32 mt7996_rr(struct mt76_dev *mdev, u32 offset)
- {
- 	struct mt7996_dev *dev = container_of(mdev, struct mt7996_dev, mt76);
-+	u32 addr = __mt7996_reg_addr(dev, offset), val;
-+	unsigned long flags;
-+
-+	if (addr)
-+		return dev->bus_ops->rr(mdev, addr);
- 
--	return dev->bus_ops->rr(mdev, __mt7996_reg_addr(dev, offset));
-+	spin_lock_irqsave(&dev->reg_lock, flags);
-+	val = dev->bus_ops->rr(mdev, __mt7996_reg_remap_addr(dev, offset));
-+	spin_unlock_irqrestore(&dev->reg_lock, flags);
-+
-+	return val;
- }
- 
- static void mt7996_wr(struct mt76_dev *mdev, u32 offset, u32 val)
- {
- 	struct mt7996_dev *dev = container_of(mdev, struct mt7996_dev, mt76);
-+	u32 addr = __mt7996_reg_addr(dev, offset);
-+	unsigned long flags;
- 
--	dev->bus_ops->wr(mdev, __mt7996_reg_addr(dev, offset), val);
-+	if (addr) {
-+		dev->bus_ops->wr(mdev, addr, val);
-+		return;
-+	}
-+
-+	spin_lock_irqsave(&dev->reg_lock, flags);
-+	dev->bus_ops->wr(mdev, __mt7996_reg_remap_addr(dev, offset), val);
-+	spin_unlock_irqrestore(&dev->reg_lock, flags);
- }
- 
- static u32 mt7996_rmw(struct mt76_dev *mdev, u32 offset, u32 mask, u32 val)
- {
- 	struct mt7996_dev *dev = container_of(mdev, struct mt7996_dev, mt76);
-+	u32 addr = __mt7996_reg_addr(dev, offset);
-+	unsigned long flags;
-+
-+	if (addr)
-+		return dev->bus_ops->rmw(mdev, addr, mask, val);
-+
-+	spin_lock_irqsave(&dev->reg_lock, flags);
-+	val = dev->bus_ops->rmw(mdev, __mt7996_reg_remap_addr(dev, offset), mask, val);
-+	spin_unlock_irqrestore(&dev->reg_lock, flags);
- 
--	return dev->bus_ops->rmw(mdev, __mt7996_reg_addr(dev, offset), mask, val);
-+	return val;
- }
- 
- #ifdef CONFIG_NET_MEDIATEK_SOC_WED
-@@ -421,6 +445,7 @@ static int mt7996_mmio_init(struct mt76_dev *mdev,
- 
- 	dev = container_of(mdev, struct mt7996_dev, mt76);
- 	mt76_mmio_init(&dev->mt76, mem_base);
-+	spin_lock_init(&dev->reg_lock);
- 
- 	switch (device_id) {
- 	case 0x7990:
-diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index c34cb76b..7e5ec212 100644
---- a/mt7996/mt7996.h
-+++ b/mt7996/mt7996.h
-@@ -362,8 +362,7 @@ struct mt7996_dev {
- 		u8 n_agrt;
- 	} twt;
- 
--	u32 reg_l1_backup;
--	u32 reg_l2_backup;
-+	spinlock_t reg_lock;
- 
- 	u8 wtbl_size_group;
- };
--- 
-2.18.0
-
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0019-mtk-wifi-mt76-connac-set-correct-muar_idx-for-connac.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0019-mtk-wifi-mt76-connac-set-correct-muar_idx-for-connac.patch
deleted file mode 100644
index 90af1e3..0000000
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0019-mtk-wifi-mt76-connac-set-correct-muar_idx-for-connac.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 72e254cac7eac0e0e822b6c12148f0208688d131 Mon Sep 17 00:00:00 2001
-From: Shayne Chen <shayne.chen@mediatek.com>
-Date: Thu, 16 Feb 2023 13:53:14 +0800
-Subject: [PATCH 19/25] mtk: wifi: mt76: connac: set correct muar_idx for
- connac3 chipset
-
-Set the muar_idx to 0xe for the hw bcast/mcast station entry of connac3
-chipset.
-
-Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
----
- mt76_connac.h     | 5 +++++
- mt76_connac_mcu.c | 3 +++
- 2 files changed, 8 insertions(+)
-
-diff --git a/mt76_connac.h b/mt76_connac.h
-index fdde3d70..b1ec8d46 100644
---- a/mt76_connac.h
-+++ b/mt76_connac.h
-@@ -250,6 +250,11 @@ static inline bool is_connac_v1(struct mt76_dev *dev)
- 	return is_mt7615(dev) || is_mt7663(dev) || is_mt7622(dev);
- }
- 
-+static inline bool is_connac_v3(struct mt76_dev *dev)
-+{
-+	return is_mt7996(dev);
-+}
-+
- static inline bool is_mt76_fw_txp(struct mt76_dev *dev)
- {
- 	switch (mt76_chip(dev)) {
-diff --git a/mt76_connac_mcu.c b/mt76_connac_mcu.c
-index 0d05404f..8dd61f86 100644
---- a/mt76_connac_mcu.c
-+++ b/mt76_connac_mcu.c
-@@ -283,6 +283,9 @@ __mt76_connac_mcu_alloc_sta_req(struct mt76_dev *dev, struct mt76_vif *mvif,
- 	};
- 	struct sk_buff *skb;
- 
-+	if (is_connac_v3(dev) && !wcid->sta)
-+		hdr.muar_idx = 0xe;
-+
- 	mt76_connac_mcu_get_wlan_idx(dev, wcid, &hdr.wlan_idx_lo,
- 				     &hdr.wlan_idx_hi);
- 	skb = mt76_mcu_msg_alloc(dev, NULL, len);
--- 
-2.18.0
-
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0026-mtk-wifi-mt76-mt7996-fix-HIF_TXD_V2_1-value.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0026-mtk-wifi-mt76-mt7996-fix-HIF_TXD_V2_1-value.patch
deleted file mode 100644
index 6f56bd7..0000000
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0026-mtk-wifi-mt76-mt7996-fix-HIF_TXD_V2_1-value.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From d65f2368dd8a59c378384c620732c3b9735752e6 Mon Sep 17 00:00:00 2001
-From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
-Date: Thu, 11 Jan 2024 17:32:26 +0800
-Subject: [PATCH] mtk: wifi: mt76: mt7996: fix HIF_TXD_V2_1 value
-
-Signed-off-by: Benjamin Lin <benjamin-jw.lin@mediatek.com>
-Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
----
- mt7996/init.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mt7996/init.c b/mt7996/init.c
-index 193904bc..90f3a417 100644
---- a/mt7996/init.c
-+++ b/mt7996/init.c
-@@ -499,7 +499,7 @@ static void mt7996_mac_init_basic_rates(struct mt7996_dev *dev)
- 
- void mt7996_mac_init(struct mt7996_dev *dev)
- {
--#define HIF_TXD_V2_1	4
-+#define HIF_TXD_V2_1	0x21
- 	int i;
- 
- 	mt76_clear(dev, MT_MDP_DCR2, MT_MDP_DCR2_RX_TRANS_SHORT);
--- 
-2.18.0
-
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0999-mtk-wifi-mt76-mt7996-for-build-pass.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0999-mtk-wifi-mt76-mt7996-for-build-pass.patch
index 5ddea83..53cc471 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0999-mtk-wifi-mt76-mt7996-for-build-pass.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/0999-mtk-wifi-mt76-mt7996-for-build-pass.patch
@@ -1,4 +1,4 @@
-From 2b2dc33d94447570f8dbadb46e08f6ede2d67d72 Mon Sep 17 00:00:00 2001
+From 237f3f6f819983ed6fec2a108df2f645c0319fb6 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Thu, 3 Nov 2022 00:27:17 +0800
 Subject: [PATCH 0999/1044] mtk: wifi: mt76: mt7996: for build pass
@@ -33,10 +33,10 @@
  	return 0;
  }
 diff --git a/dma.c b/dma.c
-index 00230f10..12f0e2fd 100644
+index 72a7bd5a..4cf2afdf 100644
 --- a/dma.c
 +++ b/dma.c
-@@ -960,7 +960,7 @@ mt76_dma_rx_process(struct mt76_dev *dev, struct mt76_queue *q, int budget)
+@@ -882,7 +882,7 @@ mt76_dma_rx_process(struct mt76_dev *dev, struct mt76_queue *q, int budget)
  		    !(dev->drv->rx_check(dev, data, len)))
  			goto free_frag;
  
@@ -91,7 +91,7 @@
  static bool prefer_offload_fw = true;
  module_param(prefer_offload_fw, bool, 0644);
 diff --git a/mt76_connac_mcu.c b/mt76_connac_mcu.c
-index 8dd61f86..52237583 100644
+index 1c910d9d..fccca36d 100644
 --- a/mt76_connac_mcu.c
 +++ b/mt76_connac_mcu.c
 @@ -4,6 +4,7 @@
@@ -115,10 +115,10 @@
  #define fw_name(_dev, name, ...)	({			\
  	char *_fw;						\
 diff --git a/mt7996/dma.c b/mt7996/dma.c
-index 483ad81b..8e29ab06 100644
+index 73e633d0..759a58e8 100644
 --- a/mt7996/dma.c
 +++ b/mt7996/dma.c
-@@ -640,8 +640,8 @@ int mt7996_dma_init(struct mt7996_dev *dev)
+@@ -641,8 +641,8 @@ int mt7996_dma_init(struct mt7996_dev *dev)
  	if (ret < 0)
  		return ret;
  
@@ -142,7 +142,7 @@
  		dev->has_eht = !(cap & MODE_HE_ONLY);
  		dev->wtbl_size_group = u32_get_bits(cap, WTBL_SIZE_GROUP);
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 46ee93c0..ae78141e 100644
+index 42fcbd8f..7a76d602 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -5,6 +5,7 @@
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1000-mtk-wifi-mt76-mt7996-add-debug-tool.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1000-mtk-wifi-mt76-mt7996-add-debug-tool.patch
index a2d872f..7409632 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1000-mtk-wifi-mt76-mt7996-add-debug-tool.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1000-mtk-wifi-mt76-mt7996-add-debug-tool.patch
@@ -1,4 +1,4 @@
-From 1f2ab08e04fe3c68b0791da1de2b4e891dff1cb2 Mon Sep 17 00:00:00 2001
+From 1c9c6a9220ce579ec5e12808c934cc28ae25325d Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Fri, 24 Mar 2023 14:02:32 +0800
 Subject: [PATCH 1000/1044] mtk: wifi: mt76: mt7996: add debug tool
@@ -52,10 +52,10 @@
  create mode 100644 mt7996/mtk_mcu.h
 
 diff --git a/mt76.h b/mt76.h
-index d2ead585..de0021e4 100644
+index 1f249581..5c50681a 100644
 --- a/mt76.h
 +++ b/mt76.h
-@@ -393,6 +393,8 @@ struct mt76_txwi_cache {
+@@ -394,6 +394,8 @@ struct mt76_txwi_cache {
  		struct sk_buff *skb;
  		void *ptr;
  	};
@@ -280,7 +280,7 @@
  	hdr.timestamp = cpu_to_le32(mt76_rr(dev, MT_LPON_FRCR(0)));
  	hdr.len = *(__le16 *)data;
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index adbfd23f..ce6759e0 100644
+index f35b17b6..89a03122 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -936,6 +936,9 @@ int mt7996_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
@@ -2950,7 +2950,7 @@
 +static int mt7996_dump_version(struct seq_file *s, void *data)
 +{
 +	struct mt7996_dev *dev = dev_get_drvdata(s->private);
-+	seq_printf(s, "Version: 3.3.15.0\n");
++	seq_printf(s, "Version: 3.3.16.0\n");
 +
 +	if (!test_bit(MT76_STATE_MCU_RUNNING, &dev->mphy.state))
 +		return 0;
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1001-mtk-wifi-mt76-mt7996-support-record-muru-algo-log-wh.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1001-mtk-wifi-mt76-mt7996-support-record-muru-algo-log-wh.patch
index ceab96d..ec7d653 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1001-mtk-wifi-mt76-mt7996-support-record-muru-algo-log-wh.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1001-mtk-wifi-mt76-mt7996-support-record-muru-algo-log-wh.patch
@@ -1,4 +1,4 @@
-From e0e7443107c89385d66e9247888abd01c51b8845 Mon Sep 17 00:00:00 2001
+From 4aa0ffd5f06256ed4b2c128d7e975e7ede6702af Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Tue, 28 Nov 2023 16:01:33 +0800
 Subject: [PATCH 1001/1044] mtk: wifi: mt76: mt7996: support record muru algo
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1002-mtk-wifi-mt76-mt7996-add-check-for-hostapd-config-he.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1002-mtk-wifi-mt76-mt7996-add-check-for-hostapd-config-he.patch
index 8d9cb0c..9a30233 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1002-mtk-wifi-mt76-mt7996-add-check-for-hostapd-config-he.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1002-mtk-wifi-mt76-mt7996-add-check-for-hostapd-config-he.patch
@@ -1,4 +1,4 @@
-From ce7f8d1d0b181442e5a03b5f8aa9920491a8e0d5 Mon Sep 17 00:00:00 2001
+From 5329ba85c01100c8baa328e237844d2ab1309e27 Mon Sep 17 00:00:00 2001
 From: "Allen.Ye" <allen.ye@mediatek.com>
 Date: Thu, 8 Jun 2023 17:32:33 +0800
 Subject: [PATCH 1002/1044] mtk: wifi: mt76: mt7996: add check for hostapd
@@ -15,7 +15,7 @@
  1 file changed, 9 insertions(+), 3 deletions(-)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index ae78141e..388b593d 100644
+index 7a76d602..35233c71 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -1182,7 +1182,8 @@ int mt7996_mcu_add_rx_ba(struct mt7996_dev *dev,
@@ -40,7 +40,7 @@
  	mcs_map = sta->deflink.he_cap.he_mcs_nss_supp;
  	switch (sta->deflink.bandwidth) {
  	case IEEE80211_STA_RX_BW_160:
-@@ -2121,7 +2127,7 @@ int mt7996_mcu_add_rate_ctrl(struct mt7996_dev *dev, struct ieee80211_vif *vif,
+@@ -2108,7 +2114,7 @@ int mt7996_mcu_add_rate_ctrl(struct mt7996_dev *dev, struct ieee80211_vif *vif,
  	 * update sta_rec_he here.
  	 */
  	if (changed)
@@ -49,7 +49,7 @@
  
  	/* sta_rec_ra accommodates BW, NSS and only MCS range format
  	 * i.e 0-{7,8,9} for VHT.
-@@ -2209,7 +2215,7 @@ int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct ieee80211_vif *vif,
+@@ -2196,7 +2202,7 @@ int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct ieee80211_vif *vif,
  		/* starec amsdu */
  		mt7996_mcu_sta_amsdu_tlv(dev, skb, vif, sta);
  		/* starec he */
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1003-mtk-wifi-mt76-testmode-add-atenl-support-in-mt7996.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1003-mtk-wifi-mt76-testmode-add-atenl-support-in-mt7996.patch
index 6d653aa..5b346a1 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1003-mtk-wifi-mt76-testmode-add-atenl-support-in-mt7996.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1003-mtk-wifi-mt76-testmode-add-atenl-support-in-mt7996.patch
@@ -1,4 +1,4 @@
-From f1c4924fab3b775e09aa413dc300e478864ee76a Mon Sep 17 00:00:00 2001
+From 4ac4b9bc83dca1474bbe1cf189c4436e1adc993a Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Wed, 28 Dec 2022 22:24:25 +0800
 Subject: [PATCH 1003/1044] mtk: wifi: mt76: testmode: add atenl support in
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1004-mtk-wifi-mt76-testmode-add-basic-testmode-support.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1004-mtk-wifi-mt76-testmode-add-basic-testmode-support.patch
index 0bde2c2..bc4a5b8 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1004-mtk-wifi-mt76-testmode-add-basic-testmode-support.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1004-mtk-wifi-mt76-testmode-add-basic-testmode-support.patch
@@ -1,4 +1,4 @@
-From 06208f297f532c17779277a8dec486f466631791 Mon Sep 17 00:00:00 2001
+From 6b770050b396997a04c5055fdb397dcb15164b3d Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Wed, 1 Mar 2023 11:59:16 +0800
 Subject: [PATCH 1004/1044] mtk: wifi: mt76: testmode: add basic testmode
@@ -63,7 +63,7 @@
  
  out_put_node:
 diff --git a/mac80211.c b/mac80211.c
-index 6c5b4f55..d31cf9ff 100644
+index 6e8ac6f4..fea19e19 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -846,7 +846,8 @@ void mt76_rx(struct mt76_dev *dev, enum mt76_rxq_id q, struct sk_buff *skb)
@@ -77,10 +77,10 @@
  		if (status->flag & RX_FLAG_FAILED_FCS_CRC)
  			phy->test.rx_stats.fcs_error[q]++;
 diff --git a/mt76.h b/mt76.h
-index de0021e4..7951b90e 100644
+index 5c50681a..ea051c03 100644
 --- a/mt76.h
 +++ b/mt76.h
-@@ -694,14 +694,21 @@ struct mt76_testmode_ops {
+@@ -695,14 +695,21 @@ struct mt76_testmode_ops {
  	int (*set_params)(struct mt76_phy *phy, struct nlattr **tb,
  			  enum mt76_testmode_state new_state);
  	int (*dump_stats)(struct mt76_phy *phy, struct sk_buff *msg);
@@ -102,7 +102,7 @@
  	u32 tx_count;
  	u16 tx_mpdu_len;
  
-@@ -711,6 +718,7 @@ struct mt76_testmode_data {
+@@ -712,6 +719,7 @@ struct mt76_testmode_data {
  	u8 tx_rate_sgi;
  	u8 tx_rate_ldpc;
  	u8 tx_rate_stbc;
@@ -110,7 +110,7 @@
  	u8 tx_ltf;
  
  	u8 tx_antenna_mask;
-@@ -720,6 +728,9 @@ struct mt76_testmode_data {
+@@ -721,6 +729,9 @@ struct mt76_testmode_data {
  	u32 tx_time;
  	u32 tx_ipg;
  
@@ -120,7 +120,7 @@
  	u32 freq_offset;
  
  	u8 tx_power[4];
-@@ -734,7 +745,16 @@ struct mt76_testmode_data {
+@@ -735,7 +746,16 @@ struct mt76_testmode_data {
  	struct {
  		u64 packets[__MT_RXQ_MAX];
  		u64 fcs_error[__MT_RXQ_MAX];
@@ -137,7 +137,7 @@
  };
  
  struct mt76_vif {
-@@ -1423,6 +1443,22 @@ int mt76_testmode_dump(struct ieee80211_hw *hw, struct sk_buff *skb,
+@@ -1439,6 +1459,22 @@ int mt76_testmode_dump(struct ieee80211_hw *hw, struct sk_buff *skb,
  int mt76_testmode_set_state(struct mt76_phy *phy, enum mt76_testmode_state state);
  int mt76_testmode_alloc_skb(struct mt76_phy *phy, u32 len);
  
@@ -161,10 +161,10 @@
  {
  #ifdef CONFIG_NL80211_TESTMODE
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index d3c05894..4796c255 100644
+index 482782f7..2e148011 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1262,12 +1262,14 @@ enum {
+@@ -1266,12 +1266,14 @@ enum {
  	MCU_UNI_CMD_EFUSE_CTRL = 0x2d,
  	MCU_UNI_CMD_RA = 0x2f,
  	MCU_UNI_CMD_MURU = 0x31,
@@ -280,7 +280,7 @@
  	MT_EE_RATE_DELTA_2G =	0x1400,
  	MT_EE_RATE_DELTA_5G =	0x147d,
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 5db85939..42e7071c 100644
+index 0e3cdc05..d4d1a60b 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
 @@ -966,6 +966,10 @@ static int mt7996_init_hardware(struct mt7996_dev *dev)
@@ -306,7 +306,7 @@
  				   ARRAY_SIZE(mt76_rates));
  	if (ret)
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index ce6759e0..924b05e4 100644
+index 89a03122..9a9d33e6 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -685,7 +685,8 @@ mt7996_mac_fill_rx(struct mt7996_dev *dev, enum mt76_rxq_id q,
@@ -320,7 +320,7 @@
  
  	if (!status->wcid || !ieee80211_is_data_qos(fc) || hw_aggr)
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 9fbd87d5..2a93e8c2 100644
+index ad2c6a9d..40b5cee3 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -23,6 +23,18 @@ static bool mt7996_dev_running(struct mt7996_dev *dev)
@@ -385,10 +385,10 @@
  	.sta_add_debugfs = mt7996_sta_add_debugfs,
  #endif
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 388b593d..6c89d711 100644
+index 35233c71..f1a3fb42 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -2873,8 +2873,12 @@ static int mt7996_load_ram(struct mt7996_dev *dev)
+@@ -2860,8 +2860,12 @@ static int mt7996_load_ram(struct mt7996_dev *dev)
  {
  	int ret;
  
@@ -403,7 +403,7 @@
  	if (ret)
  		return ret;
  
-@@ -3565,17 +3569,9 @@ int mt7996_mcu_set_eeprom(struct mt7996_dev *dev)
+@@ -3552,17 +3556,9 @@ int mt7996_mcu_set_eeprom(struct mt7996_dev *dev)
  				 &req, sizeof(req), true);
  }
  
@@ -423,7 +423,7 @@
  		.tag = cpu_to_le16(UNI_EFUSE_ACCESS),
  		.len = cpu_to_le16(sizeof(req) - 4),
  		.addr = cpu_to_le32(round_down(offset,
-@@ -3584,6 +3580,7 @@ int mt7996_mcu_get_eeprom(struct mt7996_dev *dev, u32 offset)
+@@ -3571,6 +3567,7 @@ int mt7996_mcu_get_eeprom(struct mt7996_dev *dev, u32 offset)
  	struct sk_buff *skb;
  	bool valid;
  	int ret;
@@ -431,7 +431,7 @@
  
  	ret = mt76_mcu_send_and_get_msg(&dev->mt76,
  					MCU_WM_UNI_CMD_QUERY(EFUSE_CTRL),
-@@ -3594,7 +3591,9 @@ int mt7996_mcu_get_eeprom(struct mt7996_dev *dev, u32 offset)
+@@ -3581,7 +3578,9 @@ int mt7996_mcu_get_eeprom(struct mt7996_dev *dev, u32 offset)
  	valid = le32_to_cpu(*(__le32 *)(skb->data + 16));
  	if (valid) {
  		u32 addr = le32_to_cpu(*(__le32 *)(skb->data + 12));
@@ -442,7 +442,7 @@
  
  		skb_pull(skb, 48);
  		memcpy(buf, skb->data, MT7996_EEPROM_BLOCK_SIZE);
-@@ -4586,3 +4585,37 @@ int mt7996_mcu_set_pp_en(struct mt7996_phy *phy, bool auto_mode,
+@@ -4574,3 +4573,37 @@ int mt7996_mcu_set_pp_en(struct mt7996_phy *phy, bool auto_mode,
  	return mt76_mcu_send_msg(&dev->mt76, MCU_WM_UNI_CMD(PP),
  				 &req, sizeof(req), false);
  }
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1005-mtk-wifi-mt76-testmode-add-testmode-pre-calibration-.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1005-mtk-wifi-mt76-testmode-add-testmode-pre-calibration-.patch
index 127c63b..0bc75af 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1005-mtk-wifi-mt76-testmode-add-testmode-pre-calibration-.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1005-mtk-wifi-mt76-testmode-add-testmode-pre-calibration-.patch
@@ -1,4 +1,4 @@
-From 2a4f1ada373d5bd9999807d7906f44bee9c7dc21 Mon Sep 17 00:00:00 2001
+From 191480cad9ab8d8ed9e4be9129d3d30f2e638e5c Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Fri, 31 Mar 2023 11:27:24 +0800
 Subject: [PATCH 1005/1044] mtk: wifi: mt76: testmode: add testmode
@@ -21,7 +21,7 @@
  12 files changed, 632 insertions(+), 23 deletions(-)
 
 diff --git a/mac80211.c b/mac80211.c
-index d31cf9ff..87dcc8a3 100644
+index fea19e19..e7d02d15 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -7,27 +7,6 @@
@@ -53,7 +53,7 @@
  	CHAN2G(1, 2412),
  	CHAN2G(2, 2417),
 diff --git a/mt76.h b/mt76.h
-index 7951b90e..b0897ac2 100644
+index ea051c03..1e0488e5 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -18,6 +18,27 @@
@@ -84,7 +84,7 @@
  #define MT_MCU_RING_SIZE	32
  #define MT_RX_BUF_SIZE		2048
  #define MT_SKB_HEAD_LEN		256
-@@ -697,6 +718,7 @@ struct mt76_testmode_ops {
+@@ -698,6 +719,7 @@ struct mt76_testmode_ops {
  	void (*reset_rx_stats)(struct mt76_phy *phy);
  	void (*tx_stop)(struct mt76_phy *phy);
  	int (*set_eeprom)(struct mt76_phy *phy, u32 offset, u8 *val, u8 action);
@@ -93,10 +93,10 @@
  
  #define MT_TM_FW_RX_COUNT	BIT(0)
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 4796c255..e4783433 100644
+index 2e148011..54310413 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1038,8 +1038,10 @@ enum {
+@@ -1042,8 +1042,10 @@ enum {
  	MCU_UNI_EVENT_RDD_REPORT = 0x11,
  	MCU_UNI_EVENT_ROC = 0x27,
  	MCU_UNI_EVENT_TX_DONE = 0x2d,
@@ -257,7 +257,7 @@
  #define MT_EE_WIFI_CONF2_TX_PATH_BAND1		GENMASK(2, 0)
  #define MT_EE_WIFI_CONF2_TX_PATH_BAND2		GENMASK(5, 3)
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 6c89d711..151f3788 100644
+index f1a3fb42..30500fbe 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -712,6 +712,11 @@ mt7996_mcu_uni_rx_unsolicited_event(struct mt7996_dev *dev, struct sk_buff *skb)
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1006-mtk-wifi-mt76-mt7996-enable-SCS-feature-for-mt7996-d.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1006-mtk-wifi-mt76-mt7996-enable-SCS-feature-for-mt7996-d.patch
index bae90bf..f6bbdba 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1006-mtk-wifi-mt76-mt7996-enable-SCS-feature-for-mt7996-d.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1006-mtk-wifi-mt76-mt7996-enable-SCS-feature-for-mt7996-d.patch
@@ -1,4 +1,4 @@
-From 9ce66350f74d9addf51f8c5742ef5adde6deaf45 Mon Sep 17 00:00:00 2001
+From 40875afae4052332ce5178b59643b3b2191f050b Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Mon, 8 May 2023 09:03:50 +0800
 Subject: [PATCH 1006/1044] mtk: wifi: mt76: mt7996: enable SCS feature for
@@ -20,10 +20,10 @@
  8 files changed, 148 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index e4783433..23310c4f 100644
+index 54310413..4a3ea0b7 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1257,6 +1257,7 @@ enum {
+@@ -1261,6 +1261,7 @@ enum {
  	MCU_UNI_CMD_GET_STAT_INFO = 0x23,
  	MCU_UNI_CMD_SNIFFER = 0x24,
  	MCU_UNI_CMD_SR = 0x25,
@@ -32,7 +32,7 @@
  	MCU_UNI_CMD_SET_DBDC_PARMS = 0x28,
  	MCU_UNI_CMD_TXPOWER = 0x2b,
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 42e7071c..23b7e5f8 100644
+index d4d1a60b..23a9b88b 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
 @@ -1374,6 +1374,7 @@ int mt7996_register_device(struct mt7996_dev *dev)
@@ -44,10 +44,10 @@
  	INIT_LIST_HEAD(&dev->twt_list);
  
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 924b05e4..e307ddc3 100644
+index 9a9d33e6..8013ffd1 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
-@@ -1798,6 +1798,7 @@ mt7996_mac_full_reset(struct mt7996_dev *dev)
+@@ -1799,6 +1799,7 @@ mt7996_mac_full_reset(struct mt7996_dev *dev)
  		cancel_delayed_work_sync(&phy2->mt76->mac_work);
  	if (phy3)
  		cancel_delayed_work_sync(&phy3->mt76->mac_work);
@@ -55,7 +55,7 @@
  
  	mutex_lock(&dev->mt76.mutex);
  	for (i = 0; i < 10; i++) {
-@@ -1833,6 +1834,7 @@ mt7996_mac_full_reset(struct mt7996_dev *dev)
+@@ -1834,6 +1835,7 @@ mt7996_mac_full_reset(struct mt7996_dev *dev)
  		ieee80211_queue_delayed_work(phy3->mt76->hw,
  					     &phy3->mt76->mac_work,
  					     MT7996_WATCHDOG_TIME);
@@ -64,7 +64,7 @@
  
  void mt7996_mac_reset_work(struct work_struct *work)
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 2a93e8c2..97f1ef8c 100644
+index 40b5cee3..ffb1f81b 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -73,11 +73,17 @@ int mt7996_run(struct ieee80211_hw *hw)
@@ -94,10 +94,10 @@
  	mutex_lock(&dev->mt76.mutex);
  
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 151f3788..af4d2023 100644
+index 30500fbe..5ccf462f 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -4624,3 +4624,108 @@ int mt7996_mcu_set_tx_power_ctrl(struct mt7996_phy *phy, u8 power_ctrl_id, u8 da
+@@ -4612,3 +4612,108 @@ int mt7996_mcu_set_tx_power_ctrl(struct mt7996_phy *phy, u8 power_ctrl_id, u8 da
  	return mt76_mcu_send_msg(&dev->mt76, MCU_WM_UNI_CMD(TXPOWER),
  				 &req, sizeof(req), false);
  }
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1007-mtk-wifi-mt76-mt7996-add-txpower-support.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1007-mtk-wifi-mt76-mt7996-add-txpower-support.patch
index 4a17bc3..09b7700 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1007-mtk-wifi-mt76-mt7996-add-txpower-support.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1007-mtk-wifi-mt76-mt7996-add-txpower-support.patch
@@ -1,4 +1,4 @@
-From b02c3175d355a3cf35924ad866e92013d62dbc66 Mon Sep 17 00:00:00 2001
+From 7b23bb7c06080cbfdf33d01ec3dd921d8c0f1bae Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Fri, 24 Mar 2023 23:35:30 +0800
 Subject: [PATCH 1007/1044] mtk: wifi: mt76: mt7996: add txpower support
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1008-mtk-wifi-mt76-mt7996-add-single-sku.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1008-mtk-wifi-mt76-mt7996-add-single-sku.patch
index 34ce9fd..de46c86 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1008-mtk-wifi-mt76-mt7996-add-single-sku.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1008-mtk-wifi-mt76-mt7996-add-single-sku.patch
@@ -1,4 +1,4 @@
-From de616f497d5c3b731ae7916afa60003c8c3a96f9 Mon Sep 17 00:00:00 2001
+From baf4f49f59a8991e0e5bfd634b792ece5d7dca77 Mon Sep 17 00:00:00 2001
 From: "Allen.Ye" <allen.ye@mediatek.com>
 Date: Mon, 10 Jul 2023 19:56:16 +0800
 Subject: [PATCH 1008/1044] mtk: wifi: mt76: mt7996: add single sku
@@ -103,10 +103,10 @@
  EXPORT_SYMBOL_GPL(mt76_get_rate_power_limits);
  
 diff --git a/mt76.h b/mt76.h
-index b0897ac2..19c445b5 100644
+index 1e0488e5..9aa56ac6 100644
 --- a/mt76.h
 +++ b/mt76.h
-@@ -1053,6 +1053,14 @@ struct mt76_power_limits {
+@@ -1054,6 +1054,14 @@ struct mt76_power_limits {
  	s8 eht[16][16];
  };
  
@@ -121,7 +121,7 @@
  struct mt76_ethtool_worker_info {
  	u64 *data;
  	int idx;
-@@ -1655,6 +1663,7 @@ mt76_find_channel_node(struct device_node *np, struct ieee80211_channel *chan);
+@@ -1664,6 +1672,7 @@ mt76_find_channel_node(struct device_node *np, struct ieee80211_channel *chan);
  s8 mt76_get_rate_power_limits(struct mt76_phy *phy,
  			      struct ieee80211_channel *chan,
  			      struct mt76_power_limits *dest,
@@ -130,7 +130,7 @@
  
  static inline bool mt76_queue_is_wed_tx_free(struct mt76_queue *q)
 diff --git a/mt76_connac_mcu.c b/mt76_connac_mcu.c
-index 52237583..6cb47699 100644
+index fccca36d..58a46ed2 100644
 --- a/mt76_connac_mcu.c
 +++ b/mt76_connac_mcu.c
 @@ -2150,7 +2150,7 @@ mt76_connac_mcu_rate_txpower_band(struct mt76_phy *phy,
@@ -143,7 +143,7 @@
  			tx_power_tlv.last_msg = ch_list[idx] == last_ch;
  			sku_tlbv.channel = ch_list[idx];
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 23b7e5f8..188d4f1f 100644
+index 23a9b88b..5f937b26 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
 @@ -295,6 +295,7 @@ static void __mt7996_init_txpower(struct mt7996_phy *phy,
@@ -163,7 +163,7 @@
  		target_power += nss_delta;
  		target_power = DIV_ROUND_UP(target_power, 2);
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 97f1ef8c..9481fc5c 100644
+index ffb1f81b..ecfc3dcf 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -77,6 +77,15 @@ int mt7996_run(struct ieee80211_hw *hw)
@@ -183,10 +183,10 @@
  
  	ieee80211_queue_delayed_work(hw, &phy->mt76->mac_work,
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index af4d2023..19b5a173 100644
+index 5ccf462f..fed80421 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -4506,6 +4506,7 @@ int mt7996_mcu_wed_rro_reset_sessions(struct mt7996_dev *dev, u16 id)
+@@ -4493,6 +4493,7 @@ int mt7996_mcu_wed_rro_reset_sessions(struct mt7996_dev *dev, u16 id)
  int mt7996_mcu_set_txpower_sku(struct mt7996_phy *phy)
  {
  #define TX_POWER_LIMIT_TABLE_RATE	0
@@ -194,7 +194,7 @@
  	struct mt7996_dev *dev = phy->dev;
  	struct mt76_phy *mphy = phy->mt76;
  	struct ieee80211_hw *hw = mphy->hw;
-@@ -4519,22 +4520,23 @@ int mt7996_mcu_set_txpower_sku(struct mt7996_phy *phy)
+@@ -4506,22 +4507,23 @@ int mt7996_mcu_set_txpower_sku(struct mt7996_phy *phy)
  		u8 band_idx;
  	} __packed req = {
  		.tag = cpu_to_le16(UNI_TXPOWER_POWER_LIMIT_TABLE_CTRL),
@@ -222,7 +222,7 @@
  	if (!skb)
  		return -ENOMEM;
  
-@@ -4557,6 +4559,37 @@ int mt7996_mcu_set_txpower_sku(struct mt7996_phy *phy)
+@@ -4545,6 +4547,37 @@ int mt7996_mcu_set_txpower_sku(struct mt7996_phy *phy)
  	/* eht */
  	skb_put_data(skb, &la.eht[0], sizeof(la.eht));
  
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1009-mtk-wifi-mt76-mt7996-add-binfile-mode-support.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1009-mtk-wifi-mt76-mt7996-add-binfile-mode-support.patch
index 5283a49..59b874e 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1009-mtk-wifi-mt76-mt7996-add-binfile-mode-support.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1009-mtk-wifi-mt76-mt7996-add-binfile-mode-support.patch
@@ -1,4 +1,4 @@
-From 5def24c68db8d0ff5e0a3ef799c4e1b670dfcb46 Mon Sep 17 00:00:00 2001
+From 547691d38f2c8984fed244b23f61a650f19d5d74 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Fri, 31 Mar 2023 11:36:34 +0800
 Subject: [PATCH 1009/1044] mtk: wifi: mt76: mt7996: add binfile mode support
@@ -61,10 +61,10 @@
  mt76_eeprom_override(struct mt76_phy *phy)
  {
 diff --git a/mt76.h b/mt76.h
-index 19c445b5..1eb5a52b 100644
+index 9aa56ac6..e1b0560b 100644
 --- a/mt76.h
 +++ b/mt76.h
-@@ -948,6 +948,8 @@ struct mt76_dev {
+@@ -949,6 +949,8 @@ struct mt76_dev {
  		struct mt76_usb usb;
  		struct mt76_sdio sdio;
  	};
@@ -73,7 +73,7 @@
  };
  
  /* per-phy stats.  */
-@@ -1204,6 +1206,7 @@ void mt76_eeprom_override(struct mt76_phy *phy);
+@@ -1220,6 +1222,7 @@ void mt76_eeprom_override(struct mt76_phy *phy);
  int mt76_get_of_data_from_mtd(struct mt76_dev *dev, void *eep, int offset, int len);
  int mt76_get_of_data_from_nvmem(struct mt76_dev *dev, void *eep,
  				const char *cell_name, int len);
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1010-mtk-wifi-mt76-mt7996-add-normal-mode-pre-calibration.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1010-mtk-wifi-mt76-mt7996-add-normal-mode-pre-calibration.patch
index 7330ae5..9d2272e 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1010-mtk-wifi-mt76-mt7996-add-normal-mode-pre-calibration.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1010-mtk-wifi-mt76-mt7996-add-normal-mode-pre-calibration.patch
@@ -1,4 +1,4 @@
-From 516fdeb45c9a8c2b8af89e6edab766a4d828e8db Mon Sep 17 00:00:00 2001
+From 9ce2a5ed55883339f0ea8e0edb5c18752963b367 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Wed, 1 Mar 2023 12:12:51 +0800
 Subject: [PATCH 1010/1044] mtk: wifi: mt76: mt7996: add normal mode
@@ -16,10 +16,10 @@
  7 files changed, 188 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 23310c4f..6a1ee3e2 100644
+index 4a3ea0b7..3c82c05d 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1273,6 +1273,7 @@ enum {
+@@ -1277,6 +1277,7 @@ enum {
  	MCU_UNI_CMD_PP = 0x38,
  	MCU_UNI_CMD_FIXED_RATE_TABLE = 0x40,
  	MCU_UNI_CMD_TESTMODE_CTRL = 0x46,
@@ -56,7 +56,7 @@
  
  #define MT_EE_WIFI_CONF0_TX_PATH		GENMASK(2, 0)
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 188d4f1f..2d8d0f42 100644
+index 5f937b26..c135da9c 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
 @@ -984,6 +984,12 @@ static int mt7996_init_hardware(struct mt7996_dev *dev)
@@ -73,7 +73,7 @@
  	idx = mt76_wcid_alloc(dev->mt76.wcid_mask, MT7996_WTBL_STA);
  	if (idx)
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 9481fc5c..ae9484c3 100644
+index ecfc3dcf..07a14917 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -321,6 +321,12 @@ int mt7996_set_channel(struct mt7996_phy *phy)
@@ -90,10 +90,10 @@
  		mt7996_tm_update_channel(phy);
  		goto out;
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 19b5a173..da01f111 100644
+index fed80421..5712b8a7 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -3639,6 +3639,172 @@ int mt7996_mcu_get_eeprom_free_block(struct mt7996_dev *dev, u8 *block_num)
+@@ -3626,6 +3626,172 @@ int mt7996_mcu_get_eeprom_free_block(struct mt7996_dev *dev, u8 *block_num)
  	return 0;
  }
  
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1011-mtk-wifi-mt76-testmode-add-testmode-ZWDFS-verificati.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1011-mtk-wifi-mt76-testmode-add-testmode-ZWDFS-verificati.patch
index 3a98782..bfdd434 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1011-mtk-wifi-mt76-testmode-add-testmode-ZWDFS-verificati.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1011-mtk-wifi-mt76-testmode-add-testmode-ZWDFS-verificati.patch
@@ -1,4 +1,4 @@
-From aafd916aa93ef1400c25ea0783a7082f867cda5b Mon Sep 17 00:00:00 2001
+From 979b974ca118fd6819db0814162d8f0dcfede653 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Wed, 22 Mar 2023 11:19:52 +0800
 Subject: [PATCH 1011/1044] mtk: wifi: mt76: testmode: add testmode ZWDFS
@@ -15,10 +15,10 @@
  6 files changed, 326 insertions(+), 12 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
-index 1eb5a52b..46fbc87e 100644
+index e1b0560b..b0211879 100644
 --- a/mt76.h
 +++ b/mt76.h
-@@ -777,6 +777,14 @@ struct mt76_testmode_data {
+@@ -778,6 +778,14 @@ struct mt76_testmode_data {
  	} cfg;
  
  	u8 aid;
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1012-mtk-wifi-mt76-mt7996-add-mu-vendor-command-support.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1012-mtk-wifi-mt76-mt7996-add-mu-vendor-command-support.patch
index 3a679cc..d4cbd2c 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1012-mtk-wifi-mt76-mt7996-add-mu-vendor-command-support.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1012-mtk-wifi-mt76-mt7996-add-mu-vendor-command-support.patch
@@ -1,4 +1,4 @@
-From c00796c518d5b534f77ebe2a479103dffb3488e1 Mon Sep 17 00:00:00 2001
+From 093bc6129886e3675d396d5a7be3e57c8b29c559 Mon Sep 17 00:00:00 2001
 From: MeiChia Chiu <meichia.chiu@mediatek.com>
 Date: Tue, 13 Dec 2022 15:17:43 +0800
 Subject: [PATCH 1012/1044] mtk: wifi: mt76: mt7996: add mu vendor command
@@ -42,7 +42,7 @@
  mt7996e-$(CONFIG_DEV_COREDUMP) += coredump.o
  mt7996e-$(CONFIG_NL80211_TESTMODE) += testmode.o
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 2d8d0f42..49884cd4 100644
+index c135da9c..fba61c01 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
 @@ -368,6 +368,7 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
@@ -76,10 +76,10 @@
  				   ARRAY_SIZE(mt76_rates));
  	if (ret)
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index da01f111..4ed4c8a4 100644
+index 5712b8a7..e74f7b00 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -1383,6 +1383,8 @@ static void
+@@ -1370,6 +1370,8 @@ static void
  mt7996_mcu_sta_muru_tlv(struct mt7996_dev *dev, struct sk_buff *skb,
  			struct ieee80211_vif *vif, struct ieee80211_sta *sta)
  {
@@ -88,7 +88,7 @@
  	struct ieee80211_he_cap_elem *elem = &sta->deflink.he_cap.he_cap_elem;
  	struct sta_rec_muru *muru;
  	struct tlv *tlv;
-@@ -1394,11 +1396,14 @@ mt7996_mcu_sta_muru_tlv(struct mt7996_dev *dev, struct sk_buff *skb,
+@@ -1381,11 +1383,14 @@ mt7996_mcu_sta_muru_tlv(struct mt7996_dev *dev, struct sk_buff *skb,
  	tlv = mt76_connac_mcu_add_tlv(skb, STA_REC_MURU, sizeof(*muru));
  
  	muru = (struct sta_rec_muru *)tlv;
@@ -108,7 +108,7 @@
  
  	if (sta->deflink.vht_cap.vht_supported)
  		muru->mimo_dl.vht_mu_bfee =
-@@ -4928,3 +4933,25 @@ int mt7996_mcu_set_scs(struct mt7996_phy *phy, u8 enable)
+@@ -4916,3 +4921,25 @@ int mt7996_mcu_set_scs(struct mt7996_phy *phy, u8 enable)
  	return mt76_mcu_send_msg(&phy->dev->mt76, MCU_WM_UNI_CMD(SCS),
  				 &req, sizeof(req), false);
  }
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1013-mtk-wifi-mt76-mt7996-Add-air-monitor-support.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1013-mtk-wifi-mt76-mt7996-Add-air-monitor-support.patch
index 3ff2783..cad1eb5 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1013-mtk-wifi-mt76-mt7996-Add-air-monitor-support.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1013-mtk-wifi-mt76-mt7996-Add-air-monitor-support.patch
@@ -1,4 +1,4 @@
-From fd83f2c255bf85eb8ce41a876f83d3d97713fb53 Mon Sep 17 00:00:00 2001
+From a2cf1f53e11e0311a84949214de98fad1bad9546 Mon Sep 17 00:00:00 2001
 From: Evelyn Tsai <evelyn.tsai@mediatek.com>
 Date: Wed, 26 Apr 2023 04:40:05 +0800
 Subject: [PATCH 1013/1044] mtk: wifi: mt76: mt7996: Add air monitor support
@@ -13,10 +13,10 @@
  6 files changed, 445 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 6a1ee3e2..5f41fc16 100644
+index 3c82c05d..062268d6 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1247,6 +1247,7 @@ enum {
+@@ -1251,6 +1251,7 @@ enum {
  	MCU_UNI_CMD_REG_ACCESS = 0x0d,
  	MCU_UNI_CMD_CHIP_CONFIG = 0x0e,
  	MCU_UNI_CMD_POWER_CTRL = 0x0f,
@@ -25,7 +25,7 @@
  	MCU_UNI_CMD_SER = 0x13,
  	MCU_UNI_CMD_TWT = 0x14,
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index e307ddc3..f7dc8db4 100644
+index 8013ffd1..c266dc14 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -679,6 +679,10 @@ mt7996_mac_fill_rx(struct mt7996_dev *dev, enum mt76_rxq_id q,
@@ -40,7 +40,7 @@
  		status->flag |= RX_FLAG_8023;
  		mt7996_wed_check_ppe(dev, &dev->mt76.q_rx[q], msta, skb,
 diff --git a/mt7996/main.c b/mt7996/main.c
-index ae9484c3..2042edd6 100644
+index 07a14917..478ca7ce 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -737,6 +737,10 @@ int mt7996_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1014-mtk-wifi-mt76-mt7996-add-driver-support-for-wpa3-ocv.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1014-mtk-wifi-mt76-mt7996-add-driver-support-for-wpa3-ocv.patch
index 16358b9..0a47d0c 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1014-mtk-wifi-mt76-mt7996-add-driver-support-for-wpa3-ocv.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1014-mtk-wifi-mt76-mt7996-add-driver-support-for-wpa3-ocv.patch
@@ -1,4 +1,4 @@
-From b855419db0dcd3ed7442cbbf79fd105922711ea5 Mon Sep 17 00:00:00 2001
+From f93b91f5cb564270421034ff9dbc71864646dd10 Mon Sep 17 00:00:00 2001
 From: mtk23510 <rudra.shahi@mediatek.com>
 Date: Fri, 24 Mar 2023 19:18:53 +0800
 Subject: [PATCH 1014/1044] mtk: wifi: mt76: mt7996: add driver support for
@@ -10,7 +10,7 @@
  1 file changed, 2 insertions(+)
 
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 49884cd4..142a0f63 100644
+index fba61c01..1498787f 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
 @@ -391,6 +391,8 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1015-mtk-wifi-mt76-mt7996-add-vendor-cmd-to-get-available.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1015-mtk-wifi-mt76-mt7996-add-vendor-cmd-to-get-available.patch
index 33746ea..c239d77 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1015-mtk-wifi-mt76-mt7996-add-vendor-cmd-to-get-available.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1015-mtk-wifi-mt76-mt7996-add-vendor-cmd-to-get-available.patch
@@ -1,4 +1,4 @@
-From e9a571385e98dff38a1e0e74a39f93c744b7e02a Mon Sep 17 00:00:00 2001
+From ac974ea7fc0eb73d41a5063e273fb3b1ea971112 Mon Sep 17 00:00:00 2001
 From: Yi-Chia Hsieh <yi-chia.hsieh@mediatek.com>
 Date: Wed, 3 May 2023 05:08:07 +0800
 Subject: [PATCH 1015/1044] mtk: wifi: mt76: mt7996: add vendor cmd to get
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1016-mtk-wifi-mt76-mt7996-add-debugfs-for-fw-coredump.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1016-mtk-wifi-mt76-mt7996-add-debugfs-for-fw-coredump.patch
index c8d3d5f..7b2a54a 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1016-mtk-wifi-mt76-mt7996-add-debugfs-for-fw-coredump.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1016-mtk-wifi-mt76-mt7996-add-debugfs-for-fw-coredump.patch
@@ -1,4 +1,4 @@
-From f1eae676ca9604151b987f09549228a166b8c632 Mon Sep 17 00:00:00 2001
+From 9b1cb9cdfb8ae18820908362a909d854c226e1ce Mon Sep 17 00:00:00 2001
 From: Bo Jiao <Bo.Jiao@mediatek.com>
 Date: Fri, 19 May 2023 14:56:07 +0800
 Subject: [PATCH 1016/1044] mtk: wifi: mt76: mt7996: add debugfs for fw
@@ -65,10 +65,10 @@
  	desc += scnprintf(buff + desc, bufsz - desc,
  			  "\nlet's dump firmware SER statistics...\n");
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index f7dc8db4..b92d7fe9 100644
+index c266dc14..75657786 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
-@@ -2083,15 +2083,36 @@ void mt7996_mac_dump_work(struct work_struct *work)
+@@ -2084,15 +2084,36 @@ void mt7996_mac_dump_work(struct work_struct *work)
  	struct mt7996_dev *dev;
  
  	dev = container_of(work, struct mt7996_dev, dump_work);
@@ -108,7 +108,7 @@
  void mt7996_reset(struct mt7996_dev *dev)
  {
  	if (!dev->recovery.hw_init_done)
-@@ -2109,6 +2130,7 @@ void mt7996_reset(struct mt7996_dev *dev)
+@@ -2110,6 +2131,7 @@ void mt7996_reset(struct mt7996_dev *dev)
  
  		mt7996_irq_disable(dev, MT_INT_MCU_CMD);
  		queue_work(dev->mt76.wq, &dev->dump_work);
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1017-mtk-wifi-mt76-mt7996-Add-mt7992-coredump-support.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1017-mtk-wifi-mt76-mt7996-Add-mt7992-coredump-support.patch
index 93f4afc..7fd7681 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1017-mtk-wifi-mt76-mt7996-Add-mt7992-coredump-support.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1017-mtk-wifi-mt76-mt7996-Add-mt7992-coredump-support.patch
@@ -1,4 +1,4 @@
-From e7a7f2af86f895894445ced1d97e8fc09be4b30f Mon Sep 17 00:00:00 2001
+From 07a550ff7fbfb8702d7c6adfa0c7fd4ade9bf15b Mon Sep 17 00:00:00 2001
 From: Rex Lu <rex.lu@mediatek.com>
 Date: Mon, 25 Dec 2023 15:17:49 +0800
 Subject: [PATCH 1017/1044] mtk: wifi: mt76: mt7996: Add mt7992 coredump
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1018-mtk-wifi-mt76-mt7996-add-support-for-runtime-set-in-.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1018-mtk-wifi-mt76-mt7996-add-support-for-runtime-set-in-.patch
index aeeba0c..ecc86a8 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1018-mtk-wifi-mt76-mt7996-add-support-for-runtime-set-in-.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1018-mtk-wifi-mt76-mt7996-add-support-for-runtime-set-in-.patch
@@ -1,4 +1,4 @@
-From 0d2c482270a6d32d669fd5441a40f6c5f34e99e7 Mon Sep 17 00:00:00 2001
+From 0e74220e04acc1fb9c10d469e3b287d61a9ae4d6 Mon Sep 17 00:00:00 2001
 From: MeiChia Chiu <meichia.chiu@mediatek.com>
 Date: Tue, 6 Jun 2023 16:57:10 +0800
 Subject: [PATCH 1018/1044] mtk: wifi: mt76: mt7996: add support for runtime
@@ -17,10 +17,10 @@
  1 file changed, 2 insertions(+), 3 deletions(-)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 4ed4c8a4..78571034 100644
+index e74f7b00..60b1b62c 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -2615,8 +2615,7 @@ int mt7996_mcu_beacon_inband_discov(struct mt7996_dev *dev,
+@@ -2602,8 +2602,7 @@ int mt7996_mcu_beacon_inband_discov(struct mt7996_dev *dev,
  	if (IS_ERR(rskb))
  		return PTR_ERR(rskb);
  
@@ -30,7 +30,7 @@
  		interval = vif->bss_conf.fils_discovery.max_interval;
  		skb = ieee80211_get_fils_discovery_tmpl(hw, vif);
  	} else if (changed & BSS_CHANGED_UNSOL_BCAST_PROBE_RESP &&
-@@ -2651,7 +2650,7 @@ int mt7996_mcu_beacon_inband_discov(struct mt7996_dev *dev,
+@@ -2638,7 +2637,7 @@ int mt7996_mcu_beacon_inband_discov(struct mt7996_dev *dev,
  	discov->tx_type = !!(changed & BSS_CHANGED_FILS_DISCOVERY);
  	discov->tx_interval = interval;
  	discov->prob_rsp_len = cpu_to_le16(MT_TXD_SIZE + skb->len);
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1019-mtk-wifi-mt76-mt7996-add-vendor-subcmd-EDCCA-ctrl-en.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1019-mtk-wifi-mt76-mt7996-add-vendor-subcmd-EDCCA-ctrl-en.patch
index 8f6c8d8..597728e 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1019-mtk-wifi-mt76-mt7996-add-vendor-subcmd-EDCCA-ctrl-en.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1019-mtk-wifi-mt76-mt7996-add-vendor-subcmd-EDCCA-ctrl-en.patch
@@ -1,4 +1,4 @@
-From 1f6dd2ec077acc13bc87b8f518a4d96d400786a6 Mon Sep 17 00:00:00 2001
+From 6c3c803dedac7513e8e166fcd2fa0fb9b253fa34 Mon Sep 17 00:00:00 2001
 From: mtk27745 <rex.lu@mediatek.com>
 Date: Thu, 8 Jun 2023 20:21:04 +0800
 Subject: [PATCH 1019/1044] mtk: wifi: mt76: mt7996: add vendor subcmd EDCCA
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1020-mtk-wifi-mt76-mt7996-add-support-spatial-reuse-debug.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1020-mtk-wifi-mt76-mt7996-add-support-spatial-reuse-debug.patch
index eb14c0e..cdba899 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1020-mtk-wifi-mt76-mt7996-add-support-spatial-reuse-debug.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1020-mtk-wifi-mt76-mt7996-add-support-spatial-reuse-debug.patch
@@ -1,4 +1,4 @@
-From f9396e523e0f10df265a7c22b7f4ebf37d6b3f0d Mon Sep 17 00:00:00 2001
+From f8bfd93b55c37abf0d210bbeab633a6a9877a7a6 Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Mon, 10 Jul 2023 11:47:29 +0800
 Subject: [PATCH 1020/1044] mtk: wifi: mt76: mt7996: add support spatial reuse
@@ -27,10 +27,10 @@
  7 files changed, 270 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 5f41fc16..63c2ef10 100644
+index 062268d6..9edb580c 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1036,6 +1036,7 @@ enum {
+@@ -1040,6 +1040,7 @@ enum {
  	MCU_UNI_EVENT_BSS_BEACON_LOSS = 0x0c,
  	MCU_UNI_EVENT_SCAN_DONE = 0x0e,
  	MCU_UNI_EVENT_RDD_REPORT = 0x11,
@@ -39,7 +39,7 @@
  	MCU_UNI_EVENT_TX_DONE = 0x2d,
  	MCU_UNI_EVENT_BF = 0x33,
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 2042edd6..c1776aeb 100644
+index 478ca7ce..9ca37e1e 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -6,6 +6,9 @@
@@ -63,7 +63,7 @@
  					   !dev->dbg.sku_disable);
  #else
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 78571034..7781c149 100644
+index 60b1b62c..03bab7c3 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -712,6 +712,14 @@ mt7996_mcu_uni_rx_unsolicited_event(struct mt7996_dev *dev, struct sk_buff *skb)
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1021-mtk-wifi-mt76-mt7996-Establish-BA-in-VO-queue.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1021-mtk-wifi-mt76-mt7996-Establish-BA-in-VO-queue.patch
index ee0fe4e..16e9195 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1021-mtk-wifi-mt76-mt7996-Establish-BA-in-VO-queue.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1021-mtk-wifi-mt76-mt7996-Establish-BA-in-VO-queue.patch
@@ -1,4 +1,4 @@
-From a3ffaab9ec8b6e38ca624bf92cc52fae318783d5 Mon Sep 17 00:00:00 2001
+From 14177254874d5d9ad7b1e2a04a53481f90d89dc9 Mon Sep 17 00:00:00 2001
 From: MeiChia Chiu <meichia.chiu@mediatek.com>
 Date: Tue, 1 Aug 2023 16:02:28 +0800
 Subject: [PATCH 1021/1044] mtk: wifi: mt76: mt7996: Establish BA in VO queue
@@ -8,7 +8,7 @@
  1 file changed, 2 deletions(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index b92d7fe9..618c1f40 100644
+index 75657786..b3762728 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -1032,8 +1032,6 @@ mt7996_tx_check_aggr(struct ieee80211_sta *sta, struct sk_buff *skb)
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1022-mtk-wifi-mt76-mt7996-add-eagle-iFEM-HWITS-ZWDFS-SW-w.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1022-mtk-wifi-mt76-mt7996-add-eagle-iFEM-HWITS-ZWDFS-SW-w.patch
index e66e0ac..045f81b 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1022-mtk-wifi-mt76-mt7996-add-eagle-iFEM-HWITS-ZWDFS-SW-w.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1022-mtk-wifi-mt76-mt7996-add-eagle-iFEM-HWITS-ZWDFS-SW-w.patch
@@ -1,4 +1,4 @@
-From 4bb174a32af42be0c3f23f302bb829a10b1dfb85 Mon Sep 17 00:00:00 2001
+From 6abdd9bb051eb9791465c19f5e0c0631627a4a86 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Wed, 5 Jul 2023 10:00:17 +0800
 Subject: [PATCH 1022/1044] mtk: wifi: mt76: mt7996: add eagle iFEM HWITS ZWDFS
@@ -16,7 +16,7 @@
  3 files changed, 68 insertions(+), 5 deletions(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index c1776aeb..17b29aef 100644
+index 9ca37e1e..99bc975e 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -1431,6 +1431,62 @@ mt7996_twt_teardown_request(struct ieee80211_hw *hw,
@@ -119,7 +119,7 @@
  		goto out;
  
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 7781c149..fff5a826 100644
+index 03bab7c3..17ff251a 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -369,12 +369,14 @@ mt7996_mcu_rx_radar_detected(struct mt7996_dev *dev, struct sk_buff *skb)
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1023-mtk-wifi-mt76-mt7996-report-tx-and-rx-byte-to-tpt_le.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1023-mtk-wifi-mt76-mt7996-report-tx-and-rx-byte-to-tpt_le.patch
index 57bd776..9ccd366 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1023-mtk-wifi-mt76-mt7996-report-tx-and-rx-byte-to-tpt_le.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1023-mtk-wifi-mt76-mt7996-report-tx-and-rx-byte-to-tpt_le.patch
@@ -1,4 +1,4 @@
-From f3ed6cebb20914e0f0417f180fb0bff1fd1a73e2 Mon Sep 17 00:00:00 2001
+From a7339ec6678cf02b9efae478bfa82d72612bf404 Mon Sep 17 00:00:00 2001
 From: Yi-Chia Hsieh <yi-chia.hsieh@mediatek.com>
 Date: Sat, 12 Aug 2023 04:17:22 +0800
 Subject: [PATCH 1023/1044] mtk: wifi: mt76: mt7996: report tx and rx byte to
@@ -9,7 +9,7 @@
  1 file changed, 11 insertions(+), 4 deletions(-)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index fff5a826..5c695669 100644
+index 17ff251a..9a3d0f3c 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -522,6 +522,8 @@ mt7996_mcu_rx_all_sta_info_event(struct mt7996_dev *dev, struct sk_buff *skb)
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1024-mtk-wifi-mt76-mt7996-support-dup-wtbl.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1024-mtk-wifi-mt76-mt7996-support-dup-wtbl.patch
index 77d4d6f..17aa675 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1024-mtk-wifi-mt76-mt7996-support-dup-wtbl.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1024-mtk-wifi-mt76-mt7996-support-dup-wtbl.patch
@@ -1,4 +1,4 @@
-From 9932a8833f86351759e9a985cae1a3c86a1d0b1d Mon Sep 17 00:00:00 2001
+From 7144f4b79987def2a64949b44c0f7250062a6d77 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Thu, 21 Sep 2023 00:52:46 +0800
 Subject: [PATCH 1024/1044] mtk: wifi: mt76: mt7996: support dup wtbl
@@ -11,7 +11,7 @@
  3 files changed, 25 insertions(+)
 
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 142a0f63..91aff836 100644
+index 1498787f..30879ec3 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
 @@ -675,6 +675,7 @@ static void mt7996_init_work(struct work_struct *work)
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1025-mtk-wifi-mt76-mt7996-add-ibf-control-vendor-cmd.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1025-mtk-wifi-mt76-mt7996-add-ibf-control-vendor-cmd.patch
index 477c786..e70b156 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1025-mtk-wifi-mt76-mt7996-add-ibf-control-vendor-cmd.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1025-mtk-wifi-mt76-mt7996-add-ibf-control-vendor-cmd.patch
@@ -1,4 +1,4 @@
-From f5758611be21fa63b3414e0746ddb5fb8b7a6700 Mon Sep 17 00:00:00 2001
+From 3826a1e88d7c7a979550040d1bcacd4358491ad2 Mon Sep 17 00:00:00 2001
 From: "Allen.Ye" <allen.ye@mediatek.com>
 Date: Fri, 22 Sep 2023 09:54:49 +0800
 Subject: [PATCH 1025/1044] mtk: wifi: mt76: mt7996: add ibf control vendor cmd
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1026-mtk-wifi-mt76-try-more-times-when-send-message-timeo.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1026-mtk-wifi-mt76-try-more-times-when-send-message-timeo.patch
index 8127bcb..401bbf1 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1026-mtk-wifi-mt76-try-more-times-when-send-message-timeo.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1026-mtk-wifi-mt76-try-more-times-when-send-message-timeo.patch
@@ -1,4 +1,4 @@
-From c5b9ecebf45799539185e75478fc0cd796d88746 Mon Sep 17 00:00:00 2001
+From a9b56c1678204b1f67af27517a95ddfaa8c99618 Mon Sep 17 00:00:00 2001
 From: Bo Jiao <Bo.Jiao@mediatek.com>
 Date: Mon, 6 Nov 2023 11:10:10 +0800
 Subject: [PATCH 1026/1044] mtk: wifi: mt76: try more times when send message
@@ -12,10 +12,10 @@
  3 files changed, 62 insertions(+), 59 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index 12f0e2fd..be8e2aaa 100644
+index 4cf2afdf..e4758e80 100644
 --- a/dma.c
 +++ b/dma.c
-@@ -506,9 +506,12 @@ mt76_dma_tx_queue_skb_raw(struct mt76_dev *dev, struct mt76_queue *q,
+@@ -504,9 +504,12 @@ mt76_dma_tx_queue_skb_raw(struct mt76_dev *dev, struct mt76_queue *q,
  {
  	struct mt76_queue_buf buf = {};
  	dma_addr_t addr;
@@ -29,7 +29,7 @@
  
  	if (q->queued + 1 >= q->ndesc - 1)
  		goto error;
-@@ -530,7 +533,7 @@ mt76_dma_tx_queue_skb_raw(struct mt76_dev *dev, struct mt76_queue *q,
+@@ -528,7 +531,7 @@ mt76_dma_tx_queue_skb_raw(struct mt76_dev *dev, struct mt76_queue *q,
  
  error:
  	dev_kfree_skb(skb);
@@ -131,10 +131,10 @@
  
  	return ret;
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 618c1f40..96627a58 100644
+index b3762728..7efe7db5 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
-@@ -1662,18 +1662,6 @@ mt7996_mac_restart(struct mt7996_dev *dev)
+@@ -1663,18 +1663,6 @@ mt7996_mac_restart(struct mt7996_dev *dev)
  			mt76_wr(dev, MT_PCIE1_MAC_INT_ENABLE, 0x0);
  	}
  
@@ -153,7 +153,7 @@
  	/* lock/unlock all queues to ensure that no tx is pending */
  	mt76_txq_schedule_all(&dev->mphy);
  	if (phy2)
-@@ -1787,13 +1775,24 @@ mt7996_mac_full_reset(struct mt7996_dev *dev)
+@@ -1788,13 +1776,24 @@ mt7996_mac_full_reset(struct mt7996_dev *dev)
  	phy3 = mt7996_phy3(dev);
  	dev->recovery.hw_full_reset = true;
  
@@ -179,7 +179,7 @@
  	cancel_work_sync(&dev->wed_rro.work);
  	cancel_delayed_work_sync(&dev->mphy.mac_work);
  	if (phy2)
-@@ -1896,16 +1895,6 @@ void mt7996_mac_reset_work(struct work_struct *work)
+@@ -1897,16 +1896,6 @@ void mt7996_mac_reset_work(struct work_struct *work)
  	set_bit(MT76_MCU_RESET, &dev->mphy.state);
  	wake_up(&dev->mt76.mcu.wait);
  
@@ -196,7 +196,7 @@
  	mt76_worker_disable(&dev->mt76.tx_worker);
  	mt76_for_each_q_rx(&dev->mt76, i) {
  		if (mtk_wed_device_active(&dev->mt76.mmio.wed) &&
-@@ -1916,8 +1905,6 @@ void mt7996_mac_reset_work(struct work_struct *work)
+@@ -1917,8 +1906,6 @@ void mt7996_mac_reset_work(struct work_struct *work)
  	}
  	napi_disable(&dev->mt76.tx_napi);
  
@@ -205,7 +205,7 @@
  	mt76_wr(dev, MT_MCU_INT_EVENT, MT_MCU_INT_EVENT_DMA_STOPPED);
  
  	if (mt7996_wait_reset_state(dev, MT_MCU_CMD_RESET_DONE)) {
-@@ -1990,20 +1977,8 @@ void mt7996_mac_reset_work(struct work_struct *work)
+@@ -1991,20 +1978,8 @@ void mt7996_mac_reset_work(struct work_struct *work)
  	if (phy3)
  		ieee80211_wake_queues(phy3->mt76->hw);
  
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1027-mtk-wifi-mt76-mt7996-add-SER-overlap-handle.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1027-mtk-wifi-mt76-mt7996-add-SER-overlap-handle.patch
index ce1378f..f4cfee6 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1027-mtk-wifi-mt76-mt7996-add-SER-overlap-handle.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1027-mtk-wifi-mt76-mt7996-add-SER-overlap-handle.patch
@@ -1,4 +1,4 @@
-From 0637936c479920fdd7e2b7539d17f30c5146a346 Mon Sep 17 00:00:00 2001
+From 8efecbd24fb7bdcaed27b5608607e6eec71a6b91 Mon Sep 17 00:00:00 2001
 From: Bo Jiao <Bo.Jiao@mediatek.com>
 Date: Tue, 21 Nov 2023 09:55:46 +0800
 Subject: [PATCH 1027/1044] mtk: wifi: mt76: mt7996: add SER overlap handle
@@ -26,10 +26,10 @@
  
  		ret = dev->mcu_ops->mcu_skb_send_msg(dev, skb_tmp, cmd, &seq);
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 96627a58..22d7dc6d 100644
+index 7efe7db5..dc806892 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
-@@ -1876,6 +1876,7 @@ void mt7996_mac_reset_work(struct work_struct *work)
+@@ -1877,6 +1877,7 @@ void mt7996_mac_reset_work(struct work_struct *work)
  	if (!(READ_ONCE(dev->recovery.state) & MT_MCU_CMD_STOP_DMA))
  		return;
  
@@ -37,7 +37,7 @@
  	dev_info(dev->mt76.dev,"\n%s L1 SER recovery start.",
  		 wiphy_name(dev->mt76.hw->wiphy));
  
-@@ -1893,6 +1894,10 @@ void mt7996_mac_reset_work(struct work_struct *work)
+@@ -1894,6 +1895,10 @@ void mt7996_mac_reset_work(struct work_struct *work)
  
  	set_bit(MT76_RESET, &dev->mphy.state);
  	set_bit(MT76_MCU_RESET, &dev->mphy.state);
@@ -48,7 +48,7 @@
  	wake_up(&dev->mt76.mcu.wait);
  
  	mt76_worker_disable(&dev->mt76.tx_worker);
-@@ -2107,6 +2112,9 @@ void mt7996_reset(struct mt7996_dev *dev)
+@@ -2108,6 +2113,9 @@ void mt7996_reset(struct mt7996_dev *dev)
  		return;
  	}
  
@@ -59,7 +59,7 @@
  	wake_up(&dev->reset_wait);
  }
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 5c695669..eda6c506 100644
+index 9a3d0f3c..d381e586 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -246,6 +246,14 @@ mt7996_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb,
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1028-mtk-wifi-mt76-mt7996-kite-default-1-pcie-setting.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1028-mtk-wifi-mt76-mt7996-kite-default-1-pcie-setting.patch
index d19d3cd..32a88fd 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1028-mtk-wifi-mt76-mt7996-kite-default-1-pcie-setting.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1028-mtk-wifi-mt76-mt7996-kite-default-1-pcie-setting.patch
@@ -1,4 +1,4 @@
-From 34597329f87f553c3f19212067f7a0c7c0265cd5 Mon Sep 17 00:00:00 2001
+From 44b06188cdb7f5f859049e85d00cf8d1ca9441cb Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Thu, 13 Jul 2023 16:36:36 +0800
 Subject: [PATCH 1028/1044] mtk: wifi: mt76: mt7996: kite default 1-pcie
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1029-mtk-wifi-mt76-mt7996-add-debugfs-knob-for-rx_counter.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1029-mtk-wifi-mt76-mt7996-add-debugfs-knob-for-rx_counter.patch
index 95e3b35..fdefbb3 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1029-mtk-wifi-mt76-mt7996-add-debugfs-knob-for-rx_counter.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1029-mtk-wifi-mt76-mt7996-add-debugfs-knob-for-rx_counter.patch
@@ -1,4 +1,4 @@
-From 97f4660009bcee136694bc1fdf376d0ffd8dc103 Mon Sep 17 00:00:00 2001
+From 92db3705c71472d0b822f9aa650ca893b55a5aaf Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Fri, 28 Apr 2023 10:39:58 +0800
 Subject: [PATCH 1029/1044] mtk: wifi: mt76: mt7996: add debugfs knob for
@@ -72,7 +72,7 @@
  	spin_lock_init(&tid->lock);
  
 diff --git a/mac80211.c b/mac80211.c
-index 87dcc8a3..45791f6e 100644
+index e7d02d15..ae040ec4 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -784,6 +784,7 @@ static void mt76_rx_release_amsdu(struct mt76_phy *phy, enum mt76_rxq_id q)
@@ -131,10 +131,10 @@
  		napi_gro_receive(napi, skb);
  	}
 diff --git a/mt76.h b/mt76.h
-index 46fbc87e..9e8848f7 100644
+index b0211879..6ace1a05 100644
 --- a/mt76.h
 +++ b/mt76.h
-@@ -422,6 +422,7 @@ struct mt76_rx_tid {
+@@ -423,6 +423,7 @@ struct mt76_rx_tid {
  	struct rcu_head rcu_head;
  
  	struct mt76_dev *dev;
@@ -142,7 +142,7 @@
  
  	spinlock_t lock;
  	struct delayed_work reorder_work;
-@@ -853,6 +854,19 @@ struct mt76_phy {
+@@ -854,6 +855,19 @@ struct mt76_phy {
  		bool al;
  		u8 pin;
  	} leds;
@@ -162,7 +162,7 @@
  };
  
  struct mt76_dev {
-@@ -958,6 +972,7 @@ struct mt76_dev {
+@@ -959,6 +973,7 @@ struct mt76_dev {
  	};
  
  	const char *bin_file_name;
@@ -171,7 +171,7 @@
  
  /* per-phy stats.  */
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 22d7dc6d..73c66e57 100644
+index dc806892..34dea859 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -469,8 +469,10 @@ mt7996_mac_fill_rx(struct mt7996_dev *dev, enum mt76_rxq_id q,
@@ -204,7 +204,7 @@
  
  	if (FIELD_GET(MT_RXD2_NORMAL_SEC_MODE, rxd2) != 0 &&
  	    !(rxd1 & (MT_RXD1_NORMAL_CLM | MT_RXD1_NORMAL_CM))) {
-@@ -1414,8 +1420,10 @@ void mt7996_queue_rx_skb(struct mt76_dev *mdev, enum mt76_rxq_id q,
+@@ -1415,8 +1421,10 @@ void mt7996_queue_rx_skb(struct mt76_dev *mdev, enum mt76_rxq_id q,
  			 struct sk_buff *skb, u32 *info)
  {
  	struct mt7996_dev *dev = container_of(mdev, struct mt7996_dev, mt76);
@@ -215,7 +215,7 @@
  	enum rx_pkt_type type;
  
  	type = le32_get_bits(rxd[0], MT_RXD0_PKT_TYPE);
-@@ -1457,6 +1465,10 @@ void mt7996_queue_rx_skb(struct mt76_dev *mdev, enum mt76_rxq_id q,
+@@ -1458,6 +1466,10 @@ void mt7996_queue_rx_skb(struct mt76_dev *mdev, enum mt76_rxq_id q,
  		}
  		fallthrough;
  	default:
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1030-mtk-wifi-mt76-mt7996-add-three-wire-pta-support.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1030-mtk-wifi-mt76-mt7996-add-three-wire-pta-support.patch
index 16ea061..cf53d31 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1030-mtk-wifi-mt76-mt7996-add-three-wire-pta-support.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1030-mtk-wifi-mt76-mt7996-add-three-wire-pta-support.patch
@@ -1,4 +1,4 @@
-From 6c341942f4c70345db030e578526c431baf05d5c Mon Sep 17 00:00:00 2001
+From aba1fe485ce5352728380c6cf90ea2ce06bf003a Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Tue, 24 Oct 2023 15:59:18 +0800
 Subject: [PATCH 1030/1044] mtk: wifi: mt76: mt7996: add three wire pta support
@@ -13,10 +13,10 @@
  3 files changed, 62 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 63c2ef10..06c8b960 100644
+index 9edb580c..a59e5a0b 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1281,6 +1281,7 @@ enum {
+@@ -1285,6 +1285,7 @@ enum {
  	MCU_UNI_CMD_PER_STA_INFO = 0x6d,
  	MCU_UNI_CMD_ALL_STA_INFO = 0x6e,
  	MCU_UNI_CMD_ASSERT_DUMP = 0x6f,
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1031-mtk-wifi-mt76-mt7996-support-BF-MIMO-debug-commands.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1031-mtk-wifi-mt76-mt7996-support-BF-MIMO-debug-commands.patch
index ef74d6b..36c36ff 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1031-mtk-wifi-mt76-mt7996-support-BF-MIMO-debug-commands.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1031-mtk-wifi-mt76-mt7996-support-BF-MIMO-debug-commands.patch
@@ -1,4 +1,4 @@
-From 00fd52c040117f402328d7e4138df14ef71524a1 Mon Sep 17 00:00:00 2001
+From 6c67be2cf87c3b74eb4b972b06c89becc4ce09b5 Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Tue, 3 Jan 2023 09:42:07 +0800
 Subject: [PATCH 1031/1044] mtk: wifi: mt76: mt7996: support BF/MIMO debug
@@ -25,7 +25,7 @@
  6 files changed, 1102 insertions(+)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index eda6c506..9f8616ea 100644
+index d381e586..da0d572c 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -741,6 +741,11 @@ mt7996_mcu_uni_rx_unsolicited_event(struct mt7996_dev *dev, struct sk_buff *skb)
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1032-mtk-wifi-mt76-mt7996-add-build-the-following-MURU-mc.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1032-mtk-wifi-mt76-mt7996-add-build-the-following-MURU-mc.patch
index 2a74748..781203d 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1032-mtk-wifi-mt76-mt7996-add-build-the-following-MURU-mc.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1032-mtk-wifi-mt76-mt7996-add-build-the-following-MURU-mc.patch
@@ -1,4 +1,4 @@
-From 89b3bd70258ed3f943c61e88288ef6f63160a579 Mon Sep 17 00:00:00 2001
+From bab0b9fcdba8bf3e0bdd1ade984df4548c5c51eb Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Tue, 13 Jun 2023 14:49:02 +0800
 Subject: [PATCH 1032/1044] mtk: wifi: mt76: mt7996: add build the following
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1033-mtk-wifi-mt76-mt7996-add-cert-patch.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1033-mtk-wifi-mt76-mt7996-add-cert-patch.patch
index 0ba5aa8..9b8a517 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1033-mtk-wifi-mt76-mt7996-add-cert-patch.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1033-mtk-wifi-mt76-mt7996-add-cert-patch.patch
@@ -1,4 +1,4 @@
-From 9c5efd0e6b30c6ceab6e0f5a0f9056cea9844785 Mon Sep 17 00:00:00 2001
+From 8d59fe0a6cddf4eacda469e0caffa698425fab77 Mon Sep 17 00:00:00 2001
 From: MeiChia Chiu <meichia.chiu@mediatek.com>
 Date: Mon, 14 Aug 2023 13:36:58 +0800
 Subject: [PATCH 1033/1044] mtk: wifi: mt76: mt7996: add cert patch
@@ -23,7 +23,7 @@
  9 files changed, 778 insertions(+), 7 deletions(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 73c66e57..27e5fb71 100644
+index 34dea859..9af94d05 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -10,6 +10,7 @@
@@ -34,7 +34,7 @@
  
  #define to_rssi(field, rcpi)	((FIELD_GET(field, rcpi) - 220) / 2)
  
-@@ -2272,6 +2273,14 @@ void mt7996_mac_update_stats(struct mt7996_phy *phy)
+@@ -2273,6 +2274,14 @@ void mt7996_mac_update_stats(struct mt7996_phy *phy)
  	}
  }
  
@@ -50,7 +50,7 @@
  {
  	struct mt7996_dev *dev = container_of(work, struct mt7996_dev, rc_work);
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 17b29aef..f4d50ec1 100644
+index 99bc975e..4a5697a3 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -588,6 +588,7 @@ mt7996_get_rates_table(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
@@ -113,10 +113,10 @@
  
  void mt7996_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 9f8616ea..7bd1221b 100644
+index da0d572c..371fd2e7 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -1359,6 +1359,10 @@ mt7996_mcu_sta_vht_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
+@@ -1346,6 +1346,10 @@ mt7996_mcu_sta_vht_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
  {
  	struct sta_rec_vht *vht;
  	struct tlv *tlv;
@@ -127,7 +127,7 @@
  
  	/* For 6G band, this tlv is necessary to let hw work normally */
  	if (!sta->deflink.he_6ghz_capa.capa && !sta->deflink.vht_cap.vht_supported)
-@@ -1370,6 +1374,9 @@ mt7996_mcu_sta_vht_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
+@@ -1357,6 +1361,9 @@ mt7996_mcu_sta_vht_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
  	vht->vht_cap = cpu_to_le32(sta->deflink.vht_cap.cap);
  	vht->vht_rx_mcs_map = sta->deflink.vht_cap.vht_mcs.rx_mcs_map;
  	vht->vht_tx_mcs_map = sta->deflink.vht_cap.vht_mcs.tx_mcs_map;
@@ -137,7 +137,7 @@
  }
  
  static void
-@@ -4460,6 +4467,27 @@ int mt7996_mcu_set_rts_thresh(struct mt7996_phy *phy, u32 val)
+@@ -4447,6 +4454,27 @@ int mt7996_mcu_set_rts_thresh(struct mt7996_phy *phy, u32 val)
  				 &req, sizeof(req), true);
  }
  
@@ -165,7 +165,7 @@
  int mt7996_mcu_set_radio_en(struct mt7996_phy *phy, bool enable)
  {
  	struct {
-@@ -4974,6 +5002,18 @@ void mt7996_set_wireless_vif(void *data, u8 *mac, struct ieee80211_vif *vif)
+@@ -4962,6 +4990,18 @@ void mt7996_set_wireless_vif(void *data, u8 *mac, struct ieee80211_vif *vif)
  	val = FIELD_GET(RATE_CFG_VAL, *((u32 *)data));
  
  	switch (mode) {
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1034-mtk-wifi-mt76-testmode-add-testmode-bf-support.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1034-mtk-wifi-mt76-testmode-add-testmode-bf-support.patch
index 6cd784f..4486e40 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1034-mtk-wifi-mt76-testmode-add-testmode-bf-support.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1034-mtk-wifi-mt76-testmode-add-testmode-bf-support.patch
@@ -1,4 +1,4 @@
-From cc8ecb9fe62c4689899d79d8c710c2756a2bf131 Mon Sep 17 00:00:00 2001
+From 044b8e77dbc476e9db82b4fe571ae71b37aef769 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Thu, 6 Apr 2023 16:40:28 +0800
 Subject: [PATCH 1034/1044] mtk: wifi: mt76: testmode: add testmode bf support
@@ -32,10 +32,10 @@
  14 files changed, 1354 insertions(+), 59 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
-index 9e8848f7..2a7b0ed9 100644
+index 6ace1a05..7d9ee018 100644
 --- a/mt76.h
 +++ b/mt76.h
-@@ -751,6 +751,11 @@ struct mt76_testmode_data {
+@@ -752,6 +752,11 @@ struct mt76_testmode_data {
  	u32 tx_time;
  	u32 tx_ipg;
  
@@ -48,7 +48,7 @@
  	bool ebf;
  
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 06c8b960..2cdd5b9c 100644
+index a59e5a0b..266ee711 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -488,7 +488,8 @@ struct sta_rec_bf {
@@ -61,7 +61,7 @@
  } __packed;
  
  struct sta_rec_bfee {
-@@ -1274,6 +1275,7 @@ enum {
+@@ -1278,6 +1279,7 @@ enum {
  	MCU_UNI_CMD_VOW = 0x37,
  	MCU_UNI_CMD_PP = 0x38,
  	MCU_UNI_CMD_FIXED_RATE_TABLE = 0x40,
@@ -70,7 +70,7 @@
  	MCU_UNI_CMD_PRECAL_RESULT = 0x47,
  	MCU_UNI_CMD_RRO = 0x57,
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 7bd1221b..5b5ddafb 100644
+index 371fd2e7..1729bb46 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -1067,7 +1067,12 @@ mt7996_mcu_bss_basic_tlv(struct sk_buff *skb,
@@ -87,7 +87,7 @@
  		return 0;
  	}
  
-@@ -4118,7 +4123,6 @@ int mt7996_mcu_set_ser(struct mt7996_dev *dev, u8 action, u8 val, u8 band)
+@@ -4105,7 +4110,6 @@ int mt7996_mcu_set_ser(struct mt7996_dev *dev, u8 action, u8 val, u8 band)
  int mt7996_mcu_set_txbf(struct mt7996_dev *dev, u8 action)
  {
  #define MT7996_BF_MAX_SIZE	sizeof(union bf_tag_tlv)
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1035-mtk-wifi-mt76-mt7996-add-zwdfs-cert-mode.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1035-mtk-wifi-mt76-mt7996-add-zwdfs-cert-mode.patch
index 9ab0aa1..19e614d 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1035-mtk-wifi-mt76-mt7996-add-zwdfs-cert-mode.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1035-mtk-wifi-mt76-mt7996-add-zwdfs-cert-mode.patch
@@ -1,4 +1,4 @@
-From 57a5dbbde09c23122671c936872b1f6fa41dcb9c Mon Sep 17 00:00:00 2001
+From f3c4b779c6d74afff2532ffc36d9a85d58ec560d Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Fri, 22 Sep 2023 12:33:06 +0800
 Subject: [PATCH 1035/1044] mtk: wifi: mt76: mt7996: add zwdfs cert mode
@@ -13,10 +13,10 @@
  5 files changed, 100 insertions(+), 12 deletions(-)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 5b5ddafb..69718654 100644
+index 1729bb46..f3faa42e 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -4516,18 +4516,7 @@ int mt7996_mcu_set_radio_en(struct mt7996_phy *phy, bool enable)
+@@ -4503,18 +4503,7 @@ int mt7996_mcu_set_radio_en(struct mt7996_phy *phy, bool enable)
  int mt7996_mcu_rdd_cmd(struct mt7996_dev *dev, int cmd, u8 index,
  		       u8 rx_sel, u8 val)
  {
@@ -36,7 +36,7 @@
  		.tag = cpu_to_le16(UNI_RDD_CTRL_PARM),
  		.len = cpu_to_le16(sizeof(req) - 4),
  		.ctrl = cmd,
-@@ -4540,6 +4529,37 @@ int mt7996_mcu_rdd_cmd(struct mt7996_dev *dev, int cmd, u8 index,
+@@ -4527,6 +4516,37 @@ int mt7996_mcu_rdd_cmd(struct mt7996_dev *dev, int cmd, u8 index,
  				 &req, sizeof(req), true);
  }
  
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1036-mtk-wifi-mt76-testmode-add-channel-68-96.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1036-mtk-wifi-mt76-testmode-add-channel-68-96.patch
index 8e62a9f..16d8c0d 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1036-mtk-wifi-mt76-testmode-add-channel-68-96.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1036-mtk-wifi-mt76-testmode-add-channel-68-96.patch
@@ -1,4 +1,4 @@
-From 5fcaa5849033b9d2712f05796a6187d4dca7d9d1 Mon Sep 17 00:00:00 2001
+From 0f71e327905eedf26c651a683e9e9b8f27344d84 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Mon, 11 Sep 2023 14:43:07 +0800
 Subject: [PATCH 1036/1044] mtk: wifi: mt76: testmode: add channel 68 & 96
@@ -24,7 +24,7 @@
  6 files changed, 82 insertions(+), 9 deletions(-)
 
 diff --git a/mac80211.c b/mac80211.c
-index 45791f6e..f74f6e85 100644
+index ae040ec4..f7cd47f9 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -35,6 +35,15 @@ static const struct ieee80211_channel mt76_channels_5ghz[] = {
@@ -138,10 +138,10 @@
  extern const u32 dpd_5g_bw160_ch_num;
  extern const struct ieee80211_channel dpd_6g_ch_list_bw160[];
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 69718654..528cbd55 100644
+index f3faa42e..cb185ff9 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -3790,7 +3790,8 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
+@@ -3777,7 +3777,8 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
  		chan_list_size = mphy->sband_5g.sband.n_channels;
  		base_offset += dpd_size_2g;
  		if (bw == NL80211_CHAN_WIDTH_160) {
@@ -151,7 +151,7 @@
  			per_chan_size = DPD_PER_CH_GT_BW20_SIZE;
  			cal_id = RF_DPD_FLAT_5G_MEM_CAL;
  			chan_list = dpd_5g_ch_list_bw160;
-@@ -3799,6 +3800,9 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
+@@ -3786,6 +3787,9 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
  			/* apply (center channel - 2)'s dpd cal data for bw 40/80 channels */
  			channel -= 2;
  		}
@@ -161,7 +161,7 @@
  		break;
  	case NL80211_BAND_6GHZ:
  		dpd_mask = MT_EE_WIFI_CAL_DPD_6G;
-@@ -3838,6 +3842,10 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
+@@ -3825,6 +3829,10 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
  	if (idx == chan_list_size)
  		return -EINVAL;
  
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1037-mtk-wifi-mt76-mt7996-support-enable-disable-pp-featu.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1037-mtk-wifi-mt76-mt7996-support-enable-disable-pp-featu.patch
index 7490f63..f663f2f 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1037-mtk-wifi-mt76-mt7996-support-enable-disable-pp-featu.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1037-mtk-wifi-mt76-mt7996-support-enable-disable-pp-featu.patch
@@ -1,4 +1,4 @@
-From 0f6012b3256bebe0483d70b669d4f3164900ac5f Mon Sep 17 00:00:00 2001
+From 0b7c164634820842ce1d64057328d3eca657e4bd Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Mon, 25 Sep 2023 19:20:49 +0800
 Subject: [PATCH 1037/1044] mtk: wifi: mt76: mt7996: support enable/disable pp
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1038-mtk-wifi-mt76-testmode-add-kite-testmode-support.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1038-mtk-wifi-mt76-testmode-add-kite-testmode-support.patch
index e34ed82..a02940e 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1038-mtk-wifi-mt76-testmode-add-kite-testmode-support.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1038-mtk-wifi-mt76-testmode-add-kite-testmode-support.patch
@@ -1,4 +1,4 @@
-From ffcb108d99e2a14c8099cd766c89e59a83d44617 Mon Sep 17 00:00:00 2001
+From de9931f5a5ad72925811312b069170ef0ab5e763 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Thu, 12 Oct 2023 16:17:33 +0800
 Subject: [PATCH 1038/1044] mtk: wifi: mt76: testmode: add kite testmode
@@ -211,10 +211,10 @@
  #define RF_DPD_FLAT_CAL				BIT(28)
  #define RF_PRE_CAL				BIT(29)
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 528cbd55..708ec0a8 100644
+index cb185ff9..dde2a505 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -3759,13 +3759,11 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
+@@ -3746,13 +3746,11 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
  	enum nl80211_chan_width bw = chandef->width;
  	const struct ieee80211_channel *chan_list;
  	u32 cal_id, chan_list_size, base_offset = 0, offs = MT_EE_DO_PRE_CAL;
@@ -230,7 +230,7 @@
  
  	switch (band) {
  	case NL80211_BAND_2GHZ:
-@@ -3781,27 +3779,35 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
+@@ -3768,27 +3766,35 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
  			return 0;
  		cal_id = RF_DPD_FLAT_CAL;
  		chan_list = dpd_2g_ch_list_bw20;
@@ -272,7 +272,7 @@
  			return 0;
  		break;
  	case NL80211_BAND_6GHZ:
-@@ -3809,20 +3815,27 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
+@@ -3796,20 +3802,27 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
  		cal_id = RF_DPD_FLAT_6G_CAL;
  		chan_list = mphy->sband_6g.sband.channels;
  		chan_list_size = mphy->sband_6g.sband.n_channels;
@@ -305,7 +305,7 @@
  		} else if (bw > NL80211_CHAN_WIDTH_20) {
  			/* apply (center channel - 2)'s dpd cal data for bw 40/80 channels */
  			channel -= 2;
-@@ -3842,9 +3855,8 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
+@@ -3829,9 +3842,8 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
  	if (idx == chan_list_size)
  		return -EINVAL;
  
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1039-mtk-wifi-mt76-mt7996-assign-DEAUTH-to-ALTX-queue-for.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1039-mtk-wifi-mt76-mt7996-assign-DEAUTH-to-ALTX-queue-for.patch
index c01a89d..cd75989 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1039-mtk-wifi-mt76-mt7996-assign-DEAUTH-to-ALTX-queue-for.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1039-mtk-wifi-mt76-mt7996-assign-DEAUTH-to-ALTX-queue-for.patch
@@ -1,4 +1,4 @@
-From b25ddbf220a6f2098d8983877a0992ea481c6768 Mon Sep 17 00:00:00 2001
+From 9a9ccfab916669ad514ca41f84b8e76462ec9070 Mon Sep 17 00:00:00 2001
 From: Michael-CY Lee <michael-cy.lee@mediatek.com>
 Date: Tue, 14 Nov 2023 11:27:06 +0800
 Subject: [PATCH 1039/1044] mtk: wifi: mt76: mt7996: assign DEAUTH to ALTX
@@ -10,7 +10,7 @@
  1 file changed, 10 insertions(+)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 27e5fb71..408a59c5 100644
+index 9af94d05..31ec6f89 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -753,6 +753,8 @@ static void
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1040-mtk-wifi-mt76-mt7996-add-no_beacon-vendor-command-fo.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1040-mtk-wifi-mt76-mt7996-add-no_beacon-vendor-command-fo.patch
index 7eb6958..d348572 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1040-mtk-wifi-mt76-mt7996-add-no_beacon-vendor-command-fo.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1040-mtk-wifi-mt76-mt7996-add-no_beacon-vendor-command-fo.patch
@@ -1,4 +1,4 @@
-From f2db711c2a2766369d6d948ddb7aa6bf043f42e4 Mon Sep 17 00:00:00 2001
+From 139cc10423d9b2c5e5528bf45a12a54bbe265c20 Mon Sep 17 00:00:00 2001
 From: MeiChia Chiu <meichia.chiu@mediatek.com>
 Date: Wed, 22 Nov 2023 22:42:09 +0800
 Subject: [PATCH 1040/1044] mtk: wifi: mt76: mt7996: add no_beacon vendor
@@ -21,10 +21,10 @@
  4 files changed, 65 insertions(+)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 708ec0a8..ccb99c23 100644
+index dde2a505..2bcee895 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -5067,4 +5067,15 @@ void mt7996_set_wireless_vif(void *data, u8 *mac, struct ieee80211_vif *vif)
+@@ -5055,4 +5055,15 @@ void mt7996_set_wireless_vif(void *data, u8 *mac, struct ieee80211_vif *vif)
  		break;
  	}
  }
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1041-mtk-wifi-mt76-mt7996-add-adie-efuse-merge-support.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1041-mtk-wifi-mt76-mt7996-add-adie-efuse-merge-support.patch
index 8d5a86b..003aa07 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1041-mtk-wifi-mt76-mt7996-add-adie-efuse-merge-support.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1041-mtk-wifi-mt76-mt7996-add-adie-efuse-merge-support.patch
@@ -1,4 +1,4 @@
-From ff7edd501bafec382f5e4a4b6abb791bef3cd0c9 Mon Sep 17 00:00:00 2001
+From 7de1a3bf90d697b5b7672c605fab6cd789128b5e Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Fri, 24 Nov 2023 09:49:08 +0800
 Subject: [PATCH 1041/1044] mtk: wifi: mt76: mt7996: add adie efuse merge
@@ -6,13 +6,74 @@
 
 Merge adie-dependent parameters in efuse into eeprom after FT.
 Note that Eagle BE14000 is not considered yet.
+Add efuse dump command.
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 ---
- mt7996/eeprom.c | 145 ++++++++++++++++++++++++++++++++++++++++++++++++
- mt7996/mcu.c    |   6 +-
- 2 files changed, 149 insertions(+), 2 deletions(-)
+ mt7996/debugfs.c |  41 ++++++++++++++
+ mt7996/eeprom.c  | 145 +++++++++++++++++++++++++++++++++++++++++++++++
+ mt7996/mcu.c     |   6 +-
+ 3 files changed, 190 insertions(+), 2 deletions(-)
 
+diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
+index 67c6bd09..bc6b5aa6 100644
+--- a/mt7996/debugfs.c
++++ b/mt7996/debugfs.c
+@@ -862,6 +862,46 @@ mt7996_rf_regval_set(void *data, u64 val)
+ DEFINE_DEBUGFS_ATTRIBUTE(fops_rf_regval, mt7996_rf_regval_get,
+ 			 mt7996_rf_regval_set, "0x%08llx\n");
+ 
++static ssize_t
++mt7996_efuse_get(struct file *file, char __user *user_buf,
++		 size_t count, loff_t *ppos)
++{
++	struct mt7996_dev *dev = file->private_data;
++	struct mt76_dev *mdev = &dev->mt76;
++	u8 *buff = mdev->otp.data;
++	int i;
++	ssize_t ret;
++	u32 block_num;
++
++	mdev->otp.size = MT7996_EEPROM_SIZE;
++	if (is_mt7996(&dev->mt76) && dev->chip_sku == MT7996_SKU_444)
++		mdev->otp.size += 3 * MT_EE_CAL_UNIT;
++
++	if (!mdev->otp.data) {
++		mdev->otp.data = devm_kzalloc(mdev->dev, mdev->otp.size, GFP_KERNEL);
++		if (!mdev->otp.data)
++			return -ENOMEM;
++
++		block_num = DIV_ROUND_UP(mdev->otp.size, MT7996_EEPROM_BLOCK_SIZE);
++		for (i = 0; i < block_num; i++) {
++			buff = mdev->otp.data + i * MT7996_EEPROM_BLOCK_SIZE;
++			ret = mt7996_mcu_get_eeprom(dev, i * MT7996_EEPROM_BLOCK_SIZE, buff);
++			if (ret)
++				continue;
++		}
++	}
++
++	ret = simple_read_from_buffer(user_buf, count, ppos, mdev->otp.data, mdev->otp.size);
++
++	return ret;
++}
++
++static const struct file_operations mt7996_efuse_ops = {
++	.read = mt7996_efuse_get,
++	.open = simple_open,
++	.llseek = default_llseek,
++};
++
+ int mt7996_init_debugfs(struct mt7996_phy *phy)
+ {
+ 	struct mt7996_dev *dev = phy->dev;
+@@ -888,6 +928,7 @@ int mt7996_init_debugfs(struct mt7996_phy *phy)
+ 	debugfs_create_devm_seqfile(dev->mt76.dev, "twt_stats", dir,
+ 				    mt7996_twt_stats);
+ 	debugfs_create_file("rf_regval", 0600, dir, dev, &fops_rf_regval);
++	debugfs_create_file("otp", 0400, dir, dev, &mt7996_efuse_ops);
+ 
+ 	if (phy->mt76->cap.has_5ghz) {
+ 		debugfs_create_u32("dfs_hw_pattern", 0400, dir,
 diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
 index 39e65010..45cbd03d 100644
 --- a/mt7996/eeprom.c
@@ -177,10 +238,10 @@
  	if (ret < 0)
  		return ret;
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index ccb99c23..6b026c73 100644
+index 2bcee895..264c6651 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -3630,7 +3630,7 @@ int mt7996_mcu_get_eeprom(struct mt7996_dev *dev, u32 offset, u8 *read_buf)
+@@ -3617,7 +3617,7 @@ int mt7996_mcu_get_eeprom(struct mt7996_dev *dev, u32 offset, u8 *read_buf)
  	};
  	struct sk_buff *skb;
  	bool valid;
@@ -189,7 +250,7 @@
  	u8 *buf = read_buf;
  
  	ret = mt76_mcu_send_and_get_msg(&dev->mt76,
-@@ -3648,11 +3648,13 @@ int mt7996_mcu_get_eeprom(struct mt7996_dev *dev, u32 offset, u8 *read_buf)
+@@ -3635,11 +3635,13 @@ int mt7996_mcu_get_eeprom(struct mt7996_dev *dev, u32 offset, u8 *read_buf)
  
  		skb_pull(skb, 48);
  		memcpy(buf, skb->data, MT7996_EEPROM_BLOCK_SIZE);
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1042-mtk-wifi-mt7996-add-Eagle-2adie-TBTC-BE14000-support.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1042-mtk-wifi-mt7996-add-Eagle-2adie-TBTC-BE14000-support.patch
index 70fae1f..8e04a22 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1042-mtk-wifi-mt7996-add-Eagle-2adie-TBTC-BE14000-support.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1042-mtk-wifi-mt7996-add-Eagle-2adie-TBTC-BE14000-support.patch
@@ -1,4 +1,4 @@
-From 3119a4b51528b7e52f301ee87286f2caa2439513 Mon Sep 17 00:00:00 2001
+From 44bfda573b977afdb916becfc8a2fa0a8d34192a Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Tue, 5 Dec 2023 16:48:33 +0800
 Subject: [PATCH 1042/1044] mtk: wifi: mt7996: add Eagle 2adie TBTC (BE14000)
@@ -85,7 +85,7 @@
  static const u32 mt7992_prek_rev[] = {
  	[GROUP_SIZE_2G] =			4 * MT_EE_CAL_UNIT,
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 91aff836..f2258541 100644
+index 30879ec3..ec90cdc7 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
 @@ -905,6 +905,12 @@ int mt7996_get_chip_sku(struct mt7996_dev *dev)
@@ -102,7 +102,7 @@
  		if (adie_comb <= 1)
  			dev->chip_sku = MT7996_SKU_444;
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 6b026c73..1232bc70 100644
+index 264c6651..ff811357 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -23,6 +23,11 @@
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1043-mtk-wifi-mt76-mt7996-add-background-radar-hw-cap-che.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1043-mtk-wifi-mt76-mt7996-add-background-radar-hw-cap-che.patch
index f1e5209..5683b3a 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1043-mtk-wifi-mt76-mt7996-add-background-radar-hw-cap-che.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1043-mtk-wifi-mt76-mt7996-add-background-radar-hw-cap-che.patch
@@ -1,4 +1,4 @@
-From c0969da768d20a041dd505bb57afe74abef989a5 Mon Sep 17 00:00:00 2001
+From fb955a0f6fbe7b30d12a1a143b9866178443ee8d Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Fri, 22 Dec 2023 17:27:10 +0800
 Subject: [PATCH 1043/1044] mtk: wifi: mt76: mt7996: add background radar hw
@@ -12,7 +12,7 @@
  3 files changed, 29 insertions(+), 3 deletions(-)
 
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index 67c6bd09..cceabf00 100644
+index bc6b5aa6..ecaa2345 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -257,6 +257,11 @@ mt7996_rdd_monitor(struct seq_file *s, void *data)
@@ -28,7 +28,7 @@
  		ret = -EINVAL;
  		goto out;
 diff --git a/mt7996/init.c b/mt7996/init.c
-index f2258541..00063e72 100644
+index ec90cdc7..20415e3c 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
 @@ -393,9 +393,10 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1044-mtk-wifi-mt76-mt7996-support-disable-muru-debug-info.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1044-mtk-wifi-mt76-mt7996-support-disable-muru-debug-info.patch
index e730237..fe4e3cf 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1044-mtk-wifi-mt76-mt7996-support-disable-muru-debug-info.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/1044-mtk-wifi-mt76-mt7996-support-disable-muru-debug-info.patch
@@ -1,4 +1,4 @@
-From d330b76bc26aadb42a30eed71e3dd739fc795352 Mon Sep 17 00:00:00 2001
+From 258008a28975b79d35e2572028653aef82490255 Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Fri, 22 Dec 2023 10:53:00 +0800
 Subject: [PATCH 1044/1044] mtk: wifi: mt76: mt7996: support disable muru debug
@@ -28,7 +28,7 @@
  2 files changed, 30 insertions(+)
 
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index cceabf00..cdd284b7 100644
+index ecaa2345..a97706f5 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -463,6 +463,9 @@ mt7996_fw_debug_muru_set(void *data)
@@ -41,9 +41,9 @@
  	for (debug = DEBUG_BSRP_STATUS; debug <= DEBUG_MEC_UPDATE_AMSDU; debug++) {
  		ret = mt7996_mcu_muru_dbg_info(dev, debug,
  					       dev->fw_debug_bin & BIT(0));
-@@ -867,6 +870,30 @@ mt7996_rf_regval_set(void *data, u64 val)
- DEFINE_DEBUGFS_ATTRIBUTE(fops_rf_regval, mt7996_rf_regval_get,
- 			 mt7996_rf_regval_set, "0x%08llx\n");
+@@ -907,6 +910,30 @@ static const struct file_operations mt7996_efuse_ops = {
+ 	.llseek = default_llseek,
+ };
  
 +static int
 +mt7996_fw_debug_muru_disable_set(void *data, u64 val)
@@ -72,7 +72,7 @@
  int mt7996_init_debugfs(struct mt7996_phy *phy)
  {
  	struct mt7996_dev *dev = phy->dev;
-@@ -902,6 +929,8 @@ int mt7996_init_debugfs(struct mt7996_phy *phy)
+@@ -943,6 +970,8 @@ int mt7996_init_debugfs(struct mt7996_phy *phy)
  		debugfs_create_devm_seqfile(dev->mt76.dev, "rdd_monitor", dir,
  					    mt7996_rdd_monitor);
  	}
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2000-mtk-wifi-mt76-revert-page_poll-for-kernel-5.4.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2000-mtk-wifi-mt76-revert-page_poll-for-kernel-5.4.patch
index 498703a..c6773a9 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2000-mtk-wifi-mt76-revert-page_poll-for-kernel-5.4.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2000-mtk-wifi-mt76-revert-page_poll-for-kernel-5.4.patch
@@ -1,21 +1,21 @@
-From 1d0368d0a7e2ebd6d5616d662aa35b9f24dfe515 Mon Sep 17 00:00:00 2001
+From a394aa81005b628630f4593661613682d514df36 Mon Sep 17 00:00:00 2001
 From: Bo Jiao <Bo.Jiao@mediatek.com>
 Date: Mon, 6 Feb 2023 19:49:22 +0800
-Subject: [PATCH 2000/2028] mtk: wifi: mt76: revert page_poll for kernel 5.4
+Subject: [PATCH 2000/2032] mtk: wifi: mt76: revert page_poll for kernel 5.4
 
 This reverts commit e8c10835cf062c577ddf426913788c39d30b4bd7.
 
 ---
- dma.c         | 86 +++++++++++++++++++++++++--------------------------
- mac80211.c    | 57 ----------------------------------
- mmio.c        | 52 ++++++++++++++++++++-----------
- mt76.h        | 22 +------------
- mt7915/main.c | 26 ++++++----------
- usb.c         | 43 +++++++++++++-------------
- 6 files changed, 110 insertions(+), 176 deletions(-)
+ dma.c         | 75 ++++++++++++++++++++++++++-------------------------
+ mac80211.c    | 57 ---------------------------------------
+ mt76.h        | 22 +--------------
+ mt7915/main.c | 26 +++++++-----------
+ usb.c         | 43 ++++++++++++++---------------
+ wed.c         | 50 ++++++++++++++++++++++------------
+ 6 files changed, 104 insertions(+), 169 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index be8e2aaa..028c2fd5 100644
+index e4758e80..d076faa1 100644
 --- a/dma.c
 +++ b/dma.c
 @@ -178,7 +178,7 @@ mt76_free_pending_rxwi(struct mt76_dev *dev)
@@ -27,7 +27,7 @@
  		kfree(t);
  	}
  	local_bh_enable();
-@@ -452,9 +452,9 @@ mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx,
+@@ -450,9 +450,9 @@ mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx,
  		if (!t)
  			return NULL;
  
@@ -40,7 +40,7 @@
  
  		buf = t->ptr;
  		t->dma_addr = 0;
-@@ -464,9 +464,9 @@ mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx,
+@@ -462,9 +462,9 @@ mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx,
  		if (drop)
  			*drop |= !!(buf1 & MT_DMA_CTL_WO_DROP);
  	} else {
@@ -53,13 +53,8 @@
  	}
  
  done:
-@@ -636,11 +636,11 @@ free_skb:
- }
- 
- static int
--mt76_dma_rx_fill(struct mt76_dev *dev, struct mt76_queue *q,
--		 bool allow_direct)
-+mt76_dma_rx_fill(struct mt76_dev *dev, struct mt76_queue *q)
+@@ -637,7 +637,8 @@ int mt76_dma_rx_fill(struct mt76_dev *dev, struct mt76_queue *q,
+ 		     bool allow_direct)
  {
  	int len = SKB_WITH_OVERHEAD(q->buf_size);
 -	int frames = 0;
@@ -68,7 +63,7 @@
  
  	if (!q->ndesc)
  		return 0;
-@@ -649,28 +649,29 @@ mt76_dma_rx_fill(struct mt76_dev *dev, struct mt76_queue *q,
+@@ -646,28 +647,29 @@ int mt76_dma_rx_fill(struct mt76_dev *dev, struct mt76_queue *q,
  
  	while (q->queued < q->ndesc - 1) {
  		struct mt76_queue_buf qbuf = {};
@@ -108,25 +103,7 @@
  			break;
  		}
  		frames++;
-@@ -714,7 +715,7 @@ int mt76_dma_wed_setup(struct mt76_dev *dev, struct mt76_queue *q, bool reset)
- 		/* WED txfree queue needs ring to be initialized before setup */
- 		q->flags = 0;
- 		mt76_dma_queue_reset(dev, q);
--		mt76_dma_rx_fill(dev, q, false);
-+		mt76_dma_rx_fill(dev, q);
- 
- 		ret = mtk_wed_device_txfree_ring_setup(q->wed, q->regs);
- 		if (!ret)
-@@ -743,7 +744,7 @@ int mt76_dma_wed_setup(struct mt76_dev *dev, struct mt76_queue *q, bool reset)
- 	case MT76_WED_RRO_Q_IND:
- 		q->flags &= ~MT_QFLAG_WED;
- 		mt76_dma_queue_reset(dev, q);
--		mt76_dma_rx_fill(dev, q, false);
-+		mt76_dma_rx_fill(dev, q);
- 		mtk_wed_device_ind_rx_ring_setup(q->wed, q->regs);
- 		break;
- 	default:
-@@ -799,10 +800,6 @@ mt76_dma_alloc_queue(struct mt76_dev *dev, struct mt76_queue *q,
+@@ -721,10 +723,6 @@ mt76_dma_alloc_queue(struct mt76_dev *dev, struct mt76_queue *q,
  	if (!q->entry)
  		return -ENOMEM;
  
@@ -134,10 +111,10 @@
 -	if (ret)
 -		return ret;
 -
- 	ret = mt76_dma_wed_setup(dev, q, false);
+ 	ret = mt76_wed_dma_setup(dev, q, false);
  	if (ret)
  		return ret;
-@@ -821,6 +818,7 @@ mt76_dma_alloc_queue(struct mt76_dev *dev, struct mt76_queue *q,
+@@ -743,6 +741,7 @@ mt76_dma_alloc_queue(struct mt76_dev *dev, struct mt76_queue *q,
  static void
  mt76_dma_rx_cleanup(struct mt76_dev *dev, struct mt76_queue *q)
  {
@@ -145,7 +122,7 @@
  	void *buf;
  	bool more;
  
-@@ -836,7 +834,7 @@ mt76_dma_rx_cleanup(struct mt76_dev *dev, struct mt76_queue *q)
+@@ -758,7 +757,7 @@ mt76_dma_rx_cleanup(struct mt76_dev *dev, struct mt76_queue *q)
  			break;
  
  		if (!mt76_queue_is_wed_rro(q))
@@ -154,7 +131,7 @@
  	} while (1);
  
  	spin_lock_bh(&q->lock);
-@@ -846,6 +844,16 @@ mt76_dma_rx_cleanup(struct mt76_dev *dev, struct mt76_queue *q)
+@@ -768,6 +767,16 @@ mt76_dma_rx_cleanup(struct mt76_dev *dev, struct mt76_queue *q)
  	}
  
  	spin_unlock_bh(&q->lock);
@@ -171,9 +148,9 @@
  }
  
  static void
-@@ -868,15 +876,10 @@ mt76_dma_rx_reset(struct mt76_dev *dev, enum mt76_rxq_id qid)
+@@ -790,15 +799,10 @@ mt76_dma_rx_reset(struct mt76_dev *dev, enum mt76_rxq_id qid)
  	/* reset WED rx queues */
- 	mt76_dma_wed_setup(dev, q, true);
+ 	mt76_wed_dma_setup(dev, q, true);
  
 -	if (mt76_queue_is_wed_tx_free(q))
 -		return;
@@ -186,12 +163,12 @@
 -	mt76_dma_rx_fill(dev, q, false);
 +	if (!mt76_queue_is_wed_tx_free(q)) {
 +		mt76_dma_sync_idx(dev, q);
-+		mt76_dma_rx_fill(dev, q);
++		mt76_dma_rx_fill(dev, q, false);
 +	}
  }
  
  static void
-@@ -893,7 +896,7 @@ mt76_add_fragment(struct mt76_dev *dev, struct mt76_queue *q, void *data,
+@@ -815,7 +819,7 @@ mt76_add_fragment(struct mt76_dev *dev, struct mt76_queue *q, void *data,
  
  		skb_add_rx_frag(skb, nr_frags, page, offset, len, q->buf_size);
  	} else {
@@ -200,7 +177,7 @@
  	}
  
  	if (more)
-@@ -968,7 +971,6 @@ mt76_dma_rx_process(struct mt76_dev *dev, struct mt76_queue *q, int budget)
+@@ -890,7 +894,6 @@ mt76_dma_rx_process(struct mt76_dev *dev, struct mt76_queue *q, int budget)
  			goto free_frag;
  
  		skb_reserve(skb, q->buf_offset);
@@ -208,7 +185,7 @@
  
  		*(u32 *)skb->cb = info;
  
-@@ -984,10 +986,10 @@ mt76_dma_rx_process(struct mt76_dev *dev, struct mt76_queue *q, int budget)
+@@ -906,7 +909,7 @@ mt76_dma_rx_process(struct mt76_dev *dev, struct mt76_queue *q, int budget)
  		continue;
  
  free_frag:
@@ -216,21 +193,8 @@
 +		skb_free_frag(data);
  	}
  
--	mt76_dma_rx_fill(dev, q, true);
-+	mt76_dma_rx_fill(dev, q);
- 	return done;
- }
- 
-@@ -1032,7 +1034,7 @@ mt76_dma_init(struct mt76_dev *dev,
- 
- 	mt76_for_each_q_rx(dev, i) {
- 		netif_napi_add(&dev->napi_dev, &dev->napi[i], poll);
--		mt76_dma_rx_fill(dev, &dev->q_rx[i], false);
-+		mt76_dma_rx_fill(dev, &dev->q_rx[i]);
- 		napi_enable(&dev->napi[i]);
- 	}
- 
-@@ -1101,8 +1103,6 @@ void mt76_dma_cleanup(struct mt76_dev *dev)
+ 	mt76_dma_rx_fill(dev, q, true);
+@@ -1009,8 +1012,6 @@ void mt76_dma_cleanup(struct mt76_dev *dev)
  
  		netif_napi_del(&dev->napi[i]);
  		mt76_dma_rx_cleanup(dev, q);
@@ -240,7 +204,7 @@
  
  	if (mtk_wed_device_active(&dev->mmio.wed))
 diff --git a/mac80211.c b/mac80211.c
-index f74f6e85..885577fc 100644
+index f7cd47f9..380a74e4 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -4,7 +4,6 @@
@@ -321,109 +285,11 @@
  enum mt76_dfs_state mt76_phy_dfs_state(struct mt76_phy *phy)
  {
  	struct ieee80211_hw *hw = phy->hw;
-diff --git a/mmio.c b/mmio.c
-index c3e0e23e..6c28e27b 100644
---- a/mmio.c
-+++ b/mmio.c
-@@ -89,8 +89,12 @@ EXPORT_SYMBOL_GPL(mt76_set_irq_mask);
- void mt76_mmio_wed_release_rx_buf(struct mtk_wed_device *wed)
- {
- 	struct mt76_dev *dev = container_of(wed, struct mt76_dev, mmio.wed);
-+	u32 length;
- 	int i;
- 
-+	length = SKB_DATA_ALIGN(NET_SKB_PAD + wed->wlan.rx_size +
-+				sizeof(struct skb_shared_info));
-+
- 	for (i = 0; i < dev->rx_token_size; i++) {
- 		struct mt76_txwi_cache *t;
- 
-@@ -98,7 +102,9 @@ void mt76_mmio_wed_release_rx_buf(struct mtk_wed_device *wed)
- 		if (!t || !t->ptr)
- 			continue;
- 
--		mt76_put_page_pool_buf(t->ptr, false);
-+		dma_unmap_single(dev->dma_dev, t->dma_addr,
-+				 wed->wlan.rx_size, DMA_FROM_DEVICE);
-+		__free_pages(virt_to_page(t->ptr), get_order(length));
- 		t->ptr = NULL;
- 
- 		mt76_put_rxwi(dev, t);
-@@ -112,33 +118,45 @@ u32 mt76_mmio_wed_init_rx_buf(struct mtk_wed_device *wed, int size)
- {
- 	struct mt76_dev *dev = container_of(wed, struct mt76_dev, mmio.wed);
- 	struct mtk_wed_bm_desc *desc = wed->rx_buf_ring.desc;
--	struct mt76_queue *q = &dev->q_rx[MT_RXQ_MAIN];
--	int i, len = SKB_WITH_OVERHEAD(q->buf_size);
--	struct mt76_txwi_cache *t = NULL;
-+	u32 length;
-+	int i;
-+
-+	length = SKB_DATA_ALIGN(NET_SKB_PAD + wed->wlan.rx_size +
-+				sizeof(struct skb_shared_info));
- 
- 	for (i = 0; i < size; i++) {
--		enum dma_data_direction dir;
-+		struct mt76_txwi_cache *t = mt76_get_rxwi(dev);
- 		dma_addr_t addr;
--		u32 offset;
-+		struct page *page;
- 		int token;
--		void *buf;
-+		void *ptr;
- 
--		t = mt76_get_rxwi(dev);
- 		if (!t)
- 			goto unmap;
- 
--		buf = mt76_get_page_pool_buf(q, &offset, q->buf_size);
--		if (!buf)
--			goto unmap;
-+		page = __dev_alloc_pages(GFP_KERNEL, get_order(length));
-+		if (!page) {
-+			mt76_put_rxwi(dev, t);
-+ 			goto unmap;
-+		}
- 
--		addr = page_pool_get_dma_addr(virt_to_head_page(buf)) + offset;
--		dir = page_pool_get_dma_dir(q->page_pool);
--		dma_sync_single_for_device(dev->dma_dev, addr, len, dir);
-+		addr = dma_map_single(dev->dma_dev, ptr,
-+					  wed->wlan.rx_size,
-+					  DMA_TO_DEVICE);
-+
-+		if (unlikely(dma_mapping_error(dev->dev, addr))) {
-+			skb_free_frag(ptr);
-+			mt76_put_rxwi(dev, t);
-+			goto unmap;
-+		}
- 
- 		desc->buf0 = cpu_to_le32(addr);
--		token = mt76_rx_token_consume(dev, buf, t, addr);
-+		token = mt76_rx_token_consume(dev, ptr, t, addr);
- 		if (token < 0) {
--			mt76_put_page_pool_buf(buf, false);
-+			dma_unmap_single(dev->dma_dev, addr,
-+					 wed->wlan.rx_size, DMA_TO_DEVICE);
-+			__free_pages(page, get_order(length));
-+			mt76_put_rxwi(dev, t);
- 			goto unmap;
- 		}
- 
-@@ -153,8 +171,6 @@ u32 mt76_mmio_wed_init_rx_buf(struct mtk_wed_device *wed, int size)
- 	return 0;
- 
- unmap:
--	if (t)
--		mt76_put_rxwi(dev, t);
- 	mt76_mmio_wed_release_rx_buf(wed);
- 
- 	return -ENOMEM;
 diff --git a/mt76.h b/mt76.h
-index 2a7b0ed9..e7b798b2 100644
+index 7d9ee018..ce4e87b4 100644
 --- a/mt76.h
 +++ b/mt76.h
-@@ -245,7 +245,7 @@ struct mt76_queue {
+@@ -246,7 +246,7 @@ struct mt76_queue {
  
  	dma_addr_t desc_dma;
  	struct sk_buff *rx_head;
@@ -432,7 +298,7 @@
  };
  
  struct mt76_mcu_ops {
-@@ -1592,7 +1592,6 @@ mt76u_bulk_msg(struct mt76_dev *dev, void *data, int len, int *actual_len,
+@@ -1601,7 +1601,6 @@ mt76u_bulk_msg(struct mt76_dev *dev, void *data, int len, int *actual_len,
  	return usb_bulk_msg(udev, pipe, data, len, actual_len, timeout);
  }
  
@@ -440,7 +306,7 @@
  void mt76_ethtool_worker(struct mt76_ethtool_worker_info *wi,
  			 struct mt76_sta_stats *stats, bool eht);
  int mt76_skb_adjust_pad(struct sk_buff *skb, int pad);
-@@ -1738,25 +1737,6 @@ void __mt76_set_tx_blocked(struct mt76_dev *dev, bool blocked);
+@@ -1747,25 +1746,6 @@ void __mt76_set_tx_blocked(struct mt76_dev *dev, bool blocked);
  struct mt76_txwi_cache *mt76_rx_token_release(struct mt76_dev *dev, int token);
  int mt76_rx_token_consume(struct mt76_dev *dev, void *ptr,
  			  struct mt76_txwi_cache *r, dma_addr_t phys);
@@ -467,7 +333,7 @@
  static inline void mt76_set_tx_blocked(struct mt76_dev *dev, bool blocked)
  {
 diff --git a/mt7915/main.c b/mt7915/main.c
-index df2d4279..a6768512 100644
+index 3709d18d..75a55955 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -1398,22 +1398,19 @@ void mt7915_get_et_strings(struct ieee80211_hw *hw,
@@ -525,7 +391,7 @@
  
  static void
 diff --git a/usb.c b/usb.c
-index 5e5c7bf5..3e281715 100644
+index 1b25f2e5..46831a27 100644
 --- a/usb.c
 +++ b/usb.c
 @@ -319,27 +319,29 @@ mt76u_set_endpoints(struct usb_interface *intf,
@@ -658,6 +524,103 @@
  }
  
  static void mt76u_free_rx(struct mt76_dev *dev)
+diff --git a/wed.c b/wed.c
+index f89e4537..8eca4d81 100644
+--- a/wed.c
++++ b/wed.c
+@@ -9,8 +9,12 @@
+ void mt76_wed_release_rx_buf(struct mtk_wed_device *wed)
+ {
+ 	struct mt76_dev *dev = container_of(wed, struct mt76_dev, mmio.wed);
++	u32 length;
+ 	int i;
+ 
++	length = SKB_DATA_ALIGN(NET_SKB_PAD + wed->wlan.rx_size +
++				sizeof(struct skb_shared_info));
++
+ 	for (i = 0; i < dev->rx_token_size; i++) {
+ 		struct mt76_txwi_cache *t;
+ 
+@@ -18,7 +22,9 @@ void mt76_wed_release_rx_buf(struct mtk_wed_device *wed)
+ 		if (!t || !t->ptr)
+ 			continue;
+ 
+-		mt76_put_page_pool_buf(t->ptr, false);
++		dma_unmap_single(dev->dma_dev, t->dma_addr,
++				 wed->wlan.rx_size, DMA_FROM_DEVICE);
++		__free_pages(virt_to_page(t->ptr), get_order(length));
+ 		t->ptr = NULL;
+ 
+ 		mt76_put_rxwi(dev, t);
+@@ -33,33 +39,45 @@ u32 mt76_wed_init_rx_buf(struct mtk_wed_device *wed, int size)
+ {
+ 	struct mt76_dev *dev = container_of(wed, struct mt76_dev, mmio.wed);
+ 	struct mtk_wed_bm_desc *desc = wed->rx_buf_ring.desc;
+-	struct mt76_queue *q = &dev->q_rx[MT_RXQ_MAIN];
+-	int i, len = SKB_WITH_OVERHEAD(q->buf_size);
+-	struct mt76_txwi_cache *t = NULL;
++	u32 length;
++	int i;
++
++	length = SKB_DATA_ALIGN(NET_SKB_PAD + wed->wlan.rx_size +
++				sizeof(struct skb_shared_info));
+ 
+ 	for (i = 0; i < size; i++) {
+-		enum dma_data_direction dir;
++		struct mt76_txwi_cache *t = mt76_get_rxwi(dev);
+ 		dma_addr_t addr;
+-		u32 offset;
++		struct page *page;
+ 		int token;
+-		void *buf;
++		void *ptr;
+ 
+-		t = mt76_get_rxwi(dev);
+ 		if (!t)
+ 			goto unmap;
+ 
+-		buf = mt76_get_page_pool_buf(q, &offset, q->buf_size);
+-		if (!buf)
++		page = __dev_alloc_pages(GFP_KERNEL, get_order(length));
++		if (!page) {
++			mt76_put_rxwi(dev, t);
+ 			goto unmap;
++		}
+ 
+-		addr = page_pool_get_dma_addr(virt_to_head_page(buf)) + offset;
+-		dir = page_pool_get_dma_dir(q->page_pool);
+-		dma_sync_single_for_device(dev->dma_dev, addr, len, dir);
++		addr = dma_map_single(dev->dma_dev, ptr,
++					  wed->wlan.rx_size,
++					  DMA_TO_DEVICE);
++
++		if (unlikely(dma_mapping_error(dev->dev, addr))) {
++			skb_free_frag(ptr);
++			mt76_put_rxwi(dev, t);
++			goto unmap;
++		}
+ 
+ 		desc->buf0 = cpu_to_le32(addr);
+-		token = mt76_rx_token_consume(dev, buf, t, addr);
++		token = mt76_rx_token_consume(dev, ptr, t, addr);
+ 		if (token < 0) {
+-			mt76_put_page_pool_buf(buf, false);
++			dma_unmap_single(dev->dma_dev, addr,
++					 wed->wlan.rx_size, DMA_TO_DEVICE);
++			__free_pages(page, get_order(length));
++			mt76_put_rxwi(dev, t);
+ 			goto unmap;
+ 		}
+ 
+@@ -74,8 +92,6 @@ u32 mt76_wed_init_rx_buf(struct mtk_wed_device *wed, int size)
+ 	return 0;
+ 
+ unmap:
+-	if (t)
+-		mt76_put_rxwi(dev, t);
+ 	mt76_wed_release_rx_buf(wed);
+ 
+ 	return -ENOMEM;
 -- 
 2.18.0
 
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2001-mtk-wifi-mt76-rework-wed-rx-flow.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2001-mtk-wifi-mt76-rework-wed-rx-flow.patch
index 5fcc869..f413ca1 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2001-mtk-wifi-mt76-rework-wed-rx-flow.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2001-mtk-wifi-mt76-rework-wed-rx-flow.patch
@@ -1,21 +1,21 @@
-From 13cfb73b1070b1c2beb7cac43a18bba1ab364f14 Mon Sep 17 00:00:00 2001
+From 2b103fe6990bafb386d6f036068ad35713903817 Mon Sep 17 00:00:00 2001
 From: Bo Jiao <Bo.Jiao@mediatek.com>
 Date: Mon, 6 Feb 2023 13:37:23 +0800
-Subject: [PATCH 2001/2028] mtk: wifi: mt76: rework wed rx flow
+Subject: [PATCH 2001/2032] mtk: wifi: mt76: rework wed rx flow
 
 Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com>
 ---
  dma.c           | 125 +++++++++++++++++++++++++++++++-----------------
  mac80211.c      |   2 +-
- mmio.c          |  57 ++++++++++++++--------
  mt76.h          |  25 ++++++----
  mt7915/mmio.c   |   3 +-
  mt7915/mt7915.h |   1 +
  tx.c            |  16 +++----
+ wed.c           |  57 ++++++++++++++--------
  7 files changed, 144 insertions(+), 85 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index 028c2fd5..16cb23b4 100644
+index d076faa1..f4ecd117 100644
 --- a/dma.c
 +++ b/dma.c
 @@ -64,17 +64,17 @@ mt76_alloc_txwi(struct mt76_dev *dev)
@@ -127,7 +127,7 @@
  	}
  	local_bh_enable();
  }
-@@ -227,10 +227,10 @@ mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q)
+@@ -225,10 +225,10 @@ void mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q)
  
  static int
  mt76_dma_add_rx_buf(struct mt76_dev *dev, struct mt76_queue *q,
@@ -140,7 +140,7 @@
  	struct mt76_desc *desc;
  	int idx = q->head;
  	u32 buf1 = 0, ctrl;
-@@ -251,13 +251,15 @@ mt76_dma_add_rx_buf(struct mt76_dev *dev, struct mt76_queue *q,
+@@ -249,13 +249,15 @@ mt76_dma_add_rx_buf(struct mt76_dev *dev, struct mt76_queue *q,
  #endif
  
  	if (mt76_queue_is_wed_rx(q)) {
@@ -161,7 +161,7 @@
  			return -ENOMEM;
  		}
  
-@@ -273,7 +275,7 @@ mt76_dma_add_rx_buf(struct mt76_dev *dev, struct mt76_queue *q,
+@@ -271,7 +273,7 @@ mt76_dma_add_rx_buf(struct mt76_dev *dev, struct mt76_queue *q,
  done:
  	entry->dma_addr[0] = buf->addr;
  	entry->dma_len[0] = buf->len;
@@ -170,7 +170,7 @@
  	entry->buf = data;
  	entry->wcid = 0xffff;
  	entry->skip_buf1 = true;
-@@ -422,7 +424,7 @@ mt76_dma_tx_cleanup(struct mt76_dev *dev, struct mt76_queue *q, bool flush)
+@@ -420,7 +422,7 @@ mt76_dma_tx_cleanup(struct mt76_dev *dev, struct mt76_queue *q, bool flush)
  
  static void *
  mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx,
@@ -179,7 +179,7 @@
  {
  	struct mt76_queue_entry *e = &q->entry[idx];
  	struct mt76_desc *desc = &q->desc[idx];
-@@ -447,20 +449,53 @@ mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx,
+@@ -445,20 +447,53 @@ mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx,
  
  	if (mt76_queue_is_wed_rx(q)) {
  		u32 token = FIELD_GET(MT_DMA_CTL_TOKEN, buf1);
@@ -240,7 +240,7 @@
  		if (drop)
  			*drop |= !!(buf1 & MT_DMA_CTL_WO_DROP);
  	} else {
-@@ -497,7 +532,7 @@ mt76_dma_dequeue(struct mt76_dev *dev, struct mt76_queue *q, bool flush,
+@@ -495,7 +530,7 @@ mt76_dma_dequeue(struct mt76_dev *dev, struct mt76_queue *q, bool flush,
  	q->tail = (q->tail + 1) % q->ndesc;
  	q->queued--;
  
@@ -249,7 +249,7 @@
  }
  
  static int
-@@ -668,7 +703,7 @@ mt76_dma_rx_fill(struct mt76_dev *dev, struct mt76_queue *q)
+@@ -666,7 +701,7 @@ int mt76_dma_rx_fill(struct mt76_dev *dev, struct mt76_queue *q,
  done:
  		qbuf.len = len - offset;
  		qbuf.skip_unmap = false;
@@ -259,7 +259,7 @@
  					 DMA_FROM_DEVICE);
  			skb_free_frag(buf);
 diff --git a/mac80211.c b/mac80211.c
-index 885577fc..ff5f4853 100644
+index 380a74e4..91e771d3 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -595,7 +595,6 @@ mt76_alloc_device(struct device *pdev, unsigned int size,
@@ -278,115 +278,8 @@
  
  	for (i = 0; i < ARRAY_SIZE(dev->q_rx); i++)
  		skb_queue_head_init(&dev->rx_skb[i]);
-diff --git a/mmio.c b/mmio.c
-index 6c28e27b..b792a7bd 100644
---- a/mmio.c
-+++ b/mmio.c
-@@ -89,28 +89,45 @@ EXPORT_SYMBOL_GPL(mt76_set_irq_mask);
- void mt76_mmio_wed_release_rx_buf(struct mtk_wed_device *wed)
- {
- 	struct mt76_dev *dev = container_of(wed, struct mt76_dev, mmio.wed);
--	u32 length;
-+	struct page *page;
- 	int i;
- 
--	length = SKB_DATA_ALIGN(NET_SKB_PAD + wed->wlan.rx_size +
--				sizeof(struct skb_shared_info));
--
- 	for (i = 0; i < dev->rx_token_size; i++) {
--		struct mt76_txwi_cache *t;
-+		struct mt76_rxwi_cache *r;
- 
--		t = mt76_rx_token_release(dev, i);
--		if (!t || !t->ptr)
-+		r = mt76_rx_token_release(dev, i);
-+		if (!r || !r->ptr)
- 			continue;
- 
--		dma_unmap_single(dev->dma_dev, t->dma_addr,
-+		dma_unmap_single(dev->dma_dev, r->dma_addr,
- 				 wed->wlan.rx_size, DMA_FROM_DEVICE);
--		__free_pages(virt_to_page(t->ptr), get_order(length));
--		t->ptr = NULL;
-+		skb_free_frag(r->ptr);
-+		r->ptr = NULL;
- 
--		mt76_put_rxwi(dev, t);
-+		mt76_put_rxwi(dev, r);
- 	}
- 
- 	mt76_free_pending_rxwi(dev);
-+
-+	mt76_for_each_q_rx(dev, i) {
-+		struct mt76_queue *q = &dev->q_rx[i];
-+
-+		if (mt76_queue_is_wed_rx(q)) {
-+			if (!q->rx_page.va)
-+				continue;
-+
-+			page = virt_to_page(q->rx_page.va);
-+			__page_frag_cache_drain(page, q->rx_page.pagecnt_bias);
-+			memset(&q->rx_page, 0, sizeof(q->rx_page));
-+		}
-+	}
-+
-+	if (!wed->rx_buf_ring.rx_page.va)
-+		return;
-+
-+	page = virt_to_page(wed->rx_buf_ring.rx_page.va);
-+	__page_frag_cache_drain(page, wed->rx_buf_ring.rx_page.pagecnt_bias);
-+	memset(&wed->rx_buf_ring.rx_page, 0, sizeof(wed->rx_buf_ring.rx_page));
- }
- EXPORT_SYMBOL_GPL(mt76_mmio_wed_release_rx_buf);
- 
-@@ -125,18 +142,18 @@ u32 mt76_mmio_wed_init_rx_buf(struct mtk_wed_device *wed, int size)
- 				sizeof(struct skb_shared_info));
- 
- 	for (i = 0; i < size; i++) {
--		struct mt76_txwi_cache *t = mt76_get_rxwi(dev);
-+		struct mt76_rxwi_cache *r = mt76_get_rxwi(dev);
- 		dma_addr_t addr;
- 		struct page *page;
- 		int token;
- 		void *ptr;
- 
--		if (!t)
-+		if (!r)
- 			goto unmap;
- 
--		page = __dev_alloc_pages(GFP_KERNEL, get_order(length));
--		if (!page) {
--			mt76_put_rxwi(dev, t);
-+		ptr = page_frag_alloc(&wed->rx_buf_ring.rx_page, length, GFP_ATOMIC);
-+		if (!ptr) {
-+			mt76_put_rxwi(dev, r);
-  			goto unmap;
- 		}
- 
-@@ -146,17 +163,17 @@ u32 mt76_mmio_wed_init_rx_buf(struct mtk_wed_device *wed, int size)
- 
- 		if (unlikely(dma_mapping_error(dev->dev, addr))) {
- 			skb_free_frag(ptr);
--			mt76_put_rxwi(dev, t);
-+			mt76_put_rxwi(dev, r);
- 			goto unmap;
- 		}
- 
- 		desc->buf0 = cpu_to_le32(addr);
--		token = mt76_rx_token_consume(dev, ptr, t, addr);
-+		token = mt76_rx_token_consume(dev, ptr, r, addr);
- 		if (token < 0) {
- 			dma_unmap_single(dev->dma_dev, addr,
- 					 wed->wlan.rx_size, DMA_TO_DEVICE);
--			__free_pages(page, get_order(length));
--			mt76_put_rxwi(dev, t);
-+			skb_free_frag(ptr);
-+			mt76_put_rxwi(dev, r);
- 			goto unmap;
- 		}
- 
 diff --git a/mt76.h b/mt76.h
-index e7b798b2..17b39179 100644
+index ce4e87b4..59cf6a16 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -200,6 +200,7 @@ struct mt76_queue_entry {
@@ -397,7 +290,7 @@
  		struct urb *urb;
  		int buf_sz;
  	};
-@@ -410,12 +411,16 @@ struct mt76_txwi_cache {
+@@ -411,12 +412,16 @@ struct mt76_txwi_cache {
  	struct list_head list;
  	dma_addr_t dma_addr;
  
@@ -419,7 +312,7 @@
  };
  
  struct mt76_rx_tid {
-@@ -503,6 +508,7 @@ struct mt76_driver_ops {
+@@ -504,6 +509,7 @@ struct mt76_driver_ops {
  	u16 txwi_size;
  	u16 token_size;
  	u8 mcs_rates;
@@ -427,7 +320,7 @@
  
  	void (*update_survey)(struct mt76_phy *phy);
  
-@@ -880,7 +886,6 @@ struct mt76_dev {
+@@ -881,7 +887,6 @@ struct mt76_dev {
  
  	struct ieee80211_hw *hw;
  
@@ -435,7 +328,7 @@
  	spinlock_t lock;
  	spinlock_t cc_lock;
  
-@@ -1547,8 +1552,8 @@ mt76_tx_status_get_hw(struct mt76_dev *dev, struct sk_buff *skb)
+@@ -1563,8 +1568,8 @@ mt76_tx_status_get_hw(struct mt76_dev *dev, struct sk_buff *skb)
  }
  
  void mt76_put_txwi(struct mt76_dev *dev, struct mt76_txwi_cache *t);
@@ -446,7 +339,7 @@
  void mt76_free_pending_rxwi(struct mt76_dev *dev);
  void mt76_rx_complete(struct mt76_dev *dev, struct sk_buff_head *frames,
  		      struct napi_struct *napi);
-@@ -1734,9 +1739,9 @@ struct mt76_txwi_cache *
+@@ -1743,9 +1748,9 @@ struct mt76_txwi_cache *
  mt76_token_release(struct mt76_dev *dev, int token, bool *wake);
  int mt76_token_consume(struct mt76_dev *dev, struct mt76_txwi_cache **ptxwi);
  void __mt76_set_tx_blocked(struct mt76_dev *dev, bool blocked);
@@ -459,19 +352,19 @@
  static inline void mt76_set_tx_blocked(struct mt76_dev *dev, bool blocked)
  {
 diff --git a/mt7915/mmio.c b/mt7915/mmio.c
-index aff4f21e..9657636e 100644
+index 6004d64f..5938bd9f 100644
 --- a/mt7915/mmio.c
 +++ b/mt7915/mmio.c
-@@ -680,7 +680,7 @@ int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr,
+@@ -714,7 +714,7 @@ int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr,
  	wed->wlan.reset = mt7915_mmio_wed_reset;
- 	wed->wlan.reset_complete = mt76_mmio_wed_reset_complete;
+ 	wed->wlan.reset_complete = mt76_wed_reset_complete;
  
 -	dev->mt76.rx_token_size = wed->wlan.rx_npkt;
 +	dev->mt76.rx_token_size += wed->wlan.rx_npkt;
  
  	if (mtk_wed_device_attach(wed))
  		return 0;
-@@ -886,6 +886,7 @@ struct mt7915_dev *mt7915_mmio_probe(struct device *pdev,
+@@ -921,6 +921,7 @@ struct mt7915_dev *mt7915_mmio_probe(struct device *pdev,
  				SURVEY_INFO_TIME_RX |
  				SURVEY_INFO_TIME_BSS_RX,
  		.token_size = MT7915_TOKEN_SIZE,
@@ -480,7 +373,7 @@
  		.tx_complete_skb = mt76_connac_tx_complete_skb,
  		.rx_skb = mt7915_queue_rx_skb,
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 4727d9c7..ec224b46 100644
+index 6e79bc65..e5a86759 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -62,6 +62,7 @@
@@ -536,6 +429,113 @@
 +	return r;
  }
  EXPORT_SYMBOL_GPL(mt76_rx_token_release);
+diff --git a/wed.c b/wed.c
+index 8eca4d81..0a0b5c05 100644
+--- a/wed.c
++++ b/wed.c
+@@ -9,28 +9,45 @@
+ void mt76_wed_release_rx_buf(struct mtk_wed_device *wed)
+ {
+ 	struct mt76_dev *dev = container_of(wed, struct mt76_dev, mmio.wed);
+-	u32 length;
++	struct page *page;
+ 	int i;
+ 
+-	length = SKB_DATA_ALIGN(NET_SKB_PAD + wed->wlan.rx_size +
+-				sizeof(struct skb_shared_info));
+-
+ 	for (i = 0; i < dev->rx_token_size; i++) {
+-		struct mt76_txwi_cache *t;
++		struct mt76_rxwi_cache *r;
+ 
+-		t = mt76_rx_token_release(dev, i);
+-		if (!t || !t->ptr)
++		r = mt76_rx_token_release(dev, i);
++		if (!r || !r->ptr)
+ 			continue;
+ 
+-		dma_unmap_single(dev->dma_dev, t->dma_addr,
++		dma_unmap_single(dev->dma_dev, r->dma_addr,
+ 				 wed->wlan.rx_size, DMA_FROM_DEVICE);
+-		__free_pages(virt_to_page(t->ptr), get_order(length));
+-		t->ptr = NULL;
++		skb_free_frag(r->ptr);
++		r->ptr = NULL;
+ 
+-		mt76_put_rxwi(dev, t);
++		mt76_put_rxwi(dev, r);
+ 	}
+ 
+ 	mt76_free_pending_rxwi(dev);
++
++	mt76_for_each_q_rx(dev, i) {
++		struct mt76_queue *q = &dev->q_rx[i];
++
++		if (mt76_queue_is_wed_rx(q)) {
++			if (!q->rx_page.va)
++				continue;
++
++			page = virt_to_page(q->rx_page.va);
++			__page_frag_cache_drain(page, q->rx_page.pagecnt_bias);
++			memset(&q->rx_page, 0, sizeof(q->rx_page));
++		}
++	}
++
++	if (!wed->rx_buf_ring.rx_page.va)
++		return;
++
++	page = virt_to_page(wed->rx_buf_ring.rx_page.va);
++	__page_frag_cache_drain(page, wed->rx_buf_ring.rx_page.pagecnt_bias);
++	memset(&wed->rx_buf_ring.rx_page, 0, sizeof(wed->rx_buf_ring.rx_page));
+ }
+ EXPORT_SYMBOL_GPL(mt76_wed_release_rx_buf);
+ 
+@@ -46,18 +63,18 @@ u32 mt76_wed_init_rx_buf(struct mtk_wed_device *wed, int size)
+ 				sizeof(struct skb_shared_info));
+ 
+ 	for (i = 0; i < size; i++) {
+-		struct mt76_txwi_cache *t = mt76_get_rxwi(dev);
++		struct mt76_rxwi_cache *r = mt76_get_rxwi(dev);
+ 		dma_addr_t addr;
+ 		struct page *page;
+ 		int token;
+ 		void *ptr;
+ 
+-		if (!t)
++		if (!r)
+ 			goto unmap;
+ 
+-		page = __dev_alloc_pages(GFP_KERNEL, get_order(length));
+-		if (!page) {
+-			mt76_put_rxwi(dev, t);
++		ptr = page_frag_alloc(&wed->rx_buf_ring.rx_page, length, GFP_ATOMIC);
++		if (!ptr) {
++			mt76_put_rxwi(dev, r);
+ 			goto unmap;
+ 		}
+ 
+@@ -67,17 +84,17 @@ u32 mt76_wed_init_rx_buf(struct mtk_wed_device *wed, int size)
+ 
+ 		if (unlikely(dma_mapping_error(dev->dev, addr))) {
+ 			skb_free_frag(ptr);
+-			mt76_put_rxwi(dev, t);
++			mt76_put_rxwi(dev, r);
+ 			goto unmap;
+ 		}
+ 
+ 		desc->buf0 = cpu_to_le32(addr);
+-		token = mt76_rx_token_consume(dev, ptr, t, addr);
++		token = mt76_rx_token_consume(dev, ptr, r, addr);
+ 		if (token < 0) {
+ 			dma_unmap_single(dev->dma_dev, addr,
+ 					 wed->wlan.rx_size, DMA_TO_DEVICE);
+-			__free_pages(page, get_order(length));
+-			mt76_put_rxwi(dev, t);
++			skb_free_frag(ptr);
++			mt76_put_rxwi(dev, r);
+ 			goto unmap;
+ 		}
+ 
 -- 
 2.18.0
 
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2002-mtk-wifi-mt76-wed-change-wed-token-init-size-to-adap.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2002-mtk-wifi-mt76-wed-change-wed-token-init-size-to-adap.patch
index 5d80a5a..1ad01a8 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2002-mtk-wifi-mt76-wed-change-wed-token-init-size-to-adap.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2002-mtk-wifi-mt76-wed-change-wed-token-init-size-to-adap.patch
@@ -1,7 +1,7 @@
-From b718316b79f5b7f7a361ca9a6ac4c6eb9c67d75a Mon Sep 17 00:00:00 2001
+From 7d98801b7316b08f29d6dac3f2459ae45196850e Mon Sep 17 00:00:00 2001
 From: "sujuan.chen" <sujuan.chen@mediatek.com>
 Date: Wed, 19 Apr 2023 17:13:41 +0800
-Subject: [PATCH 2002/2028] mtk: wifi: mt76: wed: change wed token init size to
+Subject: [PATCH 2002/2032] mtk: wifi: mt76: wed: change wed token init size to
  adapt wed3.0
 
 Signed-off-by: sujuan.chen <sujuan.chen@mediatek.com>
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2003-mtk-wifi-mt76-add-random-early-drop-support.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2003-mtk-wifi-mt76-add-random-early-drop-support.patch
index 5df456d..997ccd6 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2003-mtk-wifi-mt76-add-random-early-drop-support.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2003-mtk-wifi-mt76-add-random-early-drop-support.patch
@@ -1,7 +1,7 @@
-From 6b324ee1a5c9293c2027ac231ee4ac829e0bc766 Mon Sep 17 00:00:00 2001
+From 5bf8bbd55bc552022024ea5461bd4f30e0fddab4 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Wed, 19 Apr 2023 18:32:41 +0800
-Subject: [PATCH 2003/2028] mtk: wifi: mt76: add random early drop support
+Subject: [PATCH 2003/2032] mtk: wifi: mt76: add random early drop support
 
 ---
  mt7996/debugfs.c     |  1 +
@@ -15,7 +15,7 @@
  8 files changed, 167 insertions(+), 4 deletions(-)
 
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index cdd284b7..21bb2c5d 100644
+index a97706f5..37b36dce 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -629,6 +629,7 @@ mt7996_tx_stats_show(struct seq_file *file, void *data)
@@ -27,7 +27,7 @@
  	mt7996_txbf_stat_read_phy(phy, file);
  
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 408a59c5..a9d8f7dd 100644
+index 31ec6f89..26bed9e2 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -1176,6 +1176,13 @@ mt7996_mac_tx_free(struct mt7996_dev *dev, void *data, int len)
@@ -45,10 +45,10 @@
  		}
  
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 1232bc70..97874bb4 100644
+index ff811357..c969e4d9 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -3155,8 +3155,8 @@ int mt7996_mcu_init_firmware(struct mt7996_dev *dev)
+@@ -3142,8 +3142,8 @@ int mt7996_mcu_init_firmware(struct mt7996_dev *dev)
  	if (ret)
  		return ret;
  
@@ -59,7 +59,7 @@
  }
  
  int mt7996_mcu_init(struct mt7996_dev *dev)
-@@ -3188,6 +3188,83 @@ out:
+@@ -3175,6 +3175,83 @@ out:
  	skb_queue_purge(&dev->mt76.mcu.res_q);
  }
  
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2004-mtk-wifi-mt76-mt7996-reset-addr_elem-when-delete-ba.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2004-mtk-wifi-mt76-mt7996-reset-addr_elem-when-delete-ba.patch
index ffaf5b9..9bc1587 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2004-mtk-wifi-mt76-mt7996-reset-addr_elem-when-delete-ba.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2004-mtk-wifi-mt76-mt7996-reset-addr_elem-when-delete-ba.patch
@@ -1,7 +1,7 @@
-From 411816e1b90c216347406bc3f1c57d2affa0dee4 Mon Sep 17 00:00:00 2001
+From dca83d64aecd90492867a471db310b618b00ae0c Mon Sep 17 00:00:00 2001
 From: "sujuan.chen" <sujuan.chen@mediatek.com>
 Date: Thu, 18 May 2023 15:01:47 +0800
-Subject: [PATCH 2004/2028] mtk: wifi: mt76: mt7996: reset addr_elem when
+Subject: [PATCH 2004/2032] mtk: wifi: mt76: mt7996: reset addr_elem when
  delete ba
 
 The old addr element info may be used when the signature is not equel to
@@ -20,10 +20,10 @@
  2 files changed, 47 insertions(+)
 
 diff --git a/mt76.h b/mt76.h
-index 17b39179..2ce1e84e 100644
+index 59cf6a16..1080384b 100644
 --- a/mt76.h
 +++ b/mt76.h
-@@ -438,6 +438,7 @@ struct mt76_rx_tid {
+@@ -439,6 +439,7 @@ struct mt76_rx_tid {
  	u16 nframes;
  
  	u8 num;
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2005-mtk-wifi-mt76-wed-change-pcie0-R5-to-pcie1-to-get-6G.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2005-mtk-wifi-mt76-wed-change-pcie0-R5-to-pcie1-to-get-6G.patch
index 4232013..33076e2 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2005-mtk-wifi-mt76-wed-change-pcie0-R5-to-pcie1-to-get-6G.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2005-mtk-wifi-mt76-wed-change-pcie0-R5-to-pcie1-to-get-6G.patch
@@ -1,7 +1,7 @@
-From 2754f1c8c5d3aad42f25b86b63f322f5b6862857 Mon Sep 17 00:00:00 2001
+From 662e607bf3bbc4d5c433116d183cd5ca150525c8 Mon Sep 17 00:00:00 2001
 From: "sujuan.chen" <sujuan.chen@mediatek.com>
 Date: Fri, 6 Oct 2023 14:01:41 +0800
-Subject: [PATCH 2005/2028] mtk: wifi: mt76 : wed : change pcie0 R5 to pcie1 to
+Subject: [PATCH 2005/2032] mtk: wifi: mt76 : wed : change pcie0 R5 to pcie1 to
  get 6G ICS
 
 ---
@@ -11,10 +11,10 @@
  3 files changed, 10 insertions(+), 5 deletions(-)
 
 diff --git a/mt7996/dma.c b/mt7996/dma.c
-index 8e29ab06..40ab65f8 100644
+index 759a58e8..5d85e9ea 100644
 --- a/mt7996/dma.c
 +++ b/mt7996/dma.c
-@@ -537,6 +537,10 @@ int mt7996_dma_init(struct mt7996_dev *dev)
+@@ -538,6 +538,10 @@ int mt7996_dma_init(struct mt7996_dev *dev)
  	if (mt7996_band_valid(dev, MT_BAND2)) {
  		/* rx data queue for mt7996 band2 */
  		rx_base = MT_RXQ_RING_BASE(MT_RXQ_BAND2) + hif1_ofs;
@@ -26,7 +26,7 @@
  				       MT_RXQ_ID(MT_RXQ_BAND2),
  				       MT7996_RX_RING_SIZE,
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 00063e72..d908c795 100644
+index 20415e3c..aedf4edc 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
 @@ -638,10 +638,8 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
@@ -43,10 +43,10 @@
  
  	return 0;
 diff --git a/mt7996/mmio.c b/mt7996/mmio.c
-index d3d34f04..4814897c 100644
+index fd4d41d9..12250f9e 100644
 --- a/mt7996/mmio.c
 +++ b/mt7996/mmio.c
-@@ -532,12 +532,15 @@ static void mt7996_irq_tasklet(struct tasklet_struct *t)
+@@ -527,12 +527,15 @@ static void mt7996_irq_tasklet(struct tasklet_struct *t)
  					       dev->mt76.mmio.irqmask);
  		if (intr1 & MT_INT_RX_TXFREE_EXT)
  			napi_schedule(&dev->mt76.napi[MT_RXQ_TXFREE_BAND2]);
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2006-mtk-wifi-mt76-add-SER-support-for-wed3.0.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2006-mtk-wifi-mt76-add-SER-support-for-wed3.0.patch
index 3755b92..0eb3342 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2006-mtk-wifi-mt76-add-SER-support-for-wed3.0.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2006-mtk-wifi-mt76-add-SER-support-for-wed3.0.patch
@@ -1,7 +1,7 @@
-From d3fd0f1eb8faa1dae61798758b62d027dd7ad958 Mon Sep 17 00:00:00 2001
+From 9d1fde2b172d48638556f5c326792f3de6d85973 Mon Sep 17 00:00:00 2001
 From: mtk27745 <rex.lu@mediatek.com>
 Date: Tue, 23 May 2023 12:06:29 +0800
-Subject: [PATCH 2006/2028] mtk: wifi: mt76: add SER support for wed3.0
+Subject: [PATCH 2006/2032] mtk: wifi: mt76: add SER support for wed3.0
 
 ---
  dma.c         | 5 +++--
@@ -9,26 +9,26 @@
  2 files changed, 4 insertions(+), 2 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index 16cb23b4..dfce79fa 100644
+index f4ecd117..89ae929f 100644
 --- a/dma.c
 +++ b/dma.c
-@@ -910,8 +910,9 @@ mt76_dma_rx_reset(struct mt76_dev *dev, enum mt76_rxq_id qid)
+@@ -833,8 +833,9 @@ mt76_dma_rx_reset(struct mt76_dev *dev, enum mt76_rxq_id qid)
  
  	/* reset WED rx queues */
- 	mt76_dma_wed_setup(dev, q, true);
+ 	mt76_wed_dma_setup(dev, q, true);
 -
 -	if (!mt76_queue_is_wed_tx_free(q)) {
 +	if (!mt76_queue_is_wed_tx_free(q) &&
 +	    !(mt76_queue_is_wed_rro(q) &&
 +	    mtk_wed_device_active(&dev->mmio.wed))) {
  		mt76_dma_sync_idx(dev, q);
- 		mt76_dma_rx_fill(dev, q);
+ 		mt76_dma_rx_fill(dev, q, false);
  	}
 diff --git a/mt7996/mmio.c b/mt7996/mmio.c
-index 4814897c..488f5103 100644
+index 12250f9e..e033a785 100644
 --- a/mt7996/mmio.c
 +++ b/mt7996/mmio.c
-@@ -302,6 +302,7 @@ out:
+@@ -297,6 +297,7 @@ out:
  
  	return ret;
  }
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2007-mtk-wifi-mt76-mt7915-wed-find-rx-token-by-physical-a.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2007-mtk-wifi-mt76-mt7915-wed-find-rx-token-by-physical-a.patch
index b722dea..f99c32b 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2007-mtk-wifi-mt76-mt7915-wed-find-rx-token-by-physical-a.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2007-mtk-wifi-mt76-mt7915-wed-find-rx-token-by-physical-a.patch
@@ -1,7 +1,7 @@
-From 66913f29a6f44a588926788f393eb887d2997bfd Mon Sep 17 00:00:00 2001
+From 3fd9079da8481df27e2ce65a99e3638bae6c7a33 Mon Sep 17 00:00:00 2001
 From: "sujuan.chen" <sujuan.chen@mediatek.com>
 Date: Wed, 19 Jul 2023 10:55:09 +0800
-Subject: [PATCH 2007/2028] mtk: wifi: mt76: mt7915: wed: find rx token by
+Subject: [PATCH 2007/2032] mtk: wifi: mt76: mt7915: wed: find rx token by
  physical address
 
 The token id in RxDMAD may be incorrect when it is not the last frame due to
@@ -14,10 +14,10 @@
  1 file changed, 25 insertions(+), 2 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index dfce79fa..69333769 100644
+index 89ae929f..6bfcee1a 100644
 --- a/dma.c
 +++ b/dma.c
-@@ -448,9 +448,32 @@ mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx,
+@@ -446,9 +446,32 @@ mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx,
  	mt76_dma_should_drop_buf(drop, ctrl, buf1, desc_info);
  
  	if (mt76_queue_is_wed_rx(q)) {
@@ -51,7 +51,7 @@
  		if (!r)
  			return NULL;
  
-@@ -978,7 +1001,7 @@ mt76_dma_rx_process(struct mt76_dev *dev, struct mt76_queue *q, int budget)
+@@ -901,7 +924,7 @@ mt76_dma_rx_process(struct mt76_dev *dev, struct mt76_queue *q, int budget)
  		if (!data)
  			break;
  
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2008-mtk-wifi-mt76-mt7996-add-dma-mask-limitation.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2008-mtk-wifi-mt76-mt7996-add-dma-mask-limitation.patch
index 0e40b9d..6108b6b 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2008-mtk-wifi-mt76-mt7996-add-dma-mask-limitation.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2008-mtk-wifi-mt76-mt7996-add-dma-mask-limitation.patch
@@ -1,19 +1,19 @@
-From 0a1fef8b518288d0fed1df86a95fdf04fc611db8 Mon Sep 17 00:00:00 2001
+From da80c597a654bba39a056543c9fdcf71f28a4a68 Mon Sep 17 00:00:00 2001
 From: "sujuan.chen" <sujuan.chen@mediatek.com>
 Date: Thu, 20 Jul 2023 10:25:50 +0800
-Subject: [PATCH 2008/2028] mtk: wifi: mt76: mt7996: add dma mask limitation
+Subject: [PATCH 2008/2032] mtk: wifi: mt76: mt7996: add dma mask limitation
 
 Signed-off-by: sujuan.chen <sujuan.chen@mediatek.com>
 ---
- dma.c  | 4 ++--
- mmio.c | 4 ++--
+ dma.c | 4 ++--
+ wed.c | 4 ++--
  2 files changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index 69333769..5bff27dd 100644
+index 6bfcee1a..6a30adcc 100644
 --- a/dma.c
 +++ b/dma.c
-@@ -490,7 +490,7 @@ mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx,
+@@ -488,7 +488,7 @@ mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx,
  		} else {
  			struct mt76_queue_buf qbuf;
  
@@ -22,7 +22,7 @@
  			if (!buf)
  				return NULL;
  
-@@ -712,7 +712,7 @@ mt76_dma_rx_fill(struct mt76_dev *dev, struct mt76_queue *q)
+@@ -710,7 +710,7 @@ int mt76_dma_rx_fill(struct mt76_dev *dev, struct mt76_queue *q,
  		if (mt76_queue_is_wed_rro_ind(q))
  			goto done;
  
@@ -31,11 +31,11 @@
  		if (!buf)
  			break;
  
-diff --git a/mmio.c b/mmio.c
-index b792a7bd..269fd932 100644
---- a/mmio.c
-+++ b/mmio.c
-@@ -144,14 +144,14 @@ u32 mt76_mmio_wed_init_rx_buf(struct mtk_wed_device *wed, int size)
+diff --git a/wed.c b/wed.c
+index 0a0b5c05..1c6d53c8 100644
+--- a/wed.c
++++ b/wed.c
+@@ -65,14 +65,14 @@ u32 mt76_wed_init_rx_buf(struct mtk_wed_device *wed, int size)
  	for (i = 0; i < size; i++) {
  		struct mt76_rxwi_cache *r = mt76_get_rxwi(dev);
  		dma_addr_t addr;
@@ -51,7 +51,7 @@
 +				      GFP_ATOMIC | GFP_DMA32);
  		if (!ptr) {
  			mt76_put_rxwi(dev, r);
-  			goto unmap;
+ 			goto unmap;
 -- 
 2.18.0
 
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2009-mtk-wifi-mt76-mt7996-add-per-bss-statistic-info.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2009-mtk-wifi-mt76-mt7996-add-per-bss-statistic-info.patch
index 9986fb0..0fd2a0d 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2009-mtk-wifi-mt76-mt7996-add-per-bss-statistic-info.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2009-mtk-wifi-mt76-mt7996-add-per-bss-statistic-info.patch
@@ -1,7 +1,7 @@
-From 41bbf8a772f11e565ea2a6ee7b3fd26e43f315a3 Mon Sep 17 00:00:00 2001
+From 4ea30536b63156f7ab2a12d1831ca13950fe51b5 Mon Sep 17 00:00:00 2001
 From: Yi-Chia Hsieh <yi-chia.hsieh@mediatek.com>
 Date: Fri, 18 Aug 2023 10:17:08 +0800
-Subject: [PATCH 2009/2028] mtk: wifi: mt76: mt7996: add per bss statistic info
+Subject: [PATCH 2009/2032] mtk: wifi: mt76: mt7996: add per bss statistic info
 
 Whenever WED is enabled, unicast traffic might run through HW path.
 As a result, we need to count them using WM event.
@@ -22,7 +22,7 @@
  3 files changed, 37 insertions(+), 5 deletions(-)
 
 diff --git a/mt7996/init.c b/mt7996/init.c
-index d908c795..19a7cd10 100644
+index aedf4edc..518f70e4 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
 @@ -390,6 +390,7 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
@@ -34,7 +34,7 @@
  	wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION);
  	wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_BEACON_PROTECTION);
 diff --git a/mt7996/main.c b/mt7996/main.c
-index f4d50ec1..3d6cc25a 100644
+index 4a5697a3..4880807e 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -251,6 +251,7 @@ static int mt7996_add_interface(struct ieee80211_hw *hw,
@@ -46,7 +46,7 @@
  
  	mt7996_mac_wtbl_update(dev, idx,
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 97874bb4..9076020e 100644
+index c969e4d9..5d19d6fc 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -521,6 +521,27 @@ mt7996_mcu_update_tx_gi(struct rate_info *rate, struct all_sta_trx_rate *mcu_rat
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2010-mtk-wifi-mt76-mt7996-do-not-report-netdev-stats-on-m.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2010-mtk-wifi-mt76-mt7996-do-not-report-netdev-stats-on-m.patch
index 58fb493..f887c55 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2010-mtk-wifi-mt76-mt7996-do-not-report-netdev-stats-on-m.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2010-mtk-wifi-mt76-mt7996-do-not-report-netdev-stats-on-m.patch
@@ -1,7 +1,7 @@
-From 1861ed32781234084364c8b77fcd8aa7a220654c Mon Sep 17 00:00:00 2001
+From 63d8c717443332fe21313e30e2301c5c9d8a4eb9 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Thu, 26 Oct 2023 17:27:43 +0800
-Subject: [PATCH 2010/2028] mtk: wifi: mt76: mt7996: do not report netdev stats
+Subject: [PATCH 2010/2032] mtk: wifi: mt76: mt7996: do not report netdev stats
  on monitor vif
 
 This fixes the following NULL pointer crash when enabling monitor mode:
@@ -19,7 +19,7 @@
  1 file changed, 3 insertions(+)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 9076020e..8bb29e3a 100644
+index 5d19d6fc..ea22aa41 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -537,6 +537,9 @@ static inline void __mt7996_stat_to_netdev(struct mt76_phy *mphy,
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2011-mtk-wifi-mt76-mt7996-add-support-for-HW-ATF.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2011-mtk-wifi-mt76-mt7996-add-support-for-HW-ATF.patch
index 2b0c138..7d267fe 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2011-mtk-wifi-mt76-mt7996-add-support-for-HW-ATF.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2011-mtk-wifi-mt76-mt7996-add-support-for-HW-ATF.patch
@@ -1,7 +1,7 @@
-From 3e5f0df52e16d5dfab197af0e8768b906fa611a5 Mon Sep 17 00:00:00 2001
+From aff85911d271637879c9cd0a60f159bcc63594a3 Mon Sep 17 00:00:00 2001
 From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
 Date: Mon, 11 Sep 2023 16:35:15 +0800
-Subject: [PATCH 2011/2028] mtk: wifi: mt76: mt7996: add support for HW-ATF
+Subject: [PATCH 2011/2032] mtk: wifi: mt76: mt7996: add support for HW-ATF
 
 ---
  mt7996/debugfs.c |  90 ++++++++++++++++
@@ -13,10 +13,10 @@
  6 files changed, 475 insertions(+), 26 deletions(-)
 
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index 21bb2c5d..ed55afa0 100644
+index 37b36dce..c4adee9a 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
-@@ -895,6 +895,91 @@ DEFINE_DEBUGFS_ATTRIBUTE(fops_fw_debug_muru_disable,
+@@ -935,6 +935,91 @@ DEFINE_DEBUGFS_ATTRIBUTE(fops_fw_debug_muru_disable,
  			 mt7996_fw_debug_muru_disable_get,
  			 mt7996_fw_debug_muru_disable_set, "%lld\n");
  
@@ -108,10 +108,10 @@
  int mt7996_init_debugfs(struct mt7996_phy *phy)
  {
  	struct mt7996_dev *dev = phy->dev;
-@@ -921,6 +1006,11 @@ int mt7996_init_debugfs(struct mt7996_phy *phy)
- 	debugfs_create_devm_seqfile(dev->mt76.dev, "twt_stats", dir,
+@@ -962,6 +1047,11 @@ int mt7996_init_debugfs(struct mt7996_phy *phy)
  				    mt7996_twt_stats);
  	debugfs_create_file("rf_regval", 0600, dir, dev, &fops_rf_regval);
+ 	debugfs_create_file("otp", 0400, dir, dev, &mt7996_efuse_ops);
 +	debugfs_create_devm_seqfile(dev->mt76.dev, "vow_info", dir,
 +	                            mt7996_vow_info_read);
 +	debugfs_create_file("atf_enable", 0600, dir, phy, &fops_atf_enable);
@@ -121,7 +121,7 @@
  	if (phy->mt76->cap.has_5ghz) {
  		debugfs_create_u32("dfs_hw_pattern", 0400, dir,
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 19a7cd10..d2cd2221 100644
+index 518f70e4..b902bcc5 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
 @@ -562,6 +562,37 @@ int mt7996_txbf_init(struct mt7996_dev *dev)
@@ -189,7 +189,7 @@
  	if (ret)
  		goto error;
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index a9d8f7dd..d51f4129 100644
+index 26bed9e2..339c92bb 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -103,6 +103,7 @@ static void mt7996_mac_sta_poll(struct mt7996_dev *dev)
@@ -220,10 +220,10 @@
  
  		/* get signal strength of resp frames (CTS/BA/ACK) */
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 8bb29e3a..c7f9e308 100644
+index ea22aa41..6aa37d44 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -2233,34 +2233,37 @@ int mt7996_mcu_add_rate_ctrl(struct mt7996_dev *dev, struct ieee80211_vif *vif,
+@@ -2220,34 +2220,37 @@ int mt7996_mcu_add_rate_ctrl(struct mt7996_dev *dev, struct ieee80211_vif *vif,
  }
  
  static int
@@ -285,7 +285,7 @@
  }
  
  int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct ieee80211_vif *vif,
-@@ -2316,7 +2319,7 @@ int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct ieee80211_vif *vif,
+@@ -2303,7 +2306,7 @@ int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct ieee80211_vif *vif,
  		mt7996_mcu_sta_bfee_tlv(dev, skb, vif, sta);
  	}
  
@@ -294,7 +294,7 @@
  	if (ret) {
  		dev_kfree_skb(skb);
  		return ret;
-@@ -5152,6 +5155,218 @@ int mt7996_mcu_set_scs(struct mt7996_phy *phy, u8 enable)
+@@ -5140,6 +5143,218 @@ int mt7996_mcu_set_scs(struct mt7996_phy *phy, u8 enable)
  				 &req, sizeof(req), false);
  }
  
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2012-mtk-wifi-mt76-mt7996-wed-add-SER0.5-support-w-wed3.0.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2012-mtk-wifi-mt76-mt7996-wed-add-SER0.5-support-w-wed3.0.patch
index 5dd51c1..0f3c078 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2012-mtk-wifi-mt76-mt7996-wed-add-SER0.5-support-w-wed3.0.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2012-mtk-wifi-mt76-mt7996-wed-add-SER0.5-support-w-wed3.0.patch
@@ -1,38 +1,39 @@
-From 14d56cbefbd6f72d82d18534da6dd445e6ddd266 Mon Sep 17 00:00:00 2001
+From 52dd48547a15ef9060f3f594660c846268b763e3 Mon Sep 17 00:00:00 2001
 From: "sujuan.chen" <sujuan.chen@mediatek.com>
 Date: Thu, 12 Oct 2023 10:04:54 +0800
-Subject: [PATCH 2012/2028] mtk: wifi: mt76: mt7996: wed: add SER0.5 support w/
+Subject: [PATCH 2012/2032] mtk: wifi: mt76: mt7996: wed: add SER0.5 support w/
  wed3.0
 
 Signed-off-by: sujuan.chen <sujuan.chen@mediatek.com>
 ---
- dma.c           |  13 ++---
- dma.h           |   2 +-
+ dma.c           |   9 ++--
+ dma.h           |   4 +-
  mt76.h          |  14 ++++--
  mt792x_dma.c    |   6 +--
  mt7996/dma.c    |  20 ++++++--
  mt7996/init.c   | 127 +++++++++++++++++++++++++++++++-----------------
  mt7996/mac.c    |  25 ++++++++++
  mt7996/mt7996.h |   1 +
- 8 files changed, 145 insertions(+), 63 deletions(-)
+ wed.c           |   4 +-
+ 9 files changed, 146 insertions(+), 64 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index 5bff27dd..5ddb6be9 100644
+index 6a30adcc..a5225db5 100644
 --- a/dma.c
 +++ b/dma.c
-@@ -220,9 +220,9 @@ __mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q,
+@@ -218,9 +218,9 @@ void __mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q,
+ 	mt76_dma_sync_idx(dev, q);
  }
  
- static void
--mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q)
-+mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q, bool reset)
+-void mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q)
++void mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q, bool reset)
  {
 -	__mt76_dma_queue_reset(dev, q, true);
 +	__mt76_dma_queue_reset(dev, q, reset);
  }
  
  static int
-@@ -542,7 +542,8 @@ mt76_dma_dequeue(struct mt76_dev *dev, struct mt76_queue *q, bool flush,
+@@ -540,7 +540,8 @@ mt76_dma_dequeue(struct mt76_dev *dev, struct mt76_queue *q, bool flush,
  	if (!q->queued)
  		return NULL;
  
@@ -42,25 +43,7 @@
  		return NULL;
  
  	if (!mt76_queue_is_wed_rro_ind(q)) {
-@@ -772,7 +773,7 @@ int mt76_dma_wed_setup(struct mt76_dev *dev, struct mt76_queue *q, bool reset)
- 	case MT76_WED_Q_TXFREE:
- 		/* WED txfree queue needs ring to be initialized before setup */
- 		q->flags = 0;
--		mt76_dma_queue_reset(dev, q);
-+		mt76_dma_queue_reset(dev, q, true);
- 		mt76_dma_rx_fill(dev, q);
- 
- 		ret = mtk_wed_device_txfree_ring_setup(q->wed, q->regs);
-@@ -801,7 +802,7 @@ int mt76_dma_wed_setup(struct mt76_dev *dev, struct mt76_queue *q, bool reset)
- 		break;
- 	case MT76_WED_RRO_Q_IND:
- 		q->flags &= ~MT_QFLAG_WED;
--		mt76_dma_queue_reset(dev, q);
-+		mt76_dma_queue_reset(dev, q, true);
- 		mt76_dma_rx_fill(dev, q);
- 		mtk_wed_device_ind_rx_ring_setup(q->wed, q->regs);
- 		break;
-@@ -868,7 +869,7 @@ mt76_dma_alloc_queue(struct mt76_dev *dev, struct mt76_queue *q,
+@@ -791,7 +792,7 @@ mt76_dma_alloc_queue(struct mt76_dev *dev, struct mt76_queue *q,
  			return 0;
  	}
  
@@ -70,32 +53,38 @@
  	return 0;
  }
 diff --git a/dma.h b/dma.h
-index c479cc63..b7e63bd5 100644
+index 1de5a2b2..3a8c2e55 100644
 --- a/dma.h
 +++ b/dma.h
-@@ -85,7 +85,7 @@ void mt76_dma_wed_reset(struct mt76_dev *dev);
+@@ -83,12 +83,12 @@ int mt76_dma_rx_fill(struct mt76_dev *dev, struct mt76_queue *q,
+ 		     bool allow_direct);
+ void __mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q,
+ 			    bool reset_idx);
+-void mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q);
++void mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q, bool reset);
+ 
  static inline void
  mt76_dma_reset_tx_queue(struct mt76_dev *dev, struct mt76_queue *q)
  {
 -	dev->queue_ops->reset_q(dev, q);
 +	dev->queue_ops->reset_q(dev, q, true);
  	if (mtk_wed_device_active(&dev->mmio.wed))
- 		mt76_dma_wed_setup(dev, q, true);
+ 		mt76_wed_dma_setup(dev, q, true);
  }
 diff --git a/mt76.h b/mt76.h
-index 2ce1e84e..cf88eafa 100644
+index 1080384b..fbf66407 100644
 --- a/mt76.h
 +++ b/mt76.h
-@@ -295,7 +295,7 @@ struct mt76_queue_ops {
+@@ -296,7 +296,7 @@ struct mt76_queue_ops {
  
  	void (*kick)(struct mt76_dev *dev, struct mt76_queue *q);
  
 -	void (*reset_q)(struct mt76_dev *dev, struct mt76_queue *q);
-+	void (*reset_q)(struct mt76_dev *dev, struct mt76_queue *q,  bool reset);
++	void (*reset_q)(struct mt76_dev *dev, struct mt76_queue *q, bool reset);
  };
  
  enum mt76_phy_type {
-@@ -1722,8 +1722,13 @@ static inline bool mt76_queue_is_wed_rro_ind(struct mt76_queue *q)
+@@ -1731,8 +1731,13 @@ static inline bool mt76_queue_is_wed_rro_ind(struct mt76_queue *q)
  static inline bool mt76_queue_is_wed_rro_data(struct mt76_queue *q)
  {
  	return mt76_queue_is_wed_rro(q) &&
@@ -111,7 +100,7 @@
  }
  
  static inline bool mt76_queue_is_wed_rx(struct mt76_queue *q)
-@@ -1732,7 +1737,8 @@ static inline bool mt76_queue_is_wed_rx(struct mt76_queue *q)
+@@ -1741,7 +1746,8 @@ static inline bool mt76_queue_is_wed_rx(struct mt76_queue *q)
  		return false;
  
  	return FIELD_GET(MT_QFLAG_WED_TYPE, q->flags) == MT76_WED_Q_RX ||
@@ -122,10 +111,10 @@
  }
  
 diff --git a/mt792x_dma.c b/mt792x_dma.c
-index 488326ce..8811351c 100644
+index 5cc2d59b..c224bcc8 100644
 --- a/mt792x_dma.c
 +++ b/mt792x_dma.c
-@@ -172,13 +172,13 @@ mt792x_dma_reset(struct mt792x_dev *dev, bool force)
+@@ -181,13 +181,13 @@ mt792x_dma_reset(struct mt792x_dev *dev, bool force)
  
  	/* reset hw queues */
  	for (i = 0; i < __MT_TXQ_MAX; i++)
@@ -143,10 +132,10 @@
  	mt76_tx_status_check(&dev->mt76, true);
  
 diff --git a/mt7996/dma.c b/mt7996/dma.c
-index 40ab65f8..8df119d0 100644
+index 5d85e9ea..d9e1b17f 100644
 --- a/mt7996/dma.c
 +++ b/mt7996/dma.c
-@@ -710,21 +710,31 @@ void mt7996_dma_reset(struct mt7996_dev *dev, bool force)
+@@ -711,21 +711,31 @@ void mt7996_dma_reset(struct mt7996_dev *dev, bool force)
  	}
  
  	for (i = 0; i < __MT_MCUQ_MAX; i++)
@@ -184,7 +173,7 @@
  	mt7996_dma_enable(dev, !force);
  }
 diff --git a/mt7996/init.c b/mt7996/init.c
-index d2cd2221..32f2db33 100644
+index b902bcc5..a9720120 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
 @@ -724,11 +724,91 @@ void mt7996_wfsys_reset(struct mt7996_dev *dev)
@@ -334,10 +323,10 @@
  #else
  	return 0;
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index d51f4129..19e66256 100644
+index 339c92bb..53049672 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
-@@ -1755,6 +1755,31 @@ mt7996_mac_restart(struct mt7996_dev *dev)
+@@ -1756,6 +1756,31 @@ mt7996_mac_restart(struct mt7996_dev *dev)
  	if (ret)
  		goto out;
  
@@ -381,6 +370,28 @@
  irqreturn_t mt7996_irq_handler(int irq, void *dev_instance);
  u64 __mt7996_get_tsf(struct ieee80211_hw *hw, struct mt7996_vif *mvif);
  int mt7996_register_device(struct mt7996_dev *dev);
+diff --git a/wed.c b/wed.c
+index 1c6d53c8..61a6badf 100644
+--- a/wed.c
++++ b/wed.c
+@@ -155,7 +155,7 @@ int mt76_wed_dma_setup(struct mt76_dev *dev, struct mt76_queue *q, bool reset)
+ 	case MT76_WED_Q_TXFREE:
+ 		/* WED txfree queue needs ring to be initialized before setup */
+ 		q->flags = 0;
+-		mt76_dma_queue_reset(dev, q);
++		mt76_dma_queue_reset(dev, q, true);
+ 		mt76_dma_rx_fill(dev, q, false);
+ 
+ 		ret = mtk_wed_device_txfree_ring_setup(q->wed, q->regs);
+@@ -184,7 +184,7 @@ int mt76_wed_dma_setup(struct mt76_dev *dev, struct mt76_queue *q, bool reset)
+ 		break;
+ 	case MT76_WED_RRO_Q_IND:
+ 		q->flags &= ~MT_QFLAG_WED;
+-		mt76_dma_queue_reset(dev, q);
++		mt76_dma_queue_reset(dev, q, true);
+ 		mt76_dma_rx_fill(dev, q, false);
+ 		mtk_wed_device_ind_rx_ring_setup(q->wed, q->regs);
+ 		break;
 -- 
 2.18.0
 
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2013-mtk-wifi-mt76-mt7996-support-backaward-compatiable.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2013-mtk-wifi-mt76-mt7996-support-backaward-compatiable.patch
index dae855a..1ab2408 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2013-mtk-wifi-mt76-mt7996-support-backaward-compatiable.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2013-mtk-wifi-mt76-mt7996-support-backaward-compatiable.patch
@@ -1,7 +1,7 @@
-From 5fcb64a1ec7d90bdecd63ebcdb5676c4616d20cd Mon Sep 17 00:00:00 2001
+From f6a39ce81cf18154d27f027afe243e988f98deba Mon Sep 17 00:00:00 2001
 From: mtk27745 <rex.lu@mediatek.com>
 Date: Fri, 6 Oct 2023 20:59:42 +0800
-Subject: [PATCH 2013/2028] mtk: wifi: mt76: mt7996: support backaward
+Subject: [PATCH 2013/2032] mtk: wifi: mt76: mt7996: support backaward
  compatiable
 
 revert upstream wed trigger mode to polling mode
@@ -16,7 +16,6 @@
 
 Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
 ---
- mmio.c          |  2 +-
  mt7996/dma.c    |  2 +-
  mt7996/mac.c    |  2 +-
  mt7996/main.c   |  6 +++---
@@ -24,26 +23,14 @@
  mt7996/mmio.c   | 20 +++++++++++---------
  mt7996/mt7996.h |  1 +
  mt7996/pci.c    | 17 +++++++++--------
+ wed.c           |  2 +-
  8 files changed, 28 insertions(+), 24 deletions(-)
 
-diff --git a/mmio.c b/mmio.c
-index 269fd932..117da4d1 100644
---- a/mmio.c
-+++ b/mmio.c
-@@ -134,7 +134,7 @@ EXPORT_SYMBOL_GPL(mt76_mmio_wed_release_rx_buf);
- u32 mt76_mmio_wed_init_rx_buf(struct mtk_wed_device *wed, int size)
- {
- 	struct mt76_dev *dev = container_of(wed, struct mt76_dev, mmio.wed);
--	struct mtk_wed_bm_desc *desc = wed->rx_buf_ring.desc;
-+	struct mtk_rxbm_desc *desc = wed->rx_buf_ring.desc;
- 	u32 length;
- 	int i;
- 
 diff --git a/mt7996/dma.c b/mt7996/dma.c
-index 8df119d0..773bab71 100644
+index d9e1b17f..eac5b9ed 100644
 --- a/mt7996/dma.c
 +++ b/mt7996/dma.c
-@@ -431,7 +431,7 @@ int mt7996_dma_rro_init(struct mt7996_dev *dev)
+@@ -432,7 +432,7 @@ int mt7996_dma_rro_init(struct mt7996_dev *dev)
  	irq_mask = mdev->mmio.irqmask | MT_INT_RRO_RX_DONE |
  		   MT_INT_TX_DONE_BAND2;
  	mt76_wr(dev, MT_INT_MASK_CSR, irq_mask);
@@ -53,10 +40,10 @@
  
  	return 0;
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 19e66256..8171a43d 100644
+index 53049672..4b51f388 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
-@@ -1998,7 +1998,7 @@ void mt7996_mac_reset_work(struct work_struct *work)
+@@ -1999,7 +1999,7 @@ void mt7996_mac_reset_work(struct work_struct *work)
  
  		mt76_wr(dev, MT_INT_MASK_CSR, wed_irq_mask);
  
@@ -66,7 +53,7 @@
  		mt7996_irq_enable(dev, wed_irq_mask);
  		mt7996_irq_disable(dev, 0);
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 3d6cc25a..73bf5eea 100644
+index 4880807e..becfe20a 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -1601,10 +1601,10 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
@@ -84,10 +71,10 @@
  	ctx->dev = NULL;
  
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index c7f9e308..0fe713d6 100644
+index 6aa37d44..3a816713 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -3262,7 +3262,7 @@ static int mt7996_mcu_wa_red_config(struct mt7996_dev *dev)
+@@ -3249,7 +3249,7 @@ static int mt7996_mcu_wa_red_config(struct mt7996_dev *dev)
  
  	if (!mtk_wed_device_active(&dev->mt76.mmio.wed))
  		req.token_per_src[RED_TOKEN_SRC_CNT - 1] =
@@ -97,7 +84,7 @@
  	return mt76_mcu_send_msg(&dev->mt76, MCU_WA_PARAM_CMD(SET),
  				 &req, sizeof(req), false);
 diff --git a/mt7996/mmio.c b/mt7996/mmio.c
-index 488f5103..69d16dad 100644
+index e033a785..e32d3848 100644
 --- a/mt7996/mmio.c
 +++ b/mt7996/mmio.c
 @@ -14,7 +14,7 @@
@@ -109,7 +96,7 @@
  module_param(wed_enable, bool, 0644);
  
  static const struct __base mt7996_reg_base[] = {
-@@ -352,14 +352,14 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
+@@ -347,14 +347,14 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
  		}
  
  		wed->wlan.wpdma_rx_glo = wed->wlan.phy_base + hif1_ofs + MT_WFDMA0_GLO_CFG;
@@ -127,7 +114,7 @@
  		wed->wlan.wpdma_int = wed->wlan.phy_base + MT_INT_SOURCE_CSR;
  		wed->wlan.wpdma_mask = wed->wlan.phy_base + MT_INT_MASK_CSR;
  		wed->wlan.wpdma_tx = wed->wlan.phy_base + MT_TXQ_RING_BASE(0) +
-@@ -367,7 +367,7 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
+@@ -362,7 +362,7 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
  
  		wed->wlan.wpdma_rx_glo = wed->wlan.phy_base + MT_WFDMA0_GLO_CFG;
  
@@ -136,7 +123,7 @@
  				     MT_RXQ_RING_BASE(MT7996_RXQ_BAND0) +
  				     MT7996_RXQ_BAND0 * MT_RING_SIZE;
  
-@@ -409,11 +409,11 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
+@@ -404,11 +404,11 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
  		dev->mt76.rx_token_size = MT7996_TOKEN_SIZE + wed->wlan.rx_npkt;
  	}
  
@@ -151,8 +138,8 @@
 +	wed->wlan.max_amsdu_len = 1536;
  
  	wed->wlan.init_buf = mt7996_wed_init_buf;
- 	wed->wlan.init_rx_buf = mt76_mmio_wed_init_rx_buf;
-@@ -431,6 +431,8 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
+ 	wed->wlan.init_rx_buf = mt76_wed_init_rx_buf;
+@@ -426,6 +426,8 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
  	*irq = wed->irq;
  	dev->mt76.dma_dev = wed->dev;
  
@@ -218,6 +205,19 @@
  	if (dev->hif2) {
  		if (mtk_wed_device_active(&dev->mt76.mmio.wed_hif2))
  			mtk_wed_device_detach(&dev->mt76.mmio.wed_hif2);
+diff --git a/wed.c b/wed.c
+index 61a6badf..53dc7474 100644
+--- a/wed.c
++++ b/wed.c
+@@ -55,7 +55,7 @@ EXPORT_SYMBOL_GPL(mt76_wed_release_rx_buf);
+ u32 mt76_wed_init_rx_buf(struct mtk_wed_device *wed, int size)
+ {
+ 	struct mt76_dev *dev = container_of(wed, struct mt76_dev, mmio.wed);
+-	struct mtk_wed_bm_desc *desc = wed->rx_buf_ring.desc;
++	struct mtk_rxbm_desc *desc = wed->rx_buf_ring.desc;
+ 	u32 length;
+ 	int i;
+ 
 -- 
 2.18.0
 
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2014-mtk-wifi-mt76-mt7996-wed-add-wed-support-for-mt7992.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2014-mtk-wifi-mt76-mt7996-wed-add-wed-support-for-mt7992.patch
index f2e75f8..381dd86 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2014-mtk-wifi-mt76-mt7996-wed-add-wed-support-for-mt7992.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2014-mtk-wifi-mt76-mt7996-wed-add-wed-support-for-mt7992.patch
@@ -1,7 +1,7 @@
-From e38f980034dbfe7b9345347035e6e4042c5deadd Mon Sep 17 00:00:00 2001
+From 8e485ad97007c39c041751c51dbcc3a6f342b654 Mon Sep 17 00:00:00 2001
 From: "sujuan.chen" <sujuan.chen@mediatek.com>
 Date: Fri, 8 Sep 2023 11:57:39 +0800
-Subject: [PATCH 2014/2028] mtk: wifi: mt76: mt7996: wed: add wed support for
+Subject: [PATCH 2014/2032] mtk: wifi: mt76: mt7996: wed: add wed support for
  mt7992
 
 Signed-off-by: sujuan.chen <sujuan.chen@mediatek.com>
@@ -20,7 +20,7 @@
  7 files changed, 142 insertions(+), 48 deletions(-)
 
 diff --git a/mt7996/dma.c b/mt7996/dma.c
-index 773bab71..4c92f13b 100644
+index eac5b9ed..bdb9f585 100644
 --- a/mt7996/dma.c
 +++ b/mt7996/dma.c
 @@ -77,18 +77,23 @@ static void mt7996_dma_config(struct mt7996_dev *dev)
@@ -75,7 +75,7 @@
  		mt76_wr(dev, MT_RXQ_BAND1_CTRL(MT_RXQ_MSDU_PAGE_BAND0) + ofs,
  			PREFETCH(0x4));
  		mt76_wr(dev, MT_RXQ_BAND1_CTRL(MT_RXQ_MSDU_PAGE_BAND1) + ofs,
-@@ -360,12 +370,16 @@ static void mt7996_dma_enable(struct mt7996_dev *dev, bool reset)
+@@ -361,12 +371,16 @@ static void mt7996_dma_enable(struct mt7996_dev *dev, bool reset)
  		 * so, redirect pcie0 rx ring3 interrupt to pcie1
  		 */
  		if (mtk_wed_device_active(&dev->mt76.mmio.wed) &&
@@ -95,7 +95,7 @@
  	}
  
  	mt7996_dma_start(dev, reset, true);
-@@ -400,7 +414,7 @@ int mt7996_dma_rro_init(struct mt7996_dev *dev)
+@@ -401,7 +415,7 @@ int mt7996_dma_rro_init(struct mt7996_dev *dev)
  	if (ret)
  		return ret;
  
@@ -104,7 +104,7 @@
  		/* rx msdu page queue for band1 */
  		mdev->q_rx[MT_RXQ_MSDU_PAGE_BAND1].flags =
  			MT_WED_RRO_Q_MSDU_PG(1) | MT_QFLAG_WED_RRO_EN;
-@@ -521,7 +535,9 @@ int mt7996_dma_init(struct mt7996_dev *dev)
+@@ -522,7 +536,9 @@ int mt7996_dma_init(struct mt7996_dev *dev)
  		return ret;
  
  	/* tx free notify event from WA for band0 */
@@ -115,7 +115,7 @@
  		dev->mt76.q_rx[MT_RXQ_MAIN_WA].flags = MT_WED_Q_TXFREE;
  		dev->mt76.q_rx[MT_RXQ_MAIN_WA].wed = wed;
  	}
-@@ -567,6 +583,11 @@ int mt7996_dma_init(struct mt7996_dev *dev)
+@@ -568,6 +584,11 @@ int mt7996_dma_init(struct mt7996_dev *dev)
  	} else if (mt7996_band_valid(dev, MT_BAND1)) {
  		/* rx data queue for mt7992 band1 */
  		rx_base = MT_RXQ_RING_BASE(MT_RXQ_BAND1) + hif1_ofs;
@@ -127,7 +127,7 @@
  		ret = mt76_queue_alloc(dev, &dev->mt76.q_rx[MT_RXQ_BAND1],
  				       MT_RXQ_ID(MT_RXQ_BAND1),
  				       MT7996_RX_RING_SIZE,
-@@ -600,17 +621,29 @@ int mt7996_dma_init(struct mt7996_dev *dev)
+@@ -601,17 +622,29 @@ int mt7996_dma_init(struct mt7996_dev *dev)
  		if (ret)
  			return ret;
  
@@ -168,7 +168,7 @@
  		if (mt7996_band_valid(dev, MT_BAND2)) {
  			/* rx rro data queue for band2 */
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 32f2db33..12682c9b 100644
+index a9720120..7a9b9749 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
 @@ -802,6 +802,7 @@ void mt7996_rro_hw_init(struct mt7996_dev *dev)
@@ -198,10 +198,10 @@
  				  MT7996_RRO_WINDOW_MAX_LEN * sizeof(*addr),
  				  &dev->wed_rro.session.phy_addr,
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 8171a43d..751a960a 100644
+index 4b51f388..da7c387e 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
-@@ -1998,6 +1998,10 @@ void mt7996_mac_reset_work(struct work_struct *work)
+@@ -1999,6 +1999,10 @@ void mt7996_mac_reset_work(struct work_struct *work)
  
  		mt76_wr(dev, MT_INT_MASK_CSR, wed_irq_mask);
  
@@ -213,10 +213,10 @@
  					    true);
  		mt7996_irq_enable(dev, wed_irq_mask);
 diff --git a/mt7996/mmio.c b/mt7996/mmio.c
-index 69d16dad..b5b97dcb 100644
+index e32d3848..b1600a97 100644
 --- a/mt7996/mmio.c
 +++ b/mt7996/mmio.c
-@@ -318,7 +318,8 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
+@@ -313,7 +313,8 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
  
  	dev->has_rro = true;
  
@@ -226,7 +226,7 @@
  
  	if (hif2)
  		wed = &dev->mt76.mmio.wed_hif2;
-@@ -353,8 +354,8 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
+@@ -348,8 +349,8 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
  
  		wed->wlan.wpdma_rx_glo = wed->wlan.phy_base + hif1_ofs + MT_WFDMA0_GLO_CFG;
  		wed->wlan.wpdma_rx[0] = wed->wlan.phy_base + hif1_ofs +
@@ -237,7 +237,7 @@
  
  		wed->wlan.chip_id = 0x7991;
  		wed->wlan.tx_tbit[0] = ffs(MT_INT_TX_DONE_BAND2) - 1;
-@@ -374,9 +375,19 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
+@@ -369,9 +370,19 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
  		wed->wlan.wpdma_rx_rro[0] = wed->wlan.phy_base +
  					    MT_RXQ_RING_BASE(MT7996_RXQ_RRO_BAND0) +
  					    MT7996_RXQ_RRO_BAND0 * MT_RING_SIZE;
@@ -260,7 +260,7 @@
  		wed->wlan.wpdma_rx_pg = wed->wlan.phy_base +
  					MT_RXQ_RING_BASE(MT7996_RXQ_MSDU_PG_BAND0) +
  					MT7996_RXQ_MSDU_PG_BAND0 * MT_RING_SIZE;
-@@ -386,10 +397,14 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
+@@ -381,10 +392,14 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
  		wed->wlan.rx_size = SKB_WITH_OVERHEAD(MT_RX_BUF_SIZE);
  
  		wed->wlan.rx_tbit[0] = ffs(MT_INT_RX_DONE_BAND0) - 1;
@@ -278,7 +278,7 @@
  
  		wed->wlan.rx_pg_tbit[0] = ffs(MT_INT_RX_DONE_MSDU_PG_BAND0) - 1;
  		wed->wlan.rx_pg_tbit[1] = ffs(MT_INT_RX_DONE_MSDU_PG_BAND1) - 1;
-@@ -397,14 +412,20 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
+@@ -392,14 +407,20 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
  
  		wed->wlan.tx_tbit[0] = ffs(MT_INT_TX_DONE_BAND0) - 1;
  		wed->wlan.tx_tbit[1] = ffs(MT_INT_TX_DONE_BAND1) - 1;
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2015-mtk-wifi-mt76-mt7992-wed-add-2pcie-one-wed-support.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2015-mtk-wifi-mt76-mt7992-wed-add-2pcie-one-wed-support.patch
index a4dfacc..824f4cd 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2015-mtk-wifi-mt76-mt7992-wed-add-2pcie-one-wed-support.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2015-mtk-wifi-mt76-mt7992-wed-add-2pcie-one-wed-support.patch
@@ -1,7 +1,7 @@
-From f5e2909fcfb815fcc91530addcb7b36f052f5c15 Mon Sep 17 00:00:00 2001
+From ee0e35680a1a7d1acc84709e2045417df24899a6 Mon Sep 17 00:00:00 2001
 From: "sujuan.chen" <sujuan.chen@mediatek.com>
 Date: Wed, 13 Sep 2023 17:35:43 +0800
-Subject: [PATCH 2015/2028] mtk: wifi: mt76: mt7992: wed: add 2pcie one wed
+Subject: [PATCH 2015/2032] mtk: wifi: mt76: mt7992: wed: add 2pcie one wed
  support
 
 Signed-off-by: sujuan.chen <sujuan.chen@mediatek.com>
@@ -14,10 +14,10 @@
  5 files changed, 39 insertions(+), 13 deletions(-)
 
 diff --git a/mt7996/dma.c b/mt7996/dma.c
-index 4c92f13b..80458b31 100644
+index bdb9f585..cf346845 100644
 --- a/mt7996/dma.c
 +++ b/mt7996/dma.c
-@@ -354,6 +354,13 @@ static void mt7996_dma_enable(struct mt7996_dev *dev, bool reset)
+@@ -355,6 +355,13 @@ static void mt7996_dma_enable(struct mt7996_dev *dev, bool reset)
  			 MT_WFDMA_HOST_CONFIG_PDMA_BAND |
  			 MT_WFDMA_HOST_CONFIG_BAND2_PCIE1);
  
@@ -31,7 +31,7 @@
  		/* AXI read outstanding number */
  		mt76_rmw(dev, MT_WFDMA_AXI_R2A_CTRL,
  			 MT_WFDMA_AXI_R2A_CTRL_OUTSTAND_MASK, 0x14);
-@@ -373,7 +380,8 @@ static void mt7996_dma_enable(struct mt7996_dev *dev, bool reset)
+@@ -374,7 +381,8 @@ static void mt7996_dma_enable(struct mt7996_dev *dev, bool reset)
  		    dev->has_rro) {
  			u32 intr = is_mt7996(&dev->mt76) ?
  				   MT_WFDMA0_RX_INT_SEL_RING6 :
@@ -41,7 +41,7 @@
  			mt76_set(dev, MT_WFDMA0_RX_INT_PCIE_SEL + hif1_ofs,
  				 intr);
  		} else {
-@@ -629,10 +637,11 @@ int mt7996_dma_init(struct mt7996_dev *dev)
+@@ -630,10 +638,11 @@ int mt7996_dma_init(struct mt7996_dev *dev)
  					       MT_RXQ_ID(MT_RXQ_RRO_BAND1),
  					       MT7996_RX_RING_SIZE,
  					       MT7996_RX_BUF_SIZE,
@@ -55,10 +55,10 @@
  			dev->mt76.q_rx[MT_RXQ_TXFREE_BAND0].wed = wed;
  
 diff --git a/mt7996/mmio.c b/mt7996/mmio.c
-index b5b97dcb..8faceb3b 100644
+index b1600a97..613b5185 100644
 --- a/mt7996/mmio.c
 +++ b/mt7996/mmio.c
-@@ -380,10 +380,10 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
+@@ -375,10 +375,10 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
  						    MT_RXQ_RING_BASE(MT7996_RXQ_RRO_BAND2) +
  						    MT7996_RXQ_RRO_BAND2 * MT_RING_SIZE;
  		} else {
@@ -71,7 +71,7 @@
  						MT_RXQ_RING_BASE(MT7996_RXQ_BAND1) +
  						MT7996_RXQ_BAND1 * MT_RING_SIZE;
  		}
-@@ -521,10 +521,9 @@ void mt7996_dual_hif_set_irq_mask(struct mt7996_dev *dev, bool write_reg,
+@@ -516,10 +516,9 @@ void mt7996_dual_hif_set_irq_mask(struct mt7996_dev *dev, bool write_reg,
  		if (mtk_wed_device_active(&mdev->mmio.wed)) {
  			mtk_wed_device_irq_set_mask(&mdev->mmio.wed,
  						    mdev->mmio.irqmask);
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2016-mtk-wifi-mt76-mt7996-add-SER-state-log-for-debug.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2016-mtk-wifi-mt76-mt7996-add-SER-state-log-for-debug.patch
index a00645f..d88cf8c 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2016-mtk-wifi-mt76-mt7996-add-SER-state-log-for-debug.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2016-mtk-wifi-mt76-mt7996-add-SER-state-log-for-debug.patch
@@ -1,7 +1,7 @@
-From 905b93728d4804e6b988e93c5a6ba3bf2810bba6 Mon Sep 17 00:00:00 2001
+From 0c5845f500c06a243402ed2d08fff924025b6c0b Mon Sep 17 00:00:00 2001
 From: Bo Jiao <Bo.Jiao@mediatek.com>
 Date: Mon, 6 Nov 2023 16:37:23 +0800
-Subject: [PATCH 2016/2028] mtk: wifi: mt76: mt7996: add SER state log for
+Subject: [PATCH 2016/2032] mtk: wifi: mt76: mt7996: add SER state log for
  debug.
 
 Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com>
@@ -10,10 +10,10 @@
  1 file changed, 3 insertions(+)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 751a960a..5ffc6018 100644
+index da7c387e..28b4d72b 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
-@@ -2158,6 +2158,9 @@ void mt7996_coredump(struct mt7996_dev *dev, u8 state)
+@@ -2159,6 +2159,9 @@ void mt7996_coredump(struct mt7996_dev *dev, u8 state)
  
  void mt7996_reset(struct mt7996_dev *dev)
  {
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2017-mtk-wifi-mt76-mt7996-Remove-wed-rro-ring-add-napi-at.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2017-mtk-wifi-mt76-mt7996-Remove-wed-rro-ring-add-napi-at.patch
index 460e810..68a3863 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2017-mtk-wifi-mt76-mt7996-Remove-wed-rro-ring-add-napi-at.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2017-mtk-wifi-mt76-mt7996-Remove-wed-rro-ring-add-napi-at.patch
@@ -1,7 +1,7 @@
-From 55ac95bb1f783c203750968bfe762d1e63f99321 Mon Sep 17 00:00:00 2001
+From 10f74d24c6e1616567693e8e86a57402101f7515 Mon Sep 17 00:00:00 2001
 From: mtk27745 <rex.lu@mediatek.com>
 Date: Mon, 6 Nov 2023 10:16:34 +0800
-Subject: [PATCH 2017/2028] mtk: wifi: mt76: mt7996: Remove wed rro ring add
+Subject: [PATCH 2017/2032] mtk: wifi: mt76: mt7996: Remove wed rro ring add
  napi at init state
 
 without this patch. rro ring will add napi at initial state. once rro ring add napi, it will have chance to be used by host driver. if host driver accessed the ring data, it will cause some issue.
@@ -12,10 +12,10 @@
  1 file changed, 4 insertions(+)
 
 diff --git a/dma.c b/dma.c
-index 5ddb6be9..698f39c0 100644
+index a5225db5..385a3c81 100644
 --- a/dma.c
 +++ b/dma.c
-@@ -1093,6 +1093,10 @@ mt76_dma_init(struct mt76_dev *dev,
+@@ -1016,6 +1016,10 @@ mt76_dma_init(struct mt76_dev *dev,
  	init_completion(&dev->mmio.wed_reset_complete);
  
  	mt76_for_each_q_rx(dev, i) {
@@ -24,7 +24,7 @@
 +			continue;
 +
  		netif_napi_add(&dev->napi_dev, &dev->napi[i], poll);
- 		mt76_dma_rx_fill(dev, &dev->q_rx[i]);
+ 		mt76_dma_rx_fill(dev, &dev->q_rx[i], false);
  		napi_enable(&dev->napi[i]);
 -- 
 2.18.0
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2018-mtk-wifi-mt76-mt7996-Remove-wed_stop-during-L1-SER.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2018-mtk-wifi-mt76-mt7996-Remove-wed_stop-during-L1-SER.patch
index 55185e7..62564d0 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2018-mtk-wifi-mt76-mt7996-Remove-wed_stop-during-L1-SER.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2018-mtk-wifi-mt76-mt7996-Remove-wed_stop-during-L1-SER.patch
@@ -1,7 +1,7 @@
-From 143eed20d01bab9d81fc60540214a87be38580b0 Mon Sep 17 00:00:00 2001
+From ea7a8b06c72f61a3a77c82a8919a4174a7b97f38 Mon Sep 17 00:00:00 2001
 From: Rex Lu <rex.lu@mediatek.com>
 Date: Wed, 29 Nov 2023 13:56:52 +0800
-Subject: [PATCH 2018/2028] mtk: wifi: mt76: mt7996: Remove wed_stop during L1
+Subject: [PATCH 2018/2032] mtk: wifi: mt76: mt7996: Remove wed_stop during L1
  SER
 
 Align logan L1 SER flow. During L1 SER, didn't need to close wed interrupt.
@@ -12,10 +12,10 @@
  1 file changed, 6 deletions(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 5ffc6018..0ebad4ac 100644
+index 28b4d72b..bc335fd3 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
-@@ -1941,12 +1941,6 @@ void mt7996_mac_reset_work(struct work_struct *work)
+@@ -1942,12 +1942,6 @@ void mt7996_mac_reset_work(struct work_struct *work)
  	dev_info(dev->mt76.dev,"\n%s L1 SER recovery start.",
  		 wiphy_name(dev->mt76.hw->wiphy));
  
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2019-mtk-wifi-mt76-mt7996-Refactor-rro-del-ba-command-for.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2019-mtk-wifi-mt76-mt7996-Refactor-rro-del-ba-command-for.patch
index 08e99eb..5e3052e 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2019-mtk-wifi-mt76-mt7996-Refactor-rro-del-ba-command-for.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2019-mtk-wifi-mt76-mt7996-Refactor-rro-del-ba-command-for.patch
@@ -1,7 +1,7 @@
-From a91bffb95b75d3c9b0dc0fae4bccc1fd6ec302be Mon Sep 17 00:00:00 2001
+From b3d10fbe8c8faec735dc2f083debc7c3c802c043 Mon Sep 17 00:00:00 2001
 From: Rex Lu <rex.lu@mediatek.com>
 Date: Wed, 29 Nov 2023 15:51:04 +0800
-Subject: [PATCH 2019/2028] mtk: wifi: mt76: mt7996: Refactor rro del ba
+Subject: [PATCH 2019/2032] mtk: wifi: mt76: mt7996: Refactor rro del ba
  command format
 
 1. remove unused struct
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2020-mtk-wifi-mt76-mt7996-get-airtime-and-RSSI-via-MCU-co.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2020-mtk-wifi-mt76-mt7996-get-airtime-and-RSSI-via-MCU-co.patch
index 3c45b21..0b6f565 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2020-mtk-wifi-mt76-mt7996-get-airtime-and-RSSI-via-MCU-co.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2020-mtk-wifi-mt76-mt7996-get-airtime-and-RSSI-via-MCU-co.patch
@@ -1,7 +1,7 @@
-From 64db610443287b4e5b47ee9a7461562c16ae0e76 Mon Sep 17 00:00:00 2001
+From d71f046693ba8f6e80a0c349d9ef1b9e857a8c34 Mon Sep 17 00:00:00 2001
 From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
 Date: Fri, 17 Nov 2023 18:08:06 +0800
-Subject: [PATCH 2020/2028] mtk: wifi: mt76: mt7996: get airtime and RSSI via
+Subject: [PATCH 2020/2032] mtk: wifi: mt76: mt7996: get airtime and RSSI via
  MCU commands
 
 Direct access to WTBL for airtime and RSSI may cause synchronization issue with FW.
@@ -23,10 +23,10 @@
  9 files changed, 361 insertions(+), 143 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
-index cf88eafa..942d9c11 100644
+index fbf66407..8db61815 100644
 --- a/mt76.h
 +++ b/mt76.h
-@@ -324,11 +324,15 @@ struct mt76_sta_stats {
+@@ -325,11 +325,15 @@ struct mt76_sta_stats {
  	u32 tx_packets;		/* unit: MSDU */
  	u32 tx_retries;
  	u32 tx_failed;
@@ -42,7 +42,7 @@
  };
  
  enum mt76_wcid_flags {
-@@ -1312,6 +1316,22 @@ static inline int mt76_decr(int val, int size)
+@@ -1328,6 +1332,22 @@ static inline int mt76_decr(int val, int size)
  
  u8 mt76_ac_to_hwq(u8 ac);
  
@@ -66,10 +66,10 @@
  mtxq_to_txq(struct mt76_txq *mtxq)
  {
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 2cdd5b9c..77c5b62f 100644
+index 266ee711..4f4b7b4f 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1364,11 +1364,23 @@ enum {
+@@ -1368,11 +1368,23 @@ enum {
  	UNI_OFFLOAD_OFFLOAD_BMC_RPY_DETECT,
  };
  
@@ -95,10 +95,10 @@
  	UNI_ALL_STA_GI_MODE,
  	UNI_ALL_STA_TXRX_MSDU_COUNT,
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index ed55afa0..24191f75 100644
+index c4adee9a..5e9ab9ab 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
-@@ -947,12 +947,11 @@ mt7996_airtime_read(struct seq_file *s, void *data)
+@@ -987,12 +987,11 @@ mt7996_airtime_read(struct seq_file *s, void *data)
  {
  	struct mt7996_dev *dev = dev_get_drvdata(s->private);
  	struct mt76_dev *mdev = &dev->mt76;
@@ -112,7 +112,7 @@
  	u16 i;
  
  	seq_printf(s, "VoW Airtime Information:\n");
-@@ -964,16 +963,16 @@ mt7996_airtime_read(struct seq_file *s, void *data)
+@@ -1004,16 +1003,16 @@ mt7996_airtime_read(struct seq_file *s, void *data)
  
  		msta = container_of(wcid, struct mt7996_sta, wcid);
  		sta = container_of((void *)msta, struct ieee80211_sta, drv_priv);
@@ -137,7 +137,7 @@
  	rcu_read_unlock();
  
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 0ebad4ac..bdf808fc 100644
+index bc335fd3..2e48ab8b 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -12,8 +12,6 @@
@@ -269,7 +269,7 @@
  	if (wake)
  		mt76_set_tx_blocked(&dev->mt76, false);
  
-@@ -2369,31 +2261,42 @@ void mt7996_mac_sta_rc_work(struct work_struct *work)
+@@ -2370,31 +2262,42 @@ void mt7996_mac_sta_rc_work(struct work_struct *work)
  
  void mt7996_mac_work(struct work_struct *work)
  {
@@ -326,7 +326,7 @@
  	ieee80211_queue_delayed_work(mphy->hw, &mphy->mac_work,
  				     MT7996_WATCHDOG_TIME);
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 0fe713d6..62c073bd 100644
+index 3a816713..35a44fee 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -560,7 +560,8 @@ mt7996_mcu_rx_all_sta_info_event(struct mt7996_dev *dev, struct sk_buff *skb)
@@ -373,7 +373,7 @@
  		default:
  			break;
  		}
-@@ -2252,8 +2271,6 @@ mt7996_mcu_sta_init_vow(struct mt7996_phy *phy, struct mt7996_sta *msta)
+@@ -2239,8 +2258,6 @@ mt7996_mcu_sta_init_vow(struct mt7996_phy *phy, struct mt7996_sta *msta)
  	vow->drr_quantum[IEEE80211_AC_VI] = VOW_DRR_QUANTUM_IDX1;
  	vow->drr_quantum[IEEE80211_AC_BE] = VOW_DRR_QUANTUM_IDX2;
  	vow->drr_quantum[IEEE80211_AC_BK] = VOW_DRR_QUANTUM_IDX2;
@@ -382,7 +382,7 @@
  
  	ret = mt7996_mcu_set_vow_drr_ctrl(phy, msta, VOW_DRR_CTRL_STA_BSS_GROUP);
  	if (ret)
-@@ -4859,9 +4876,155 @@ int mt7996_mcu_set_rro(struct mt7996_dev *dev, u16 tag, u16 val)
+@@ -4846,9 +4863,155 @@ int mt7996_mcu_set_rro(struct mt7996_dev *dev, u16 tag, u16 val)
  				 sizeof(req), true);
  }
  
@@ -540,7 +540,7 @@
  	struct {
  		u8 _rsv[4];
  
-@@ -4872,7 +5035,7 @@ int mt7996_mcu_get_all_sta_info(struct mt7996_phy *phy, u16 tag)
+@@ -4859,7 +5022,7 @@ int mt7996_mcu_get_all_sta_info(struct mt7996_phy *phy, u16 tag)
  		.len = cpu_to_le16(sizeof(req) - 4),
  	};
  
diff --git a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2021-mtk-wifi-mt76-mt7996-add-support-for-WMM-PBC-configu.patch b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2021-mtk-wifi-mt76-mt7996-add-support-for-WMM-PBC-configu.patch
index 78fcc32..6641bf6 100644
--- a/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2021-mtk-wifi-mt76-mt7996-add-support-for-WMM-PBC-configu.patch
+++ b/autobuild_mac80211_release/mt7988_mt7996_mac80211/package/kernel/mt76/patches/2021-mtk-wifi-mt76-mt7996-add-support-for-WMM-PBC-configu.patch
@@ -1,7 +1,7 @@
-From edbe4cad5b63d80c10ac7ae14010e7018e6b351a Mon Sep 17 00:00:00 2001
+From 5bb85ef54208f23c7b6ba8b9edd09f81a411c2aa Mon Sep 17 00:00:00 2001
 From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
 Date: Thu, 4 Jan 2024 09:47:00 +0800
-Subject: [PATCH 2021/2028] mtk: wifi: mt76: mt7996: add support for WMM PBC
+Subject: [PATCH 2021/2032] mtk: wifi: mt76: mt7996: add support for WMM PBC
  configuration
 
 Query per-AC-queue packet statistics from WA, and determine if multi-AC transmission is ongoing.
@@ -18,10 +18,10 @@
  6 files changed, 105 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 77c5b62f..7b4548dd 100644
+index 4f4b7b4f..b2b8f2a2 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1022,6 +1022,7 @@ enum {
+@@ -1026,6 +1026,7 @@ enum {
  	MCU_EXT_EVENT_ASSERT_DUMP = 0x23,
  	MCU_EXT_EVENT_RDD_REPORT = 0x3a,
  	MCU_EXT_EVENT_CSA_NOTIFY = 0x4f,
@@ -29,7 +29,7 @@
  	MCU_EXT_EVENT_WA_TX_STAT = 0x74,
  	MCU_EXT_EVENT_BCC_NOTIFY = 0x75,
  	MCU_EXT_EVENT_MURU_CTRL = 0x9f,
-@@ -1220,6 +1221,7 @@ enum {
+@@ -1224,6 +1225,7 @@ enum {
  	MCU_EXT_CMD_TXDPD_CAL = 0x60,
  	MCU_EXT_CMD_CAL_CACHE = 0x67,
  	MCU_EXT_CMD_RED_ENABLE = 0x68,
@@ -38,7 +38,7 @@
  	MCU_EXT_CMD_SET_RDD_PATTERN = 0x7d,
  	MCU_EXT_CMD_MWDS_SUPPORT = 0x80,
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 12682c9b..193904bc 100644
+index 7a9b9749..90f3a417 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
 @@ -1493,6 +1493,8 @@ int mt7996_register_device(struct mt7996_dev *dev)
@@ -51,10 +51,10 @@
  	if (ret)
  		return ret;
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index bdf808fc..94c0cfab 100644
+index 2e48ab8b..471fb9c5 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
-@@ -2288,6 +2288,10 @@ void mt7996_mac_work(struct work_struct *work)
+@@ -2289,6 +2289,10 @@ void mt7996_mac_work(struct work_struct *work)
  					mt7996_mcu_get_all_sta_info(mdev, UNI_ALL_STA_TXRX_ADM_STAT);
  					mt7996_mcu_get_all_sta_info(mdev, UNI_ALL_STA_TXRX_MSDU_COUNT);
  				}
@@ -66,7 +66,7 @@
  			           test_bit(MT76_STATE_RUNNING, &mdev->phys[i]->state))
  				break;
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 62c073bd..85d04525 100644
+index 35a44fee..1426e4b1 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -666,6 +666,82 @@ mt7996_mcu_rx_thermal_notify(struct mt7996_dev *dev, struct sk_buff *skb)
diff --git a/autobuild_mac80211_release/package/kernel/mt76/patches/1000-wifi-mt76-mt7915-add-mtk-internal-debug-tools-for-mt.patch b/autobuild_mac80211_release/package/kernel/mt76/patches/1000-wifi-mt76-mt7915-add-mtk-internal-debug-tools-for-mt.patch
index 0ef8f11..25907fe 100644
--- a/autobuild_mac80211_release/package/kernel/mt76/patches/1000-wifi-mt76-mt7915-add-mtk-internal-debug-tools-for-mt.patch
+++ b/autobuild_mac80211_release/package/kernel/mt76/patches/1000-wifi-mt76-mt7915-add-mtk-internal-debug-tools-for-mt.patch
@@ -4837,7 +4837,7 @@
 +{
 +	struct mt7915_dev *dev = dev_get_drvdata(s->private);
 +	struct mt76_dev *mdev = NULL;
-+	seq_printf(s, "Version: 2.2.15.0\n");
++	seq_printf(s, "Version: 2.2.16.0\n");
 +
 +	if (!test_bit(MT76_STATE_MCU_RUNNING, &dev->mphy.state))
 +		return 0;