[rdkb][common][bsp][Refactor and sync wifi from openwrt]

[Description]
05a67730 [mac80211][mt76][wifi6][do not report ACK when TXS is lost]
0bae31b5 [Fix WiFi7 Release Build Fail]
7bf748ba [openwrt-24][Mac80211][Fix Mozart build fail]
b52c9c66 [mac80211][mt76][wifi6][delete twt flow before remove stations]
7c4179d9 [mac8021][core][wifi6][set IEEE80211_TX_CTL_USE_MINRATE when probing]
8d17b91d [MAC80211][WiFi6][TWT][refine twt mcu update flow]
6d5ab74e [MAC80211][WiFi6][mt76][fix mt76 Makefile patch failed]
c6eeb297 [MAC80211][WiFi7][Misc][Fix release build fail because of mt76 version upgradation]
4df78532 [MAC80211][WiFi6][mt76][Fix TX/RX hang and SER hw bit didn't detect issue]

[Release-log]

Change-Id: I78f985181c5b667036461de240eec86e3912f431
diff --git a/recipes-wifi/iwinfo/iwinfo_git.bb b/recipes-wifi/iwinfo/iwinfo_git.bb
index 15ef360..f7c380a 100644
--- a/recipes-wifi/iwinfo/iwinfo_git.bb
+++ b/recipes-wifi/iwinfo/iwinfo_git.bb
@@ -8,7 +8,7 @@
 SECTION = "base"
 DEPENDS += "uci lua ubus libnl-tiny"
 
-SRCREV = "215820132b943b700d56441ecbd5a4efa09edc7c"
+SRCREV = "714e419919d00dd1b3cdce08d9f28a28b2de69ed"
 
 SRC_URI = "git://git.openwrt.org/project/iwinfo.git;branch=master \
            file://0002-fix-order-of-linker-cmdline-to-help-linking.patch \
diff --git a/recipes-wifi/linux-mac80211/files/patches/subsys/mtk-0033-mac80211-mtk-set-IEEE80211_TX_CTL_USE_MINRATE-when-p.patch b/recipes-wifi/linux-mac80211/files/patches/subsys/mtk-0033-mac80211-mtk-set-IEEE80211_TX_CTL_USE_MINRATE-when-p.patch
new file mode 100644
index 0000000..c597c75
--- /dev/null
+++ b/recipes-wifi/linux-mac80211/files/patches/subsys/mtk-0033-mac80211-mtk-set-IEEE80211_TX_CTL_USE_MINRATE-when-p.patch
@@ -0,0 +1,34 @@
+From 9c1bd48929ad7c6b55d4486e7c519c778f9900d6 Mon Sep 17 00:00:00 2001
+From: Peter Chiu <chui-hao.chiu@mediatek.com>
+Date: Mon, 14 Oct 2024 15:27:28 +0800
+Subject: [PATCH] mac80211: mtk: set IEEE80211_TX_CTL_USE_MINRATE when probing
+ station
+
+The TxS may not be reported to driver correctly when we set BA_DISALBE = 0.
+
+When mac80211 set IEEE80211_TX_CTL_USE_MINRATE, mt76 would use fixed rate
+and set BA_DISABLE = 1 to transmit the packet. So mt76 can receive TxS
+correctly.
+
+Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
+---
+ net/mac80211/cfg.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
+index 80fba54..4818dca 100644
+--- a/net/mac80211/cfg.c
++++ b/net/mac80211/cfg.c
+@@ -3957,7 +3957,8 @@ static int ieee80211_probe_client(struct wiphy *wiphy, struct net_device *dev,
+ 	info = IEEE80211_SKB_CB(skb);
+ 
+ 	info->flags |= IEEE80211_TX_CTL_REQ_TX_STATUS |
+-		       IEEE80211_TX_INTFL_NL80211_FRAME_TX;
++		       IEEE80211_TX_INTFL_NL80211_FRAME_TX |
++		       IEEE80211_TX_CTL_USE_MINRATE;
+ 	info->band = band;
+ 
+ 	skb_set_queue_mapping(skb, IEEE80211_AC_VO);
+-- 
+2.45.2
+
diff --git a/recipes-wifi/linux-mac80211/files/patches/subsys/subsys.inc b/recipes-wifi/linux-mac80211/files/patches/subsys/subsys.inc
index 71e0e62..b79ceff 100644
--- a/recipes-wifi/linux-mac80211/files/patches/subsys/subsys.inc
+++ b/recipes-wifi/linux-mac80211/files/patches/subsys/subsys.inc
@@ -90,6 +90,7 @@
     file://mtk-0030-mac80211-mtk-fix-incorrect-VIF-assignment-for-IEEE-8.patch \
     file://mtk-0031-mac80211-mtk-add-callback-function-to-set-QoS-map-in.patch \
     file://mtk-0032-mac80211-mtk-fix-inconsistent-QoS-mapping-between-AP.patch \
+    file://mtk-0033-mac80211-mtk-set-IEEE80211_TX_CTL_USE_MINRATE-when-p.patch \
     file://mtk-9900-mac80211-mtk-mask-kernel-version-limitation-and-fill.patch \
     file://mtk-9901-mac80211-mtk-add-fill-receive-path-ops-to-get-wed-id.patch \
     file://mtk-9902-mac80211-mtk-add-support-for-letting-drivers-registe.patch \
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0000-mtk-Revert-wifi-mac80211-don-t-use-rate-mask-for-offchan.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0000-mtk-Revert-wifi-mac80211-don-t-use-rate-mask-for-offchan.patch
new file mode 100644
index 0000000..459c21a
--- /dev/null
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0000-mtk-Revert-wifi-mac80211-don-t-use-rate-mask-for-offchan.patch
@@ -0,0 +1,26 @@
+From 9a0fcab618d234dfbe0e88aca8b2029bf968083b Mon Sep 17 00:00:00 2001
+From: Evelyn Tsai <evelyn.tsai@mediatek.com>
+Date: Sat, 12 Oct 2024 03:57:58 +0800
+Subject: [PATCH] Revert 'wifi: mac80211: don't use rate mask for offchannel TX
+ either'
+
+---
+ tx.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tx.c b/tx.c
+index a6b8c8f..d002cf6 100644
+--- a/tx.c
++++ b/tx.c
+@@ -357,7 +357,7 @@ mt76_tx(struct mt76_phy *phy, struct ieee80211_sta *sta,
+ 	info->hw_queue |= FIELD_PREP(MT_TX_HW_QUEUE_PHY, phy->band_idx);
+ 
+ 	if ((info->flags & IEEE80211_TX_CTL_TX_OFFCHAN) ||
+-	    (info->control.flags & IEEE80211_TX_CTRL_DONT_USE_RATE_MASK))
++	    (info->control.flags & IEEE80211_TX_CTRL_SCAN_TX))
+ 		head = &wcid->tx_offchannel;
+ 	else {
+ 		if (!wcid->tx_pending.prev || !wcid->tx_pending.next) {
+-- 
+2.45.2
+
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0001-mtk-Revert-wifi-mt76-mt7996-fill-txd-by-host-driver.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0001-mtk-Revert-wifi-mt76-mt7996-fill-txd-by-host-driver.patch
index 288c032..e913b7d 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0001-mtk-Revert-wifi-mt76-mt7996-fill-txd-by-host-driver.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0001-mtk-Revert-wifi-mt76-mt7996-fill-txd-by-host-driver.patch
@@ -1,7 +1,7 @@
-From 943c075154f8b6569f9c0fc2ecc39742ba652bce Mon Sep 17 00:00:00 2001
+From c3a050d2155dd5945d3d790256a82fb9a0b1bda5 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 001/223] mtk: Revert "wifi: mt76: mt7996: fill txd by host
+Subject: [PATCH 001/193] mtk: Revert "wifi: mt76: mt7996: fill txd by host
  driver"
 
 This reverts commit 325a0c4931990d553487024c4f76c776492bdcc2.
@@ -10,7 +10,7 @@
  1 file changed, 9 insertions(+), 4 deletions(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 4706ddef..29297c07 100644
+index 4706dde..29297c0 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -958,8 +958,11 @@ int mt7996_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0002-mtk-mt76-mt7996-fix-amsdu-information.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0002-mtk-mt76-mt7996-fix-amsdu-information.patch
index 238dab3..ce01ced 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0002-mtk-mt76-mt7996-fix-amsdu-information.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0002-mtk-mt76-mt7996-fix-amsdu-information.patch
@@ -1,7 +1,7 @@
-From afaacba412a34baf39e58b27003d4d09516a15c2 Mon Sep 17 00:00:00 2001
+From 36d2f10c4ccbcab5c4de2c52961a13c70bcd0ad1 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Fri, 17 May 2024 15:28:06 +0800
-Subject: [PATCH 002/223] mtk: mt76: mt7996: fix amsdu information
+Subject: [PATCH 002/193] mtk: mt76: mt7996: fix amsdu information
 
 The amsdu information is common information for all bands so maintain
 it by main phy instead of calculating by each phy.
@@ -17,7 +17,7 @@
  3 files changed, 11 insertions(+), 20 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
-index 19c4f11c..063c45d2 100644
+index 19c4f11..063c45d 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -931,6 +931,7 @@ struct mt76_dev {
@@ -38,7 +38,7 @@
  
  	/* mcu_muru_stats */
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index 62c03d08..a17c99a2 100644
+index 62c03d0..a17c99a 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -530,7 +530,6 @@ mt7996_tx_stats_show(struct seq_file *file, void *data)
@@ -69,7 +69,7 @@
  
  	return 0;
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 29297c07..cfcfc3ea 100644
+index 29297c0..cfcfc3e 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -2114,10 +2114,19 @@ void mt7996_mac_update_stats(struct mt7996_phy *phy)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0003-mtk-mt76-mt7996-add-preamble-puncture-support-for-mt.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0003-mtk-mt76-mt7996-add-preamble-puncture-support-for-mt.patch
index d87a708..0bf6adc 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0003-mtk-mt76-mt7996-add-preamble-puncture-support-for-mt.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0003-mtk-mt76-mt7996-add-preamble-puncture-support-for-mt.patch
@@ -1,7 +1,7 @@
-From d03a551a2fc9723b1b26c254bdc64694f271068f Mon Sep 17 00:00:00 2001
+From 0c988ca317063ce416a8d0d613a64a755262bb3f Mon Sep 17 00:00:00 2001
 From: Allen Ye <allen.ye@mediatek.com>
 Date: Thu, 18 Apr 2024 11:16:24 +0800
-Subject: [PATCH 003/223] mtk: mt76: mt7996: add preamble puncture support for
+Subject: [PATCH 003/193] mtk: mt76: mt7996: add preamble puncture support for
  mt7996
 
 Add support configure preamble puncture feature through mcu commands.
@@ -19,7 +19,7 @@
  6 files changed, 61 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 1b0e80df..200eace5 100644
+index 1b0e80d..200eace 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1288,6 +1288,7 @@ enum {
@@ -31,10 +31,10 @@
  	MCU_UNI_CMD_RRO = 0x57,
  	MCU_UNI_CMD_OFFCH_SCAN_CTRL = 0x58,
 diff --git a/mt7996/init.c b/mt7996/init.c
-index f6a010b6..f3744be6 100644
+index 2d36c73..5c57fbf 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -389,6 +389,7 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
+@@ -386,6 +386,7 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
  	wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT);
  	wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_CAN_REPLACE_PTK0);
  	wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER);
@@ -43,7 +43,7 @@
  	if (mt7996_has_background_radar(phy->dev) &&
  	    (!mdev->dev->of_node ||
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 343e6c4b..334cc8c5 100644
+index a9903cb..ac9a074 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -394,6 +394,11 @@ static int mt7996_config(struct ieee80211_hw *hw, u32 changed)
@@ -59,7 +59,7 @@
  		if (ret)
  			return ret;
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 5ac35af1..40915d1d 100644
+index d3346d5..1fed8eb 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -4573,3 +4573,43 @@ int mt7996_mcu_cp_support(struct mt7996_dev *dev, u8 mode)
@@ -107,7 +107,7 @@
 +				 &req, sizeof(req), false);
 +}
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 43468bca..df42c0f8 100644
+index 43468bc..df42c0f 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -923,6 +923,16 @@ enum {
@@ -128,7 +128,7 @@
  #define MT7996_PATCH_SCRAMBLE_KEY	GENMASK(15, 8)
  #define MT7996_PATCH_AES_KEY		GENMASK(7, 0)
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index ad10329d..17dfbdc8 100644
+index ad10329..17dfbdc 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -270,6 +270,9 @@ struct mt7996_phy {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0004-mtk-mt76-mt7996-add-driver-support-for-wpa3-ocv-and-.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0004-mtk-mt76-mt7996-add-driver-support-for-wpa3-ocv-and-.patch
index 75bae50..5d501f7 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0004-mtk-mt76-mt7996-add-driver-support-for-wpa3-ocv-and-.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0004-mtk-mt76-mt7996-add-driver-support-for-wpa3-ocv-and-.patch
@@ -1,7 +1,7 @@
-From 7952f4e661b7aff18120e0ad39a28e0a73e7ea31 Mon Sep 17 00:00:00 2001
+From d83dec64996815a753f2913efbf8c43383a687ab Mon Sep 17 00:00:00 2001
 From: mtk23510 <rudra.shahi@mediatek.com>
 Date: Fri, 24 Mar 2023 19:18:53 +0800
-Subject: [PATCH 004/223] mtk: mt76: mt7996: add driver support for wpa3 ocv
+Subject: [PATCH 004/193] mtk: mt76: mt7996: add driver support for wpa3 ocv
  and bp mt76
 
 Signed-off-by: mtk23510 <rudra.shahi@mediatek.com>
@@ -10,10 +10,10 @@
  1 file changed, 2 insertions(+)
 
 diff --git a/mt7996/init.c b/mt7996/init.c
-index f3744be6..9bf38083 100644
+index 5c57fbf..6fff95a 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)
+@@ -388,6 +388,8 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
  	wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER);
  	wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_PUNCT);
  
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0005-mtk-mt76-mt7996-enable-ser-query.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0005-mtk-mt76-mt7996-enable-ser-query.patch
index 39445e5..12c2a66 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0005-mtk-mt76-mt7996-enable-ser-query.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0005-mtk-mt76-mt7996-enable-ser-query.patch
@@ -1,7 +1,7 @@
-From c82a6b8993fa1785998459d79e9ba213e41fc4f7 Mon Sep 17 00:00:00 2001
+From 889874fb036ae950793b5738326ac08bfe215e7c 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 005/223] mtk: mt76: mt7996: enable ser query
+Subject: [PATCH 005/193] mtk: 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,7 +12,7 @@
  1 file changed, 2 insertions(+)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 40915d1d..a384d44a 100644
+index 1fed8eb..b765295 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -3888,6 +3888,8 @@ int mt7996_mcu_set_ser(struct mt7996_dev *dev, u8 action, u8 val, u8 band)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0006-mtk-mt76-mt7996-Fix-TGax-HE-4.51.1_24G-fail.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0006-mtk-mt76-mt7996-Fix-TGax-HE-4.51.1_24G-fail.patch
index 5e522ef..42e6778 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0006-mtk-mt76-mt7996-Fix-TGax-HE-4.51.1_24G-fail.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0006-mtk-mt76-mt7996-Fix-TGax-HE-4.51.1_24G-fail.patch
@@ -1,7 +1,7 @@
-From 9fbf0e20ece646083ad41f9a59aef3e1f295d00d Mon Sep 17 00:00:00 2001
+From 721672ec8319e443eb5a05888e3bd6f4bb794e13 Mon Sep 17 00:00:00 2001
 From: mtk27745 <rex.lu@mediatek.com>
 Date: Fri, 17 Nov 2023 11:01:04 +0800
-Subject: [PATCH 006/223] mtk: mt76: mt7996: Fix TGax HE-4.51.1_24G fail
+Subject: [PATCH 006/193] mtk: 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
@@ -13,10 +13,10 @@
  1 file changed, 6 insertions(+), 1 deletion(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 334cc8c5..f8c07b34 100644
+index ac9a074..76f9f3d 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -1444,7 +1444,12 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
+@@ -1443,7 +1443,12 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
  	path->mtk_wdma.queue = 0;
  	path->mtk_wdma.wcid = msta->wcid.idx;
  
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0007-mtk-mt76-mt7996-add-support-for-different-variants.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0007-mtk-mt76-mt7996-add-support-for-different-variants.patch
index b38735e..0b039e0 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0007-mtk-mt76-mt7996-add-support-for-different-variants.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0007-mtk-mt76-mt7996-add-support-for-different-variants.patch
@@ -1,7 +1,7 @@
-From f63be84654b80990d87723a8e6292b92952633aa Mon Sep 17 00:00:00 2001
+From 1168657b8d856f94f7334ca922b380911e7f0b71 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 007/223] mtk: mt76: mt7996: add support for different variants
+Subject: [PATCH 007/193] mtk: mt76: mt7996: add support for different variants
 
 Add fem type (2i5i, 2i5e, 2e5e, ...)
 Add Kite default bin for each fem type since loading wrong default bin
@@ -35,7 +35,7 @@
  5 files changed, 49 insertions(+), 2 deletions(-)
 
 diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index da94751d..77dd6b20 100644
+index da94751..77dd6b2 100644
 --- a/mt7996/eeprom.c
 +++ b/mt7996/eeprom.c
 @@ -9,14 +9,33 @@
@@ -103,7 +103,7 @@
  	if (ret < 0)
  		return ret;
 diff --git a/mt7996/eeprom.h b/mt7996/eeprom.h
-index 7a771ca2..8074a0ae 100644
+index 7a771ca..8074a0a 100644
 --- a/mt7996/eeprom.h
 +++ b/mt7996/eeprom.h
 @@ -29,6 +29,7 @@ enum mt7996_eeprom_field {
@@ -115,10 +115,10 @@
  #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 9bf38083..3a6f4f28 100644
+index 6fff95a..c553a19 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -906,7 +906,7 @@ static int mt7996_variant_type_init(struct mt7996_dev *dev)
+@@ -903,7 +903,7 @@ static int mt7996_variant_type_init(struct mt7996_dev *dev)
  		else if (u32_get_bits(val, MT_PAD_GPIO_ADIE_COMB_7992))
  			var_type = MT7992_VAR_TYPE_44;
  		else
@@ -128,7 +128,7 @@
  	default:
  		return -EINVAL;
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index a384d44a..dd428570 100644
+index b765295..e567c3e 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -18,6 +18,9 @@
@@ -142,7 +142,7 @@
  			_fw = MT7992_##name;			\
  		}						\
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 17dfbdc8..1dd618c2 100644
+index 17dfbdc..1dd618c 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -49,16 +49,23 @@
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0008-mtk-mt76-mt7996-ACS-channel-time-too-long-on-duty-ch.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0008-mtk-mt76-mt7996-ACS-channel-time-too-long-on-duty-ch.patch
index 5cb744f..279ccf2 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0008-mtk-mt76-mt7996-ACS-channel-time-too-long-on-duty-ch.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0008-mtk-mt76-mt7996-ACS-channel-time-too-long-on-duty-ch.patch
@@ -1,7 +1,7 @@
-From 49c81a4e339f9646fb32faa00935e88ea8c91ec5 Mon Sep 17 00:00:00 2001
+From 5525cb05733de8ff8cd557ceeee088a586f9b12b 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 008/223] mtk: mt76: mt7996: ACS channel time too long on duty
+Subject: [PATCH 008/193] mtk: mt76: mt7996: ACS channel time too long on duty
  channel
 
 Step and issue:
@@ -41,7 +41,7 @@
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/mac80211.c b/mac80211.c
-index 303f4385..dc1ef40d 100644
+index 303f438..dc1ef40 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -927,6 +927,7 @@ int mt76_set_channel(struct mt76_phy *phy, struct cfg80211_chan_def *chandef,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0009-mtk-mt76-mt7996-Fixed-null-pointer-dereference-issue.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0009-mtk-mt76-mt7996-Fixed-null-pointer-dereference-issue.patch
index cb70b1b..acd6e97 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0009-mtk-mt76-mt7996-Fixed-null-pointer-dereference-issue.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0009-mtk-mt76-mt7996-Fixed-null-pointer-dereference-issue.patch
@@ -1,7 +1,7 @@
-From 6f5c66458edeadf97bd3f6acf55a3a9318b86d83 Mon Sep 17 00:00:00 2001
+From 0f882d5fb74c803f40e1595b47e014020a89be16 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 009/223] mtk: mt76: mt7996: Fixed null pointer dereference
+Subject: [PATCH 009/193] mtk: mt76: mt7996: Fixed null pointer dereference
  issue
 
 ---
@@ -9,10 +9,10 @@
  1 file changed, 7 insertions(+)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index f8c07b34..f18c0a08 100644
+index 76f9f3d..f4a1788 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -1060,9 +1060,16 @@ static void mt7996_sta_rc_update(struct ieee80211_hw *hw,
+@@ -1059,9 +1059,16 @@ static void mt7996_sta_rc_update(struct ieee80211_hw *hw,
  				 struct ieee80211_sta *sta,
  				 u32 changed)
  {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0010-mtk-mt76-add-sanity-check-to-prevent-kernel-crash.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0010-mtk-mt76-add-sanity-check-to-prevent-kernel-crash.patch
index 46ba8c2..a6266a8 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0010-mtk-mt76-add-sanity-check-to-prevent-kernel-crash.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0010-mtk-mt76-add-sanity-check-to-prevent-kernel-crash.patch
@@ -1,7 +1,7 @@
-From 8fb1feae687645a1c48070f2eebc44fcb7db080d Mon Sep 17 00:00:00 2001
+From 356d5ed87c0ced7ac2078466d60e4ef5fd87edda 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 010/223] mtk: mt76: add sanity check to prevent kernel crash
+Subject: [PATCH 010/193] mtk: mt76: add sanity check to prevent kernel crash
 
 wcid may not be initialized when mac80211 calls mt76.tx and it would lead to
 kernel crash.
@@ -13,12 +13,12 @@
  1 file changed, 9 insertions(+), 1 deletion(-)
 
 diff --git a/tx.c b/tx.c
-index 7521e739..2634c5bc 100644
+index ce193e6..c24729d 100644
 --- a/tx.c
 +++ b/tx.c
 @@ -352,8 +352,16 @@ mt76_tx(struct mt76_phy *phy, struct ieee80211_sta *sta,
  	if ((info->flags & IEEE80211_TX_CTL_TX_OFFCHAN) ||
- 	    (info->control.flags & IEEE80211_TX_CTRL_SCAN_TX))
+ 	    (info->control.flags & IEEE80211_TX_CTRL_DONT_USE_RATE_MASK))
  		head = &wcid->tx_offchannel;
 -	else
 +	else {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0011-mtk-mt76-mt7996-add-firmware-WA-s-coredump.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0011-mtk-mt76-mt7996-add-firmware-WA-s-coredump.patch
index 804e1c3..ba83837 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0011-mtk-mt76-mt7996-add-firmware-WA-s-coredump.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0011-mtk-mt76-mt7996-add-firmware-WA-s-coredump.patch
@@ -1,7 +1,7 @@
-From 744e6ef280817a9010606e2d36573cc9206e8457 Mon Sep 17 00:00:00 2001
+From 23e7fc9ba2c48915bdf51ceb05703da10dbe1f36 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 011/223] mtk: mt76: mt7996: add firmware WA's coredump.
+Subject: [PATCH 011/193] mtk: mt76: mt7996: add firmware WA's coredump.
 
 Change-Id: I51f115b4ae15bc0f871f93652570d72511dbf880
 Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com>
@@ -15,7 +15,7 @@
  6 files changed, 182 insertions(+), 83 deletions(-)
 
 diff --git a/mt7996/coredump.c b/mt7996/coredump.c
-index ccab0d7b..60b88085 100644
+index ccab0d7..60b8808 100644
 --- a/mt7996/coredump.c
 +++ b/mt7996/coredump.c
 @@ -7,11 +7,11 @@
@@ -336,7 +336,7 @@
  }
  
 diff --git a/mt7996/coredump.h b/mt7996/coredump.h
-index af2ba219..01ed3731 100644
+index af2ba21..01ed373 100644
 --- a/mt7996/coredump.h
 +++ b/mt7996/coredump.h
 @@ -6,10 +6,13 @@
@@ -429,7 +429,7 @@
  	return NULL;
  }
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index cfcfc3ea..dafc86f8 100644
+index cfcfc3e..dafc86f 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -2018,28 +2018,25 @@ void mt7996_mac_reset_work(struct work_struct *work)
@@ -507,7 +507,7 @@
  }
  
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index dd428570..46fb3a03 100644
+index e567c3e..e691150 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -2719,6 +2719,8 @@ static int mt7996_load_patch(struct mt7996_dev *dev)
@@ -530,7 +530,7 @@
  		 fw_type, hdr->fw_ver, hdr->build_date);
  
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 1dd618c2..602f367d 100644
+index 1dd618c..602f367 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -94,6 +94,8 @@
@@ -564,7 +564,7 @@
  	struct list_head sta_rc_list;
  	struct list_head twt_list;
 diff --git a/mt7996/regs.h b/mt7996/regs.h
-index 06e307b5..3450a2fc 100644
+index 06e307b..3450a2f 100644
 --- a/mt7996/regs.h
 +++ b/mt7996/regs.h
 @@ -597,7 +597,8 @@ enum offs_rev {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0012-mtk-mt76-mt7996-for-build-pass.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0012-mtk-mt76-mt7996-for-build-pass.patch
index cee8d38..1f99a49 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0012-mtk-mt76-mt7996-for-build-pass.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0012-mtk-mt76-mt7996-for-build-pass.patch
@@ -1,7 +1,7 @@
-From 5ef8895f1b5e8684b4f81ce52bffa28e629d966b Mon Sep 17 00:00:00 2001
+From 313d33dcaaa7089a4a7209ff77925698d8a6d34e 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 012/223] mtk: mt76: mt7996: for build pass
+Subject: [PATCH 012/193] mtk: mt76: mt7996: for build pass
 
 Change-Id: Ieb44c33ee6e6a2e6058c1ef528404c1a1cbcfdaf
 ---
@@ -17,7 +17,7 @@
  9 files changed, 12 insertions(+), 3 deletions(-)
 
 diff --git a/debugfs.c b/debugfs.c
-index c4649ba0..ac5207e5 100644
+index c4649ba..ac5207e 100644
 --- a/debugfs.c
 +++ b/debugfs.c
 @@ -33,8 +33,11 @@ mt76_napi_threaded_set(void *data, u64 val)
@@ -33,7 +33,7 @@
  	return 0;
  }
 diff --git a/dma.c b/dma.c
-index f4f88c44..56044639 100644
+index f4f88c4..5604463 100644
 --- a/dma.c
 +++ b/dma.c
 @@ -883,7 +883,7 @@ mt76_dma_rx_process(struct mt76_dev *dev, struct mt76_queue *q, int budget)
@@ -46,7 +46,7 @@
  			goto free_frag;
  
 diff --git a/mcu.c b/mcu.c
-index 3353012e..2bcce21f 100644
+index 3353012..2bcce21 100644
 --- a/mcu.c
 +++ b/mcu.c
 @@ -4,6 +4,7 @@
@@ -58,7 +58,7 @@
  struct sk_buff *
  __mt76_mcu_msg_alloc(struct mt76_dev *dev, const void *data,
 diff --git a/mt7615/mcu.c b/mt7615/mcu.c
-index 4e350f27..c2090378 100644
+index 804d3f5..a9ff0ab 100644
 --- a/mt7615/mcu.c
 +++ b/mt7615/mcu.c
 @@ -10,6 +10,7 @@
@@ -70,7 +70,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 77f3e92d..07f52dd6 100644
+index 77f3e92..07f52dd 100644
 --- a/mt76_connac_mcu.c
 +++ b/mt76_connac_mcu.c
 @@ -4,6 +4,7 @@
@@ -82,7 +82,7 @@
  int mt76_connac_mcu_start_firmware(struct mt76_dev *dev, u32 addr, u32 option)
  {
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 72c8e574..b04a960b 100644
+index fee36ab..5f4b1f4 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -6,6 +6,7 @@
@@ -94,7 +94,7 @@
  #define fw_name(_dev, name, ...)	({			\
  	char *_fw;						\
 diff --git a/mt7996/dma.c b/mt7996/dma.c
-index 73e633d0..759a58e8 100644
+index 73e633d..759a58e 100644
 --- a/mt7996/dma.c
 +++ b/mt7996/dma.c
 @@ -641,8 +641,8 @@ int mt7996_dma_init(struct mt7996_dev *dev)
@@ -109,7 +109,7 @@
  
  	mt7996_dma_enable(dev, false);
 diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index 77dd6b20..21379ce0 100644
+index 77dd6b2..21379ce 100644
 --- a/mt7996/eeprom.c
 +++ b/mt7996/eeprom.c
 @@ -249,6 +249,7 @@ static int mt7996_eeprom_parse_efuse_hw_cap(struct mt7996_phy *phy,
@@ -121,7 +121,7 @@
  		u8 band_offs = phy->mt76->band_idx * 3;
  
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 46fb3a03..623d19f1 100644
+index e691150..56badef 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -5,6 +5,7 @@
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0013-mtk-mt76-mt7996-add-debug-tool.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0013-mtk-mt76-mt7996-add-debug-tool.patch
index 7288efd..ca09805 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0013-mtk-mt76-mt7996-add-debug-tool.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0013-mtk-mt76-mt7996-add-debug-tool.patch
@@ -1,7 +1,7 @@
-From 1e463d48da75799dd89a9ba28eb37e1e18c4a40b Mon Sep 17 00:00:00 2001
+From 5ef6d1ad64a452dfd0f4747760490c3e47ce563d 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 013/223] mtk: mt76: mt7996: add debug tool
+Subject: [PATCH 013/193] mtk: mt76: mt7996: add debug tool
 
 Add PSM bit in sta_info
 
@@ -82,7 +82,7 @@
  create mode 100644 mt7996/mtk_mcu.h
 
 diff --git a/mt76.h b/mt76.h
-index 063c45d2..f50f2117 100644
+index 063c45d..f50f211 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -409,6 +409,8 @@ struct mt76_txwi_cache {
@@ -95,7 +95,7 @@
  
  struct mt76_rx_tid {
 diff --git a/mt7996/Makefile b/mt7996/Makefile
-index 07c8b555..a056b40e 100644
+index 07c8b55..a056b40 100644
 --- a/mt7996/Makefile
 +++ b/mt7996/Makefile
 @@ -1,4 +1,6 @@
@@ -112,7 +112,7 @@
 +
 +mt7996e-y += mtk_debugfs.o mtk_mcu.o
 diff --git a/mt7996/coredump.c b/mt7996/coredump.c
-index 60b88085..a7f91b56 100644
+index 60b8808..a7f91b5 100644
 --- a/mt7996/coredump.c
 +++ b/mt7996/coredump.c
 @@ -195,7 +195,7 @@ mt7996_coredump_fw_stack(struct mt7996_dev *dev, u8 type, struct mt7996_coredump
@@ -161,7 +161,7 @@
  		dev_warn(dev->mt76.dev, "no crash dump data found\n");
  		return -ENODATA;
 diff --git a/mt7996/coredump.h b/mt7996/coredump.h
-index 01ed3731..93cd84a0 100644
+index 01ed373..93cd84a 100644
 --- a/mt7996/coredump.h
 +++ b/mt7996/coredump.h
 @@ -75,6 +75,7 @@ struct mt7996_mem_region {
@@ -186,7 +186,7 @@
  mt7996_crash_data *mt7996_coredump_new(struct mt7996_dev *dev, u8 type)
  {
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index a17c99a2..9671c15d 100644
+index a17c99a..9671c15 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -295,11 +295,39 @@ mt7996_fw_debug_wm_set(void *data, u64 val)
@@ -397,7 +397,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 dafc86f8..d1d45c98 100644
+index dafc86f..d1d45c9 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -956,6 +956,9 @@ int mt7996_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
@@ -411,7 +411,7 @@
  	pid = mt76_tx_status_skb_add(mdev, wcid, tx_info->skb);
  	memset(txwi_ptr, 0, MT_TXD_SIZE);
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 602f367d..6c889427 100644
+index 602f367..6c88942 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -370,6 +370,7 @@ struct mt7996_dev {
@@ -450,7 +450,7 @@
  #ifdef CONFIG_NET_MEDIATEK_SOC_WED
 diff --git a/mt7996/mtk_debug.h b/mt7996/mtk_debug.h
 new file mode 100644
-index 00000000..27d8f1cb
+index 0000000..27d8f1c
 --- /dev/null
 +++ b/mt7996/mtk_debug.h
 @@ -0,0 +1,2286 @@
@@ -2742,7 +2742,7 @@
 +#endif
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
 new file mode 100644
-index 00000000..d1f3d16c
+index 0000000..d1f3d16
 --- /dev/null
 +++ b/mt7996/mtk_debugfs.c
 @@ -0,0 +1,2506 @@
@@ -3094,7 +3094,7 @@
 +		[MT7996_FEM_MIX] = "mixed FEM",
 +	};
 +
-+	seq_printf(s, "Version: 4.3.24.8\n");
++	seq_printf(s, "Version: 4.3.24.10\n");
 +
 +	if (!test_bit(MT76_STATE_MCU_RUNNING, &dev->mphy.state))
 +		return 0;
@@ -5254,7 +5254,7 @@
 +#endif
 diff --git a/mt7996/mtk_mcu.c b/mt7996/mtk_mcu.c
 new file mode 100644
-index 00000000..c16b25ab
+index 0000000..c16b25a
 --- /dev/null
 +++ b/mt7996/mtk_mcu.c
 @@ -0,0 +1,39 @@
@@ -5299,7 +5299,7 @@
 +#endif
 diff --git a/mt7996/mtk_mcu.h b/mt7996/mtk_mcu.h
 new file mode 100644
-index 00000000..7f4d4e02
+index 0000000..7f4d4e0
 --- /dev/null
 +++ b/mt7996/mtk_mcu.h
 @@ -0,0 +1,19 @@
@@ -5323,7 +5323,7 @@
 +
 +#endif
 diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
-index 3a83e34d..6599c444 100644
+index 3a83e34..6599c44 100644
 --- a/tools/CMakeLists.txt
 +++ b/tools/CMakeLists.txt
 @@ -3,6 +3,13 @@ cmake_minimum_required(VERSION 2.8)
@@ -5341,7 +5341,7 @@
  TARGET_LINK_LIBRARIES(mt76-test nl-tiny)
  
 diff --git a/tools/fwlog.c b/tools/fwlog.c
-index e5d4a105..3c6a61d7 100644
+index e5d4a10..3c6a61d 100644
 --- a/tools/fwlog.c
 +++ b/tools/fwlog.c
 @@ -26,7 +26,7 @@ static const char *debugfs_path(const char *phyname, const char *file)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0014-mtk-mt76-mt7996-add-check-for-hostapd-config-he_ldpc.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0014-mtk-mt76-mt7996-add-check-for-hostapd-config-he_ldpc.patch
index d381689..bcefeaa 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0014-mtk-mt76-mt7996-add-check-for-hostapd-config-he_ldpc.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0014-mtk-mt76-mt7996-add-check-for-hostapd-config-he_ldpc.patch
@@ -1,7 +1,7 @@
-From ef0c8f78bad493731f96c1c6c3659f106a99040a Mon Sep 17 00:00:00 2001
+From 83e488204e800920844972b9b1b63962fbb2444c 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 014/223] mtk: mt76: mt7996: add check for hostapd config
+Subject: [PATCH 014/193] mtk: mt76: mt7996: add check for hostapd config
  he_ldpc
 
 Add check for hostapd config he_ldpc.
@@ -17,7 +17,7 @@
  1 file changed, 9 insertions(+), 3 deletions(-)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 623d19f1..cefd4fad 100644
+index 56badef..0b96b30 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -1198,7 +1198,8 @@ int mt7996_mcu_add_rx_ba(struct mt7996_dev *dev,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0015-mtk-mt76-mt7996-add-basic-testmode-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0015-mtk-mt76-mt7996-add-basic-testmode-support.patch
index aecd31a..bc959c3 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0015-mtk-mt76-mt7996-add-basic-testmode-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0015-mtk-mt76-mt7996-add-basic-testmode-support.patch
@@ -1,7 +1,7 @@
-From 7f3e6ce10b137781002b339ab16c2bf078313c41 Mon Sep 17 00:00:00 2001
+From a745353842ae1ca764abb6c9a24b43594799c3d0 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Thu, 26 Sep 2024 14:54:11 +0800
-Subject: [PATCH 015/223] mtk: mt76: mt7996: add basic testmode support
+Subject: [PATCH 015/193] mtk: mt76: mt7996: add basic testmode support
 
 Add testmode eeprom buffer mode support
 
@@ -41,7 +41,7 @@
  create mode 100644 mt7996/testmode.h
 
 diff --git a/eeprom.c b/eeprom.c
-index ab4fab11..6bd2cc1a 100644
+index ab4fab1..6bd2cc1 100644
 --- a/eeprom.c
 +++ b/eeprom.c
 @@ -94,8 +94,10 @@ int mt76_get_of_data_from_mtd(struct mt76_dev *dev, void *eep, int offset, int l
@@ -58,7 +58,7 @@
  
  out_put_node:
 diff --git a/mac80211.c b/mac80211.c
-index dc1ef40d..5d9512d4 100644
+index dc1ef40..5d9512d 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)
@@ -72,7 +72,7 @@
  		if (status->flag & RX_FLAG_FAILED_FCS_CRC)
  			phy->test.rx_stats.fcs_error[q]++;
 diff --git a/mt76.h b/mt76.h
-index f50f2117..f6ffccac 100644
+index f50f211..f6ffcca 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -718,14 +718,21 @@ struct mt76_testmode_ops {
@@ -156,7 +156,7 @@
  {
  #ifdef CONFIG_NL80211_TESTMODE
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 200eace5..873f59f7 100644
+index 200eace..873f59f 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1284,12 +1284,14 @@ enum {
@@ -175,7 +175,7 @@
  	MCU_UNI_CMD_OFFCH_SCAN_CTRL = 0x58,
  	MCU_UNI_CMD_PER_STA_INFO = 0x6d,
 diff --git a/mt7996/Makefile b/mt7996/Makefile
-index a056b40e..7bb17f44 100644
+index a056b40..7bb17f4 100644
 --- a/mt7996/Makefile
 +++ b/mt7996/Makefile
 @@ -8,5 +8,6 @@ mt7996e-y := pci.o init.o dma.o eeprom.o main.o mcu.o mac.o \
@@ -186,7 +186,7 @@
  
  mt7996e-y += mtk_debugfs.o mtk_mcu.o
 diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index 21379ce0..cb4fb702 100644
+index 21379ce..cb4fb70 100644
 --- a/mt7996/eeprom.c
 +++ b/mt7996/eeprom.c
 @@ -6,6 +6,11 @@
@@ -312,7 +312,7 @@
  		u32 eeprom_blk_size = MT7996_EEPROM_BLOCK_SIZE;
  		u32 block_num = DIV_ROUND_UP(MT7996_EEPROM_SIZE, eeprom_blk_size);
 diff --git a/mt7996/eeprom.h b/mt7996/eeprom.h
-index 8074a0ae..7f7a718f 100644
+index 8074a0a..7f7a718 100644
 --- a/mt7996/eeprom.h
 +++ b/mt7996/eeprom.h
 @@ -14,6 +14,7 @@ enum mt7996_eeprom_field {
@@ -324,10 +324,10 @@
  	MT_EE_RATE_DELTA_2G =	0x1400,
  	MT_EE_RATE_DELTA_5G =	0x147d,
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 3a6f4f28..dc736a2d 100644
+index c553a19..4958897 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -983,6 +983,10 @@ static int mt7996_init_hardware(struct mt7996_dev *dev)
+@@ -980,6 +980,10 @@ static int mt7996_init_hardware(struct mt7996_dev *dev)
  
  	set_bit(MT76_STATE_INITIALIZED, &dev->mphy.state);
  
@@ -338,7 +338,7 @@
  	ret = mt7996_mcu_init(dev);
  	if (ret)
  		return ret;
-@@ -1436,6 +1440,10 @@ int mt7996_register_device(struct mt7996_dev *dev)
+@@ -1433,6 +1437,10 @@ int mt7996_register_device(struct mt7996_dev *dev)
  
  	mt7996_init_wiphy(hw, &dev->mt76.mmio.wed);
  
@@ -350,7 +350,7 @@
  				   ARRAY_SIZE(mt76_rates));
  	if (ret)
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index d1d45c98..d73644f6 100644
+index d1d45c9..d73644f 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -686,7 +686,8 @@ mt7996_mac_fill_rx(struct mt7996_dev *dev, enum mt76_rxq_id q,
@@ -364,7 +364,7 @@
  		case RX_ENC_EHT:
  			mt76_connac3_mac_decode_eht_radiotap(skb, rxv, mode);
 diff --git a/mt7996/main.c b/mt7996/main.c
-index f18c0a08..b7ae6e1a 100644
+index f4a1788..da47faf 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -23,6 +23,18 @@ static bool mt7996_dev_running(struct mt7996_dev *dev)
@@ -442,7 +442,7 @@
  		ret = mt7996_mcu_set_pp_en(phy, PP_USR_MODE,
  					   phy->mt76->chandef.punctured);
  		if (ret)
-@@ -1508,6 +1541,8 @@ const struct ieee80211_ops mt7996_ops = {
+@@ -1507,6 +1540,8 @@ const struct ieee80211_ops mt7996_ops = {
  	.sta_set_decap_offload = mt7996_sta_set_decap_offload,
  	.add_twt_setup = mt7996_mac_add_twt_setup,
  	.twt_teardown_request = mt7996_twt_teardown_request,
@@ -452,7 +452,7 @@
  	.sta_add_debugfs = mt7996_sta_add_debugfs,
  #endif
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index cefd4fad..214a39d5 100644
+index 0b96b30..2f3e547 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -2880,8 +2880,12 @@ static int mt7996_load_ram(struct mt7996_dev *dev)
@@ -534,7 +534,7 @@
 +				 &req, sizeof(req), false);
 +}
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index df42c0f8..abf8ef48 100644
+index df42c0f..abf8ef4 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -157,6 +157,16 @@ struct mt7996_mcu_eeprom {
@@ -587,7 +587,7 @@
  
  enum {
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 6c889427..5f911515 100644
+index 6c88942..5f91151 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -32,6 +32,7 @@
@@ -692,7 +692,7 @@
  {
 diff --git a/mt7996/testmode.c b/mt7996/testmode.c
 new file mode 100644
-index 00000000..58f0ad26
+index 0000000..58f0ad2
 --- /dev/null
 +++ b/mt7996/testmode.c
 @@ -0,0 +1,740 @@
@@ -1438,7 +1438,7 @@
 +};
 diff --git a/mt7996/testmode.h b/mt7996/testmode.h
 new file mode 100644
-index 00000000..319ef257
+index 0000000..319ef25
 --- /dev/null
 +++ b/mt7996/testmode.h
 @@ -0,0 +1,299 @@
@@ -1742,7 +1742,7 @@
 +
 +#endif
 diff --git a/testmode.c b/testmode.c
-index ca4feccf..44f3a5bf 100644
+index ca4fecc..44f3a5b 100644
 --- a/testmode.c
 +++ b/testmode.c
 @@ -2,11 +2,13 @@
@@ -2009,7 +2009,7 @@
  
  	if (mt76_testmode_param_present(td, MT76_TM_ATTR_TX_POWER)) {
 diff --git a/testmode.h b/testmode.h
-index 1b0bcae8..2873c903 100644
+index 1b0bcae..2873c90 100644
 --- a/testmode.h
 +++ b/testmode.h
 @@ -5,7 +5,8 @@
@@ -2197,7 +2197,7 @@
 +
  #endif
 diff --git a/tools/fields.c b/tools/fields.c
-index e3f69089..055f90f3 100644
+index e3f6908..055f90f 100644
 --- a/tools/fields.c
 +++ b/tools/fields.c
 @@ -10,6 +10,7 @@ static const char * const testmode_state[] = {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0016-mtk-mt76-mt7996-add-testmode-pre-calibration-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0016-mtk-mt76-mt7996-add-testmode-pre-calibration-support.patch
index 7bfffde..602b2d7 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0016-mtk-mt76-mt7996-add-testmode-pre-calibration-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0016-mtk-mt76-mt7996-add-testmode-pre-calibration-support.patch
@@ -1,7 +1,7 @@
-From 3d599c8f98348aa22fde6d3fc9b0536467a6378c Mon Sep 17 00:00:00 2001
+From bf7cfde381eaebc8e27be3ac9ceae80845ca835f 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 016/223] mtk: mt76: mt7996: add testmode pre-calibration
+Subject: [PATCH 016/193] mtk: mt76: mt7996: add testmode pre-calibration
  support
 
 Change-Id: If8a6cc02fa20e35f079c826e0571e8c04c3f9c7e
@@ -22,7 +22,7 @@
  12 files changed, 632 insertions(+), 23 deletions(-)
 
 diff --git a/mac80211.c b/mac80211.c
-index 5d9512d4..1d2477d6 100644
+index 5d9512d..1d2477d 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -6,27 +6,6 @@
@@ -54,7 +54,7 @@
  	CHAN2G(1, 2412),
  	CHAN2G(2, 2417),
 diff --git a/mt76.h b/mt76.h
-index f6ffccac..8666ec2f 100644
+index f6ffcca..8666ec2 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -24,6 +24,27 @@
@@ -94,7 +94,7 @@
  
  #define MT_TM_FW_RX_COUNT	BIT(0)
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 873f59f7..c7fa7b26 100644
+index 873f59f..c7fa7b2 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1058,8 +1058,10 @@ enum {
@@ -109,7 +109,7 @@
  	MCU_UNI_EVENT_PER_STA_INFO = 0x6d,
  	MCU_UNI_EVENT_ALL_STA_INFO = 0x6e,
 diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index cb4fb702..31b8fd1a 100644
+index cb4fb70..31b8fd1 100644
 --- a/mt7996/eeprom.c
 +++ b/mt7996/eeprom.c
 @@ -12,6 +12,42 @@ static bool testmode_enable;
@@ -193,7 +193,7 @@
  mt7996_eeprom_check_or_use_default(struct mt7996_dev *dev, bool use_default)
  {
 diff --git a/mt7996/eeprom.h b/mt7996/eeprom.h
-index 7f7a718f..c1cad4f9 100644
+index 7f7a718..c1cad4f 100644
 --- a/mt7996/eeprom.h
 +++ b/mt7996/eeprom.h
 @@ -14,6 +14,7 @@ enum mt7996_eeprom_field {
@@ -258,7 +258,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 214a39d5..08534fec 100644
+index 2f3e547..914f1f9 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -725,6 +725,11 @@ mt7996_mcu_uni_rx_unsolicited_event(struct mt7996_dev *dev, struct sk_buff *skb)
@@ -274,7 +274,7 @@
  		break;
  	}
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 5f911515..54b81c1e 100644
+index 5f91151..54b81c1 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -399,6 +399,9 @@ struct mt7996_dev {
@@ -306,7 +306,7 @@
  static inline u8 mt7996_max_interface_num(struct mt7996_dev *dev)
  {
 diff --git a/mt7996/testmode.c b/mt7996/testmode.c
-index 58f0ad26..6969cba6 100644
+index 58f0ad2..6969cba 100644
 --- a/mt7996/testmode.c
 +++ b/mt7996/testmode.c
 @@ -7,6 +7,8 @@
@@ -773,7 +773,7 @@
 +	.dump_precal = mt7996_tm_dump_precal,
  };
 diff --git a/mt7996/testmode.h b/mt7996/testmode.h
-index 319ef257..9bfb86f2 100644
+index 319ef25..9bfb86f 100644
 --- a/mt7996/testmode.h
 +++ b/mt7996/testmode.h
 @@ -34,6 +34,12 @@ enum bw_mapping_method {
@@ -835,7 +835,7 @@
  	RF_OPER_NORMAL,
  	RF_OPER_RF_TEST,
 diff --git a/testmode.c b/testmode.c
-index 44f3a5bf..cd8cb655 100644
+index 44f3a5b..cd8cb65 100644
 --- a/testmode.c
 +++ b/testmode.c
 @@ -674,6 +674,18 @@ int mt76_testmode_dump(struct ieee80211_hw *hw, struct sk_buff *msg,
@@ -858,7 +858,7 @@
  		err = -EINVAL;
  
 diff --git a/testmode.h b/testmode.h
-index 2873c903..3348d0d5 100644
+index 2873c90..3348d0d 100644
 --- a/testmode.h
 +++ b/testmode.h
 @@ -220,6 +220,14 @@ enum mt76_testmode_state {
@@ -877,7 +877,7 @@
  
  	/* keep last */
 diff --git a/tools/fields.c b/tools/fields.c
-index 055f90f3..b0122763 100644
+index 055f90f..b012276 100644
 --- a/tools/fields.c
 +++ b/tools/fields.c
 @@ -11,6 +11,14 @@ static const char * const testmode_state[] = {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0017-mtk-mt76-mt7996-add-normal-mode-pre-calibration-supp.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0017-mtk-mt76-mt7996-add-normal-mode-pre-calibration-supp.patch
index aa08101..36103ad 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0017-mtk-mt76-mt7996-add-normal-mode-pre-calibration-supp.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0017-mtk-mt76-mt7996-add-normal-mode-pre-calibration-supp.patch
@@ -1,7 +1,7 @@
-From 2d4b4838473a1a02b793b9ba214f03640419f5ba Mon Sep 17 00:00:00 2001
+From 5b4ef18a11d468f6cf1cd5e43f1a232c3678bce5 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 017/223] mtk: mt76: mt7996: add normal mode pre-calibration
+Subject: [PATCH 017/193] mtk: mt76: mt7996: add normal mode pre-calibration
  support
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
@@ -16,7 +16,7 @@
  7 files changed, 188 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index c7fa7b26..a7d7ecce 100644
+index c7fa7b2..a7d7ecc 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1294,6 +1294,7 @@ enum {
@@ -28,7 +28,7 @@
  	MCU_UNI_CMD_OFFCH_SCAN_CTRL = 0x58,
  	MCU_UNI_CMD_PER_STA_INFO = 0x6d,
 diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index 31b8fd1a..5ff52577 100644
+index 31b8fd1..5ff5257 100644
 --- a/mt7996/eeprom.c
 +++ b/mt7996/eeprom.c
 @@ -489,6 +489,10 @@ int mt7996_eeprom_init(struct mt7996_dev *dev)
@@ -43,7 +43,7 @@
  	if (ret < 0)
  		return ret;
 diff --git a/mt7996/eeprom.h b/mt7996/eeprom.h
-index c1cad4f9..b3b9b854 100644
+index c1cad4f..b3b9b85 100644
 --- a/mt7996/eeprom.h
 +++ b/mt7996/eeprom.h
 @@ -25,6 +25,8 @@ enum mt7996_eeprom_field {
@@ -56,10 +56,10 @@
  
  #define MT_EE_WIFI_CONF0_TX_PATH		GENMASK(2, 0)
 diff --git a/mt7996/init.c b/mt7996/init.c
-index dc736a2d..a34e034d 100644
+index 4958897..5e0a6d0 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -1003,6 +1003,12 @@ static int mt7996_init_hardware(struct mt7996_dev *dev)
+@@ -1000,6 +1000,12 @@ static int mt7996_init_hardware(struct mt7996_dev *dev)
  	if (ret < 0)
  		return ret;
  
@@ -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 b7ae6e1a..9ff9ae0e 100644
+index da47faf..2642f50 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -310,6 +310,12 @@ int mt7996_set_channel(struct mt76_phy *mphy)
@@ -90,7 +90,7 @@
  		mt7996_tm_update_channel(phy);
  		goto out;
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 08534fec..b15075ab 100644
+index 914f1f9..5faaa0f 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -3650,6 +3650,172 @@ int mt7996_mcu_get_eeprom_free_block(struct mt7996_dev *dev, u8 *block_num)
@@ -267,7 +267,7 @@
  {
  #define NIC_CAP	3
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 54b81c1e..8770839c 100644
+index 54b81c1..8770839 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -629,6 +629,9 @@ void mt7996_mcu_exit(struct mt7996_dev *dev);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0018-mtk-mt76-mt7996-enable-SCS-feature-for-mt7996-driver.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0018-mtk-mt76-mt7996-enable-SCS-feature-for-mt7996-driver.patch
index 6d0dee2..2b20380 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0018-mtk-mt76-mt7996-enable-SCS-feature-for-mt7996-driver.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0018-mtk-mt76-mt7996-enable-SCS-feature-for-mt7996-driver.patch
@@ -1,7 +1,7 @@
-From 503baaaad8a49fcdcc2030a8eddacfec35c167b0 Mon Sep 17 00:00:00 2001
+From b53aea749fe231715863c5aca07da5313bfe6897 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 018/223] mtk: mt76: mt7996: enable SCS feature for mt7996
+Subject: [PATCH 018/193] mtk: mt76: mt7996: enable SCS feature for mt7996
  driver
 
 Enable Smart Carrier Sense algorithn by default to improve performance
@@ -20,7 +20,7 @@
  8 files changed, 148 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index a7d7ecce..fcacd546 100644
+index a7d7ecc..fcacd54 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1279,6 +1279,7 @@ enum {
@@ -32,10 +32,10 @@
  	MCU_UNI_CMD_SET_DBDC_PARMS = 0x28,
  	MCU_UNI_CMD_TXPOWER = 0x2b,
 diff --git a/mt7996/init.c b/mt7996/init.c
-index a34e034d..0a8e929a 100644
+index 5e0a6d0..32f3a47 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -1432,6 +1432,7 @@ int mt7996_register_device(struct mt7996_dev *dev)
+@@ -1429,6 +1429,7 @@ int mt7996_register_device(struct mt7996_dev *dev)
  	dev->mt76.phy.priv = &dev->phy;
  	INIT_WORK(&dev->rc_work, mt7996_mac_sta_rc_work);
  	INIT_DELAYED_WORK(&dev->mphy.mac_work, mt7996_mac_work);
@@ -44,7 +44,7 @@
  	INIT_LIST_HEAD(&dev->twt_list);
  
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index d73644f6..789caa44 100644
+index d73644f..789caa4 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -1815,6 +1815,7 @@ mt7996_mac_full_reset(struct mt7996_dev *dev)
@@ -64,7 +64,7 @@
  
  void mt7996_mac_reset_work(struct work_struct *work)
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 9ff9ae0e..a1c3874c 100644
+index 2642f50..c13b346 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -81,11 +81,17 @@ int mt7996_run(struct ieee80211_hw *hw)
@@ -94,7 +94,7 @@
  	mutex_lock(&dev->mt76.mutex);
  
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index b15075ab..98edae2c 100644
+index 5faaa0f..753a8ac 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -4832,3 +4832,108 @@ int mt7996_mcu_set_tx_power_ctrl(struct mt7996_phy *phy, u8 power_ctrl_id, u8 da
@@ -207,7 +207,7 @@
 +				 &req, sizeof(req), false);
 +}
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index abf8ef48..f889cb8b 100644
+index abf8ef4..f889cb8 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -966,6 +966,12 @@ enum pp_mode {
@@ -224,7 +224,7 @@
  #define MT7996_PATCH_SCRAMBLE_KEY	GENMASK(15, 8)
  #define MT7996_PATCH_AES_KEY		GENMASK(7, 0)
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 8770839c..6cb6c724 100644
+index 8770839..6cb6c72 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -243,6 +243,16 @@ struct mt7996_hif {
@@ -271,7 +271,7 @@
  static inline u8 mt7996_max_interface_num(struct mt7996_dev *dev)
  {
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index d1f3d16c..1807a744 100644
+index d1f3d16..1807a74 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -2429,6 +2429,16 @@ static int mt7996_token_read(struct seq_file *s, void *data)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0019-mtk-mt76-mt7996-add-txpower-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0019-mtk-mt76-mt7996-add-txpower-support.patch
index 9c4eeda..8188823 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0019-mtk-mt76-mt7996-add-txpower-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0019-mtk-mt76-mt7996-add-txpower-support.patch
@@ -1,7 +1,7 @@
-From 5d3b2dafbf6b343983b999b19e94ad175c374bd3 Mon Sep 17 00:00:00 2001
+From e872be26c3041b9ab7983f24de034b13f376a34b Mon Sep 17 00:00:00 2001
 From: Allen Ye <allen.ye@mediatek.com>
 Date: Fri, 24 Mar 2023 23:35:30 +0800
-Subject: [PATCH 019/223] mtk: mt76: mt7996: add txpower support
+Subject: [PATCH 019/193] mtk: mt76: mt7996: add txpower support
 
 Add single sku and default enable sku.
 
@@ -36,7 +36,7 @@
  14 files changed, 725 insertions(+), 27 deletions(-)
 
 diff --git a/eeprom.c b/eeprom.c
-index 6bd2cc1a..85935dea 100644
+index 6bd2cc1..85935de 100644
 --- a/eeprom.c
 +++ b/eeprom.c
 @@ -320,9 +320,10 @@ mt76_apply_array_limit(s8 *pwr, size_t pwr_len, const __be32 *data,
@@ -141,7 +141,7 @@
  	return max_power;
  }
 diff --git a/mt76.h b/mt76.h
-index 8666ec2f..ac2de858 100644
+index 8666ec2..ac2de85 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -1079,6 +1079,14 @@ struct mt76_power_limits {
@@ -168,7 +168,7 @@
  
  static inline bool mt76_queue_is_rx(struct mt76_dev *dev, struct mt76_queue *q)
 diff --git a/mt76_connac_mcu.c b/mt76_connac_mcu.c
-index 07f52dd6..c7145074 100644
+index 07f52dd..c714507 100644
 --- a/mt76_connac_mcu.c
 +++ b/mt76_connac_mcu.c
 @@ -2160,7 +2160,7 @@ mt76_connac_mcu_rate_txpower_band(struct mt76_phy *phy,
@@ -181,7 +181,7 @@
  			tx_power_tlv.last_msg = ch_list[idx] == last_ch;
  			sku_tlbv.channel = ch_list[idx];
 diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index 5ff52577..b091e30c 100644
+index 5ff5257..b091e30 100644
 --- a/mt7996/eeprom.c
 +++ b/mt7996/eeprom.c
 @@ -541,3 +541,37 @@ s8 mt7996_eeprom_get_power_delta(struct mt7996_dev *dev, int band)
@@ -223,7 +223,7 @@
 +	[SKU_EHT3x996_484] = 16,
 +};
 diff --git a/mt7996/eeprom.h b/mt7996/eeprom.h
-index b3b9b854..f3a9618b 100644
+index b3b9b85..f3a9618 100644
 --- a/mt7996/eeprom.h
 +++ b/mt7996/eeprom.h
 @@ -127,4 +127,46 @@ mt7996_get_channel_group_6g(int channel)
@@ -274,10 +274,10 @@
 +
  #endif
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 0a8e929a..994d74cc 100644
+index 32f3a47..2634cc5 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -297,7 +297,12 @@ static void __mt7996_init_txpower(struct mt7996_phy *phy,
+@@ -294,7 +294,12 @@ static void __mt7996_init_txpower(struct mt7996_phy *phy,
  	int nss_delta = mt76_tx_power_nss_delta(nss);
  	int pwr_delta = mt7996_eeprom_get_power_delta(dev, sband->band);
  	struct mt76_power_limits limits;
@@ -290,7 +290,7 @@
  	for (i = 0; i < sband->n_channels; i++) {
  		struct ieee80211_channel *chan = &sband->channels[i];
  		int target_power = mt7996_eeprom_get_target_power(dev, chan);
-@@ -305,11 +310,18 @@ static void __mt7996_init_txpower(struct mt7996_phy *phy,
+@@ -302,11 +307,18 @@ static void __mt7996_init_txpower(struct mt7996_phy *phy,
  		target_power += pwr_delta;
  		target_power = mt76_get_rate_power_limits(phy->mt76, chan,
  							  &limits,
@@ -312,7 +312,7 @@
  	}
  }
 diff --git a/mt7996/main.c b/mt7996/main.c
-index a1c3874c..e65b5bd7 100644
+index c13b346..d5b97f1 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -85,6 +85,21 @@ int mt7996_run(struct ieee80211_hw *hw)
@@ -338,7 +338,7 @@
  
  	ieee80211_queue_delayed_work(hw, &phy->mt76->mac_work,
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 98edae2c..59a24478 100644
+index 753a8ac..d114e7f 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -4684,9 +4684,31 @@ int mt7996_mcu_wed_rro_reset_sessions(struct mt7996_dev *dev, u16 id)
@@ -437,7 +437,7 @@
  				     MCU_WM_UNI_CMD(TXPOWER), true);
  }
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index f889cb8b..1ed05d7e 100644
+index f889cb8..1ed05d7 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -911,6 +911,7 @@ struct tx_power_ctrl {
@@ -457,7 +457,7 @@
  
  enum {
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 6cb6c724..a1a30b33 100644
+index 6cb6c72..a1a30b3 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -305,6 +305,9 @@ struct mt7996_phy {
@@ -479,7 +479,7 @@
  void mt7996_mcu_scs_sta_poll(struct work_struct *work);
  
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 1807a744..ad89eccd 100644
+index 1807a74..ad89ecc 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -2439,6 +2439,364 @@ mt7996_scs_enable_set(void *data, u64 val)
@@ -860,7 +860,7 @@
  				    mt7996_wtbl_read);
  
 diff --git a/mt7996/mtk_mcu.c b/mt7996/mtk_mcu.c
-index c16b25ab..e56ddd8f 100644
+index c16b25a..e56ddd8 100644
 --- a/mt7996/mtk_mcu.c
 +++ b/mt7996/mtk_mcu.c
 @@ -12,8 +12,31 @@
@@ -896,7 +896,7 @@
  int mt7996_mcu_muru_dbg_info(struct mt7996_dev *dev, u16 item, u8 val)
  {
 diff --git a/mt7996/mtk_mcu.h b/mt7996/mtk_mcu.h
-index 7f4d4e02..c30418ca 100644
+index 7f4d4e0..c30418c 100644
 --- a/mt7996/mtk_mcu.h
 +++ b/mt7996/mtk_mcu.h
 @@ -14,6 +14,98 @@ enum {
@@ -999,7 +999,7 @@
  
  #endif
 diff --git a/mt7996/regs.h b/mt7996/regs.h
-index 3450a2fc..539e799c 100644
+index 3450a2f..539e799 100644
 --- a/mt7996/regs.h
 +++ b/mt7996/regs.h
 @@ -695,24 +695,29 @@ enum offs_rev {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0020-mtk-mt76-mt7996-add-binfile-mode-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0020-mtk-mt76-mt7996-add-binfile-mode-support.patch
index c4f105c..3a9dfa7 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0020-mtk-mt76-mt7996-add-binfile-mode-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0020-mtk-mt76-mt7996-add-binfile-mode-support.patch
@@ -1,7 +1,7 @@
-From edd667417d5bf86af2b0c04679782614a6b8ef8f Mon Sep 17 00:00:00 2001
+From 0be8483bf7ca457b235bec1204dc6b2ae0030438 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 020/223] mtk: mt76: mt7996: add binfile mode support
+Subject: [PATCH 020/193] mtk: mt76: mt7996: add binfile mode support
 
 Fix binfile cannot sync precal data to atenl
 Binfile is viewed as efuse mode in atenl, so atenl does not allocate
@@ -25,7 +25,7 @@
  7 files changed, 147 insertions(+), 10 deletions(-)
 
 diff --git a/eeprom.c b/eeprom.c
-index 85935dea..4eb27782 100644
+index 85935de..4eb2778 100644
 --- a/eeprom.c
 +++ b/eeprom.c
 @@ -161,6 +161,31 @@ static int mt76_get_of_eeprom(struct mt76_dev *dev, void *eep, int len)
@@ -61,7 +61,7 @@
  mt76_eeprom_override(struct mt76_phy *phy)
  {
 diff --git a/mt76.h b/mt76.h
-index ac2de858..924f273b 100644
+index ac2de85..924f273 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -973,6 +973,8 @@ struct mt76_dev {
@@ -82,7 +82,7 @@
  struct mt76_queue *
  mt76_init_queue(struct mt76_dev *dev, int qid, int idx, int n_desc,
 diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index b091e30c..111fe401 100644
+index b091e30..111fe40 100644
 --- a/mt7996/eeprom.c
 +++ b/mt7996/eeprom.c
 @@ -82,10 +82,17 @@ static int mt7996_check_eeprom(struct mt7996_dev *dev)
@@ -202,7 +202,7 @@
  	if (ret < 0)
  		return ret;
 diff --git a/mt7996/eeprom.h b/mt7996/eeprom.h
-index f3a9618b..e90180a0 100644
+index f3a9618..e90180a 100644
 --- a/mt7996/eeprom.h
 +++ b/mt7996/eeprom.h
 @@ -104,6 +104,13 @@ enum mt7996_eeprom_band {
@@ -220,7 +220,7 @@
  mt7996_get_channel_group_5g(int channel)
  {
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index a1a30b33..efb4e74c 100644
+index a1a30b3..efb4e74 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -404,6 +404,8 @@ struct mt7996_dev {
@@ -241,7 +241,7 @@
  int mt7996_eeprom_check_fw_mode(struct mt7996_dev *dev);
  int mt7996_eeprom_parse_hw_cap(struct mt7996_dev *dev, struct mt7996_phy *phy);
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index ad89eccd..078ff279 100644
+index ad89ecc..078ff27 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -2797,6 +2797,44 @@ static const struct file_operations mt7996_txpower_path_fops = {
@@ -300,7 +300,7 @@
  				    mt7996_wtbl_read);
  
 diff --git a/testmode.h b/testmode.h
-index 3348d0d5..6d79832a 100644
+index 3348d0d..6d79832 100644
 --- a/testmode.h
 +++ b/testmode.h
 @@ -16,7 +16,7 @@
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0021-mtk-mt76-mt7996-add-testmode-ZWDFS-verification-supp.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0021-mtk-mt76-mt7996-add-testmode-ZWDFS-verification-supp.patch
index 3178946..42fcc3f 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0021-mtk-mt76-mt7996-add-testmode-ZWDFS-verification-supp.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0021-mtk-mt76-mt7996-add-testmode-ZWDFS-verification-supp.patch
@@ -1,7 +1,7 @@
-From 0ae2d7c2cf18d4ca07b05c7ea14fc0c2ea9e5ad7 Mon Sep 17 00:00:00 2001
+From d647ea9ef9051f1702c21c33864bb6298c8e3e43 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 021/223] mtk: mt76: mt7996: add testmode ZWDFS verification
+Subject: [PATCH 021/193] mtk: mt76: mt7996: add testmode ZWDFS verification
  support
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
@@ -15,7 +15,7 @@
  6 files changed, 326 insertions(+), 12 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
-index 924f273b..2805d758 100644
+index 924f273..2805d75 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -801,6 +801,14 @@ struct mt76_testmode_data {
@@ -34,7 +34,7 @@
  
  struct mt76_vif {
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index efb4e74c..1fe681cf 100644
+index efb4e74..1fe681c 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -297,6 +297,7 @@ struct mt7996_phy {
@@ -46,7 +46,7 @@
  	bool has_aux_rx;
  
 diff --git a/mt7996/testmode.c b/mt7996/testmode.c
-index 6969cba6..c4874eb3 100644
+index 6969cba..c4874eb 100644
 --- a/mt7996/testmode.c
 +++ b/mt7996/testmode.c
 @@ -17,6 +17,12 @@ enum {
@@ -336,7 +336,7 @@
  
  static int
 diff --git a/mt7996/testmode.h b/mt7996/testmode.h
-index 9bfb86f2..78662b2e 100644
+index 9bfb86f..78662b2 100644
 --- a/mt7996/testmode.h
 +++ b/mt7996/testmode.h
 @@ -27,9 +27,15 @@ enum {
@@ -399,7 +399,7 @@
 +
  #endif
 diff --git a/testmode.c b/testmode.c
-index cd8cb655..69147f86 100644
+index cd8cb65..69147f8 100644
 --- a/testmode.c
 +++ b/testmode.c
 @@ -27,6 +27,13 @@ const struct nla_policy mt76_tm_policy[NUM_MT76_TM_ATTRS] = {
@@ -453,7 +453,7 @@
  	     nla_put_u8(msg, MT76_TM_ATTR_TX_LTF, td->tx_ltf)) ||
  	    (mt76_testmode_param_present(td, MT76_TM_ATTR_TX_ANTENNA) &&
 diff --git a/tools/fields.c b/tools/fields.c
-index b0122763..77696ce7 100644
+index b012276..77696ce 100644
 --- a/tools/fields.c
 +++ b/tools/fields.c
 @@ -35,6 +35,15 @@ static const char * const testmode_tx_mode[] = {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0022-mtk-mt76-mt7996-support-eagle-ZWDFS-on-iFEM.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0022-mtk-mt76-mt7996-support-eagle-ZWDFS-on-iFEM.patch
index 4bc7d88..014da35 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0022-mtk-mt76-mt7996-support-eagle-ZWDFS-on-iFEM.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0022-mtk-mt76-mt7996-support-eagle-ZWDFS-on-iFEM.patch
@@ -1,7 +1,7 @@
-From 0ed31af01bf9c0f5f040222fabee17af063f9eb8 Mon Sep 17 00:00:00 2001
+From ef316262c78854e1be14079f2b257a33d94283d7 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 022/223] mtk: mt76: mt7996: support eagle ZWDFS on iFEM
+Subject: [PATCH 022/193] mtk: mt76: mt7996: support eagle ZWDFS on iFEM
 
 Fix the case that control channel is not first chan during first
 interface setup.
@@ -15,10 +15,10 @@
  3 files changed, 67 insertions(+), 5 deletions(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index e65b5bd7..ad4cd5dd 100644
+index d5b97f1..dc363f3 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -1433,6 +1433,61 @@ mt7996_twt_teardown_request(struct ieee80211_hw *hw,
+@@ -1432,6 +1432,61 @@ mt7996_twt_teardown_request(struct ieee80211_hw *hw,
  	mutex_unlock(&dev->mt76.mutex);
  }
  
@@ -80,7 +80,7 @@
  static int
  mt7996_set_radar_background(struct ieee80211_hw *hw,
  			    struct cfg80211_chan_def *chandef)
-@@ -1441,6 +1496,7 @@ mt7996_set_radar_background(struct ieee80211_hw *hw,
+@@ -1440,6 +1495,7 @@ mt7996_set_radar_background(struct ieee80211_hw *hw,
  	struct mt7996_dev *dev = phy->dev;
  	int ret = -EINVAL;
  	bool running;
@@ -88,7 +88,7 @@
  
  	mutex_lock(&dev->mt76.mutex);
  
-@@ -1453,13 +1509,14 @@ mt7996_set_radar_background(struct ieee80211_hw *hw,
+@@ -1452,13 +1508,14 @@ mt7996_set_radar_background(struct ieee80211_hw *hw,
  		goto out;
  	}
  
@@ -105,7 +105,7 @@
  		ret = mt7996_mcu_rdd_background_enable(phy, NULL);
  		if (ret)
  			goto out;
-@@ -1468,7 +1525,9 @@ mt7996_set_radar_background(struct ieee80211_hw *hw,
+@@ -1467,7 +1524,9 @@ mt7996_set_radar_background(struct ieee80211_hw *hw,
  			goto update_phy;
  	}
  
@@ -117,28 +117,26 @@
  		goto out;
  
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 59a24478..7ef6bb1f 100644
+index d114e7f..669d27b 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
-@@ -382,12 +382,14 @@ mt7996_mcu_rx_radar_detected(struct mt7996_dev *dev, struct sk_buff *skb)
- 	if (!mphy)
+@@ -374,10 +374,12 @@ mt7996_mcu_rx_radar_detected(struct mt7996_dev *dev, struct sk_buff *skb)
+ 	if (r->band_idx == MT_RX_SEL2 && !dev->rdd2_phy)
  		return;
  
 -	if (r->band_idx == MT_RX_SEL2)
 +	if (r->band_idx == MT_RX_SEL2) {
 +		dev->bg_nxt_freq = 0;
- 		cfg80211_background_radar_event(mphy->hw->wiphy,
- 						&dev->rdd2_chandef,
- 						GFP_ATOMIC);
+ 		mphy = dev->rdd2_phy->mt76;
 -	else
 +	} else {
- 		ieee80211_radar_detected(mphy->hw);
+ 		mphy = dev->mt76.phys[r->band_idx];
 +	}
- 	dev->hw_pattern++;
- }
  
+ 	if (!mphy)
+ 		return;
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 1fe681cf..2ec72496 100644
+index 1fe681c..2ec7249 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -407,6 +407,7 @@ struct mt7996_dev {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0023-mtk-mt76-mt7996-refactor-eeprom-loading-flow-for-sku.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0023-mtk-mt76-mt7996-refactor-eeprom-loading-flow-for-sku.patch
index b8a0ee1..a6663a3 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0023-mtk-mt76-mt7996-refactor-eeprom-loading-flow-for-sku.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0023-mtk-mt76-mt7996-refactor-eeprom-loading-flow-for-sku.patch
@@ -1,7 +1,7 @@
-From f23ac5fb50b0764391e2aebeab3c748eb46a5dbf Mon Sep 17 00:00:00 2001
+From 3b2bb9b8074012288dd9650517ffbc21621b9b78 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Mon, 11 Mar 2024 10:43:03 +0800
-Subject: [PATCH 023/223] mtk: mt76: mt7996: refactor eeprom loading flow for
+Subject: [PATCH 023/193] mtk: mt76: mt7996: refactor eeprom loading flow for
  sku checking
 
 Add eeprom sku checking mechanism to avoid using the
@@ -37,7 +37,7 @@
  3 files changed, 5 insertions(+), 37 deletions(-)
 
 diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index 111fe401..da30be33 100644
+index 111fe40..da30be3 100644
 --- a/mt7996/eeprom.c
 +++ b/mt7996/eeprom.c
 @@ -50,33 +50,14 @@ const u32 dpd_6g_bw320_ch_num = ARRAY_SIZE(dpd_6g_ch_list_bw320);
@@ -113,7 +113,7 @@
  	dev->eeprom_mode = DEFAULT_BIN_MODE;
  	eeprom[MT_EE_TESTMODE_EN] = dev->testmode_enable;
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 7ef6bb1f..1d4655ed 100644
+index 669d27b..baebb01 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -3522,7 +3522,7 @@ int mt7996_mcu_set_chan_info(struct mt7996_phy *phy, u16 tag)
@@ -126,7 +126,7 @@
  #define MAX_PAGE_IDX_MASK	GENMASK(7, 5)
  #define PAGE_IDX_MASK		GENMASK(4, 2)
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 078ff279..60ec6bd4 100644
+index 078ff27..60ec6bd 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -340,7 +340,6 @@ static int mt7996_dump_version(struct seq_file *s, void *data)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0024-mtk-mt76-mt7996-add-vendor-commands-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0024-mtk-mt76-mt7996-add-vendor-commands-support.patch
index 77a5a5c..289522c 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0024-mtk-mt76-mt7996-add-vendor-commands-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0024-mtk-mt76-mt7996-add-vendor-commands-support.patch
@@ -1,7 +1,7 @@
-From 4ae9d91e5d5faa7600dfa6fefc331e582d74b5c9 Mon Sep 17 00:00:00 2001
+From b1f304d9bbb79080fce47c76865e7fe1141cb97a 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 024/223] mtk: mt76: mt7996: add vendor commands support
+Subject: [PATCH 024/193] mtk: mt76: mt7996: add vendor commands support
 
 mtk: wifi: mt76: fix muru_onoff as all enabled by default
 
@@ -52,7 +52,7 @@
  create mode 100644 mt7996/vendor.h
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index fcacd546..e9afc27b 100644
+index fcacd54..e9afc27 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1269,6 +1269,7 @@ enum {
@@ -72,7 +72,7 @@
  
  enum {
 diff --git a/mt7996/Makefile b/mt7996/Makefile
-index 7bb17f44..6643c7a3 100644
+index 7bb17f4..6643c7a 100644
 --- a/mt7996/Makefile
 +++ b/mt7996/Makefile
 @@ -1,11 +1,12 @@
@@ -90,10 +90,10 @@
  mt7996e-$(CONFIG_DEV_COREDUMP) += coredump.o
  mt7996e-$(CONFIG_NL80211_TESTMODE) += testmode.o
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 994d74cc..703c7af0 100644
+index 2634cc5..26c1cdf 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -380,6 +380,7 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
+@@ -377,6 +377,7 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
  
  	phy->slottime = 9;
  	phy->beacon_rate = -1;
@@ -101,7 +101,7 @@
  
  	hw->sta_data_size = sizeof(struct mt7996_sta);
  	hw->vif_data_size = sizeof(struct mt7996_vif);
-@@ -632,6 +633,10 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
+@@ -629,6 +630,10 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
  	if (ret)
  		goto error;
  
@@ -112,7 +112,7 @@
  	ret = mt76_register_phy(mphy, true, mt76_rates,
  				ARRAY_SIZE(mt76_rates));
  	if (ret)
-@@ -1463,6 +1468,10 @@ int mt7996_register_device(struct mt7996_dev *dev)
+@@ -1460,6 +1465,10 @@ int mt7996_register_device(struct mt7996_dev *dev)
  	dev->mt76.test_ops = &mt7996_testmode_ops;
  #endif
  
@@ -124,7 +124,7 @@
  				   ARRAY_SIZE(mt76_rates));
  	if (ret)
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 789caa44..05d02af1 100644
+index 789caa4..05d02af 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -680,6 +680,11 @@ mt7996_mac_fill_rx(struct mt7996_dev *dev, enum mt76_rxq_id q,
@@ -140,10 +140,10 @@
  		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 ad4cd5dd..67eab3df 100644
+index dc363f3..915b86e 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -749,6 +749,10 @@ int mt7996_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -748,6 +748,10 @@ int mt7996_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  	mt7996_mac_wtbl_update(dev, idx,
  			       MT_WTBL_UPDATE_ADM_COUNT_CLEAR);
  
@@ -155,7 +155,7 @@
  	if (ret)
  		return ret;
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 1d4655ed..808ea178 100644
+index baebb01..cffdd21 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -1388,6 +1388,8 @@ static void
@@ -214,7 +214,7 @@
 +}
 +#endif
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 1ed05d7e..f827de9e 100644
+index 1ed05d7..f827de9 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -754,8 +754,20 @@ enum {
@@ -248,7 +248,7 @@
  };
  
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 2ec72496..a559c76f 100644
+index 2ec7249..a559c76 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -267,6 +267,34 @@ struct mt7996_wed_rro_session_id {
@@ -333,7 +333,7 @@
  int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir);
  int mt7996_mcu_muru_dbg_info(struct mt7996_dev *dev, u16 item, u8 val);
 diff --git a/mt7996/mtk_mcu.c b/mt7996/mtk_mcu.c
-index e56ddd8f..5c54d02c 100644
+index e56ddd8..5c54d02 100644
 --- a/mt7996/mtk_mcu.c
 +++ b/mt7996/mtk_mcu.c
 @@ -59,4 +59,91 @@ int mt7996_mcu_muru_dbg_info(struct mt7996_dev *dev, u16 item, u8 val)
@@ -429,7 +429,7 @@
 +
  #endif
 diff --git a/mt7996/mtk_mcu.h b/mt7996/mtk_mcu.h
-index c30418ca..36a58ad6 100644
+index c30418c..36a58ad 100644
 --- a/mt7996/mtk_mcu.h
 +++ b/mt7996/mtk_mcu.h
 @@ -106,6 +106,21 @@ enum txpower_event {
@@ -456,7 +456,7 @@
  #endif
 diff --git a/mt7996/vendor.c b/mt7996/vendor.c
 new file mode 100644
-index 00000000..0d6fa779
+index 0000000..0d6fa77
 --- /dev/null
 +++ b/mt7996/vendor.c
 @@ -0,0 +1,805 @@
@@ -1267,7 +1267,7 @@
 +}
 diff --git a/mt7996/vendor.h b/mt7996/vendor.h
 new file mode 100644
-index 00000000..8aaa18ee
+index 0000000..8aaa18e
 --- /dev/null
 +++ b/mt7996/vendor.h
 @@ -0,0 +1,153 @@
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0025-mtk-mt76-mt7996-add-debugfs-for-fw-coredump.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0025-mtk-mt76-mt7996-add-debugfs-for-fw-coredump.patch
index fa9b52b..7f4263b 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0025-mtk-mt76-mt7996-add-debugfs-for-fw-coredump.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0025-mtk-mt76-mt7996-add-debugfs-for-fw-coredump.patch
@@ -1,7 +1,7 @@
-From 63a51fd94d291a40f0514580c8f75f5e80d80886 Mon Sep 17 00:00:00 2001
+From bcb9246aadcdac7728bb7cce26e93a275f6eae23 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 025/223] mtk: mt76: mt7996: add debugfs for fw coredump.
+Subject: [PATCH 025/193] mtk: mt76: mt7996: add debugfs for fw coredump.
 
 Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com>
 ---
@@ -12,7 +12,7 @@
  4 files changed, 56 insertions(+), 5 deletions(-)
 
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index 9671c15d..1f4bad62 100644
+index 9671c15..1f4bad6 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -84,6 +84,8 @@ mt7996_sys_recovery_set(struct file *file, const char __user *user_buf,
@@ -64,7 +64,7 @@
  	desc += scnprintf(buff + desc, bufsz - desc,
  			  "\nlet's dump firmware SER statistics...\n");
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 05d02af1..e9f3942f 100644
+index 05d02af..e9f3942 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -2101,15 +2101,36 @@ void mt7996_mac_dump_work(struct work_struct *work)
@@ -116,7 +116,7 @@
  	}
  
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index f827de9e..3e9364de 100644
+index f827de9..3e9364d 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -958,7 +958,11 @@ enum {
@@ -132,7 +132,7 @@
  	UNI_CMD_SER_ENABLE = 1,
  	UNI_CMD_SER_SET,
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index a559c76f..edd2ce33 100644
+index a559c76..edd2ce3 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -147,6 +147,14 @@ enum mt7996_fem_type {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0026-mtk-mt76-mt7996-Add-mt7992-coredump-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0026-mtk-mt76-mt7996-Add-mt7992-coredump-support.patch
index 68f5e09..2d0b571 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0026-mtk-mt76-mt7996-Add-mt7992-coredump-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0026-mtk-mt76-mt7996-Add-mt7992-coredump-support.patch
@@ -1,7 +1,7 @@
-From b421656ce76c53eb44a3e43d8399bb614109ad85 Mon Sep 17 00:00:00 2001
+From 96bad7cc6e83269af0bb643485c06ab1e9dcfa6b 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 026/223] mtk: mt76: mt7996: Add mt7992 coredump support
+Subject: [PATCH 026/193] mtk: mt76: mt7996: Add mt7992 coredump support
 
 1. Add mt7992 coredump support
 2. fixed if new ic have not support coredump, it may cause crash when remove module
@@ -14,7 +14,7 @@
  2 files changed, 67 insertions(+), 14 deletions(-)
 
 diff --git a/mt7996/coredump.c b/mt7996/coredump.c
-index a7f91b56..d09bcd4b 100644
+index a7f91b5..d09bcd4 100644
 --- a/mt7996/coredump.c
 +++ b/mt7996/coredump.c
 @@ -67,6 +67,44 @@ static const struct mt7996_mem_region mt7996_wa_mem_regions[] = {
@@ -147,7 +147,7 @@
  }
  
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index edd2ce33..c011e8ec 100644
+index edd2ce3..c011e8e 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -238,6 +238,7 @@ struct mt7996_vif {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0027-mtk-mt76-mt7996-add-support-for-runtime-set-in-band-.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0027-mtk-mt76-mt7996-add-support-for-runtime-set-in-band-.patch
index cec3aec..c00a750 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0027-mtk-mt76-mt7996-add-support-for-runtime-set-in-band-.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0027-mtk-mt76-mt7996-add-support-for-runtime-set-in-band-.patch
@@ -1,7 +1,7 @@
-From 83a6bd94bc5c54c1ddb9fb2db0c2746d3bb5812e Mon Sep 17 00:00:00 2001
+From c08ddf22ff6a27ac3667e0649475d2bddc1aa385 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 027/223] mtk: mt76: mt7996: add support for runtime set
+Subject: [PATCH 027/193] mtk: mt76: mt7996: add support for runtime set
  in-band discovery
 
 with this patch, AP can runtime set inband discovery via hostapd_cli
@@ -17,7 +17,7 @@
  1 file changed, 2 insertions(+), 3 deletions(-)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 808ea178..eb065ffc 100644
+index cffdd21..f451bf5 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -2624,8 +2624,7 @@ int mt7996_mcu_beacon_inband_discov(struct mt7996_dev *dev,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0028-mtk-mt76-mt7996-add-support-spatial-reuse-debug-comm.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0028-mtk-mt76-mt7996-add-support-spatial-reuse-debug-comm.patch
index d09b064..efb183d 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0028-mtk-mt76-mt7996-add-support-spatial-reuse-debug-comm.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0028-mtk-mt76-mt7996-add-support-spatial-reuse-debug-comm.patch
@@ -1,7 +1,7 @@
-From a3f223f025ce2abc2dc0e42ab835a8cc5ef6d65a Mon Sep 17 00:00:00 2001
+From 1fbcac2b37824b62ebbd3c1e6d8dd00e7d3d585f 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 028/223] mtk: mt76: mt7996: add support spatial reuse debug
+Subject: [PATCH 028/193] mtk: mt76: mt7996: add support spatial reuse debug
  commands
 
 This commit adds the following debug commands in debugfs:
@@ -28,7 +28,7 @@
  7 files changed, 270 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index e9afc27b..dd63d4a0 100644
+index e9afc27..dd63d4a 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1056,6 +1056,7 @@ enum {
@@ -40,7 +40,7 @@
  	MCU_UNI_EVENT_TX_DONE = 0x2d,
  	MCU_UNI_EVENT_BF = 0x33,
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 67eab3df..6203e800 100644
+index 915b86e..359ea91 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -6,6 +6,9 @@
@@ -64,7 +64,7 @@
  						dev->dbg.sku_disable ? 0 : phy->sku_limit_en);
  
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index eb065ffc..78462729 100644
+index f451bf5..febd004 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -727,6 +727,14 @@ mt7996_mcu_uni_rx_unsolicited_event(struct mt7996_dev *dev, struct sk_buff *skb)
@@ -83,7 +83,7 @@
  	case MCU_UNI_EVENT_TESTMODE_CTRL:
  		mt7996_tm_rf_test_event(dev, skb);
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index c011e8ec..356935b2 100644
+index c011e8e..356935b 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -366,6 +366,10 @@ struct mt7996_phy {
@@ -107,7 +107,7 @@
  
  #ifdef CONFIG_NET_MEDIATEK_SOC_WED
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 60ec6bd4..13ea6274 100644
+index 60ec6bd..13ea627 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -2834,6 +2834,83 @@ static int mt7996_show_eeprom_mode(struct seq_file *s, void *data)
@@ -207,7 +207,7 @@
  }
  
 diff --git a/mt7996/mtk_mcu.c b/mt7996/mtk_mcu.c
-index 5c54d02c..dbdf8d80 100644
+index 5c54d02..dbdf8d8 100644
 --- a/mt7996/mtk_mcu.c
 +++ b/mt7996/mtk_mcu.c
 @@ -146,4 +146,115 @@ int mt7996_mcu_edcca_threshold_ctrl(struct mt7996_phy *phy, u8 *value, bool set)
@@ -327,7 +327,7 @@
 +}
  #endif
 diff --git a/mt7996/mtk_mcu.h b/mt7996/mtk_mcu.h
-index 36a58ad6..098e63ae 100644
+index 36a58ad..098e63a 100644
 --- a/mt7996/mtk_mcu.h
 +++ b/mt7996/mtk_mcu.h
 @@ -121,6 +121,62 @@ enum {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0029-mtk-mt76-mt7996-Establish-BA-in-VO-queue.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0029-mtk-mt76-mt7996-Establish-BA-in-VO-queue.patch
index 800f01f..a45e85e 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0029-mtk-mt76-mt7996-Establish-BA-in-VO-queue.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0029-mtk-mt76-mt7996-Establish-BA-in-VO-queue.patch
@@ -1,14 +1,14 @@
-From 836be9f533e2d5441088435050d0400711311301 Mon Sep 17 00:00:00 2001
+From 7c68dce5c1950cce84ac3d3994546a3ebf1d1d36 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 029/223] mtk: mt76: mt7996: Establish BA in VO queue
+Subject: [PATCH 029/193] mtk: mt76: mt7996: Establish BA in VO queue
 
 ---
  mt7996/mac.c | 2 --
  1 file changed, 2 deletions(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index e9f3942f..428ccb1a 100644
+index e9f3942..428ccb1 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -1053,8 +1053,6 @@ mt7996_tx_check_aggr(struct ieee80211_sta *sta, struct sk_buff *skb)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0030-mtk-mt76-mt7996-report-tx-and-rx-byte-to-tpt_led.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0030-mtk-mt76-mt7996-report-tx-and-rx-byte-to-tpt_led.patch
index 009845a..e68f041 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0030-mtk-mt76-mt7996-report-tx-and-rx-byte-to-tpt_led.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0030-mtk-mt76-mt7996-report-tx-and-rx-byte-to-tpt_led.patch
@@ -1,14 +1,14 @@
-From ccc0d8ca18a2fa4039f664f3806146aca97fd5a2 Mon Sep 17 00:00:00 2001
+From c44b0549f0033d4092d31abce20f4020b06d7ada 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 030/223] mtk: mt76: mt7996: report tx and rx byte to tpt_led
+Subject: [PATCH 030/193] mtk: mt76: mt7996: report tx and rx byte to tpt_led
 
 ---
  mt7996/mcu.c | 15 +++++++++++----
  1 file changed, 11 insertions(+), 4 deletions(-)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 78462729..9e6f4d13 100644
+index febd004..ed41f51 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -535,6 +535,8 @@ mt7996_mcu_rx_all_sta_info_event(struct mt7996_dev *dev, struct sk_buff *skb)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0031-mtk-mt76-mt7996-support-dup-wtbl.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0031-mtk-mt76-mt7996-support-dup-wtbl.patch
index 482a4b3..97032e4 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0031-mtk-mt76-mt7996-support-dup-wtbl.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0031-mtk-mt76-mt7996-support-dup-wtbl.patch
@@ -1,7 +1,7 @@
-From 17af6c5607c9b5191323d600c1fa7456b8741830 Mon Sep 17 00:00:00 2001
+From 0b1c543146b42ab542e1195b869e5b32957eb2da 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 031/223] mtk: mt76: mt7996: support dup wtbl
+Subject: [PATCH 031/193] mtk: mt76: mt7996: support dup wtbl
 
 Change-Id: I14ba41ace8341c23c1cfb6e9c4fbb2d5e93a5714
 Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
@@ -12,10 +12,10 @@
  3 files changed, 25 insertions(+)
 
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 703c7af0..3421326a 100644
+index 26c1cdf..92d4d6f 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -689,6 +689,7 @@ static void mt7996_init_work(struct work_struct *work)
+@@ -686,6 +686,7 @@ static void mt7996_init_work(struct work_struct *work)
  	mt7996_mcu_set_eeprom(dev);
  	mt7996_mac_init(dev);
  	mt7996_txbf_init(dev);
@@ -24,7 +24,7 @@
  
  void mt7996_wfsys_reset(struct mt7996_dev *dev)
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 356935b2..7bc5504e 100644
+index 356935b..7bc5504 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -844,6 +844,7 @@ int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir);
@@ -36,7 +36,7 @@
  
  #ifdef CONFIG_NET_MEDIATEK_SOC_WED
 diff --git a/mt7996/mtk_mcu.c b/mt7996/mtk_mcu.c
-index dbdf8d80..ea4e5bf2 100644
+index dbdf8d8..ea4e5bf 100644
 --- a/mt7996/mtk_mcu.c
 +++ b/mt7996/mtk_mcu.c
 @@ -257,4 +257,27 @@ void mt7996_mcu_rx_sr_event(struct mt7996_dev *dev, struct sk_buff *skb)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0032-mtk-mt76-try-more-times-when-send-message-timeout.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0032-mtk-mt76-try-more-times-when-send-message-timeout.patch
index cf35c3d..a09d72e 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0032-mtk-mt76-try-more-times-when-send-message-timeout.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0032-mtk-mt76-try-more-times-when-send-message-timeout.patch
@@ -1,7 +1,7 @@
-From 6a7e30cf77280b1eb10fd17347ba33759f0d9148 Mon Sep 17 00:00:00 2001
+From 8f5062f0a4362f58e57354447ac81924c184db8a 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 032/223] mtk: mt76: try more times when send message timeout.
+Subject: [PATCH 032/193] mtk: mt76: try more times when send message timeout.
 
 Change-Id: Ib7c01e6c9f74f68d8404a3d8bada9e5a10c4e232
 Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com>
@@ -13,7 +13,7 @@
  4 files changed, 54 insertions(+), 61 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index 56044639..66c000ef 100644
+index 5604463..66c000e 100644
 --- a/dma.c
 +++ b/dma.c
 @@ -504,9 +504,12 @@ mt76_dma_tx_queue_skb_raw(struct mt76_dev *dev, struct mt76_queue *q,
@@ -40,7 +40,7 @@
  
  static int
 diff --git a/mcu.c b/mcu.c
-index 2bcce21f..fed363d0 100644
+index 2bcce21..fed363d 100644
 --- a/mcu.c
 +++ b/mcu.c
 @@ -4,6 +4,7 @@
@@ -144,7 +144,7 @@
  
  	return ret;
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 428ccb1a..3c9ee0c8 100644
+index 428ccb1..3c9ee0c 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -1805,13 +1805,24 @@ mt7996_mac_full_reset(struct mt7996_dev *dev)
@@ -221,7 +221,7 @@
  		 wiphy_name(dev->mt76.hw->wiphy));
  }
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 9e6f4d13..08234b3a 100644
+index ed41f51..77567d5 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -3139,6 +3139,7 @@ int mt7996_mcu_init_firmware(struct mt7996_dev *dev)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0033-mtk-mt76-mt7996-add-SER-overlap-handle.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0033-mtk-mt76-mt7996-add-SER-overlap-handle.patch
index b422e69..05bd767 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0033-mtk-mt76-mt7996-add-SER-overlap-handle.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0033-mtk-mt76-mt7996-add-SER-overlap-handle.patch
@@ -1,7 +1,7 @@
-From 0b6f875816c6849eaadae1cbf974ee1327af04f2 Mon Sep 17 00:00:00 2001
+From d5e534db95352e78dd449058a31aad734a36afeb 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 033/223] mtk: mt76: mt7996: add SER overlap handle
+Subject: [PATCH 033/193] mtk: mt76: mt7996: add SER overlap handle
 
 Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com>
 ---
@@ -11,7 +11,7 @@
  3 files changed, 21 insertions(+)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 3c9ee0c8..2ce9e839 100644
+index 3c9ee0c..2ce9e83 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -1906,6 +1906,7 @@ void mt7996_mac_reset_work(struct work_struct *work)
@@ -54,7 +54,7 @@
  	wake_up(&dev->reset_wait);
  }
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 08234b3a..2a647b7b 100644
+index 77567d5..a5b4b84 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -256,6 +256,14 @@ mt7996_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb,
@@ -73,7 +73,7 @@
  
  	seq = ++dev->mt76.mcu.msg_seq & 0xf;
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 7bc5504e..22d44542 100644
+index 7bc5504..22d4454 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -406,6 +406,8 @@ struct mt7996_dev {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0034-mtk-mt76-mt7996-kite-default-1-pcie-setting.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0034-mtk-mt76-mt7996-kite-default-1-pcie-setting.patch
index 46316e8..63210bf 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0034-mtk-mt76-mt7996-kite-default-1-pcie-setting.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0034-mtk-mt76-mt7996-kite-default-1-pcie-setting.patch
@@ -1,7 +1,7 @@
-From 7077356d80d23d074c2271e5d96697a8d02ad297 Mon Sep 17 00:00:00 2001
+From 3d999c0abf75d54f412befbf0247219e796e1bef 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 034/223] mtk: mt76: mt7996: kite default 1-pcie setting
+Subject: [PATCH 034/193] mtk: mt76: mt7996: kite default 1-pcie setting
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 ---
@@ -9,7 +9,7 @@
  1 file changed, 11 insertions(+)
 
 diff --git a/mt7996/pci.c b/mt7996/pci.c
-index 04056181..05830c01 100644
+index 0405618..05830c0 100644
 --- a/mt7996/pci.c
 +++ b/mt7996/pci.c
 @@ -11,6 +11,9 @@
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0035-mtk-mt76-mt7996-support-BF-MIMO-debug-commands.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0035-mtk-mt76-mt7996-support-BF-MIMO-debug-commands.patch
index c04e36f..cc0631b 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0035-mtk-mt76-mt7996-support-BF-MIMO-debug-commands.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0035-mtk-mt76-mt7996-support-BF-MIMO-debug-commands.patch
@@ -1,7 +1,7 @@
-From 3330075935bef71cea064ce4bf0d4453fdc2301a Mon Sep 17 00:00:00 2001
+From fb2f5251b2ecfed835ed151083be4a2954f1c54d 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 035/223] mtk: mt76: mt7996: support BF/MIMO debug commands
+Subject: [PATCH 035/193] mtk: mt76: mt7996: support BF/MIMO debug commands
 
 This commit includes the following commands:
 1. starec_bf_read
@@ -31,7 +31,7 @@
  6 files changed, 989 insertions(+)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 2a647b7b..baf71b0a 100644
+index a5b4b84..f46afbe 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -754,6 +754,11 @@ mt7996_mcu_uni_rx_unsolicited_event(struct mt7996_dev *dev, struct sk_buff *skb)
@@ -47,7 +47,7 @@
  	default:
  		break;
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 3e9364de..8a718513 100644
+index 3e9364d..8a71851 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -770,8 +770,12 @@ enum {
@@ -64,7 +64,7 @@
  
  enum {
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 22d44542..8d986dee 100644
+index 22d4454..8d986de 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -847,6 +847,11 @@ int mt7996_mcu_muru_dbg_info(struct mt7996_dev *dev, u16 item, u8 val);
@@ -80,7 +80,7 @@
  
  #ifdef CONFIG_NET_MEDIATEK_SOC_WED
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 13ea6274..51449df4 100644
+index 13ea627..51449df 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -2996,6 +2996,15 @@ int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
@@ -100,7 +100,7 @@
  }
  
 diff --git a/mt7996/mtk_mcu.c b/mt7996/mtk_mcu.c
-index ea4e5bf2..6b2cdad6 100644
+index ea4e5bf..6b2cdad 100644
 --- a/mt7996/mtk_mcu.c
 +++ b/mt7996/mtk_mcu.c
 @@ -280,4 +280,628 @@ int mt7996_mcu_set_dup_wtbl(struct mt7996_dev *dev)
@@ -733,7 +733,7 @@
 +
  #endif
 diff --git a/mt7996/mtk_mcu.h b/mt7996/mtk_mcu.h
-index 098e63ae..27d6a05b 100644
+index 098e63a..27d6a05 100644
 --- a/mt7996/mtk_mcu.h
 +++ b/mt7996/mtk_mcu.h
 @@ -119,6 +119,348 @@ enum {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0036-mtk-mt76-mt7996-add-build-the-following-MURU-mcu-com.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0036-mtk-mt76-mt7996-add-build-the-following-MURU-mcu-com.patch
index 1a3d22e..336f1b4 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0036-mtk-mt76-mt7996-add-build-the-following-MURU-mcu-com.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0036-mtk-mt76-mt7996-add-build-the-following-MURU-mcu-com.patch
@@ -1,7 +1,7 @@
-From e4a6bac2e1b29a00396adc9bdd1b276eb3e0ee4a Mon Sep 17 00:00:00 2001
+From 5bd260ef2bcd50c4bc56a2b7a1150d8c3b975374 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 036/223] mtk: mt76: mt7996: add build the following MURU mcu
+Subject: [PATCH 036/193] mtk: mt76: mt7996: add build the following MURU mcu
  command tlvs
 
 It includes the following tlvs:
@@ -18,7 +18,7 @@
  5 files changed, 219 insertions(+)
 
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 8a718513..a98b174e 100644
+index 8a71851..a98b174 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -776,6 +776,7 @@ enum {
@@ -30,7 +30,7 @@
  
  enum {
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 8d986dee..ed998c0e 100644
+index 8d986de..ed998c0 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -852,6 +852,9 @@ void mt7996_mcu_rx_bf_event(struct mt7996_dev *dev, struct sk_buff *skb);
@@ -44,7 +44,7 @@
  
  #ifdef CONFIG_NET_MEDIATEK_SOC_WED
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 51449df4..1c4e2c90 100644
+index 51449df..1c4e2c9 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -2911,6 +2911,127 @@ mt7996_sr_scene_cond_show(struct seq_file *file, void *data)
@@ -185,7 +185,7 @@
  }
  
 diff --git a/mt7996/mtk_mcu.c b/mt7996/mtk_mcu.c
-index 6b2cdad6..68650623 100644
+index 6b2cdad..6865062 100644
 --- a/mt7996/mtk_mcu.c
 +++ b/mt7996/mtk_mcu.c
 @@ -904,4 +904,82 @@ error:
@@ -272,7 +272,7 @@
 +
  #endif
 diff --git a/mt7996/mtk_mcu.h b/mt7996/mtk_mcu.h
-index 27d6a05b..d9686ebb 100644
+index 27d6a05..d9686eb 100644
 --- a/mt7996/mtk_mcu.h
 +++ b/mt7996/mtk_mcu.h
 @@ -119,6 +119,20 @@ enum {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0037-mtk-mt76-mt7996-add-cert-patch.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0037-mtk-mt76-mt7996-add-cert-patch.patch
index 3e626f4..73f880b 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0037-mtk-mt76-mt7996-add-cert-patch.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0037-mtk-mt76-mt7996-add-cert-patch.patch
@@ -1,7 +1,7 @@
-From d55504a4ab7bd47bcc4c26859eda52302c4855a7 Mon Sep 17 00:00:00 2001
+From 57bf57c14c4fba7e0e5dd595fa7e36fa75ce96ea 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 037/223] mtk: mt76: mt7996: add cert patch
+Subject: [PATCH 037/193] mtk: mt76: mt7996: add cert patch
 
 This patch includes TGac and TGax
 
@@ -42,7 +42,7 @@
  9 files changed, 779 insertions(+), 7 deletions(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 2ce9e839..484f91aa 100644
+index 2ce9e83..484f91a 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -10,6 +10,7 @@
@@ -69,10 +69,10 @@
  {
  	struct mt7996_dev *dev = container_of(work, struct mt7996_dev, rc_work);
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 6203e800..dc00cc2f 100644
+index 359ea91..dd9f2ca 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -602,6 +602,7 @@ mt7996_get_rates_table(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -601,6 +601,7 @@ mt7996_get_rates_table(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  		       bool beacon, bool mcast)
  {
  	struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
@@ -80,7 +80,7 @@
  	struct mt76_phy *mphy = hw->priv;
  	u16 rate;
  	u8 i, idx;
-@@ -611,6 +612,9 @@ mt7996_get_rates_table(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -610,6 +611,9 @@ mt7996_get_rates_table(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	if (beacon) {
  		struct mt7996_phy *phy = mphy->priv;
  
@@ -90,7 +90,7 @@
  		/* odd index for driver, even index for firmware */
  		idx = MT7996_BEACON_RATES_TBL + 2 * phy->mt76->band_idx;
  		if (phy->beacon_rate != rate)
-@@ -738,6 +742,10 @@ int mt7996_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -737,6 +741,10 @@ int mt7996_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  	u8 band_idx = mvif->phy->mt76->band_idx;
  	int ret, idx;
  
@@ -101,7 +101,7 @@
  	idx = mt76_wcid_alloc(dev->mt76.wcid_mask, MT7996_WTBL_STA);
  	if (idx < 0)
  		return -ENOSPC;
-@@ -763,7 +771,28 @@ int mt7996_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -762,7 +770,28 @@ int mt7996_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  	if (ret)
  		return ret;
  
@@ -132,7 +132,7 @@
  
  void mt7996_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index baf71b0a..bfedfa3a 100644
+index f46afbe..1ec4229 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -1362,6 +1362,10 @@ mt7996_mcu_sta_vht_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
@@ -204,7 +204,7 @@
  		if (val < 0 || val > 15) {
  			printk("Wrong value! The value is between 0-15.\n");
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index a98b174e..2546354e 100644
+index a98b174..2546354 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -755,6 +755,8 @@ enum {
@@ -240,7 +240,7 @@
  
  enum {
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index ed998c0e..a81e275d 100644
+index ed998c0..a81e275 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -363,6 +363,7 @@ struct mt7996_phy {
@@ -292,7 +292,7 @@
  
  #ifdef CONFIG_NET_MEDIATEK_SOC_WED
 diff --git a/mt7996/mtk_mcu.c b/mt7996/mtk_mcu.c
-index 68650623..30da79f4 100644
+index 6865062..30da79f 100644
 --- a/mt7996/mtk_mcu.c
 +++ b/mt7996/mtk_mcu.c
 @@ -982,4 +982,210 @@ int mt7996_mcu_set_bypass_smthint(struct mt7996_phy *phy, u8 val)
@@ -507,7 +507,7 @@
 +
  #endif
 diff --git a/mt7996/mtk_mcu.h b/mt7996/mtk_mcu.h
-index d9686ebb..7a4140b5 100644
+index d9686eb..7a4140b 100644
 --- a/mt7996/mtk_mcu.h
 +++ b/mt7996/mtk_mcu.h
 @@ -122,14 +122,15 @@ enum {
@@ -712,7 +712,7 @@
  
  #endif
 diff --git a/mt7996/vendor.c b/mt7996/vendor.c
-index 0d6fa779..7ab64471 100644
+index 0d6fa77..7ab6447 100644
 --- a/mt7996/vendor.c
 +++ b/mt7996/vendor.c
 @@ -10,10 +10,31 @@
@@ -1012,7 +1012,7 @@
  }
 +#endif
 diff --git a/mt7996/vendor.h b/mt7996/vendor.h
-index 8aaa18ee..2ee1339a 100644
+index 8aaa18e..2ee1339 100644
 --- a/mt7996/vendor.h
 +++ b/mt7996/vendor.h
 @@ -3,8 +3,12 @@
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0038-mtk-mt76-mt7996-add-testmode-bf-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0038-mtk-mt76-mt7996-add-testmode-bf-support.patch
index 189f568..711a1ed 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0038-mtk-mt76-mt7996-add-testmode-bf-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0038-mtk-mt76-mt7996-add-testmode-bf-support.patch
@@ -1,7 +1,7 @@
-From 9cbfa34669e0afeabd5b880c3421258540f66356 Mon Sep 17 00:00:00 2001
+From bf108e5c1101d5ac7ebb67f793c54d2cfa997436 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 038/223] mtk: mt76: mt7996: add testmode bf support
+Subject: [PATCH 038/193] mtk: mt76: mt7996: add testmode bf support
 
 Add iTest additional bf command
 
@@ -37,7 +37,7 @@
  14 files changed, 1590 insertions(+), 61 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
-index 2805d758..7beefc59 100644
+index 2805d75..7beefc5 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -774,6 +774,11 @@ struct mt76_testmode_data {
@@ -53,7 +53,7 @@
  	bool ebf;
  
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index dd63d4a0..db152167 100644
+index dd63d4a..db15216 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -493,7 +493,8 @@ struct sta_rec_bf {
@@ -75,7 +75,7 @@
  	MCU_UNI_CMD_PRECAL_RESULT = 0x47,
  	MCU_UNI_CMD_RRO = 0x57,
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index bfedfa3a..c0bd2d13 100644
+index 1ec4229..cf7b200 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -1083,7 +1083,12 @@ mt7996_mcu_bss_basic_tlv(struct sk_buff *skb,
@@ -101,7 +101,7 @@
  	struct sk_buff *skb;
  	struct tlv *tlv;
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 2546354e..c6bb93b3 100644
+index 2546354..c6bb93b 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -685,6 +685,22 @@ struct bf_sounding_on {
@@ -172,7 +172,7 @@
  	CMD_BAND_NONE,
  	CMD_BAND_24G,
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index a81e275d..32a0ffd8 100644
+index a81e275..32a0ffd 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -499,6 +499,14 @@ struct mt7996_dev {
@@ -213,7 +213,7 @@
 +
  #endif
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 1c4e2c90..a59e3a18 100644
+index 1c4e2c9..a59e3a1 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -2916,7 +2916,7 @@ mt7996_starec_bf_read_set(void *data, u64 wlan_idx)
@@ -244,7 +244,7 @@
  DEFINE_DEBUGFS_ATTRIBUTE(fops_bf_pfmu_tag_read, NULL,
  			 mt7996_bf_pfmu_tag_read_set, "%lld\n");
 diff --git a/mt7996/mtk_mcu.c b/mt7996/mtk_mcu.c
-index 30da79f4..b46a66bb 100644
+index 30da79f..b46a66b 100644
 --- a/mt7996/mtk_mcu.c
 +++ b/mt7996/mtk_mcu.c
 @@ -295,7 +295,7 @@ __mt7996_mcu_add_uni_tlv(struct sk_buff *skb, u16 tag, u16 len)
@@ -434,7 +434,7 @@
  		dev_info(dev->mt76.dev, "%s: unknown bf event tag %d\n",
  			 __func__, event->tag);
 diff --git a/mt7996/mtk_mcu.h b/mt7996/mtk_mcu.h
-index 7a4140b5..58d61c51 100644
+index 7a4140b..58d61c5 100644
 --- a/mt7996/mtk_mcu.h
 +++ b/mt7996/mtk_mcu.h
 @@ -189,6 +189,165 @@ struct bf_txsnd_info {
@@ -900,7 +900,7 @@
  	__le16 wlan_idx0;
  	__le16 wlan_idx1;
 diff --git a/mt7996/regs.h b/mt7996/regs.h
-index 539e799c..f55d4a94 100644
+index 539e799..f55d4a9 100644
 --- a/mt7996/regs.h
 +++ b/mt7996/regs.h
 @@ -326,6 +326,9 @@ enum offs_rev {
@@ -914,7 +914,7 @@
  #define MT_WF_RMAC_BASE(_band)			__BASE(WF_RMAC_BASE, (_band))
  #define MT_WF_RMAC(_band, ofs)			(MT_WF_RMAC_BASE(_band) + (ofs))
 diff --git a/mt7996/testmode.c b/mt7996/testmode.c
-index c4874eb3..bace3afe 100644
+index c4874eb..bace3af 100644
 --- a/mt7996/testmode.c
 +++ b/mt7996/testmode.c
 @@ -23,6 +23,10 @@ enum {
@@ -1830,7 +1830,7 @@
  
  static int
 diff --git a/mt7996/testmode.h b/mt7996/testmode.h
-index 78662b2e..f97ccb26 100644
+index 78662b2..f97ccb2 100644
 --- a/mt7996/testmode.h
 +++ b/mt7996/testmode.h
 @@ -27,6 +27,17 @@ enum {
@@ -1873,7 +1873,7 @@
  	__le32 func_data;
  	u8 band_idx;
 diff --git a/testmode.c b/testmode.c
-index 69147f86..9a7559bf 100644
+index 69147f8..9a7559b 100644
 --- a/testmode.c
 +++ b/testmode.c
 @@ -462,6 +462,44 @@ out:
@@ -1953,7 +1953,7 @@
  		err = dev->test_ops->set_params(phy, tb, state);
  		if (err)
 diff --git a/testmode.h b/testmode.h
-index 6d79832a..794a74f9 100644
+index 6d79832..794a74f 100644
 --- a/testmode.h
 +++ b/testmode.h
 @@ -286,4 +286,57 @@ enum mt76_testmode_eeprom_action {
@@ -2015,7 +2015,7 @@
 +
  #endif
 diff --git a/tools/fields.c b/tools/fields.c
-index 77696ce7..f793d1a5 100644
+index 77696ce..f793d1a 100644
 --- a/tools/fields.c
 +++ b/tools/fields.c
 @@ -44,6 +44,30 @@ static const char * const testmode_offchan_bw[] = {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0039-mtk-mt76-mt7996-add-zwdfs-cert-mode.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0039-mtk-mt76-mt7996-add-zwdfs-cert-mode.patch
index 7e6ac6a..34d3fac 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0039-mtk-mt76-mt7996-add-zwdfs-cert-mode.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0039-mtk-mt76-mt7996-add-zwdfs-cert-mode.patch
@@ -1,7 +1,7 @@
-From fe038594fb92fae539bf05f86022953810e4e1e6 Mon Sep 17 00:00:00 2001
+From 3d569a8df7ab86ada17a30c6e3a969441ff87a1e 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 039/223] mtk: mt76: mt7996: add zwdfs cert mode
+Subject: [PATCH 039/193] mtk: mt76: mt7996: add zwdfs cert mode
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 ---
@@ -13,7 +13,7 @@
  5 files changed, 100 insertions(+), 12 deletions(-)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index c0bd2d13..9e548100 100644
+index cf7b200..b6de1b5 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -4532,18 +4532,7 @@ int mt7996_mcu_set_radio_en(struct mt7996_phy *phy, bool enable)
@@ -75,7 +75,7 @@
  				     struct ieee80211_vif *vif,
  				     struct ieee80211_sta *sta)
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index c6bb93b3..3025f849 100644
+index c6bb93b..3025f84 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -119,6 +119,20 @@ struct mt7996_mcu_rdd_report {
@@ -100,7 +100,7 @@
  	u8 _rsv[4];
  
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 32a0ffd8..e406dc87 100644
+index 32a0ffd..e406dc8 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -536,8 +536,11 @@ enum mt7996_rdd_cmd {
@@ -125,7 +125,7 @@
  				     struct cfg80211_chan_def *chandef);
  int mt7996_mcu_set_fixed_rate_table(struct mt7996_phy *phy, u8 table_idx,
 diff --git a/mt7996/vendor.c b/mt7996/vendor.c
-index 7ab64471..ba00ef35 100644
+index 7ab6447..ba00ef3 100644
 --- a/mt7996/vendor.c
 +++ b/mt7996/vendor.c
 @@ -108,6 +108,11 @@ rfeature_ctrl_policy[NUM_MTK_VENDOR_ATTRS_RFEATURE_CTRL] = {
@@ -187,7 +187,7 @@
  
  void mt7996_vendor_register(struct mt7996_phy *phy)
 diff --git a/mt7996/vendor.h b/mt7996/vendor.h
-index 2ee1339a..7c812f91 100644
+index 2ee1339..7c812f9 100644
 --- a/mt7996/vendor.h
 +++ b/mt7996/vendor.h
 @@ -14,6 +14,7 @@ enum mtk_nl80211_vendor_subcmds {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0040-mtk-mt76-mt7996-add-channel-68-96.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0040-mtk-mt76-mt7996-add-channel-68-96.patch
index a97824b..4814f75 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0040-mtk-mt76-mt7996-add-channel-68-96.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0040-mtk-mt76-mt7996-add-channel-68-96.patch
@@ -1,7 +1,7 @@
-From 1836ddf781e91b41f66a1add7110bd24d133817c Mon Sep 17 00:00:00 2001
+From 6283692520dc79dd09e9300835b5b5b1aef78bd2 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 040/223] mtk: mt76: mt7996: add channel 68 & 96
+Subject: [PATCH 040/193] mtk: mt76: mt7996: add channel 68 & 96
 
 ---
  mac80211.c        |  9 +++++++++
@@ -13,7 +13,7 @@
  6 files changed, 82 insertions(+), 9 deletions(-)
 
 diff --git a/mac80211.c b/mac80211.c
-index 1d2477d6..ee5aa608 100644
+index 1d2477d..ee5aa60 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -34,6 +34,15 @@ static const struct ieee80211_channel mt76_channels_5ghz[] = {
@@ -33,7 +33,7 @@
  	CHAN5G(104, 5520),
  	CHAN5G(108, 5540),
 diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index da30be33..b71961d9 100644
+index da30be3..b71961d 100644
 --- a/mt7996/eeprom.c
 +++ b/mt7996/eeprom.c
 @@ -18,6 +18,17 @@ const struct ieee80211_channel dpd_2g_ch_list_bw20[] = {
@@ -114,7 +114,7 @@
  {
  	struct mt76_dev *mdev = &dev->mt76;
 diff --git a/mt7996/eeprom.h b/mt7996/eeprom.h
-index e90180a0..782d847b 100644
+index e90180a..782d847 100644
 --- a/mt7996/eeprom.h
 +++ b/mt7996/eeprom.h
 @@ -67,6 +67,8 @@ enum mt7996_eeprom_field {
@@ -127,7 +127,7 @@
  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 9e548100..54a84966 100644
+index b6de1b5..7c96e40 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -3802,7 +3802,8 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
@@ -162,7 +162,7 @@
  
  	for (i = 0; i < per_chan_size / MT_EE_CAL_UNIT; i++) {
 diff --git a/mt7996/testmode.c b/mt7996/testmode.c
-index bace3afe..6de49afc 100644
+index bace3af..6de49af 100644
 --- a/mt7996/testmode.c
 +++ b/mt7996/testmode.c
 @@ -537,6 +537,11 @@ mt7996_tm_dpd_prek_send_req(struct mt7996_phy *phy, struct mt7996_tm_req *req,
@@ -216,7 +216,7 @@
  
  	return first_control + offset;
 diff --git a/mt7996/testmode.h b/mt7996/testmode.h
-index f97ccb26..ba1767ae 100644
+index f97ccb2..ba1767a 100644
 --- a/mt7996/testmode.h
 +++ b/mt7996/testmode.h
 @@ -38,9 +38,9 @@ enum {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0041-mtk-mt76-mt7996-add-kite-testmode-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0041-mtk-mt76-mt7996-add-kite-testmode-support.patch
index 88296a5..cbf5c32 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0041-mtk-mt76-mt7996-add-kite-testmode-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0041-mtk-mt76-mt7996-add-kite-testmode-support.patch
@@ -1,7 +1,7 @@
-From fa32fd17aed1561a48cff42344e06d5ebf5a736d Mon Sep 17 00:00:00 2001
+From 35af00d6cef6831fbaadf26a441df5902dfcca7b 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 041/223] mtk: mt76: mt7996: add kite testmode support
+Subject: [PATCH 041/193] mtk: mt76: mt7996: add kite testmode support
 
 Add Kite testmode support
 1. avoid entering connac 2 testmode flow in kite
@@ -18,7 +18,7 @@
  6 files changed, 202 insertions(+), 122 deletions(-)
 
 diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index b71961d9..7575dcb9 100644
+index b71961d..7575dcb 100644
 --- a/mt7996/eeprom.c
 +++ b/mt7996/eeprom.c
 @@ -29,12 +29,39 @@ const struct ieee80211_channel dpd_5g_skip_ch_list[] = {
@@ -112,7 +112,7 @@
  mt7996_eeprom_check_or_use_default(struct mt7996_dev *dev, bool use_default)
  {
 diff --git a/mt7996/eeprom.h b/mt7996/eeprom.h
-index 782d847b..c3c248ca 100644
+index 782d847..c3c248c 100644
 --- a/mt7996/eeprom.h
 +++ b/mt7996/eeprom.h
 @@ -45,36 +45,69 @@ enum mt7996_eeprom_field {
@@ -210,7 +210,7 @@
  #define RF_DPD_FLAT_CAL				BIT(28)
  #define RF_PRE_CAL				BIT(29)
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 54a84966..87322283 100644
+index 7c96e40..0226139 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -3771,13 +3771,11 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
@@ -317,7 +317,7 @@
  	cal += MT_EE_CAL_GROUP_SIZE + base_offset + idx * per_chan_size;
  
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index e406dc87..981f496e 100644
+index e406dc8..981f496 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -203,6 +203,19 @@ struct mt7996_twt_flow {
@@ -360,7 +360,7 @@
  void mt7996_dma_reset(struct mt7996_dev *dev, bool force);
  void mt7996_dma_prefetch(struct mt7996_dev *dev);
 diff --git a/mt7996/testmode.c b/mt7996/testmode.c
-index 6de49afc..5c0eb3cb 100644
+index 6de49af..5c0eb3c 100644
 --- a/mt7996/testmode.c
 +++ b/mt7996/testmode.c
 @@ -440,7 +440,7 @@ mt7996_tm_set_tx_cont(struct mt7996_phy *phy, bool en)
@@ -550,7 +550,7 @@
  	cal_idx = le32_to_cpu(data->cal_idx);
  	cal_type = le32_to_cpu(data->cal_type);
 diff --git a/testmode.c b/testmode.c
-index 9a7559bf..a1744755 100644
+index 9a7559b..a174475 100644
 --- a/testmode.c
 +++ b/testmode.c
 @@ -37,6 +37,11 @@ const struct nla_policy mt76_tm_policy[NUM_MT76_TM_ATTRS] = {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0042-mtk-mt76-mt7996-assign-DEAUTH-to-ALTX-queue-for-CERT.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0042-mtk-mt76-mt7996-assign-DEAUTH-to-ALTX-queue-for-CERT.patch
index 7c54397..870b3cc 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0042-mtk-mt76-mt7996-assign-DEAUTH-to-ALTX-queue-for-CERT.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0042-mtk-mt76-mt7996-assign-DEAUTH-to-ALTX-queue-for-CERT.patch
@@ -1,7 +1,7 @@
-From 86493d14f89cf1c6916bdac4fe2ecfc1b20c84e6 Mon Sep 17 00:00:00 2001
+From 299832187200587a197df3dc644c16ed83c4dd37 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 042/223] mtk: mt76: mt7996: assign DEAUTH to ALTX queue for
+Subject: [PATCH 042/193] mtk: mt76: mt7996: assign DEAUTH to ALTX queue for
  CERT
 
 Signed-off-by: Michael-CY Lee <michael-cy.lee@mediatek.com>
@@ -10,7 +10,7 @@
  1 file changed, 10 insertions(+)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 484f91aa..f78591ff 100644
+index 484f91a..f78591f 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -759,6 +759,8 @@ static void
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0043-mtk-mt76-mt7996-add-no_beacon-vendor-command-for-cer.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0043-mtk-mt76-mt7996-add-no_beacon-vendor-command-for-cer.patch
index 3197335..6d6d086 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0043-mtk-mt76-mt7996-add-no_beacon-vendor-command-for-cer.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0043-mtk-mt76-mt7996-add-no_beacon-vendor-command-for-cer.patch
@@ -1,7 +1,7 @@
-From d75372c3491e32a67af73ce130cd36f03af82d51 Mon Sep 17 00:00:00 2001
+From 241f99ad85a20ef4a8a1c46203e853f14e62908c 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 043/223] mtk: mt76: mt7996: add no_beacon vendor command for
+Subject: [PATCH 043/193] mtk: mt76: mt7996: add no_beacon vendor command for
  cert
 
 Add the vendor command to disable/enable beacon
@@ -22,7 +22,7 @@
  4 files changed, 65 insertions(+)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 87322283..9431f878 100644
+index 0226139..5352e4b 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -5136,4 +5136,15 @@ void mt7996_set_wireless_vif(void *data, u8 *mac, struct ieee80211_vif *vif)
@@ -42,7 +42,7 @@
 +}
  #endif
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 981f496e..f6e7fbdd 100644
+index 981f496..f6e7fbd 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -866,6 +866,7 @@ void mt7996_set_wireless_amsdu(struct ieee80211_hw *hw, u8 en);
@@ -54,7 +54,7 @@
  
  int mt7996_mcu_edcca_enable(struct mt7996_phy *phy, bool enable);
 diff --git a/mt7996/vendor.c b/mt7996/vendor.c
-index ba00ef35..31688c37 100644
+index ba00ef3..31688c3 100644
 --- a/mt7996/vendor.c
 +++ b/mt7996/vendor.c
 @@ -113,6 +113,11 @@ background_radar_ctrl_policy[NUM_MTK_VENDOR_ATTRS_BACKGROUND_RADAR_CTRL] = {
@@ -120,7 +120,7 @@
  
  void mt7996_vendor_register(struct mt7996_phy *phy)
 diff --git a/mt7996/vendor.h b/mt7996/vendor.h
-index 7c812f91..0d1ef322 100644
+index 7c812f9..0d1ef32 100644
 --- a/mt7996/vendor.h
 +++ b/mt7996/vendor.h
 @@ -16,6 +16,7 @@ enum mtk_nl80211_vendor_subcmds {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0044-mtk-mt76-mt7996-add-adie-efuse-merge-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0044-mtk-mt76-mt7996-add-adie-efuse-merge-support.patch
index 099e068..a7c8a13 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0044-mtk-mt76-mt7996-add-adie-efuse-merge-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0044-mtk-mt76-mt7996-add-adie-efuse-merge-support.patch
@@ -1,7 +1,7 @@
-From 031841be718eb6736dec9c52744664433ed2a34e Mon Sep 17 00:00:00 2001
+From db6abcb6c3265d02b66b7b7cf68431493c0aad3d 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 044/223] mtk: mt76: mt7996: add adie efuse merge support
+Subject: [PATCH 044/193] mtk: mt76: mt7996: add adie efuse merge support
 
 Merge adie-dependent parameters in efuse into eeprom after FT.
 Note that Eagle BE14000 is not considered yet.
@@ -17,7 +17,7 @@
  4 files changed, 193 insertions(+), 4 deletions(-)
 
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index 1f4bad62..70a97d29 100644
+index 1f4bad6..70a97d2 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -881,6 +881,46 @@ DEFINE_DEBUGFS_ATTRIBUTE(fops_fw_debug_muru_disable,
@@ -76,7 +76,7 @@
  	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 7575dcb9..be87afe8 100644
+index 7575dcb..be87afe 100644
 --- a/mt7996/eeprom.c
 +++ b/mt7996/eeprom.c
 @@ -546,6 +546,146 @@ static int mt7996_eeprom_load_precal(struct mt7996_dev *dev)
@@ -238,10 +238,10 @@
  	if (ret < 0)
  		return ret;
 diff --git a/mt7996/main.c b/mt7996/main.c
-index dc00cc2f..ea4679dd 100644
+index dd9f2ca..9376d69 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -1485,10 +1485,10 @@ mt7996_background_radar_handle_7975_ifem(struct ieee80211_hw *hw,
+@@ -1484,10 +1484,10 @@ mt7996_background_radar_handle_7975_ifem(struct ieee80211_hw *hw,
  	switch (mt76_chip(&dev->mt76)) {
  	case 0x7990:
  		is_ifem_adie = dev->fem_type == MT7996_FEM_INT &&
@@ -255,7 +255,7 @@
  		break;
  	default:
 diff --git a/mt7996/testmode.c b/mt7996/testmode.c
-index 5c0eb3cb..5a8b6d0a 100644
+index 5c0eb3c..5a8b6d0 100644
 --- a/mt7996/testmode.c
 +++ b/mt7996/testmode.c
 @@ -2128,8 +2128,12 @@ mt7996_tm_write_back_to_efuse(struct mt7996_dev *dev)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0045-mtk-mt76-mt7996-add-Eagle-2adie-TBTC-BE14000-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0045-mtk-mt76-mt7996-add-Eagle-2adie-TBTC-BE14000-support.patch
index 1cebf18..1ff381f 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0045-mtk-mt76-mt7996-add-Eagle-2adie-TBTC-BE14000-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0045-mtk-mt76-mt7996-add-Eagle-2adie-TBTC-BE14000-support.patch
@@ -1,7 +1,7 @@
-From 9c8447672f6bb36113eccf7064f91b11ea980825 Mon Sep 17 00:00:00 2001
+From 46b4b28600e525461c25bd667d947a0383049c70 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 045/223] mtk: mt76: mt7996: add Eagle 2adie TBTC (BE14000)
+Subject: [PATCH 045/193] mtk: mt76: mt7996: add Eagle 2adie TBTC (BE14000)
  support
 
 Add fwdl/default eeprom load support for Eagle 2 adie TBTC
@@ -18,7 +18,7 @@
  3 files changed, 17 insertions(+), 2 deletions(-)
 
 diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index be87afe8..f1c29e8d 100644
+index be87afe..f1c29e8 100644
 --- a/mt7996/eeprom.c
 +++ b/mt7996/eeprom.c
 @@ -500,6 +500,8 @@ static void mt7996_eeprom_init_precal(struct mt7996_dev *dev)
@@ -49,7 +49,7 @@
  			eep_offs[1] = eep_offs_list[ADIE_7977];
  		}
 diff --git a/mt7996/eeprom.h b/mt7996/eeprom.h
-index c3c248ca..788c33c8 100644
+index c3c248c..788c33c 100644
 --- a/mt7996/eeprom.h
 +++ b/mt7996/eeprom.h
 @@ -70,6 +70,18 @@ static const u32 mt7996_prek_rev[] = {
@@ -72,7 +72,7 @@
  static const u32 mt7992_prek_rev[] = {
  	[GROUP_SIZE_2G] =			4 * MT_EE_CAL_UNIT,
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index f6e7fbdd..81639a45 100644
+index f6e7fbd..81639a4 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -38,6 +38,7 @@
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0046-mtk-mt76-mt7996-add-background-radar-hw-cap-check.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0046-mtk-mt76-mt7996-add-background-radar-hw-cap-check.patch
index 7809621..43504c3 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0046-mtk-mt76-mt7996-add-background-radar-hw-cap-check.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0046-mtk-mt76-mt7996-add-background-radar-hw-cap-check.patch
@@ -1,7 +1,7 @@
-From 4a0688cf495714841635247e4859335402f3118f Mon Sep 17 00:00:00 2001
+From 47bd3ed95c21e49cc0c9e34daacdbd3c07ddda49 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 046/223] mtk: mt76: mt7996: add background radar hw cap check
+Subject: [PATCH 046/193] mtk: mt76: mt7996: add background radar hw cap check
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 ---
@@ -10,7 +10,7 @@
  2 files changed, 7 insertions(+), 1 deletion(-)
 
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index 70a97d29..07970e1a 100644
+index 70a97d2..07970e1 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -262,6 +262,11 @@ mt7996_rdd_monitor(struct seq_file *s, void *data)
@@ -26,7 +26,7 @@
  		ret = -EINVAL;
  		goto out;
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 81639a45..142c390d 100644
+index 81639a4..142c390 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -619,7 +619,8 @@ mt7996_has_background_radar(struct mt7996_dev *dev)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0047-mtk-mt76-mt7996-add-fallback-in-case-of-missing-prec.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0047-mtk-mt76-mt7996-add-fallback-in-case-of-missing-prec.patch
index 0b7ad11..06b7938 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0047-mtk-mt76-mt7996-add-fallback-in-case-of-missing-prec.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0047-mtk-mt76-mt7996-add-fallback-in-case-of-missing-prec.patch
@@ -1,7 +1,7 @@
-From f516af1b0691dcf72ad4a38ce5e6c06cb94ed9be Mon Sep 17 00:00:00 2001
+From 478bf79875d21c0eac4b2c8e2e78fb951f9e80ab Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Tue, 19 Mar 2024 17:33:49 +0800
-Subject: [PATCH 047/223] mtk: mt76: mt7996: add fallback in case of missing
+Subject: [PATCH 047/193] mtk: mt76: mt7996: add fallback in case of missing
  precal data
 
 Align Wi-Fi 6 upstream changes
@@ -15,7 +15,7 @@
  3 files changed, 22 insertions(+), 8 deletions(-)
 
 diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index f1c29e8d..3ec146d0 100644
+index f1c29e8..3ec146d 100644
 --- a/mt7996/eeprom.c
 +++ b/mt7996/eeprom.c
 @@ -535,17 +535,31 @@ static int mt7996_eeprom_load_precal(struct mt7996_dev *dev)
@@ -57,10 +57,10 @@
  
  static int mt7996_apply_cal_free_data(struct mt7996_dev *dev)
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 3421326a..eac00df0 100644
+index 92d4d6f..849a639 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -1021,7 +1021,7 @@ static int mt7996_init_hardware(struct mt7996_dev *dev)
+@@ -1018,7 +1018,7 @@ static int mt7996_init_hardware(struct mt7996_dev *dev)
  	if (ret < 0)
  		return ret;
  
@@ -70,7 +70,7 @@
  		if (ret)
  			return ret;
 diff --git a/mt7996/main.c b/mt7996/main.c
-index ea4679dd..f02f447e 100644
+index 9376d69..2721491 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -338,7 +338,7 @@ int mt7996_set_channel(struct mt76_phy *mphy)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0048-mtk-mt76-mt7996-add-kite-part-number-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0048-mtk-mt76-mt7996-add-kite-part-number-support.patch
index d349a87..00fc917 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0048-mtk-mt76-mt7996-add-kite-part-number-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0048-mtk-mt76-mt7996-add-kite-part-number-support.patch
@@ -1,7 +1,7 @@
-From 7251f2a0f7d1f5eda27611ff658328c2fe8edbf1 Mon Sep 17 00:00:00 2001
+From d3156a994fbd6a37ab1c2b7244f09c22afea4dca Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Wed, 27 Mar 2024 17:50:16 +0800
-Subject: [PATCH 048/223] mtk: mt76: mt7996: add kite part number support
+Subject: [PATCH 048/193] mtk: mt76: mt7996: add kite part number support
 
 Change-Id: Ib06648398f18b47c324e18b476a57444d929608f
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
@@ -10,7 +10,7 @@
  1 file changed, 1 deletion(-)
 
 diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index 3ec146d0..f9bd4d91 100644
+index 3ec146d..f9bd4d9 100644
 --- a/mt7996/eeprom.c
 +++ b/mt7996/eeprom.c
 @@ -372,7 +372,6 @@ static int mt7996_eeprom_parse_efuse_hw_cap(struct mt7996_phy *phy,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0049-mtk-wifi-mt76-revert-page_poll-for-kernel-5.4.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0049-mtk-wifi-mt76-revert-page_poll-for-kernel-5.4.patch
index 49c9419..1ab4f9c 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0049-mtk-wifi-mt76-revert-page_poll-for-kernel-5.4.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0049-mtk-wifi-mt76-revert-page_poll-for-kernel-5.4.patch
@@ -1,7 +1,7 @@
-From 4389fa86ef5bed621b9ced29ca66351819397575 Mon Sep 17 00:00:00 2001
+From 4e83eb94571d55b53a8e3b457e5012199603f749 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 049/223] mtk: wifi: mt76: revert page_poll for kernel 5.4
+Subject: [PATCH 049/193] mtk: wifi: mt76: revert page_poll for kernel 5.4
 
 This reverts commit e8c10835cf062c577ddf426913788c39d30b4bd7.
 
@@ -16,7 +16,7 @@
  6 files changed, 104 insertions(+), 168 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index 66c000ef..33a84f5f 100644
+index 66c000e..33a84f5 100644
 --- a/dma.c
 +++ b/dma.c
 @@ -178,7 +178,7 @@ mt76_free_pending_rxwi(struct mt76_dev *dev)
@@ -205,7 +205,7 @@
  
  	if (mtk_wed_device_active(&dev->mmio.wed))
 diff --git a/mac80211.c b/mac80211.c
-index ee5aa608..78e9a1ae 100644
+index ee5aa60..78e9a1a 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -566,47 +566,6 @@ void mt76_unregister_phy(struct mt76_phy *phy)
@@ -279,7 +279,7 @@
  {
  	struct ieee80211_hw *hw = phy->hw;
 diff --git a/mt76.h b/mt76.h
-index 7beefc59..e06d5aaa 100644
+index 7beefc5..e06d5aa 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -252,7 +252,7 @@ struct mt76_queue {
@@ -326,10 +326,10 @@
  static inline void mt76_set_tx_blocked(struct mt76_dev *dev, bool blocked)
  {
 diff --git a/mt7915/main.c b/mt7915/main.c
-index d18ea5d4..8cb09d1b 100644
+index d11a917..9ff3aab 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
-@@ -1421,22 +1421,19 @@ void mt7915_get_et_strings(struct ieee80211_hw *hw,
+@@ -1423,22 +1423,19 @@ void mt7915_get_et_strings(struct ieee80211_hw *hw,
  			   struct ieee80211_vif *vif,
  			   u32 sset, u8 *data)
  {
@@ -358,7 +358,7 @@
  }
  
  static void mt7915_ethtool_worker(void *wi_data, struct ieee80211_sta *sta)
-@@ -1464,7 +1461,7 @@ void mt7915_get_et_stats(struct ieee80211_hw *hw,
+@@ -1466,7 +1463,7 @@ void mt7915_get_et_stats(struct ieee80211_hw *hw,
  		.idx = mvif->mt76.idx,
  	};
  	/* See mt7915_ampdu_stat_read_phy, etc */
@@ -367,7 +367,7 @@
  
  	mutex_lock(&dev->mt76.mutex);
  
-@@ -1576,12 +1573,9 @@ void mt7915_get_et_stats(struct ieee80211_hw *hw,
+@@ -1578,12 +1575,9 @@ void mt7915_get_et_stats(struct ieee80211_hw *hw,
  		return;
  
  	ei += wi.worker_stat_count;
@@ -384,7 +384,7 @@
  
  static void
 diff --git a/usb.c b/usb.c
-index f9e67b8c..47e43fdb 100644
+index f9e67b8..47e43fd 100644
 --- a/usb.c
 +++ b/usb.c
 @@ -318,27 +318,29 @@ mt76u_set_endpoints(struct usb_interface *intf,
@@ -518,7 +518,7 @@
  
  static void mt76u_free_rx(struct mt76_dev *dev)
 diff --git a/wed.c b/wed.c
-index f89e4537..8eca4d81 100644
+index f89e453..8eca4d8 100644
 --- a/wed.c
 +++ b/wed.c
 @@ -9,8 +9,12 @@
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0050-mtk-mt76-rework-wed-rx-flow.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0050-mtk-mt76-rework-wed-rx-flow.patch
index 051af09..576de10 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0050-mtk-mt76-rework-wed-rx-flow.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0050-mtk-mt76-rework-wed-rx-flow.patch
@@ -1,7 +1,7 @@
-From c21fcd823cc877e39068a92ffa440b7ad7f4bb45 Mon Sep 17 00:00:00 2001
+From 893dc09b18642a3dea75a841b8be9ed8f3a9993d 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 050/223] mtk: mt76: rework wed rx flow
+Subject: [PATCH 050/193] mtk: mt76: rework wed rx flow
 
 Change-Id: Icd787345c811cb5ad30d9c7c1c5f9e5298bd3be6
 Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com>
@@ -16,7 +16,7 @@
  7 files changed, 144 insertions(+), 85 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index 33a84f5f..c54187bd 100644
+index 33a84f5..c54187b 100644
 --- a/dma.c
 +++ b/dma.c
 @@ -64,17 +64,17 @@ mt76_alloc_txwi(struct mt76_dev *dev)
@@ -260,7 +260,7 @@
  					 DMA_FROM_DEVICE);
  			skb_free_frag(buf);
 diff --git a/mac80211.c b/mac80211.c
-index 78e9a1ae..b08a9388 100644
+index 78e9a1a..b08a938 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -596,7 +596,6 @@ mt76_alloc_device(struct device *pdev, unsigned int size,
@@ -280,7 +280,7 @@
  	for (i = 0; i < ARRAY_SIZE(dev->q_rx); i++)
  		skb_queue_head_init(&dev->rx_skb[i]);
 diff --git a/mt76.h b/mt76.h
-index e06d5aaa..260e198a 100644
+index e06d5aa..260e198 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -206,6 +206,7 @@ struct mt76_queue_entry {
@@ -353,7 +353,7 @@
  static inline void mt76_set_tx_blocked(struct mt76_dev *dev, bool blocked)
  {
 diff --git a/mt7915/mmio.c b/mt7915/mmio.c
-index 44e112b8..9741e1d2 100644
+index 44e112b..9741e1d 100644
 --- a/mt7915/mmio.c
 +++ b/mt7915/mmio.c
 @@ -714,7 +714,7 @@ int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr,
@@ -374,7 +374,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 ac0b1f0e..bcfec0b0 100644
+index ac0b1f0..bcfec0b 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -62,6 +62,7 @@
@@ -386,7 +386,7 @@
  #define MT7915_CFEND_RATE_DEFAULT	0x49	/* OFDM 24M */
  #define MT7915_CFEND_RATE_11B		0x03	/* 11B LP, 11M */
 diff --git a/tx.c b/tx.c
-index 2634c5bc..5734979f 100644
+index c24729d..5aa37f4 100644
 --- a/tx.c
 +++ b/tx.c
 @@ -869,16 +869,16 @@ int mt76_token_consume(struct mt76_dev *dev, struct mt76_txwi_cache **ptxwi)
@@ -431,7 +431,7 @@
  }
  EXPORT_SYMBOL_GPL(mt76_rx_token_release);
 diff --git a/wed.c b/wed.c
-index 8eca4d81..0a0b5c05 100644
+index 8eca4d8..0a0b5c0 100644
 --- a/wed.c
 +++ b/wed.c
 @@ -9,28 +9,45 @@
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0051-mtk-mt76-change-wed-token-init-size-to-adapt-wed3.0.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0051-mtk-mt76-change-wed-token-init-size-to-adapt-wed3.0.patch
index 3466f9a..88bda6a 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0051-mtk-mt76-change-wed-token-init-size-to-adapt-wed3.0.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0051-mtk-mt76-change-wed-token-init-size-to-adapt-wed3.0.patch
@@ -1,7 +1,7 @@
-From f0d346f6709ddea1982ee44a69ee2c3da0d86b75 Mon Sep 17 00:00:00 2001
+From 83d2457a3c9498a8ed18e36978b16d0ddf159863 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 051/223] mtk: mt76: change wed token init size to adapt wed3.0
+Subject: [PATCH 051/193] mtk: mt76: change wed token init size to adapt wed3.0
 
 Signed-off-by: sujuan.chen <sujuan.chen@mediatek.com>
 ---
@@ -9,7 +9,7 @@
  1 file changed, 7 insertions(+), 3 deletions(-)
 
 diff --git a/tx.c b/tx.c
-index 5734979f..a78ab2c8 100644
+index 5aa37f4..330b8d3 100644
 --- a/tx.c
 +++ b/tx.c
 @@ -845,12 +845,16 @@ EXPORT_SYMBOL_GPL(__mt76_set_tx_blocked);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0052-mtk-mt76-add-random-early-drop-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0052-mtk-mt76-add-random-early-drop-support.patch
index 891c45a..412832d 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0052-mtk-mt76-add-random-early-drop-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0052-mtk-mt76-add-random-early-drop-support.patch
@@ -1,7 +1,7 @@
-From 7a0d06e95d36c4d9f0b7bb8ae2adac2e2c7ec831 Mon Sep 17 00:00:00 2001
+From 69731e6ec3e3e8dfcd5c21efea149598812f5a53 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 052/223] mtk: mt76: add random early drop support
+Subject: [PATCH 052/193] mtk: 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 07970e1a..e328a056 100644
+index 07970e1..e328a05 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -633,6 +633,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 f78591ff..1c0c2796 100644
+index f78591f..1c0c279 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -1191,6 +1191,13 @@ mt7996_mac_tx_free(struct mt7996_dev *dev, void *data, int len)
@@ -45,7 +45,7 @@
  		}
  
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 9431f878..70e1984a 100644
+index 5352e4b..d35ae05 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -3157,8 +3157,8 @@ int mt7996_mcu_init_firmware(struct mt7996_dev *dev)
@@ -144,7 +144,7 @@
  {
  	struct {
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 3025f849..23db3b33 100644
+index 3025f84..23db3b3 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -346,8 +346,9 @@ enum {
@@ -167,7 +167,7 @@
  
  enum {
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 142c390d..8d222a0c 100644
+index 142c390..8d222a0 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -356,6 +356,7 @@ struct mt7996_phy {
@@ -201,7 +201,7 @@
 -
  #endif
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index a59e3a18..c1671e68 100644
+index a59e3a1..c1671e6 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -3032,6 +3032,27 @@ static int mt7996_muru_prot_thr_set(void *data, u64 val)
@@ -242,7 +242,7 @@
  	debugfs_create_u8("sku_disable", 0600, dir, &dev->dbg.sku_disable);
  	debugfs_create_file("scs_enable", 0200, dir, phy, &fops_scs_enable);
 diff --git a/mt7996/mtk_mcu.c b/mt7996/mtk_mcu.c
-index b46a66bb..967ee874 100644
+index b46a66b..967ee87 100644
 --- a/mt7996/mtk_mcu.c
 +++ b/mt7996/mtk_mcu.c
 @@ -1317,4 +1317,30 @@ void mt7996_mcu_set_cert(struct mt7996_phy *phy, u8 type)
@@ -277,7 +277,7 @@
 +
  #endif
 diff --git a/mt7996/mtk_mcu.h b/mt7996/mtk_mcu.h
-index 58d61c51..2cffc893 100644
+index 58d61c5..2cffc89 100644
 --- a/mt7996/mtk_mcu.h
 +++ b/mt7996/mtk_mcu.h
 @@ -1138,6 +1138,30 @@ enum muru_vendor_ctrl {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0053-mtk-mt76-mt7996-reset-addr_elem-when-delete-ba.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0053-mtk-mt76-mt7996-reset-addr_elem-when-delete-ba.patch
index ac96abf..f8e7239 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0053-mtk-mt76-mt7996-reset-addr_elem-when-delete-ba.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0053-mtk-mt76-mt7996-reset-addr_elem-when-delete-ba.patch
@@ -1,7 +1,7 @@
-From 82dd1101ce064f18bdcc47c7ef5779c407440bae Mon Sep 17 00:00:00 2001
+From 634fcdf1df68bdcd81f659db237e64703c246a9a 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 053/223] mtk: mt76: mt7996: reset addr_elem when delete ba
+Subject: [PATCH 053/193] mtk: mt76: mt7996: reset addr_elem when delete ba
 
 The old addr element info may be used when the signature is not equel to
 0xff, and sta will find error SDP cause the SDP/SDL=0 issue.
@@ -20,7 +20,7 @@
  2 files changed, 47 insertions(+)
 
 diff --git a/mt76.h b/mt76.h
-index 260e198a..2798f9e5 100644
+index 260e198..2798f9e 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -453,6 +453,7 @@ struct mt76_rx_tid {
@@ -32,7 +32,7 @@
  	u8 started:1, stopped:1, timer_pending:1;
  
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 23db3b33..7077a664 100644
+index 23db3b3..7077a66 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -298,6 +298,52 @@ struct mt7996_mcu_thermal_notify {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0054-mtk-mt76-change-pcie0-R5-to-pcie1-to-get-6G-ICS.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0054-mtk-mt76-change-pcie0-R5-to-pcie1-to-get-6G-ICS.patch
index 599e161..67f2ea0 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0054-mtk-mt76-change-pcie0-R5-to-pcie1-to-get-6G-ICS.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0054-mtk-mt76-change-pcie0-R5-to-pcie1-to-get-6G-ICS.patch
@@ -1,7 +1,7 @@
-From 161b4dc2bb1f3d69b57f195fbab8fc8f6dfbe2bc Mon Sep 17 00:00:00 2001
+From 9292dac05dbe9d6d0890ff7e2e99c04fbde138ff 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 054/223] mtk: mt76: change pcie0 R5 to pcie1 to get 6G ICS
+Subject: [PATCH 054/193] mtk: mt76: change pcie0 R5 to pcie1 to get 6G ICS
 
 Change-Id: I23a94e3e4b797b513a303b13e4c50e0a0d72bffb
 ---
@@ -11,7 +11,7 @@
  3 files changed, 10 insertions(+), 5 deletions(-)
 
 diff --git a/mt7996/dma.c b/mt7996/dma.c
-index 759a58e8..5d85e9ea 100644
+index 759a58e..5d85e9e 100644
 --- a/mt7996/dma.c
 +++ b/mt7996/dma.c
 @@ -538,6 +538,10 @@ int mt7996_dma_init(struct mt7996_dev *dev)
@@ -26,10 +26,10 @@
  				       MT_RXQ_ID(MT_RXQ_BAND2),
  				       MT7996_RX_RING_SIZE,
 diff --git a/mt7996/init.c b/mt7996/init.c
-index eac00df0..f493a373 100644
+index 849a639..fc44ab7 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -651,10 +651,8 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
+@@ -648,10 +648,8 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
  		goto error;
  
  	if (wed == &dev->mt76.mmio.wed_hif2 && mtk_wed_device_active(wed)) {
@@ -43,7 +43,7 @@
  
  	return 0;
 diff --git a/mt7996/mmio.c b/mt7996/mmio.c
-index 40e45fb2..11470645 100644
+index 40e45fb..1147064 100644
 --- a/mt7996/mmio.c
 +++ b/mt7996/mmio.c
 @@ -527,12 +527,15 @@ static void mt7996_irq_tasklet(struct tasklet_struct *t)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0055-mtk-mt76-add-SER-support-for-wed3.0.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0055-mtk-mt76-add-SER-support-for-wed3.0.patch
index 1020992..abd65ca 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0055-mtk-mt76-add-SER-support-for-wed3.0.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0055-mtk-mt76-add-SER-support-for-wed3.0.patch
@@ -1,7 +1,7 @@
-From ce0ee1b6c2ae27eb6416b6eaa0191e09170e900c Mon Sep 17 00:00:00 2001
+From 7576a40fad51c438d4b77c00a33055ecba669c63 Mon Sep 17 00:00:00 2001
 From: mtk27745 <rex.lu@mediatek.com>
 Date: Tue, 23 May 2023 12:06:29 +0800
-Subject: [PATCH 055/223] mtk: mt76: add SER support for wed3.0
+Subject: [PATCH 055/193] mtk: mt76: add SER support for wed3.0
 
 Change-Id: I2711b9dc336fca9a1ae32a8fbf27810a7e27b1e3
 ---
@@ -10,7 +10,7 @@
  2 files changed, 4 insertions(+), 2 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index c54187bd..e5be891c 100644
+index c54187b..e5be891 100644
 --- a/dma.c
 +++ b/dma.c
 @@ -834,8 +834,9 @@ mt76_dma_rx_reset(struct mt76_dev *dev, enum mt76_rxq_id qid)
@@ -26,7 +26,7 @@
  		mt76_dma_rx_fill(dev, q, false);
  	}
 diff --git a/mt7996/mmio.c b/mt7996/mmio.c
-index 11470645..55d83f1d 100644
+index 1147064..55d83f1 100644
 --- a/mt7996/mmio.c
 +++ b/mt7996/mmio.c
 @@ -297,6 +297,7 @@ out:
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0056-mtk-mt76-find-rx-token-by-physical-address.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0056-mtk-mt76-find-rx-token-by-physical-address.patch
index 3e66d5f..7b8fcf9 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0056-mtk-mt76-find-rx-token-by-physical-address.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0056-mtk-mt76-find-rx-token-by-physical-address.patch
@@ -1,7 +1,7 @@
-From a0322640da7756faf08c31cf93d69a61f766c545 Mon Sep 17 00:00:00 2001
+From 0fce899e41f4a9056720548ab96a567a193a991b 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 056/223] mtk: mt76: find rx token by physical address
+Subject: [PATCH 056/193] mtk: mt76: find rx token by physical address
 
 The token id in RxDMAD may be incorrect when it is not the last frame in
 WED HW. Lookup correct token id by physical address in sdp0.
@@ -14,7 +14,7 @@
  1 file changed, 25 insertions(+), 2 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index e5be891c..1021b3e5 100644
+index e5be891..1021b3e 100644
 --- a/dma.c
 +++ b/dma.c
 @@ -446,9 +446,32 @@ mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0057-mtk-mt76-mt7996-add-dma-mask-limitation.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0057-mtk-mt76-mt7996-add-dma-mask-limitation.patch
index b38d794..7bfef4b 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0057-mtk-mt76-mt7996-add-dma-mask-limitation.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0057-mtk-mt76-mt7996-add-dma-mask-limitation.patch
@@ -1,7 +1,7 @@
-From 8509256a66d237ebf813fc1ddd9d2a913465c02b Mon Sep 17 00:00:00 2001
+From d85a2fe1480dfb60ca5a34afea1efdc2ca104bd5 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 057/223] mtk: mt76: mt7996: add dma mask limitation
+Subject: [PATCH 057/193] mtk: mt76: mt7996: add dma mask limitation
 
 Signed-off-by: sujuan.chen <sujuan.chen@mediatek.com>
 ---
@@ -10,7 +10,7 @@
  2 files changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index 1021b3e5..da21f641 100644
+index 1021b3e..da21f64 100644
 --- a/dma.c
 +++ b/dma.c
 @@ -488,7 +488,7 @@ mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx,
@@ -32,7 +32,7 @@
  			break;
  
 diff --git a/wed.c b/wed.c
-index 0a0b5c05..1c6d53c8 100644
+index 0a0b5c0..1c6d53c 100644
 --- a/wed.c
 +++ b/wed.c
 @@ -65,14 +65,14 @@ u32 mt76_wed_init_rx_buf(struct mtk_wed_device *wed, int size)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0058-mtk-mt76-mt7996-add-per-bss-statistic-info.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0058-mtk-mt76-mt7996-add-per-bss-statistic-info.patch
index dfae6e1..4729843 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0058-mtk-mt76-mt7996-add-per-bss-statistic-info.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0058-mtk-mt76-mt7996-add-per-bss-statistic-info.patch
@@ -1,7 +1,7 @@
-From 663d6e60f6a431146594178ffbbbf7fd54180c38 Mon Sep 17 00:00:00 2001
+From 00885efeb0a1778b3e14fb0cbcab221798b6198a 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 058/223] mtk: mt76: mt7996: add per bss statistic info
+Subject: [PATCH 058/193] mtk: 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,10 +22,10 @@
  3 files changed, 37 insertions(+), 5 deletions(-)
 
 diff --git a/mt7996/init.c b/mt7996/init.c
-index f493a373..f6cddac1 100644
+index fc44ab7..f492547 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -403,6 +403,7 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
+@@ -400,6 +400,7 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
  	wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_CAN_REPLACE_PTK0);
  	wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER);
  	wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_PUNCT);
@@ -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 f02f447e..dcf1fc38 100644
+index 2721491..115ca47 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -265,6 +265,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 70e1984a..8b84c9dc 100644
+index d35ae05..a72ae4c 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -529,6 +529,27 @@ mt7996_mcu_update_tx_gi(struct rate_info *rate, struct all_sta_trx_rate *mcu_rat
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0059-mtk-mt76-mt7996-do-not-report-netdev-stats-on-monito.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0059-mtk-mt76-mt7996-do-not-report-netdev-stats-on-monito.patch
index 7cede7a..44bb10d 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0059-mtk-mt76-mt7996-do-not-report-netdev-stats-on-monito.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0059-mtk-mt76-mt7996-do-not-report-netdev-stats-on-monito.patch
@@ -1,7 +1,7 @@
-From 4fa8ea3f212978e36a7b9489505545f655d7e3e1 Mon Sep 17 00:00:00 2001
+From aa1f632c409ee9c0ad37c2cb104bcb2fccbdcc9d 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 059/223] mtk: mt76: mt7996: do not report netdev stats on
+Subject: [PATCH 059/193] mtk: mt76: mt7996: do not report netdev stats on
  monitor vif
 
 This fixes the following NULL pointer crash when enabling monitor mode:
@@ -20,7 +20,7 @@
  1 file changed, 3 insertions(+)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 8b84c9dc..6b7a5372 100644
+index a72ae4c..b59ede9 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -545,6 +545,9 @@ static inline void __mt7996_stat_to_netdev(struct mt76_phy *mphy,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0060-mtk-mt76-mt7996-add-support-for-HW-ATF.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0060-mtk-mt76-mt7996-add-support-for-HW-ATF.patch
index 3c7f0bd..d824f99 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0060-mtk-mt76-mt7996-add-support-for-HW-ATF.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0060-mtk-mt76-mt7996-add-support-for-HW-ATF.patch
@@ -1,7 +1,7 @@
-From e8d00b434ed9f3e4ac5bc4aa5486331bd948a4c3 Mon Sep 17 00:00:00 2001
+From b10e26c99f3def190cae36edcbb48170813b43bd 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 060/223] mtk: mt76: mt7996: add support for HW-ATF
+Subject: [PATCH 060/193] mtk: mt76: mt7996: add support for HW-ATF
 
 ---
  mt7996/debugfs.c |  90 ++++++++++++++++
@@ -13,7 +13,7 @@
  6 files changed, 475 insertions(+), 26 deletions(-)
 
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index e328a056..0ef8fee6 100644
+index e328a05..0ef8fee 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -927,6 +927,91 @@ static const struct file_operations mt7996_efuse_ops = {
@@ -121,10 +121,10 @@
  	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 f6cddac1..ac0ef6c1 100644
+index f492547..b6bc0a8 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -575,6 +575,37 @@ int mt7996_txbf_init(struct mt7996_dev *dev)
+@@ -572,6 +572,37 @@ int mt7996_txbf_init(struct mt7996_dev *dev)
  	return mt7996_mcu_set_txbf(dev, BF_HW_EN_UPDATE);
  }
  
@@ -162,7 +162,7 @@
  static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
  			       enum mt76_band_id band)
  {
-@@ -647,6 +678,12 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
+@@ -644,6 +675,12 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
  	if (ret)
  		goto error;
  
@@ -175,7 +175,7 @@
  	ret = mt7996_init_debugfs(phy);
  	if (ret)
  		goto error;
-@@ -1493,6 +1530,12 @@ int mt7996_register_device(struct mt7996_dev *dev)
+@@ -1490,6 +1527,12 @@ int mt7996_register_device(struct mt7996_dev *dev)
  
  	dev->recovery.hw_init_done = true;
  
@@ -189,7 +189,7 @@
  	if (ret)
  		goto error;
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 1c0c2796..094d6420 100644
+index 1c0c279..094d642 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -103,6 +103,7 @@ static void mt7996_mac_sta_poll(struct mt7996_dev *dev)
@@ -220,7 +220,7 @@
  
  		/* get signal strength of resp frames (CTS/BA/ACK) */
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 6b7a5372..6b78357d 100644
+index b59ede9..6c27360 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -2230,34 +2230,37 @@ int mt7996_mcu_add_rate_ctrl(struct mt7996_dev *dev, struct ieee80211_vif *vif,
@@ -514,7 +514,7 @@
  void mt7996_set_wireless_vif(void *data, u8 *mac, struct ieee80211_vif *vif)
  {
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 7077a664..c55fb527 100644
+index 7077a66..c55fb52 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -965,6 +965,7 @@ enum {
@@ -526,7 +526,7 @@
  	UNI_VOW_RX_AT_AIRTIME_CLR_EN = 0x0e,
  	UNI_VOW_RED_ENABLE = 0x18,
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 8d222a0c..ed38a8ab 100644
+index 8d222a0..ed38a8a 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -117,6 +117,12 @@
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0061-mtk-mt76-mt7996-add-SER0.5-support-w-wed3.0.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0061-mtk-mt76-mt7996-add-SER0.5-support-w-wed3.0.patch
index fb1f214..cd14720 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0061-mtk-mt76-mt7996-add-SER0.5-support-w-wed3.0.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0061-mtk-mt76-mt7996-add-SER0.5-support-w-wed3.0.patch
@@ -1,7 +1,7 @@
-From 23ce8e7268d891e3d762e1058986a5850258c89b Mon Sep 17 00:00:00 2001
+From 0afd9364fce24aefe590e88191679ca64fb48b7c 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 061/223] mtk: mt76: mt7996: add SER0.5 support w/ wed3.0
+Subject: [PATCH 061/193] mtk: mt76: mt7996: add SER0.5 support w/ wed3.0
 
 Change-Id: I9b26cdbea6e8ee158a153fd153c2dea77b494f2f
 Signed-off-by: sujuan.chen <sujuan.chen@mediatek.com>
@@ -18,7 +18,7 @@
  9 files changed, 146 insertions(+), 64 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index da21f641..e23b744b 100644
+index da21f64..e23b744 100644
 --- a/dma.c
 +++ b/dma.c
 @@ -218,9 +218,9 @@ void __mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q,
@@ -53,7 +53,7 @@
  	return 0;
  }
 diff --git a/dma.h b/dma.h
-index 1de5a2b2..3a8c2e55 100644
+index 1de5a2b..3a8c2e5 100644
 --- a/dma.h
 +++ b/dma.h
 @@ -83,12 +83,12 @@ int mt76_dma_rx_fill(struct mt76_dev *dev, struct mt76_queue *q,
@@ -72,7 +72,7 @@
  		mt76_wed_dma_setup(dev, q, true);
  }
 diff --git a/mt76.h b/mt76.h
-index 2798f9e5..8bf37558 100644
+index 2798f9e..8bf3755 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -305,7 +305,7 @@ struct mt76_queue_ops {
@@ -111,7 +111,7 @@
  }
  
 diff --git a/mt792x_dma.c b/mt792x_dma.c
-index 5cc2d59b..c224bcc8 100644
+index 5cc2d59..c224bcc 100644
 --- a/mt792x_dma.c
 +++ b/mt792x_dma.c
 @@ -181,13 +181,13 @@ mt792x_dma_reset(struct mt792x_dev *dev, bool force)
@@ -132,7 +132,7 @@
  	mt76_tx_status_check(&dev->mt76, true);
  
 diff --git a/mt7996/dma.c b/mt7996/dma.c
-index 5d85e9ea..d9e1b17f 100644
+index 5d85e9e..d9e1b17 100644
 --- a/mt7996/dma.c
 +++ b/mt7996/dma.c
 @@ -711,21 +711,31 @@ void mt7996_dma_reset(struct mt7996_dev *dev, bool force)
@@ -173,10 +173,10 @@
  	mt7996_dma_enable(dev, !force);
  }
 diff --git a/mt7996/init.c b/mt7996/init.c
-index ac0ef6c1..b0c307fb 100644
+index b6bc0a8..7d0bb31 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -737,11 +737,91 @@ void mt7996_wfsys_reset(struct mt7996_dev *dev)
+@@ -734,11 +734,91 @@ void mt7996_wfsys_reset(struct mt7996_dev *dev)
  	msleep(20);
  }
  
@@ -269,7 +269,7 @@
  	struct mt7996_wed_rro_addr *addr;
  	void *ptr;
  	int i;
-@@ -801,50 +881,9 @@ static int mt7996_wed_rro_init(struct mt7996_dev *dev)
+@@ -798,50 +878,9 @@ static int mt7996_wed_rro_init(struct mt7996_dev *dev)
  		addr++;
  	}
  
@@ -323,7 +323,7 @@
  #else
  	return 0;
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 094d6420..d58177ec 100644
+index 094d642..d58177e 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -1773,6 +1773,31 @@ mt7996_mac_restart(struct mt7996_dev *dev)
@@ -359,7 +359,7 @@
  	ret = mt7996_mcu_set_eeprom(dev);
  	if (ret)
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index ed38a8ab..674f9de1 100644
+index ed38a8a..674f9de 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -723,6 +723,7 @@ extern const struct mt76_testmode_ops mt7996_testmode_ops;
@@ -371,7 +371,7 @@
  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
+index 1c6d53c..61a6bad 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)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0062-mtk-mt76-mt7996-support-backaward-compatiable.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0062-mtk-mt76-mt7996-support-backaward-compatiable.patch
index 2313758..9c22c3c 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0062-mtk-mt76-mt7996-support-backaward-compatiable.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0062-mtk-mt76-mt7996-support-backaward-compatiable.patch
@@ -1,7 +1,7 @@
-From 8078f6868b60b6468958fd0990c5a697e1ac12df Mon Sep 17 00:00:00 2001
+From ffca50bc2c2afe6303705b84f242a44e6a6cd459 Mon Sep 17 00:00:00 2001
 From: mtk27745 <rex.lu@mediatek.com>
 Date: Fri, 6 Oct 2023 20:59:42 +0800
-Subject: [PATCH 062/223] mtk: mt76: mt7996: support backaward compatiable
+Subject: [PATCH 062/193] mtk: mt76: mt7996: support backaward compatiable
 
 revert upstream wed trigger mode to polling mode
 
@@ -27,7 +27,7 @@
  7 files changed, 24 insertions(+), 17 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
-index 8bf37558..e7901e57 100644
+index 8bf3755..e7901e5 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -54,6 +54,8 @@
@@ -40,7 +40,7 @@
  #define MT_QFLAG_WED_TYPE	GENMASK(4, 2)
  #define MT_QFLAG_WED		BIT(5)
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index d58177ec..0c5fa02d 100644
+index d58177e..0c5fa02 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -1786,7 +1786,7 @@ mt7996_mac_restart(struct mt7996_dev *dev)
@@ -61,7 +61,7 @@
  		mt7996_irq_disable(dev, 0);
  	}
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 6b78357d..be273181 100644
+index 6c27360..d671734 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -3265,7 +3265,7 @@ static int mt7996_mcu_wa_red_config(struct mt7996_dev *dev)
@@ -74,7 +74,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 55d83f1d..ee9ba3ff 100644
+index 55d83f1..ee9ba3f 100644
 --- a/mt7996/mmio.c
 +++ b/mt7996/mmio.c
 @@ -14,7 +14,7 @@
@@ -125,7 +125,7 @@
  #else
  	return 0;
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 674f9de1..1e17c291 100644
+index 674f9de..1e17c29 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -76,6 +76,7 @@
@@ -137,7 +137,7 @@
  #define MT7996_CFEND_RATE_DEFAULT	0x49	/* OFDM 24M */
  #define MT7996_CFEND_RATE_11B		0x03	/* 11B LP, 11M */
 diff --git a/mt7996/pci.c b/mt7996/pci.c
-index 05830c01..4e957771 100644
+index 05830c0..4e95777 100644
 --- a/mt7996/pci.c
 +++ b/mt7996/pci.c
 @@ -171,7 +171,7 @@ static int mt7996_pci_probe(struct pci_dev *pdev,
@@ -182,7 +182,7 @@
  		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..634c95cf 100644
+index 61a6bad..634c95c 100644
 --- a/wed.c
 +++ b/wed.c
 @@ -120,7 +120,7 @@ int mt76_wed_offload_enable(struct mtk_wed_device *wed)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0063-mtk-mt76-mt7996-add-wed-support-for-mt7992.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0063-mtk-mt76-mt7996-add-wed-support-for-mt7992.patch
index 54343e8..b3dada6 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0063-mtk-mt76-mt7996-add-wed-support-for-mt7992.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0063-mtk-mt76-mt7996-add-wed-support-for-mt7992.patch
@@ -1,7 +1,7 @@
-From efbc1e62252f25b9af9e812cd8a8ba61a9e043d0 Mon Sep 17 00:00:00 2001
+From 7832c5bf00f3d75096b2ad65db9005b6065d2516 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 063/223] mtk: mt76: mt7996: add wed support for mt7992
+Subject: [PATCH 063/193] mtk: mt76: mt7996: add wed support for mt7992
 
 Fix incomplete WED initialization for Kite band-1 RX ring.
 
@@ -19,7 +19,7 @@
  7 files changed, 152 insertions(+), 48 deletions(-)
 
 diff --git a/mt7996/dma.c b/mt7996/dma.c
-index d9e1b17f..d62dc8ba 100644
+index d9e1b17..d62dc8b 100644
 --- a/mt7996/dma.c
 +++ b/mt7996/dma.c
 @@ -77,18 +77,23 @@ static void mt7996_dma_config(struct mt7996_dev *dev)
@@ -167,10 +167,10 @@
  		if (mt7996_band_valid(dev, MT_BAND2)) {
  			/* rx rro data queue for band2 */
 diff --git a/mt7996/init.c b/mt7996/init.c
-index b0c307fb..04c15432 100644
+index 7d0bb31..bd6efba 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -815,6 +815,7 @@ void mt7996_rro_hw_init(struct mt7996_dev *dev)
+@@ -812,6 +812,7 @@ void mt7996_rro_hw_init(struct mt7996_dev *dev)
  	/* interrupt enable */
  	mt76_wr(dev, MT_RRO_HOST_INT_ENA,
  		MT_RRO_HOST_INT_ENA_HOST_RRO_DONE_ENA);
@@ -178,7 +178,7 @@
  #endif
  }
  
-@@ -867,6 +868,17 @@ static int mt7996_wed_rro_init(struct mt7996_dev *dev)
+@@ -864,6 +865,17 @@ static int mt7996_wed_rro_init(struct mt7996_dev *dev)
  			dev->wed_rro.addr_elem[i].phy_addr;
  	}
  
@@ -196,7 +196,7 @@
  	ptr = dmam_alloc_coherent(dev->mt76.dma_dev,
  				  MT7996_RRO_WINDOW_MAX_LEN * sizeof(*addr),
  				  &dev->wed_rro.session.phy_addr,
-@@ -922,6 +934,16 @@ static void mt7996_wed_rro_free(struct mt7996_dev *dev)
+@@ -919,6 +931,16 @@ static void mt7996_wed_rro_free(struct mt7996_dev *dev)
  				   dev->wed_rro.addr_elem[i].phy_addr);
  	}
  
@@ -214,7 +214,7 @@
  		return;
  
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 0c5fa02d..9f94f530 100644
+index 0c5fa02..9f94f53 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -2016,6 +2016,10 @@ void mt7996_mac_reset_work(struct work_struct *work)
@@ -229,7 +229,7 @@
  					    true);
  
 diff --git a/mt7996/mmio.c b/mt7996/mmio.c
-index ee9ba3ff..82968bc2 100644
+index ee9ba3f..82968bc 100644
 --- a/mt7996/mmio.c
 +++ b/mt7996/mmio.c
 @@ -313,7 +313,8 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
@@ -321,7 +321,7 @@
  		dev->mt76.rx_token_size = MT7996_TOKEN_SIZE + wed->wlan.rx_npkt;
  	}
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 1e17c291..7d0f7dda 100644
+index 1e17c29..7d0f7dd 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -124,6 +124,10 @@
@@ -356,7 +356,7 @@
  		struct work_struct work;
  		struct list_head poll_list;
 diff --git a/mt7996/pci.c b/mt7996/pci.c
-index 4e957771..f0d3f199 100644
+index 4e95777..f0d3f19 100644
 --- a/mt7996/pci.c
 +++ b/mt7996/pci.c
 @@ -107,7 +107,7 @@ static int mt7996_pci_probe(struct pci_dev *pdev,
@@ -392,7 +392,7 @@
  			goto free_wed_or_irq_vector;
  
 diff --git a/mt7996/regs.h b/mt7996/regs.h
-index f55d4a94..2ad8c069 100644
+index f55d4a9..2ad8c06 100644
 --- a/mt7996/regs.h
 +++ b/mt7996/regs.h
 @@ -77,6 +77,8 @@ enum offs_rev {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0064-mtk-mt76-add-2pcie-one-wed-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0064-mtk-mt76-add-2pcie-one-wed-support.patch
index 897e666..8d961fc 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0064-mtk-mt76-add-2pcie-one-wed-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0064-mtk-mt76-add-2pcie-one-wed-support.patch
@@ -1,7 +1,7 @@
-From b6233b7c81cac3c7bc5147cf78ec403feb20e4a3 Mon Sep 17 00:00:00 2001
+From 08c3d3daa5d6b16dd2df5119fd13e0870988fe57 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 064/223] mtk: mt76: add 2pcie one wed support
+Subject: [PATCH 064/193] mtk: mt76: add 2pcie one wed support
 
 Signed-off-by: sujuan.chen <sujuan.chen@mediatek.com>
 ---
@@ -13,7 +13,7 @@
  5 files changed, 39 insertions(+), 13 deletions(-)
 
 diff --git a/mt7996/dma.c b/mt7996/dma.c
-index d62dc8ba..c23b0d65 100644
+index d62dc8b..c23b0d6 100644
 --- a/mt7996/dma.c
 +++ b/mt7996/dma.c
 @@ -355,6 +355,13 @@ static void mt7996_dma_enable(struct mt7996_dev *dev, bool reset)
@@ -54,7 +54,7 @@
  			dev->mt76.q_rx[MT_RXQ_TXFREE_BAND0].wed = wed;
  
 diff --git a/mt7996/mmio.c b/mt7996/mmio.c
-index 82968bc2..1251382b 100644
+index 82968bc..1251382 100644
 --- a/mt7996/mmio.c
 +++ b/mt7996/mmio.c
 @@ -375,10 +375,10 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
@@ -83,7 +83,7 @@
  			mt76_wr(dev, MT_INT_MASK_CSR, mdev->mmio.irqmask);
  			mt76_wr(dev, MT_INT1_MASK_CSR, mdev->mmio.irqmask);
 diff --git a/mt7996/mtk_debug.h b/mt7996/mtk_debug.h
-index 27d8f1cb..da2a6072 100644
+index 27d8f1c..da2a607 100644
 --- a/mt7996/mtk_debug.h
 +++ b/mt7996/mtk_debug.h
 @@ -561,6 +561,11 @@ struct queue_desc {
@@ -99,7 +99,7 @@
  //#define WF_WFDMA_MCU_DMA0_BASE                                 0x02000
  #define WF_WFDMA_MCU_DMA0_BASE                                 0x54000000
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index c1671e68..5a140f51 100644
+index c1671e6..5a140f5 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -557,14 +557,22 @@ mt7996_show_dma_info(struct seq_file *s, struct mt7996_dev *dev)
@@ -152,7 +152,7 @@
  
  	/* MCU DMA information */
 diff --git a/mt7996/regs.h b/mt7996/regs.h
-index 2ad8c069..87bf0012 100644
+index 2ad8c06..87bf001 100644
 --- a/mt7996/regs.h
 +++ b/mt7996/regs.h
 @@ -411,6 +411,7 @@ enum offs_rev {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0065-mtk-mt76-mt7996-Remove-wed-rro-ring-add-napi-at-init.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0065-mtk-mt76-mt7996-Remove-wed-rro-ring-add-napi-at-init.patch
index 62a315a..d1b98a3 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0065-mtk-mt76-mt7996-Remove-wed-rro-ring-add-napi-at-init.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0065-mtk-mt76-mt7996-Remove-wed-rro-ring-add-napi-at-init.patch
@@ -1,7 +1,7 @@
-From 3f8b5805f40b73b389e3355b61b76595fbff5b45 Mon Sep 17 00:00:00 2001
+From 1815f69621dafda1749100c80992820d90c65bef Mon Sep 17 00:00:00 2001
 From: mtk27745 <rex.lu@mediatek.com>
 Date: Mon, 6 Nov 2023 10:16:34 +0800
-Subject: [PATCH 065/223] mtk: mt76: mt7996: Remove wed rro ring add napi at
+Subject: [PATCH 065/193] mtk: 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,7 +12,7 @@
  1 file changed, 4 insertions(+)
 
 diff --git a/dma.c b/dma.c
-index e23b744b..38701c71 100644
+index e23b744..38701c7 100644
 --- a/dma.c
 +++ b/dma.c
 @@ -1017,6 +1017,10 @@ mt76_dma_init(struct mt76_dev *dev,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0066-mtk-mt76-mt7996-Remove-wed_stop-during-L1-SER.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0066-mtk-mt76-mt7996-Remove-wed_stop-during-L1-SER.patch
index 5d3a194..3fe142d 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0066-mtk-mt76-mt7996-Remove-wed_stop-during-L1-SER.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0066-mtk-mt76-mt7996-Remove-wed_stop-during-L1-SER.patch
@@ -1,7 +1,7 @@
-From b6003ba133a517cea454233c6b951ea8acaf7cc0 Mon Sep 17 00:00:00 2001
+From 719cf90d53fe27ca1e83ed016d666f4348283832 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 066/223] mtk: mt76: mt7996: Remove wed_stop during L1 SER
+Subject: [PATCH 066/193] mtk: mt76: mt7996: Remove wed_stop during L1 SER
 
 Align logan L1 SER flow. During L1 SER, didn't need to close wed interrupt.
 
@@ -11,7 +11,7 @@
  1 file changed, 6 deletions(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 9f94f530..c72f70db 100644
+index 9f94f53..c72f70d 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -1959,12 +1959,6 @@ void mt7996_mac_reset_work(struct work_struct *work)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0067-mtk-mt76-mt7996-Refactor-rro-del-ba-command-format.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0067-mtk-mt76-mt7996-Refactor-rro-del-ba-command-format.patch
index c3dbca6..4245c11 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0067-mtk-mt76-mt7996-Refactor-rro-del-ba-command-format.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0067-mtk-mt76-mt7996-Refactor-rro-del-ba-command-format.patch
@@ -1,7 +1,7 @@
-From 1dbc5ac676194b3b46685104dc3fdc9f4b2dc06a Mon Sep 17 00:00:00 2001
+From 06fc14d033a47355929cc0aeb78759f2664f30f8 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 067/223] mtk: mt76: mt7996: Refactor rro del ba command format
+Subject: [PATCH 067/193] mtk: mt76: mt7996: Refactor rro del ba command format
 
 1. remove unused struct
 2. refactor upstream del ba command format
@@ -13,7 +13,7 @@
  1 file changed, 3 insertions(+), 47 deletions(-)
 
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index c55fb527..19572d85 100644
+index c55fb52..19572d8 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -273,7 +273,9 @@ struct mt7996_mcu_wed_rro_ba_delete_event {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0068-mtk-mt76-mt7996-get-airtime-and-RSSI-via-MCU-command.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0068-mtk-mt76-mt7996-get-airtime-and-RSSI-via-MCU-command.patch
index cb7b351..6dd4187 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0068-mtk-mt76-mt7996-get-airtime-and-RSSI-via-MCU-command.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0068-mtk-mt76-mt7996-get-airtime-and-RSSI-via-MCU-command.patch
@@ -1,7 +1,7 @@
-From 5b0810ecadc01482ef25b7e063ebe69f42e39a8e Mon Sep 17 00:00:00 2001
+From 79b1080b870f9d12cb9de41bdac426707ccd1707 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 068/223] mtk: mt76: mt7996: get airtime and RSSI via MCU
+Subject: [PATCH 068/193] mtk: mt76: mt7996: get airtime and RSSI via MCU
  commands
 
 Direct access to WTBL for airtime and RSSI may cause synchronization issue with FW.
@@ -24,7 +24,7 @@
  9 files changed, 336 insertions(+), 142 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
-index e7901e57..aad7f557 100644
+index e7901e5..aad7f55 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -336,11 +336,13 @@ struct mt76_sta_stats {
@@ -65,7 +65,7 @@
  mtxq_to_txq(struct mt76_txq *mtxq)
  {
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index db152167..adecb0ed 100644
+index db15216..adecb0e 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1387,11 +1387,23 @@ enum {
@@ -94,7 +94,7 @@
  	UNI_ALL_STA_GI_MODE,
  	UNI_ALL_STA_TXRX_MSDU_COUNT,
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index 0ef8fee6..e46a0fb9 100644
+index 0ef8fee..e46a0fb 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -979,12 +979,11 @@ mt7996_airtime_read(struct seq_file *s, void *data)
@@ -136,7 +136,7 @@
  	rcu_read_unlock();
  
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index c72f70db..8b753148 100644
+index c72f70d..8b75314 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -12,8 +12,6 @@
@@ -325,7 +325,7 @@
  	ieee80211_queue_delayed_work(mphy->hw, &mphy->mac_work,
  				     MT7996_WATCHDOG_TIME);
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index be273181..db877d75 100644
+index d671734..e98c499 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -568,7 +568,8 @@ mt7996_mcu_rx_all_sta_info_event(struct mt7996_dev *dev, struct sk_buff *skb)
@@ -533,7 +533,7 @@
  }
  
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 19572d85..5aa55e4f 100644
+index 19572d8..5aa55e4 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -199,6 +199,23 @@ struct mt7996_mcu_mib {
@@ -575,7 +575,7 @@
  } __packed;
  
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 7d0f7dda..f6d3bd19 100644
+index 7d0f7dd..f6d3bd1 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -128,6 +128,8 @@
@@ -647,7 +647,7 @@
  int mt7996_mcu_set_tx_power_ctrl(struct mt7996_phy *phy, u8 power_ctrl_id, u8 data);
  int mt7996_mcu_get_tx_power_info(struct mt7996_phy *phy, u8 category, void *event);
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 5a140f51..4ce4ac0d 100644
+index 5a140f5..4ce4ac0 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -3064,6 +3064,69 @@ mt7996_vow_drr_dbg(void *data, u64 val)
@@ -736,7 +736,7 @@
  }
  
 diff --git a/mt7996/regs.h b/mt7996/regs.h
-index 87bf0012..96438cca 100644
+index 87bf001..96438cc 100644
 --- a/mt7996/regs.h
 +++ b/mt7996/regs.h
 @@ -122,6 +122,8 @@ enum offs_rev {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0069-mtk-mt76-mt7996-add-support-for-WMM-PBC-configuratio.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0069-mtk-mt76-mt7996-add-support-for-WMM-PBC-configuratio.patch
index 364a360..4652246 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0069-mtk-mt76-mt7996-add-support-for-WMM-PBC-configuratio.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0069-mtk-mt76-mt7996-add-support-for-WMM-PBC-configuratio.patch
@@ -1,7 +1,7 @@
-From 33a4c8e5ec36b3265e10e324e141e26b5941848f Mon Sep 17 00:00:00 2001
+From e314bd492d7456fe61da3225396cfaa972c4cfd3 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 069/223] mtk: mt76: mt7996: add support for WMM PBC
+Subject: [PATCH 069/193] mtk: mt76: mt7996: add support for WMM PBC
  configuration
 
 Query per-AC-queue packet statistics from WA, and determine if multi-AC transmission is ongoing.
@@ -19,7 +19,7 @@
  6 files changed, 105 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index adecb0ed..c9cea5bb 100644
+index adecb0e..c9cea5b 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1042,6 +1042,7 @@ enum {
@@ -39,10 +39,10 @@
  	MCU_EXT_CMD_SET_RADAR_TH = 0x7c,
  	MCU_EXT_CMD_SET_RDD_PATTERN = 0x7d,
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 04c15432..6d5e4c40 100644
+index bd6efba..17a5245 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -1556,6 +1556,8 @@ int mt7996_register_device(struct mt7996_dev *dev)
+@@ -1553,6 +1553,8 @@ int mt7996_register_device(struct mt7996_dev *dev)
  	INIT_WORK(&dev->dump_work, mt7996_mac_dump_work);
  	mutex_init(&dev->dump_mutex);
  
@@ -52,7 +52,7 @@
  	if (ret)
  		return ret;
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 8b753148..bc0f0020 100644
+index 8b75314..bc0f002 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -2310,6 +2310,10 @@ void mt7996_mac_work(struct work_struct *work)
@@ -67,7 +67,7 @@
  			           test_bit(MT76_STATE_RUNNING, &mdev->phys[i]->state))
  				break;
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index db877d75..47f8a7cd 100644
+index e98c499..469efb5 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -674,6 +674,82 @@ mt7996_mcu_rx_thermal_notify(struct mt7996_dev *dev, struct sk_buff *skb)
@@ -163,7 +163,7 @@
  		break;
  	}
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 5aa55e4f..8ffb16f8 100644
+index 5aa55e4..8ffb16f 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -369,10 +369,25 @@ enum {
@@ -193,7 +193,7 @@
  	MCU_WA_PARAM_RED_CONFIG = 0x40,
  };
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index f6d3bd19..ba3a639b 100644
+index f6d3bd1..ba3a639 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -612,6 +612,9 @@ struct mt7996_dev {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0070-mtk-mt76-mt7996-eagle-support-extra-option_type.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0070-mtk-mt76-mt7996-eagle-support-extra-option_type.patch
index 1118304..1924640 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0070-mtk-mt76-mt7996-eagle-support-extra-option_type.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0070-mtk-mt76-mt7996-eagle-support-extra-option_type.patch
@@ -1,7 +1,7 @@
-From 3ae943ca695746f6ff54a926d73a1a6b94d6411c Mon Sep 17 00:00:00 2001
+From 2b7b1c72a9abd1baea23d2d01717daaacec6d794 Mon Sep 17 00:00:00 2001
 From: Rex Lu <rex.lu@mediatek.com>
 Date: Thu, 1 Feb 2024 10:32:42 +0800
-Subject: [PATCH 070/223] mtk: mt76: mt7996: eagle support extra option_type
+Subject: [PATCH 070/193] mtk: mt76: mt7996: eagle support extra option_type
 
 1. eagle + mt7988d option_type 2 support
 2. eagle single pcie support
@@ -23,7 +23,7 @@
  6 files changed, 123 insertions(+), 22 deletions(-)
 
 diff --git a/mt7996/dma.c b/mt7996/dma.c
-index c23b0d65..3dc0e8a1 100644
+index c23b0d6..3dc0e8a 100644
 --- a/mt7996/dma.c
 +++ b/mt7996/dma.c
 @@ -12,12 +12,20 @@ int mt7996_init_tx_queues(struct mt7996_phy *phy, int idx, int n_desc,
@@ -111,10 +111,10 @@
  		mt76_wr(dev, MT_WFDMA0_PAUSE_RX_Q_45_TH + hif1_ofs, 0xc000c);
  		mt76_wr(dev, MT_WFDMA0_PAUSE_RX_Q_67_TH + hif1_ofs, 0x10008);
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 6d5e4c40..96b209e6 100644
+index 17a5245..c600d49 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -513,7 +513,7 @@ static void mt7996_mac_init_basic_rates(struct mt7996_dev *dev)
+@@ -510,7 +510,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	0x21
@@ -123,7 +123,7 @@
  
  	mt76_clear(dev, MT_MDP_DCR2, MT_MDP_DCR2_RX_TRANS_SHORT);
  
-@@ -527,22 +527,45 @@ void mt7996_mac_init(struct mt7996_dev *dev)
+@@ -524,22 +524,45 @@ void mt7996_mac_init(struct mt7996_dev *dev)
  	}
  
  	/* rro module init */
@@ -179,7 +179,7 @@
  	}
  
  	mt7996_mcu_wa_cmd(dev, MCU_WA_PARAM_CMD(SET),
-@@ -620,9 +643,22 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
+@@ -617,9 +640,22 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
  	if (phy)
  		return 0;
  
@@ -205,7 +205,7 @@
  	}
  
  	mphy = mt76_alloc_phy(&dev->mt76, sizeof(*phy), &mt7996_ops, band);
-@@ -1076,6 +1112,9 @@ static int mt7996_variant_fem_init(struct mt7996_dev *dev)
+@@ -1073,6 +1109,9 @@ static int mt7996_variant_fem_init(struct mt7996_dev *dev)
  static int mt7996_init_hardware(struct mt7996_dev *dev)
  {
  	int ret, idx;
@@ -216,10 +216,10 @@
  	mt76_wr(dev, MT_INT_SOURCE_CSR, ~0);
  	if (is_mt7992(&dev->mt76)) {
 diff --git a/mt7996/main.c b/mt7996/main.c
-index dcf1fc38..a53eaa55 100644
+index 115ca47..eab3b87 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -1595,8 +1595,19 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
+@@ -1594,8 +1594,19 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
  	struct mt7996_phy *phy = mt7996_hw_phy(hw);
  	struct mtk_wed_device *wed = &dev->mt76.mmio.wed;
  
@@ -242,7 +242,7 @@
  	if (!mtk_wed_device_active(wed))
  		return -ENODEV;
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index ba3a639b..eb9a5634 100644
+index ba3a639..eb9a563 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -8,6 +8,7 @@
@@ -272,7 +272,7 @@
  	u8 fw_debug_wm;
  	u8 fw_debug_wa;
 diff --git a/mt7996/pci.c b/mt7996/pci.c
-index f0d3f199..24d69d4d 100644
+index f0d3f19..24d69d4 100644
 --- a/mt7996/pci.c
 +++ b/mt7996/pci.c
 @@ -5,7 +5,6 @@
@@ -292,7 +292,7 @@
  	list_add(&hif->list, &hif_list);
  	spin_unlock_bh(&hif_lock);
 diff --git a/mt7996/regs.h b/mt7996/regs.h
-index 96438cca..3a1568c3 100644
+index 96438cc..3a1568c 100644
 --- a/mt7996/regs.h
 +++ b/mt7996/regs.h
 @@ -435,6 +435,7 @@ enum offs_rev {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0071-mtk-mt76-mt7996-support-enable-disable-thermal-prote.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0071-mtk-mt76-mt7996-support-enable-disable-thermal-prote.patch
index c5deee4..a3ab56f 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0071-mtk-mt76-mt7996-support-enable-disable-thermal-prote.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0071-mtk-mt76-mt7996-support-enable-disable-thermal-prote.patch
@@ -1,7 +1,7 @@
-From 93cd3c23453725f003318b5556ad09b56e3995a6 Mon Sep 17 00:00:00 2001
+From 016b60d28329d6af3b1d64b4ec4ede5d63992b6a Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Thu, 27 Jul 2023 19:35:32 +0800
-Subject: [PATCH 071/223] mtk: mt76: mt7996: support enable/disable thermal
+Subject: [PATCH 071/193] mtk: mt76: mt7996: support enable/disable thermal
  protection mechanism
 
 This commit adds a new debugfs thermal_enable to enable/disable thermal
@@ -24,7 +24,7 @@
  3 files changed, 47 insertions(+)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index a53eaa55..e5b32d33 100644
+index eab3b87..09b1daa 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -91,6 +91,7 @@ int mt7996_run(struct ieee80211_hw *hw)
@@ -36,7 +36,7 @@
  	ret = mt7996_mcu_set_tx_power_ctrl(phy, UNI_TXPOWER_SKU_POWER_LIMIT_CTRL,
  						dev->dbg.sku_disable ? 0 : phy->sku_limit_en);
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index eb9a5634..94735872 100644
+index eb9a563..9473587 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -490,6 +490,7 @@ struct mt7996_phy {
@@ -48,7 +48,7 @@
  };
  
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 4ce4ac0d..196038d4 100644
+index 4ce4ac0..196038d 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -3127,6 +3127,49 @@ mt7996_show_rro_mib(struct seq_file *s, void *data)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0072-mtk-mt76-mt7996-support-thermal-recal-debug-command.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0072-mtk-mt76-mt7996-support-thermal-recal-debug-command.patch
index 6115142..e357585 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0072-mtk-mt76-mt7996-support-thermal-recal-debug-command.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0072-mtk-mt76-mt7996-support-thermal-recal-debug-command.patch
@@ -1,7 +1,7 @@
-From 3ee40687fd7064508306f1008c14433ccf7253d4 Mon Sep 17 00:00:00 2001
+From 28016b68a4afd015b5acc5891fc27a0a81904733 Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Thu, 4 Jan 2024 19:53:37 +0800
-Subject: [PATCH 072/223] mtk: mt76: mt7996: support thermal recal debug
+Subject: [PATCH 072/193] mtk: mt76: mt7996: support thermal recal debug
  command
 
 Add support thermal recal debug command.
@@ -24,7 +24,7 @@
  4 files changed, 40 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index c9cea5bb..11a1224a 100644
+index c9cea5b..11a1224 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1302,6 +1302,7 @@ enum {
@@ -36,7 +36,7 @@
  	MCU_UNI_CMD_OFFCH_SCAN_CTRL = 0x58,
  	MCU_UNI_CMD_PER_STA_INFO = 0x6d,
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 94735872..82ff4e99 100644
+index 9473587..82ff4e9 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1037,6 +1037,7 @@ void mt7996_mcu_set_cert(struct mt7996_phy *phy, u8 type);
@@ -48,7 +48,7 @@
  
  #ifdef CONFIG_NET_MEDIATEK_SOC_WED
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 196038d4..bc9a0f04 100644
+index 196038d..bc9a0f0 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -3170,6 +3170,22 @@ out:
@@ -83,7 +83,7 @@
  	return 0;
  }
 diff --git a/mt7996/mtk_mcu.c b/mt7996/mtk_mcu.c
-index 967ee874..809181e0 100644
+index 967ee87..809181e 100644
 --- a/mt7996/mtk_mcu.c
 +++ b/mt7996/mtk_mcu.c
 @@ -1343,4 +1343,25 @@ int mt7996_mcu_set_vow_drr_dbg(struct mt7996_dev *dev, u32 val)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0073-mtk-mt76-mt7996-add-kite-two-pcie-with-two-wed-suppo.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0073-mtk-mt76-mt7996-add-kite-two-pcie-with-two-wed-suppo.patch
index 0f9bedd..c77f27f 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0073-mtk-mt76-mt7996-add-kite-two-pcie-with-two-wed-suppo.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0073-mtk-mt76-mt7996-add-kite-two-pcie-with-two-wed-suppo.patch
@@ -1,7 +1,7 @@
-From 4f6f8ddf1d26b8dac9d405f6c73457adab2660cc Mon Sep 17 00:00:00 2001
+From 80bca2a6b13f99a434ebb998efdce311e6410071 Mon Sep 17 00:00:00 2001
 From: Rex Lu <rex.lu@mediatek.com>
 Date: Tue, 19 Mar 2024 13:16:12 +0800
-Subject: [PATCH 073/223] mtk: mt76: mt7996: add kite two pcie with two wed
+Subject: [PATCH 073/193] mtk: mt76: mt7996: add kite two pcie with two wed
  support
 
 Signed-off-by: Rex Lu <rex.lu@mediatek.com>
@@ -15,7 +15,7 @@
  6 files changed, 101 insertions(+), 47 deletions(-)
 
 diff --git a/mt7996/dma.c b/mt7996/dma.c
-index 3dc0e8a1..a2490fa7 100644
+index 3dc0e8a..a2490fa 100644
 --- a/mt7996/dma.c
 +++ b/mt7996/dma.c
 @@ -108,8 +108,8 @@ static void mt7996_dma_config(struct mt7996_dev *dev)
@@ -131,10 +131,10 @@
  				       MT_RXQ_ID(MT_RXQ_BAND1_WA),
  				       MT7996_RX_MCU_RING_SIZE,
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 96b209e6..48798711 100644
+index c600d49..77d4eae 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -527,39 +527,46 @@ void mt7996_mac_init(struct mt7996_dev *dev)
+@@ -524,39 +524,46 @@ void mt7996_mac_init(struct mt7996_dev *dev)
  	}
  
  	/* rro module init */
@@ -202,7 +202,7 @@
  
  	if (dev->has_rro) {
  		u16 timeout;
-@@ -643,7 +650,7 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
+@@ -640,7 +647,7 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
  	if (phy)
  		return 0;
  
@@ -211,7 +211,7 @@
  		switch (dev->option_type) {
  		case 2:
  			/* eagle + 7988d */
-@@ -653,7 +660,8 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
+@@ -650,7 +657,8 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
  			}
  			break;
  		default:
@@ -222,10 +222,10 @@
  				wed = &dev->mt76.mmio.wed_hif2;
  			}
 diff --git a/mt7996/main.c b/mt7996/main.c
-index e5b32d33..3a274ba7 100644
+index 09b1daa..544be33 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -1596,7 +1596,7 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
+@@ -1595,7 +1595,7 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
  	struct mt7996_phy *phy = mt7996_hw_phy(hw);
  	struct mtk_wed_device *wed = &dev->mt76.mmio.wed;
  
@@ -234,7 +234,7 @@
  		switch (dev->option_type) {
  		case 2:
  			/* eagle + 7988d */
-@@ -1604,7 +1604,8 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
+@@ -1603,7 +1603,8 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
  				wed = &dev->mt76.mmio.wed_hif2;
  			break;
  		default:
@@ -245,7 +245,7 @@
  			break;
  		}
 diff --git a/mt7996/mmio.c b/mt7996/mmio.c
-index 1251382b..14c70915 100644
+index 1251382..14c7091 100644
 --- a/mt7996/mmio.c
 +++ b/mt7996/mmio.c
 @@ -336,10 +336,16 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
@@ -287,7 +287,7 @@
  
  	if (mtk_wed_device_active(wed)) {
 diff --git a/mt7996/pci.c b/mt7996/pci.c
-index 24d69d4d..382b6a89 100644
+index 24d69d4..382b6a8 100644
 --- a/mt7996/pci.c
 +++ b/mt7996/pci.c
 @@ -110,7 +110,7 @@ static int mt7996_pci_probe(struct pci_dev *pdev,
@@ -310,7 +310,7 @@
  		if (ret < 0)
  			goto free_wed_or_irq_vector;
 diff --git a/mt7996/regs.h b/mt7996/regs.h
-index 3a1568c3..a0b57e59 100644
+index 3a1568c..a0b57e5 100644
 --- a/mt7996/regs.h
 +++ b/mt7996/regs.h
 @@ -525,6 +525,7 @@ enum offs_rev {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0074-mtk-mt76-add-support-to-enable-index-FW-log-for-Cons.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0074-mtk-mt76-add-support-to-enable-index-FW-log-for-Cons.patch
index 7ab34bf..06987f9 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0074-mtk-mt76-add-support-to-enable-index-FW-log-for-Cons.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0074-mtk-mt76-add-support-to-enable-index-FW-log-for-Cons.patch
@@ -1,7 +1,7 @@
-From ec4ace4cb79cc70a766eaf648b56b9db3836a254 Mon Sep 17 00:00:00 2001
+From b99e380eab721019572291ed3c6c10c92a057b00 Mon Sep 17 00:00:00 2001
 From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
 Date: Thu, 11 Jan 2024 08:55:13 +0800
-Subject: [PATCH 074/223] mtk: mt76: add support to enable index FW log for
+Subject: [PATCH 074/193] mtk: mt76: add support to enable index FW log for
  ConsysPlanet
 
 Add support to enable and record index FW log, which is the input for ConsysPlanet, via mt76-test command.
@@ -39,7 +39,7 @@
  8 files changed, 295 insertions(+), 69 deletions(-)
 
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index e46a0fb9..7e8e91ca 100644
+index e46a0fb..7e8e91c 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -430,8 +430,8 @@ create_buf_file_cb(const char *filename, struct dentry *parent, umode_t mode,
@@ -169,7 +169,7 @@
  	return true;
  }
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index bc0f0020..4ea44f8d 100644
+index bc0f002..4ea44f8 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -2291,11 +2291,9 @@ void mt7996_mac_work(struct work_struct *work)
@@ -199,7 +199,7 @@
  			           test_bit(MT76_STATE_RUNNING, &mdev->phys[i]->state))
  				break;
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 47f8a7cd..d559df86 100644
+index 469efb5..a63a370 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -405,6 +405,7 @@ static void
@@ -258,7 +258,7 @@
  {
  	struct {
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 8ffb16f8..b15796dc 100644
+index 8ffb16f..b15796d 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -351,7 +351,8 @@ enum {
@@ -280,7 +280,7 @@
  
  enum {
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 82ff4e99..4e99830f 100644
+index 82ff4e9..4e99830 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -593,9 +593,11 @@ struct mt7996_dev {
@@ -304,7 +304,7 @@
  void mt7996_mcu_rx_event(struct mt7996_dev *dev, struct sk_buff *skb);
  void mt7996_mcu_exit(struct mt7996_dev *dev);
 diff --git a/tools/fwlog.c b/tools/fwlog.c
-index 3c6a61d7..0e2de2dc 100644
+index 3c6a61d..0e2de2d 100644
 --- a/tools/fwlog.c
 +++ b/tools/fwlog.c
 @@ -29,10 +29,9 @@ static const char *debugfs_path(const char *phyname, const char *file)
@@ -592,7 +592,7 @@
  	return ret;
  }
 diff --git a/tools/main.c b/tools/main.c
-index 699a9eea..e9e25567 100644
+index 699a9ee..e9e2556 100644
 --- a/tools/main.c
 +++ b/tools/main.c
 @@ -198,6 +198,8 @@ int main(int argc, char **argv)
@@ -605,7 +605,7 @@
  		usage();
  
 diff --git a/tools/mt76-test.h b/tools/mt76-test.h
-index d2fafa86..b9d508c5 100644
+index d2fafa8..b9d508c 100644
 --- a/tools/mt76-test.h
 +++ b/tools/mt76-test.h
 @@ -22,6 +22,8 @@
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0075-mtk-mt76-mt7996-implement-and-switch-to-hw-scan-call.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0075-mtk-mt76-mt7996-implement-and-switch-to-hw-scan-call.patch
index 9977a88..2daad93 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0075-mtk-mt76-mt7996-implement-and-switch-to-hw-scan-call.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0075-mtk-mt76-mt7996-implement-and-switch-to-hw-scan-call.patch
@@ -1,7 +1,7 @@
-From 953012de13153dbc078b6fe3cc64d6d44e2d251f Mon Sep 17 00:00:00 2001
+From b99c169ff2777a55470fc7f783776dc141358ee8 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Fri, 3 Nov 2023 21:44:45 +0800
-Subject: [PATCH 075/223] mtk: mt76: mt7996: implement and switch to hw scan
+Subject: [PATCH 075/193] mtk: mt76: mt7996: implement and switch to hw scan
  callbacks
 
 To support MLO, hw_scan callbacks are mandatory. However, the
@@ -31,7 +31,7 @@
  8 files changed, 256 insertions(+), 11 deletions(-)
 
 diff --git a/mac80211.c b/mac80211.c
-index b08a9388..cad85f19 100644
+index b08a938..cad85f1 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -820,7 +820,7 @@ bool mt76_has_tx_pending(struct mt76_phy *phy)
@@ -52,7 +52,7 @@
  void mt76_update_survey_active_time(struct mt76_phy *phy, ktime_t time)
  {
 diff --git a/mt76.h b/mt76.h
-index aad7f557..36e92dfe 100644
+index aad7f55..36e92df 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -1483,6 +1483,8 @@ void mt76_release_buffered_frames(struct ieee80211_hw *hw,
@@ -65,10 +65,10 @@
  void mt76_update_survey_active_time(struct mt76_phy *phy, ktime_t time);
  int mt76_get_survey(struct ieee80211_hw *hw, int idx,
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 48798711..a188fa1d 100644
+index 77d4eae..441300a 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -459,6 +459,9 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
+@@ -456,6 +456,9 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
  
  	wiphy->available_antennas_rx = phy->mt76->antenna_mask;
  	wiphy->available_antennas_tx = phy->mt76->antenna_mask;
@@ -78,7 +78,7 @@
  }
  
  static void
-@@ -679,6 +682,7 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
+@@ -676,6 +679,7 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
  	mphy->dev->phys[band] = mphy;
  
  	INIT_DELAYED_WORK(&mphy->mac_work, mt7996_mac_work);
@@ -86,7 +86,7 @@
  
  	ret = mt7996_eeprom_parse_hw_cap(dev, phy);
  	if (ret)
-@@ -1594,6 +1598,7 @@ int mt7996_register_device(struct mt7996_dev *dev)
+@@ -1591,6 +1595,7 @@ int mt7996_register_device(struct mt7996_dev *dev)
  	dev->mt76.phy.priv = &dev->phy;
  	INIT_WORK(&dev->rc_work, mt7996_mac_sta_rc_work);
  	INIT_DELAYED_WORK(&dev->mphy.mac_work, mt7996_mac_work);
@@ -95,7 +95,7 @@
  	INIT_LIST_HEAD(&dev->sta_rc_list);
  	INIT_LIST_HEAD(&dev->twt_list);
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 4ea44f8d..5c29fe7f 100644
+index 4ea44f8..5c29fe7 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -2705,3 +2705,144 @@ void mt7996_mac_twt_teardown_flow(struct mt7996_dev *dev,
@@ -244,7 +244,7 @@
 +	ieee80211_queue_delayed_work(hw, &phy->scan_work, duration);
 +}
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 3a274ba7..475763e4 100644
+index 544be33..c6dfefd 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -312,6 +312,8 @@ static void mt7996_remove_interface(struct ieee80211_hw *hw,
@@ -345,7 +345,7 @@
  	}
  
  	if (changed & (IEEE80211_CONF_CHANGE_POWER |
-@@ -1637,6 +1687,42 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
+@@ -1636,6 +1686,42 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
  
  #endif
  
@@ -388,7 +388,7 @@
  const struct ieee80211_ops mt7996_ops = {
  	.add_chanctx = ieee80211_emulate_add_chanctx,
  	.remove_chanctx = ieee80211_emulate_remove_chanctx,
-@@ -1659,8 +1745,8 @@ const struct ieee80211_ops mt7996_ops = {
+@@ -1658,8 +1744,8 @@ const struct ieee80211_ops mt7996_ops = {
  	.ampdu_action = mt7996_ampdu_action,
  	.set_rts_threshold = mt7996_set_rts_threshold,
  	.wake_tx_queue = mt76_wake_tx_queue,
@@ -400,7 +400,7 @@
  	.get_txpower = mt76_get_txpower,
  	.channel_switch_beacon = mt7996_channel_switch_beacon,
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index d559df86..746fc223 100644
+index a63a370..a54f645 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -3786,7 +3786,8 @@ int mt7996_mcu_set_chan_info(struct mt7996_phy *phy, u16 tag)
@@ -414,7 +414,7 @@
  	else if (!cfg80211_reg_can_beacon(phy->mt76->hw->wiphy, chandef,
  					  NL80211_IFTYPE_AP))
 diff --git a/mt7996/mmio.c b/mt7996/mmio.c
-index 14c70915..1fcca23c 100644
+index 14c7091..1fcca23 100644
 --- a/mt7996/mmio.c
 +++ b/mt7996/mmio.c
 @@ -657,7 +657,7 @@ struct mt7996_dev *mt7996_mmio_probe(struct device *pdev,
@@ -427,7 +427,7 @@
  	struct mt7996_dev *dev;
  	struct mt76_dev *mdev;
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 4e99830f..87b166aa 100644
+index 4e99830..87b166a 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -460,6 +460,13 @@ struct mt7996_phy {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0076-mtk-mt76-mt7996-implement-and-switch-to-chanctx-call.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0076-mtk-mt76-mt7996-implement-and-switch-to-chanctx-call.patch
index 0a5ab02..7e8a990 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0076-mtk-mt76-mt7996-implement-and-switch-to-chanctx-call.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0076-mtk-mt76-mt7996-implement-and-switch-to-chanctx-call.patch
@@ -1,7 +1,7 @@
-From f6889bcb95884df285d628c93b78fe28a5008262 Mon Sep 17 00:00:00 2001
+From 8d5864d26f56f7ca0d137271701ee443c3330489 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Mon, 6 Nov 2023 16:17:11 +0800
-Subject: [PATCH 076/223] mtk: mt76: mt7996: implement and switch to chanctx
+Subject: [PATCH 076/193] mtk: mt76: mt7996: implement and switch to chanctx
  callbacks
 
 To support MLO, chanctx callbacks are mandatory, since one VIF (MLD) could
@@ -21,10 +21,10 @@
  5 files changed, 211 insertions(+), 18 deletions(-)
 
 diff --git a/mt7996/init.c b/mt7996/init.c
-index a188fa1d..7afbd46a 100644
+index 441300a..c6ca865 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -384,6 +384,7 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
+@@ -381,6 +381,7 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
  
  	hw->sta_data_size = sizeof(struct mt7996_sta);
  	hw->vif_data_size = sizeof(struct mt7996_vif);
@@ -32,7 +32,7 @@
  
  	wiphy->iface_combinations = if_comb;
  	wiphy->n_iface_combinations = ARRAY_SIZE(if_comb);
-@@ -419,6 +420,7 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
+@@ -416,6 +417,7 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
  	ieee80211_hw_set(hw, SUPPORTS_RX_DECAP_OFFLOAD);
  	ieee80211_hw_set(hw, WANT_MONITOR_VIF);
  	ieee80211_hw_set(hw, SUPPORTS_MULTI_BSSID);
@@ -40,7 +40,7 @@
  
  	hw->max_tx_fragments = 4;
  
-@@ -639,6 +641,22 @@ static int mt7996_vow_init(struct mt7996_phy *phy)
+@@ -636,6 +638,22 @@ static int mt7996_vow_init(struct mt7996_phy *phy)
  	return mt7996_mcu_set_vow_feature_ctrl(phy);
  }
  
@@ -63,7 +63,7 @@
  static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
  			       enum mt76_band_id band)
  {
-@@ -722,6 +740,8 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
+@@ -719,6 +737,8 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
  	if (ret)
  		goto error;
  
@@ -72,7 +72,7 @@
  	ret = mt7996_thermal_init(phy);
  	if (ret)
  		goto error;
-@@ -1629,6 +1649,8 @@ int mt7996_register_device(struct mt7996_dev *dev)
+@@ -1626,6 +1646,8 @@ int mt7996_register_device(struct mt7996_dev *dev)
  	if (ret)
  		return ret;
  
@@ -82,7 +82,7 @@
  	if (ret)
  		return ret;
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 5c29fe7f..7cfc25ba 100644
+index 5c29fe7..7cfc25b 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -2797,7 +2797,10 @@ void mt7996_scan_work(struct work_struct *work)
@@ -110,7 +110,7 @@
  		ieee80211_queue_delayed_work(hw, &phy->scan_work, HZ / 10);
  
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 475763e4..cbd64681 100644
+index c6dfefd..54a179c 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -76,6 +76,11 @@ int mt7996_run(struct ieee80211_hw *hw)
@@ -147,7 +147,7 @@
  	if (changed & (IEEE80211_CONF_CHANGE_POWER |
  		       IEEE80211_CONF_CHANGE_CHANNEL)) {
  		ret = mt7996_mcu_set_txpower_sku(phy);
-@@ -1723,6 +1713,158 @@ mt7996_cancel_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
+@@ -1722,6 +1712,158 @@ mt7996_cancel_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
  	mutex_unlock(&phy->dev->mt76.mutex);
  }
  
@@ -306,7 +306,7 @@
  const struct ieee80211_ops mt7996_ops = {
  	.add_chanctx = ieee80211_emulate_add_chanctx,
  	.remove_chanctx = ieee80211_emulate_remove_chanctx,
-@@ -1777,4 +1919,10 @@ const struct ieee80211_ops mt7996_ops = {
+@@ -1776,4 +1918,10 @@ const struct ieee80211_ops mt7996_ops = {
  	.net_fill_forward_path = mt7996_net_fill_forward_path,
  	.net_setup_tc = mt76_wed_net_setup_tc,
  #endif
@@ -318,7 +318,7 @@
 +	.switch_vif_chanctx = mt7996_switch_vif_chanctx,
  };
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 746fc223..ba53c3fc 100644
+index a54f645..b8bfcbf 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -5322,7 +5322,7 @@ int mt7996_mcu_set_pp_en(struct mt7996_phy *phy, u8 mode, u16 bitmap)
@@ -331,7 +331,7 @@
  		return 0;
  
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 87b166aa..07790257 100644
+index 87b166a..0779025 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -334,6 +334,8 @@ struct mt7996_vif {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0077-mtk-mt76-mt7996-use-.sta_state-to-replace-.sta_add-a.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0077-mtk-mt76-mt7996-use-.sta_state-to-replace-.sta_add-a.patch
index 0508cee..8dd754a 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0077-mtk-mt76-mt7996-use-.sta_state-to-replace-.sta_add-a.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0077-mtk-mt76-mt7996-use-.sta_state-to-replace-.sta_add-a.patch
@@ -1,7 +1,7 @@
-From 2819a489bf4d70e8407cdc07d2d77b3b40441669 Mon Sep 17 00:00:00 2001
+From 25ea7ddaa7e96806d90997f21ad75373ff111f22 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Wed, 8 Nov 2023 18:52:26 +0800
-Subject: [PATCH 077/223] mtk: mt76: mt7996: use .sta_state to replace .sta_add
+Subject: [PATCH 077/193] mtk: mt76: mt7996: use .sta_state to replace .sta_add
  and .sta_remove
 
 MAC80211 mostly uses MLD address through TX path, and leaves the header
@@ -22,10 +22,10 @@
  3 files changed, 26 insertions(+), 32 deletions(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index cbd64681..5edfbc4b 100644
+index 54a179c..ed14bbb 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -782,7 +782,7 @@ int mt7996_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -781,7 +781,7 @@ int mt7996_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
  	u8 band_idx = mvif->phy->mt76->band_idx;
@@ -34,7 +34,7 @@
  
  #ifdef CONFIG_MTK_VENDOR
  	struct mt7996_phy *phy = &dev->phy;
-@@ -800,23 +800,10 @@ int mt7996_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -799,23 +799,10 @@ int mt7996_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  	msta->wcid.phy_idx = band_idx;
  	msta->wcid.tx_info |= MT_WCID_TX_INFO_SET;
  
@@ -58,7 +58,7 @@
  #ifdef CONFIG_MTK_VENDOR
  	switch (band_idx) {
  	case MT_BAND1:
-@@ -837,6 +824,27 @@ int mt7996_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -836,6 +823,27 @@ int mt7996_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  	return 0;
  }
  
@@ -86,7 +86,7 @@
  void mt7996_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  			   struct ieee80211_sta *sta)
  {
-@@ -956,22 +964,6 @@ mt7996_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -955,22 +963,6 @@ mt7996_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	return ret;
  }
  
@@ -109,7 +109,7 @@
  static int
  mt7996_get_stats(struct ieee80211_hw *hw,
  		 struct ieee80211_low_level_stats *stats)
-@@ -1879,8 +1871,7 @@ const struct ieee80211_ops mt7996_ops = {
+@@ -1878,8 +1870,7 @@ const struct ieee80211_ops mt7996_ops = {
  	.conf_tx = mt7996_conf_tx,
  	.configure_filter = mt7996_configure_filter,
  	.bss_info_changed = mt7996_bss_info_changed,
@@ -120,7 +120,7 @@
  	.sta_rc_update = mt7996_sta_rc_update,
  	.set_key = mt7996_set_key,
 diff --git a/mt7996/mmio.c b/mt7996/mmio.c
-index 1fcca23c..8ac1b12a 100644
+index 1fcca23..8ac1b12 100644
 --- a/mt7996/mmio.c
 +++ b/mt7996/mmio.c
 @@ -655,6 +655,7 @@ struct mt7996_dev *mt7996_mmio_probe(struct device *pdev,
@@ -132,7 +132,7 @@
  		.update_survey = mt7996_update_channel,
  		// .set_channel = mt7996_set_channel,
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 07790257..7d416f30 100644
+index 0779025..7d416f3 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -971,6 +971,8 @@ void mt7996_mac_write_txwi(struct mt7996_dev *dev, __le32 *txwi,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0078-mtk-mt76-mt7996-switch-to-per-link-data-structure-of.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0078-mtk-mt76-mt7996-switch-to-per-link-data-structure-of.patch
index 8e80fdc..a4fe328 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0078-mtk-mt76-mt7996-switch-to-per-link-data-structure-of.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0078-mtk-mt76-mt7996-switch-to-per-link-data-structure-of.patch
@@ -1,7 +1,7 @@
-From 2aa446d88555e199c973a8b46ece2749a7aff2b4 Mon Sep 17 00:00:00 2001
+From 2985f8ada71e49f6894f47b05e4c71de00c1ac7b Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Fri, 24 Nov 2023 11:31:55 +0800
-Subject: [PATCH 078/223] mtk: mt76: mt7996: switch to per-link data structure
+Subject: [PATCH 078/193] mtk: mt76: mt7996: switch to per-link data structure
  of vif
 
 Introduce struct mt7996_bss_conf, data structure for per-link BSS.
@@ -22,7 +22,7 @@
  7 files changed, 463 insertions(+), 363 deletions(-)
 
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index 7e8e91ca..792ace03 100644
+index 7e8e91c..792ace0 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -726,7 +726,7 @@ static void
@@ -71,10 +71,10 @@
  	char buf[100];
  	int ret;
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 7afbd46a..f5bff109 100644
+index c6ca865..1a3b867 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -630,11 +630,11 @@ static int mt7996_vow_init(struct mt7996_phy *phy)
+@@ -627,11 +627,11 @@ static int mt7996_vow_init(struct mt7996_phy *phy)
  	vow->drr_quantum[6] = VOW_DRR_QUANTUM_L6;
  	vow->drr_quantum[7] = VOW_DRR_QUANTUM_L7;
  
@@ -89,7 +89,7 @@
  		return ret;
  
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 7cfc25ba..8f743125 100644
+index 7cfc25b..8f74312 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -912,8 +912,9 @@ int mt7996_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
@@ -186,7 +186,7 @@
  
  	list_del_init(&flow->list);
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 5edfbc4b..8d919dd0 100644
+index ed14bbb..f81df91 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -205,29 +205,30 @@ static int get_omac_idx(enum nl80211_iftype type, u64 mask)
@@ -424,7 +424,7 @@
  	return 0;
  }
  
-@@ -617,22 +635,20 @@ static void mt7996_configure_filter(struct ieee80211_hw *hw,
+@@ -616,22 +634,20 @@ static void mt7996_configure_filter(struct ieee80211_hw *hw,
  }
  
  static void
@@ -451,7 +451,7 @@
  		break;
  	default:
  		break;
-@@ -640,16 +656,15 @@ mt7996_update_bss_color(struct ieee80211_hw *hw,
+@@ -639,16 +655,15 @@ mt7996_update_bss_color(struct ieee80211_hw *hw,
  }
  
  static u8
@@ -472,7 +472,7 @@
  
  	if (beacon) {
  		struct mt7996_phy *phy = mphy->priv;
-@@ -670,23 +685,22 @@ mt7996_get_rates_table(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -669,23 +684,22 @@ mt7996_get_rates_table(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  		if ((mt76_rates[i].hw_value & GENMASK(7, 0)) == idx)
  			return MT7996_BASIC_RATES_TBL + 2 * i;
  
@@ -502,7 +502,7 @@
  	mt76_wr(dev, MT_WF_PHYRX_BAND_GID_TAB_POS0(band), mu[0]);
  	mt76_wr(dev, MT_WF_PHYRX_BAND_GID_TAB_POS1(band), mu[1]);
  	mt76_wr(dev, MT_WF_PHYRX_BAND_GID_TAB_POS2(band), mu[2]);
-@@ -698,20 +712,22 @@ static void mt7996_bss_info_changed(struct ieee80211_hw *hw,
+@@ -697,20 +711,22 @@ static void mt7996_bss_info_changed(struct ieee80211_hw *hw,
  				    struct ieee80211_bss_conf *info,
  				    u64 changed)
  {
@@ -528,7 +528,7 @@
  				   !!(changed & BSS_CHANGED_BSSID));
  	}
  
-@@ -723,42 +739,42 @@ static void mt7996_bss_info_changed(struct ieee80211_hw *hw,
+@@ -722,42 +738,42 @@ static void mt7996_bss_info_changed(struct ieee80211_hw *hw,
  
  		if (slottime != phy->slottime) {
  			phy->slottime = slottime;
@@ -584,7 +584,7 @@
  
  	mutex_unlock(&dev->mt76.mutex);
  }
-@@ -769,9 +785,14 @@ mt7996_channel_switch_beacon(struct ieee80211_hw *hw,
+@@ -768,9 +784,14 @@ mt7996_channel_switch_beacon(struct ieee80211_hw *hw,
  			     struct cfg80211_chan_def *chandef)
  {
  	struct mt7996_dev *dev = mt7996_hw_dev(hw);
@@ -600,7 +600,7 @@
  	mutex_unlock(&dev->mt76.mutex);
  }
  
-@@ -781,7 +802,8 @@ int mt7996_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -780,7 +801,8 @@ int mt7996_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  	struct mt7996_dev *dev = container_of(mdev, struct mt7996_dev, mt76);
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
@@ -610,7 +610,7 @@
  	int idx;
  
  #ifdef CONFIG_MTK_VENDOR
-@@ -801,7 +823,7 @@ int mt7996_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -800,7 +822,7 @@ int mt7996_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  	msta->wcid.tx_info |= MT_WCID_TX_INFO_SET;
  
  #ifdef CONFIG_MTK_VENDOR
@@ -619,7 +619,7 @@
  #endif
  
  #ifdef CONFIG_MTK_VENDOR
-@@ -828,7 +850,10 @@ int mt7996_mac_sta_event(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -827,7 +849,10 @@ int mt7996_mac_sta_event(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  			 struct ieee80211_sta *sta, enum mt76_sta_event ev)
  {
  	struct mt7996_dev *dev = container_of(mdev, struct mt7996_dev, mt76);
@@ -630,7 +630,7 @@
  
  	mutex_lock(&dev->mt76.mutex);
  
-@@ -836,8 +861,10 @@ int mt7996_mac_sta_event(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -835,8 +860,10 @@ int mt7996_mac_sta_event(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  		mt7996_mac_wtbl_update(dev, msta->wcid.idx,
  				       MT_WTBL_UPDATE_ADM_COUNT_CLEAR);
  
@@ -643,7 +643,7 @@
  
  		ewma_avg_signal_init(&msta->avg_ack_signal);
  	}
-@@ -849,10 +876,15 @@ void mt7996_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -848,10 +875,15 @@ void mt7996_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  			   struct ieee80211_sta *sta)
  {
  	struct mt7996_dev *dev = container_of(mdev, struct mt7996_dev, mt76);
@@ -660,7 +660,7 @@
  
  	mt7996_mac_wtbl_update(dev, msta->wcid.idx,
  			       MT_WTBL_UPDATE_ADM_COUNT_CLEAR);
-@@ -984,7 +1016,7 @@ mt7996_get_stats(struct ieee80211_hw *hw,
+@@ -983,7 +1015,7 @@ mt7996_get_stats(struct ieee80211_hw *hw,
  	return 0;
  }
  
@@ -669,7 +669,7 @@
  {
  	struct mt7996_dev *dev = mt7996_hw_dev(hw);
  	struct mt7996_phy *phy = mt7996_hw_phy(hw);
-@@ -996,8 +1028,8 @@ u64 __mt7996_get_tsf(struct ieee80211_hw *hw, struct mt7996_vif *mvif)
+@@ -995,8 +1027,8 @@ u64 __mt7996_get_tsf(struct ieee80211_hw *hw, struct mt7996_vif *mvif)
  
  	lockdep_assert_held(&dev->mt76.mutex);
  
@@ -680,7 +680,7 @@
  	/* TSF software read */
  	mt76_rmw(dev, MT_LPON_TCR(phy->mt76->band_idx, n), MT_LPON_TCR_SW_MODE,
  		 MT_LPON_TCR_SW_READ);
-@@ -1012,10 +1044,12 @@ mt7996_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
+@@ -1011,10 +1043,12 @@ mt7996_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
  {
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
  	struct mt7996_dev *dev = mt7996_hw_dev(hw);
@@ -694,7 +694,7 @@
  	mutex_unlock(&dev->mt76.mutex);
  
  	return ret;
-@@ -1028,6 +1062,7 @@ mt7996_set_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -1027,6 +1061,7 @@ mt7996_set_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
  	struct mt7996_dev *dev = mt7996_hw_dev(hw);
  	struct mt7996_phy *phy = mt7996_hw_phy(hw);
@@ -702,7 +702,7 @@
  	union {
  		u64 t64;
  		u32 t32[2];
-@@ -1036,8 +1071,9 @@ mt7996_set_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -1035,8 +1070,9 @@ mt7996_set_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  
  	mutex_lock(&dev->mt76.mutex);
  
@@ -714,7 +714,7 @@
  	mt76_wr(dev, MT_LPON_UTTR0(phy->mt76->band_idx), tsf.t32[0]);
  	mt76_wr(dev, MT_LPON_UTTR1(phy->mt76->band_idx), tsf.t32[1]);
  	/* TSF software overwrite */
-@@ -1054,6 +1090,7 @@ mt7996_offset_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -1053,6 +1089,7 @@ mt7996_offset_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
  	struct mt7996_dev *dev = mt7996_hw_dev(hw);
  	struct mt7996_phy *phy = mt7996_hw_phy(hw);
@@ -722,7 +722,7 @@
  	union {
  		u64 t64;
  		u32 t32[2];
-@@ -1062,8 +1099,9 @@ mt7996_offset_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -1061,8 +1098,9 @@ mt7996_offset_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  
  	mutex_lock(&dev->mt76.mutex);
  
@@ -734,7 +734,7 @@
  	mt76_wr(dev, MT_LPON_UTTR0(phy->mt76->band_idx), tsf.t32[0]);
  	mt76_wr(dev, MT_LPON_UTTR1(phy->mt76->band_idx), tsf.t32[1]);
  	/* TSF software adjust*/
-@@ -1179,7 +1217,7 @@ static void mt7996_sta_statistics(struct ieee80211_hw *hw,
+@@ -1178,7 +1216,7 @@ static void mt7996_sta_statistics(struct ieee80211_hw *hw,
  static void mt7996_sta_rc_work(void *data, struct ieee80211_sta *sta)
  {
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
@@ -743,7 +743,7 @@
  	u32 *changed = data;
  
  	spin_lock_bh(&dev->mt76.sta_poll_lock);
-@@ -1215,9 +1253,13 @@ mt7996_set_bitrate_mask(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -1214,9 +1252,13 @@ mt7996_set_bitrate_mask(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
  	struct mt7996_phy *phy = mt7996_hw_phy(hw);
  	struct mt7996_dev *dev = phy->dev;
@@ -758,7 +758,7 @@
  
  	/* if multiple rates across different preambles are given we can
  	 * reconfigure this info with all peers using sta_rec command with
-@@ -1239,14 +1281,20 @@ static void mt7996_sta_set_4addr(struct ieee80211_hw *hw,
+@@ -1238,14 +1280,20 @@ static void mt7996_sta_set_4addr(struct ieee80211_hw *hw,
  				 bool enabled)
  {
  	struct mt7996_dev *dev = mt7996_hw_dev(hw);
@@ -780,7 +780,7 @@
  }
  
  static void mt7996_sta_set_decap_offload(struct ieee80211_hw *hw,
-@@ -1255,14 +1303,20 @@ static void mt7996_sta_set_decap_offload(struct ieee80211_hw *hw,
+@@ -1254,14 +1302,20 @@ static void mt7996_sta_set_decap_offload(struct ieee80211_hw *hw,
  					 bool enabled)
  {
  	struct mt7996_dev *dev = mt7996_hw_dev(hw);
@@ -802,7 +802,7 @@
  }
  
  static const char mt7996_gstrings_stats[][ETH_GSTRING_LEN] = {
-@@ -1395,7 +1449,7 @@ static void mt7996_ethtool_worker(void *wi_data, struct ieee80211_sta *sta)
+@@ -1394,7 +1448,7 @@ static void mt7996_ethtool_worker(void *wi_data, struct ieee80211_sta *sta)
  	struct mt76_ethtool_worker_info *wi = wi_data;
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
  
@@ -811,7 +811,7 @@
  		return;
  
  	mt76_ethtool_worker(wi, &msta->wcid.stats, true);
-@@ -1409,15 +1463,17 @@ void mt7996_get_et_stats(struct ieee80211_hw *hw,
+@@ -1408,15 +1462,17 @@ void mt7996_get_et_stats(struct ieee80211_hw *hw,
  	struct mt7996_dev *dev = mt7996_hw_dev(hw);
  	struct mt7996_phy *phy = mt7996_hw_phy(hw);
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
@@ -830,7 +830,7 @@
  
  	mt7996_mac_update_stats(phy);
  
-@@ -1623,6 +1679,7 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
+@@ -1622,6 +1678,7 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
  			     struct net_device_path *path)
  {
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
@@ -838,7 +838,7 @@
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
  	struct mt7996_dev *dev = mt7996_hw_dev(hw);
  	struct mt7996_phy *phy = mt7996_hw_phy(hw);
-@@ -1652,7 +1709,7 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
+@@ -1651,7 +1708,7 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
  	path->type = DEV_PATH_MTK_WDMA;
  	path->dev = ctx->dev;
  	path->mtk_wdma.wdma_idx = wed->wdma_idx;
@@ -847,7 +847,7 @@
  	path->mtk_wdma.queue = 0;
  	path->mtk_wdma.wcid = msta->wcid.idx;
  
-@@ -1784,6 +1841,7 @@ mt7996_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -1783,6 +1840,7 @@ mt7996_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	struct mt7996_chanctx *ctx = mt7996_chanctx_get(conf);
  	struct mt7996_phy *phy = ctx->phy;
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
@@ -855,7 +855,7 @@
  
  	wiphy_info(hw->wiphy, "Assign VIF (addr: %pM, type: %d, link_id: %d) to channel context: %d MHz\n",
  		    vif->addr, vif->type, link_conf->link_id,
-@@ -1791,7 +1849,8 @@ mt7996_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -1790,7 +1848,8 @@ mt7996_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  
  	mutex_lock(&phy->dev->mt76.mutex);
  
@@ -865,7 +865,7 @@
  	ctx->nbss_assigned++;
  
  	mutex_unlock(&phy->dev->mt76.mutex);
-@@ -1807,6 +1866,7 @@ mt7996_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -1806,6 +1865,7 @@ mt7996_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	struct mt7996_chanctx *ctx = mt7996_chanctx_get(conf);
  	struct mt7996_phy *phy = ctx->phy;
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
@@ -873,7 +873,7 @@
  
  	wiphy_info(hw->wiphy, "Remove VIF (addr: %pM, type: %d, link_id: %d) from channel context: %d MHz\n",
  		   vif->addr, vif->type, link_conf->link_id,
-@@ -1818,7 +1878,8 @@ mt7996_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -1817,7 +1877,8 @@ mt7996_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	if (test_bit(MT76_SCANNING, &phy->mt76->state))
  		mt7996_scan_complete(phy, true);
  
@@ -884,7 +884,7 @@
  
  	mutex_unlock(&phy->dev->mt76.mutex);
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index ba53c3fc..b2eed253 100644
+index b8bfcbf..cdc019f 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -122,12 +122,12 @@ mt7996_mcu_get_sta_nss(u16 mcs_map)
@@ -2117,7 +2117,7 @@
  }
  #endif
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 7d416f30..be966c18 100644
+index 7d416f3..be966c1 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -326,18 +326,25 @@ struct mt7996_sta {
@@ -2274,7 +2274,7 @@
  int mt7996_mcu_cp_support(struct mt7996_dev *dev, u8 mode);
  int mt7996_mcu_set_pp_en(struct mt7996_phy *phy, u8 mode, u16 bitmap);
 diff --git a/mt7996/testmode.c b/mt7996/testmode.c
-index 5a8b6d0a..042da4e4 100644
+index 5a8b6d0..042da4e 100644
 --- a/mt7996/testmode.c
 +++ b/mt7996/testmode.c
 @@ -229,6 +229,7 @@ static void
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0079-mtk-mt76-mt7996-switch-to-per-link-data-structure-of.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0079-mtk-mt76-mt7996-switch-to-per-link-data-structure-of.patch
index f88fbcf..0c4cd05 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0079-mtk-mt76-mt7996-switch-to-per-link-data-structure-of.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0079-mtk-mt76-mt7996-switch-to-per-link-data-structure-of.patch
@@ -1,7 +1,7 @@
-From ca4c360d853ec0678da7b08c9b524334b931eeda Mon Sep 17 00:00:00 2001
+From 299020207d66edd409fa16260c310c8bd0a6c316 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Mon, 27 Nov 2023 10:43:34 +0800
-Subject: [PATCH 079/223] mtk: mt76: mt7996: switch to per-link data structure
+Subject: [PATCH 079/193] mtk: mt76: mt7996: switch to per-link data structure
  of sta
 
 Introduce struct mt7996_link_sta, data structure for per-link STA.
@@ -22,7 +22,7 @@
  6 files changed, 461 insertions(+), 368 deletions(-)
 
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index 792ace03..786bdc38 100644
+index 792ace0..786bdc3 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -726,14 +726,15 @@ static void
@@ -97,7 +97,7 @@
  	phy.ltf = cpu_to_le16(ltf);
  	phy.ldpc = phy.ldpc ? 7 : 0;
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 8f743125..8b682842 100644
+index 8f74312..8b68284 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -54,7 +54,7 @@ static const struct mt7996_dfs_radar_spec jp_radar_specs = {
@@ -443,7 +443,7 @@
  
  	rcu_read_unlock();
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 8d919dd0..98afb057 100644
+index f81df91..095892a 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -229,6 +229,7 @@ static int mt7996_add_interface(struct ieee80211_hw *hw,
@@ -601,7 +601,7 @@
  out:
  	mutex_unlock(&dev->mt76.mutex);
  
-@@ -714,25 +721,27 @@ static void mt7996_bss_info_changed(struct ieee80211_hw *hw,
+@@ -713,25 +720,27 @@ static void mt7996_bss_info_changed(struct ieee80211_hw *hw,
  {
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
  	struct mt7996_bss_conf *mconf;
@@ -632,7 +632,7 @@
  
  	if (changed & BSS_CHANGED_ERP_SLOT) {
  		int slottime = info->use_short_slot ? 9 : 20;
-@@ -803,6 +812,7 @@ int mt7996_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -802,6 +811,7 @@ int mt7996_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
  	struct mt7996_bss_conf *mconf = mconf_dereference_protected(mvif, 0);
@@ -640,7 +640,7 @@
  	u8 band_idx = mconf->phy->mt76->band_idx;
  	int idx;
  
-@@ -814,13 +824,16 @@ int mt7996_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -813,13 +823,16 @@ int mt7996_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  	if (idx < 0)
  		return -ENOSPC;
  
@@ -663,7 +663,7 @@
  
  #ifdef CONFIG_MTK_VENDOR
  	mt7996_vendor_amnt_sta_remove(mconf->phy, sta);
-@@ -853,7 +866,9 @@ int mt7996_mac_sta_event(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -852,7 +865,9 @@ int mt7996_mac_sta_event(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
  	struct mt7996_bss_conf *mconf;
@@ -673,7 +673,7 @@
  
  	mutex_lock(&dev->mt76.mutex);
  
-@@ -863,10 +878,17 @@ int mt7996_mac_sta_event(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -862,10 +877,17 @@ int mt7996_mac_sta_event(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  
  		conf = link_conf_dereference_protected(vif, 0);
  		mconf = mconf_dereference_protected(mvif, 0);
@@ -694,7 +694,7 @@
  	}
  
  	mutex_unlock(&dev->mt76.mutex);
-@@ -879,25 +901,31 @@ void mt7996_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -878,25 +900,31 @@ void mt7996_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
  	struct mt7996_bss_conf *mconf;
@@ -734,7 +734,7 @@
  }
  
  static void mt7996_tx(struct ieee80211_hw *hw,
-@@ -909,19 +937,22 @@ static void mt7996_tx(struct ieee80211_hw *hw,
+@@ -908,19 +936,22 @@ static void mt7996_tx(struct ieee80211_hw *hw,
  	struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
  	struct ieee80211_vif *vif = info->control.vif;
  	struct mt76_wcid *wcid = &dev->mt76.global_wcid;
@@ -761,7 +761,7 @@
  	}
  
  	mt76_tx(mphy, control->sta, wcid, skb);
-@@ -948,6 +979,7 @@ mt7996_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -947,6 +978,7 @@ mt7996_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	struct ieee80211_sta *sta = params->sta;
  	struct ieee80211_txq *txq = sta->txq[params->tid];
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
@@ -769,7 +769,7 @@
  	u16 tid = params->tid;
  	u16 ssn = params->ssn;
  	struct mt76_txq *mtxq;
-@@ -959,14 +991,15 @@ mt7996_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -958,14 +990,15 @@ mt7996_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	mtxq = (struct mt76_txq *)txq->drv_priv;
  
  	mutex_lock(&dev->mt76.mutex);
@@ -787,7 +787,7 @@
  		ret = mt7996_mcu_add_rx_ba(dev, params, false);
  		break;
  	case IEEE80211_AMPDU_TX_OPERATIONAL:
-@@ -977,16 +1010,16 @@ mt7996_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -976,16 +1009,16 @@ mt7996_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	case IEEE80211_AMPDU_TX_STOP_FLUSH:
  	case IEEE80211_AMPDU_TX_STOP_FLUSH_CONT:
  		mtxq->aggr = false;
@@ -807,7 +807,7 @@
  		ret = mt7996_mcu_add_tx_ba(dev, params, false);
  		ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid);
  		break;
-@@ -1165,10 +1198,19 @@ static void mt7996_sta_statistics(struct ieee80211_hw *hw,
+@@ -1164,10 +1197,19 @@ static void mt7996_sta_statistics(struct ieee80211_hw *hw,
  				  struct ieee80211_sta *sta,
  				  struct station_info *sinfo)
  {
@@ -828,7 +828,7 @@
  	if (txrate->legacy || txrate->flags) {
  		if (txrate->legacy) {
  			sinfo->txrate.legacy = txrate->legacy;
-@@ -1187,44 +1229,52 @@ static void mt7996_sta_statistics(struct ieee80211_hw *hw,
+@@ -1186,44 +1228,52 @@ static void mt7996_sta_statistics(struct ieee80211_hw *hw,
  	sinfo->txrate.flags = txrate->flags;
  	sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_BITRATE);
  
@@ -892,7 +892,7 @@
  }
  
  static void mt7996_sta_rc_update(struct ieee80211_hw *hw,
-@@ -1238,7 +1288,7 @@ static void mt7996_sta_rc_update(struct ieee80211_hw *hw,
+@@ -1237,7 +1287,7 @@ static void mt7996_sta_rc_update(struct ieee80211_hw *hw,
  
  	if (!msta->vif) {
  		dev_warn(dev->mt76.dev, "Un-initialized STA %pM wcid %d in rc_work\n",
@@ -901,7 +901,7 @@
  		return;
  	}
  
-@@ -1284,16 +1334,18 @@ static void mt7996_sta_set_4addr(struct ieee80211_hw *hw,
+@@ -1283,16 +1333,18 @@ static void mt7996_sta_set_4addr(struct ieee80211_hw *hw,
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
  	struct mt7996_bss_conf *mconf;
@@ -923,7 +923,7 @@
  	mutex_unlock(&dev->mt76.mutex);
  }
  
-@@ -1306,16 +1358,18 @@ static void mt7996_sta_set_decap_offload(struct ieee80211_hw *hw,
+@@ -1305,16 +1357,18 @@ static void mt7996_sta_set_decap_offload(struct ieee80211_hw *hw,
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
  	struct mt7996_bss_conf *mconf;
@@ -945,7 +945,7 @@
  	mutex_unlock(&dev->mt76.mutex);
  }
  
-@@ -1448,11 +1502,12 @@ static void mt7996_ethtool_worker(void *wi_data, struct ieee80211_sta *sta)
+@@ -1447,11 +1501,12 @@ static void mt7996_ethtool_worker(void *wi_data, struct ieee80211_sta *sta)
  {
  	struct mt76_ethtool_worker_info *wi = wi_data;
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
@@ -959,7 +959,7 @@
  }
  
  static
-@@ -1555,10 +1610,12 @@ mt7996_twt_teardown_request(struct ieee80211_hw *hw,
+@@ -1554,10 +1609,12 @@ mt7996_twt_teardown_request(struct ieee80211_hw *hw,
  			    u8 flowid)
  {
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
@@ -973,7 +973,7 @@
  	mutex_unlock(&dev->mt76.mutex);
  }
  
-@@ -1681,6 +1738,7 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
+@@ -1680,6 +1737,7 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
  	struct mt7996_bss_conf *mconf = &mvif->deflink;
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
@@ -981,7 +981,7 @@
  	struct mt7996_dev *dev = mt7996_hw_dev(hw);
  	struct mt7996_phy *phy = mt7996_hw_phy(hw);
  	struct mtk_wed_device *wed = &dev->mt76.mmio.wed;
-@@ -1703,7 +1761,7 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
+@@ -1702,7 +1760,7 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
  	if (!mtk_wed_device_active(wed))
  		return -ENODEV;
  
@@ -990,7 +990,7 @@
  		return -EIO;
  
  	path->type = DEV_PATH_MTK_WDMA;
-@@ -1711,11 +1769,11 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
+@@ -1710,11 +1768,11 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
  	path->mtk_wdma.wdma_idx = wed->wdma_idx;
  	path->mtk_wdma.bss = mconf->mt76.idx;
  	path->mtk_wdma.queue = 0;
@@ -1005,7 +1005,7 @@
  		path->mtk_wdma.amsdu = 0;
  
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index b2eed253..ced769b4 100644
+index cdc019f..af9a838 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -122,13 +122,13 @@ mt7996_mcu_get_sta_nss(u16 mcs_map)
@@ -2127,7 +2127,7 @@
  
  	switch (id) {
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index be966c18..d86e24e3 100644
+index be966c1..d86e24e 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -304,10 +304,10 @@ struct mt7996_vow_sta_ctrl {
@@ -2252,7 +2252,7 @@
  int mt7996_mcu_set_pp_en(struct mt7996_phy *phy, u8 mode, u16 bitmap);
  #ifdef CONFIG_MAC80211_DEBUGFS
 diff --git a/mt7996/testmode.c b/mt7996/testmode.c
-index 042da4e4..be224373 100644
+index 042da4e..be22437 100644
 --- a/mt7996/testmode.c
 +++ b/mt7996/testmode.c
 @@ -241,8 +241,8 @@ mt7996_tm_init(struct mt7996_phy *phy, bool en)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0080-mtk-mt76-extend-wcid-and-sta-flow-for-MLO-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0080-mtk-mt76-extend-wcid-and-sta-flow-for-MLO-support.patch
index 1e46e08..5d0aa77 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0080-mtk-mt76-extend-wcid-and-sta-flow-for-MLO-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0080-mtk-mt76-extend-wcid-and-sta-flow-for-MLO-support.patch
@@ -1,7 +1,7 @@
-From 9e98b6657ff1144c273e85a2b0b04c05c813443b Mon Sep 17 00:00:00 2001
+From 5ce82da2b53f2541d97eff0dcbc3411bef435d17 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Wed, 29 Nov 2023 11:04:50 +0800
-Subject: [PATCH 080/223] mtk: mt76: extend wcid and sta flow for MLO support
+Subject: [PATCH 080/193] mtk: mt76: extend wcid and sta flow for MLO support
 
 Add link related info to wcid, and split sta connection flow of common
 parts for MLO supported chipsets.
@@ -16,7 +16,7 @@
  1 file changed, 7 insertions(+), 1 deletion(-)
 
 diff --git a/mac80211.c b/mac80211.c
-index cad85f19..ec73fe00 100644
+index cad85f1..ec73fe0 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -1393,6 +1393,9 @@ mt76_sta_add(struct mt76_phy *phy, struct ieee80211_vif *vif,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0081-mtk-mt76-mt7996-enable-MLO-capability.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0081-mtk-mt76-mt7996-enable-MLO-capability.patch
index ff5469a..927fe40 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0081-mtk-mt76-mt7996-enable-MLO-capability.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0081-mtk-mt76-mt7996-enable-MLO-capability.patch
@@ -1,7 +1,7 @@
-From e58436183460b0f31ba597c8dba7b839101f494f Mon Sep 17 00:00:00 2001
+From b63cdf42665f2f3a21e860b1dca4b991db4a3ec6 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Thu, 30 Nov 2023 16:31:17 +0800
-Subject: [PATCH 081/223] mtk: mt76: mt7996: enable MLO capability
+Subject: [PATCH 081/193] mtk: mt76: mt7996: enable MLO capability
 
 This is a preliminary patch to add MLO support for mt7996 chipsets.
 
@@ -12,7 +12,7 @@
  2 files changed, 42 insertions(+), 2 deletions(-)
 
 diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index f9bd4d91..8272ead2 100644
+index f9bd4d9..8272ead 100644
 --- a/mt7996/eeprom.c
 +++ b/mt7996/eeprom.c
 @@ -422,6 +422,12 @@ static int mt7996_eeprom_parse_band_config(struct mt7996_phy *phy)
@@ -29,10 +29,10 @@
  }
  
 diff --git a/mt7996/init.c b/mt7996/init.c
-index f5bff109..cedadefc 100644
+index 1a3b867..8240735 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -35,7 +35,7 @@ static const struct ieee80211_iface_combination if_comb[] = {
+@@ -32,7 +32,7 @@ static const struct ieee80211_iface_combination if_comb[] = {
  		.limits = if_limits,
  		.n_limits = ARRAY_SIZE(if_limits),
  		.max_interfaces = MT7996_MAX_INTERFACES,
@@ -41,7 +41,7 @@
  		.beacon_int_infra_match = true,
  		.radar_detect_widths = BIT(NL80211_CHAN_WIDTH_20_NOHT) |
  				       BIT(NL80211_CHAN_WIDTH_20) |
-@@ -46,6 +46,33 @@ static const struct ieee80211_iface_combination if_comb[] = {
+@@ -43,6 +43,33 @@ static const struct ieee80211_iface_combination if_comb[] = {
  	}
  };
  
@@ -75,7 +75,7 @@
  static ssize_t mt7996_thermal_temp_show(struct device *dev,
  					struct device_attribute *attr,
  					char *buf)
-@@ -419,8 +446,9 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
+@@ -416,8 +443,9 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
  	ieee80211_hw_set(hw, SUPPORTS_TX_ENCAP_OFFLOAD);
  	ieee80211_hw_set(hw, SUPPORTS_RX_DECAP_OFFLOAD);
  	ieee80211_hw_set(hw, WANT_MONITOR_VIF);
@@ -86,7 +86,7 @@
  
  	hw->max_tx_fragments = 4;
  
-@@ -464,6 +492,12 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
+@@ -461,6 +489,12 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
  
  	wiphy->max_scan_ssids = 4;
  	wiphy->max_scan_ie_len = IEEE80211_MAX_DATA_LEN;
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0082-mtk-mt76-mt7996-support-multi-link-vif-links-and-MLO.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0082-mtk-mt76-mt7996-support-multi-link-vif-links-and-MLO.patch
index 7d6ed45..e28e171 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0082-mtk-mt76-mt7996-support-multi-link-vif-links-and-MLO.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0082-mtk-mt76-mt7996-support-multi-link-vif-links-and-MLO.patch
@@ -1,7 +1,7 @@
-From 59199b2eabeb1d8ce11bf644c4ecd565a385c663 Mon Sep 17 00:00:00 2001
+From bc299e0b13412752d12524742ed9a4ff7e28c2bf Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Thu, 23 Nov 2023 18:22:11 +0800
-Subject: [PATCH 082/223] mtk: mt76: mt7996: support multi-link vif links and
+Subject: [PATCH 082/193] mtk: mt76: mt7996: support multi-link vif links and
  MLO bss callbacks
 
 Rework add/remove interface functions to add/remove bss_conf functions,
@@ -18,7 +18,7 @@
  3 files changed, 267 insertions(+), 66 deletions(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 98afb057..dc7ee54c 100644
+index 095892a..c532062 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -205,6 +205,38 @@ static int get_omac_idx(enum nl80211_iftype type, u64 mask)
@@ -284,7 +284,7 @@
  
  	mutex_unlock(&dev->mt76.mutex);
  }
-@@ -714,10 +815,31 @@ mt7996_update_mu_group(struct ieee80211_hw *hw, struct ieee80211_bss_conf *conf,
+@@ -713,10 +814,31 @@ mt7996_update_mu_group(struct ieee80211_hw *hw, struct ieee80211_bss_conf *conf,
  	mt76_wr(dev, MT_WF_PHYRX_BAND_GID_TAB_POS3(band), mu[3]);
  }
  
@@ -320,7 +320,7 @@
  {
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
  	struct mt7996_bss_conf *mconf;
-@@ -733,7 +855,6 @@ static void mt7996_bss_info_changed(struct ieee80211_hw *hw,
+@@ -732,7 +854,6 @@ static void mt7996_bss_info_changed(struct ieee80211_hw *hw,
  	 * and then peer references bss_info_rfch to set bandwidth cap.
  	 */
  	if ((changed & BSS_CHANGED_BSSID && !is_zero_ether_addr(info->bssid)) ||
@@ -328,7 +328,7 @@
  	    (changed & BSS_CHANGED_BEACON_ENABLED && info->enable_beacon)) {
  		mt7996_mcu_add_bss_info(phy, info, mconf, mlink, true);
  		mt7996_mcu_add_sta(dev, info, mconf, NULL, mlink, true,
-@@ -1081,7 +1202,7 @@ mt7996_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
+@@ -1080,7 +1201,7 @@ mt7996_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
  	u64 ret;
  
  	mutex_lock(&dev->mt76.mutex);
@@ -337,7 +337,7 @@
  	ret = __mt7996_get_tsf(hw, mconf);
  	mutex_unlock(&dev->mt76.mutex);
  
-@@ -1104,7 +1225,7 @@ mt7996_set_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -1103,7 +1224,7 @@ mt7996_set_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  
  	mutex_lock(&dev->mt76.mutex);
  
@@ -346,7 +346,7 @@
  	n = mconf->mt76.omac_idx > HW_BSSID_MAX ? HW_BSSID_0
  					       : mconf->mt76.omac_idx;
  	mt76_wr(dev, MT_LPON_UTTR0(phy->mt76->band_idx), tsf.t32[0]);
-@@ -1132,7 +1253,7 @@ mt7996_offset_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -1131,7 +1252,7 @@ mt7996_offset_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  
  	mutex_lock(&dev->mt76.mutex);
  
@@ -355,7 +355,7 @@
  	n = mconf->mt76.omac_idx > HW_BSSID_MAX ? HW_BSSID_0
  					       : mconf->mt76.omac_idx;
  	mt76_wr(dev, MT_LPON_UTTR0(phy->mt76->band_idx), tsf.t32[0]);
-@@ -1307,7 +1428,7 @@ mt7996_set_bitrate_mask(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -1306,7 +1427,7 @@ mt7996_set_bitrate_mask(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	u32 changed = IEEE80211_RC_SUPP_RATES_CHANGED;
  
  	mutex_lock(&dev->mt76.mutex);
@@ -364,7 +364,7 @@
  	mconf->bitrate_mask = *mask;
  	mutex_unlock(&dev->mt76.mutex);
  
-@@ -1527,7 +1648,7 @@ void mt7996_get_et_stats(struct ieee80211_hw *hw,
+@@ -1526,7 +1647,7 @@ void mt7996_get_et_stats(struct ieee80211_hw *hw,
  	int i, ei = 0;
  
  	mutex_lock(&dev->mt76.mutex);
@@ -373,7 +373,7 @@
  	wi.idx = mconf->mt76.idx,
  
  	mt7996_mac_update_stats(phy);
-@@ -1900,6 +2021,8 @@ mt7996_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -1899,6 +2020,8 @@ mt7996_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	struct mt7996_phy *phy = ctx->phy;
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
  	struct mt7996_bss_conf *mconf;
@@ -382,7 +382,7 @@
  
  	wiphy_info(hw->wiphy, "Assign VIF (addr: %pM, type: %d, link_id: %d) to channel context: %d MHz\n",
  		    vif->addr, vif->type, link_conf->link_id,
-@@ -1907,10 +2030,24 @@ mt7996_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -1906,10 +2029,24 @@ mt7996_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  
  	mutex_lock(&phy->dev->mt76.mutex);
  
@@ -408,7 +408,7 @@
  	mutex_unlock(&phy->dev->mt76.mutex);
  
  	return 0;
-@@ -1936,7 +2073,7 @@ mt7996_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -1935,7 +2072,7 @@ mt7996_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	if (test_bit(MT76_SCANNING, &phy->mt76->state))
  		mt7996_scan_complete(phy, true);
  
@@ -417,7 +417,7 @@
  	mconf->chanctx = NULL;
  	ctx->nbss_assigned--;
  
-@@ -1976,6 +2113,54 @@ mt7996_switch_vif_chanctx(struct ieee80211_hw *hw,
+@@ -1975,6 +2112,54 @@ mt7996_switch_vif_chanctx(struct ieee80211_hw *hw,
  	return mt7996_set_channel(phy, &new_ctx->chandef);
  }
  
@@ -472,7 +472,7 @@
  const struct ieee80211_ops mt7996_ops = {
  	.add_chanctx = ieee80211_emulate_add_chanctx,
  	.remove_chanctx = ieee80211_emulate_remove_chanctx,
-@@ -1989,7 +2174,8 @@ const struct ieee80211_ops mt7996_ops = {
+@@ -1988,7 +2173,8 @@ const struct ieee80211_ops mt7996_ops = {
  	.config = mt7996_config,
  	.conf_tx = mt7996_conf_tx,
  	.configure_filter = mt7996_configure_filter,
@@ -482,14 +482,14 @@
  	.sta_state = mt76_sta_state,
  	.sta_pre_rcu_remove = mt76_sta_pre_rcu_remove,
  	.sta_rc_update = mt7996_sta_rc_update,
-@@ -2035,4 +2221,5 @@ const struct ieee80211_ops mt7996_ops = {
+@@ -2034,4 +2220,5 @@ const struct ieee80211_ops mt7996_ops = {
  	.assign_vif_chanctx = mt7996_assign_vif_chanctx,
  	.unassign_vif_chanctx = mt7996_unassign_vif_chanctx,
  	.switch_vif_chanctx = mt7996_switch_vif_chanctx,
 +	.change_vif_links = mt7996_change_vif_links,
  };
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index ced769b4..081e9ca9 100644
+index af9a838..0384ec2 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -1052,15 +1052,23 @@ static void
@@ -549,7 +549,7 @@
  
  	if (vif->type == NL80211_IFTYPE_MONITOR)
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index d86e24e3..9b9b1f8f 100644
+index d86e24e..9b9b1f8 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -342,6 +342,9 @@ struct mt7996_bss_conf {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0083-mtk-mt76-mt7996-support-multi-link-sta-links-and-MLO.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0083-mtk-mt76-mt7996-support-multi-link-sta-links-and-MLO.patch
index 19b0be2..c8d5f3f 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0083-mtk-mt76-mt7996-support-multi-link-sta-links-and-MLO.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0083-mtk-mt76-mt7996-support-multi-link-sta-links-and-MLO.patch
@@ -1,7 +1,7 @@
-From 62e749b2b89a799e0d137983f4dabc1eeb3ebad8 Mon Sep 17 00:00:00 2001
+From 5bdefd0e1869aadb1d4d0188a670040a25ca4fad Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Wed, 29 Nov 2023 10:12:39 +0800
-Subject: [PATCH 083/223] mtk: mt76: mt7996: support multi-link sta links and
+Subject: [PATCH 083/193] mtk: mt76: mt7996: support multi-link sta links and
  MLO sta callbacks
 
 Rework add_sta functions to add_link_sta functions, and support
@@ -19,10 +19,10 @@
  4 files changed, 400 insertions(+), 71 deletions(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index dc7ee54c..106e8534 100644
+index c532062..7da2047 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -926,42 +926,234 @@ mt7996_channel_switch_beacon(struct ieee80211_hw *hw,
+@@ -925,42 +925,234 @@ mt7996_channel_switch_beacon(struct ieee80211_hw *hw,
  	mutex_unlock(&dev->mt76.mutex);
  }
  
@@ -277,7 +277,7 @@
  	case MT_BAND1:
  		phy = mt7996_phy2(dev);
  		break;
-@@ -984,69 +1176,26 @@ int mt7996_mac_sta_event(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -983,69 +1175,26 @@ int mt7996_mac_sta_event(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  			 struct ieee80211_sta *sta, enum mt76_sta_event ev)
  {
  	struct mt7996_dev *dev = container_of(mdev, struct mt7996_dev, mt76);
@@ -355,7 +355,7 @@
  }
  
  static void mt7996_tx(struct ieee80211_hw *hw,
-@@ -2161,6 +2310,32 @@ mt7996_change_vif_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2160,6 +2309,32 @@ mt7996_change_vif_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	return ret;
  }
  
@@ -388,14 +388,14 @@
  const struct ieee80211_ops mt7996_ops = {
  	.add_chanctx = ieee80211_emulate_add_chanctx,
  	.remove_chanctx = ieee80211_emulate_remove_chanctx,
-@@ -2222,4 +2397,5 @@ const struct ieee80211_ops mt7996_ops = {
+@@ -2221,4 +2396,5 @@ const struct ieee80211_ops mt7996_ops = {
  	.unassign_vif_chanctx = mt7996_unassign_vif_chanctx,
  	.switch_vif_chanctx = mt7996_switch_vif_chanctx,
  	.change_vif_links = mt7996_change_vif_links,
 +	.change_sta_links = mt7996_change_sta_links,
  };
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 081e9ca9..96d4d5b0 100644
+index 0384ec2..aeeb393 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -2433,6 +2433,123 @@ out:
@@ -523,7 +523,7 @@
  mt7996_mcu_sta_key_tlv(struct mt76_wcid *wcid,
  		       struct sk_buff *skb,
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index b15796dc..23d44cd3 100644
+index b15796d..23d44cd 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -692,6 +692,35 @@ struct sta_rec_hdr_trans {
@@ -563,7 +563,7 @@
  	__le16 tag;
  	__le16 len;
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 9b9b1f8f..f6933418 100644
+index 9b9b1f8..f693341 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -331,6 +331,8 @@ struct mt7996_sta {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0084-mtk-mt76-mt7996-introduce-mt7996_band_phy-for-ch-ban.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0084-mtk-mt76-mt7996-introduce-mt7996_band_phy-for-ch-ban.patch
index 96da326..c9cbee3 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0084-mtk-mt76-mt7996-introduce-mt7996_band_phy-for-ch-ban.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0084-mtk-mt76-mt7996-introduce-mt7996_band_phy-for-ch-ban.patch
@@ -1,7 +1,7 @@
-From a77bf1528855525590647055a6d5c4b760946efc Mon Sep 17 00:00:00 2001
+From b13eef9898fec66dde706874155a5325d4244b1e Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Fri, 1 Dec 2023 16:01:53 +0800
-Subject: [PATCH 084/223] mtk: mt76: mt7996: introduce mt7996_band_phy() for ch
+Subject: [PATCH 084/193] mtk: mt76: mt7996: introduce mt7996_band_phy() for ch
  band and phy mapping
 
 For MLO devices, one ieee80211_hw can be mapped to several bands, and
@@ -16,7 +16,7 @@
  2 files changed, 112 insertions(+), 59 deletions(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 106e8534..ae1b2875 100644
+index 7da2047..6cff54f 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -41,9 +41,8 @@ static void mt7996_testmode_disable_all(struct mt7996_dev *dev)
@@ -187,7 +187,7 @@
  }
  
  static inline int get_free_idx(u32 mask, u8 start, u8 end)
-@@ -2059,7 +2079,7 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2058,7 +2078,7 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	       struct ieee80211_scan_request *hw_req)
  {
  	struct cfg80211_scan_request *req = &hw_req->req;
@@ -196,7 +196,7 @@
  
  	mutex_lock(&phy->dev->mt76.mutex);
  	if (WARN_ON(phy->scan_req || phy->scan_chan)) {
-@@ -2081,19 +2101,30 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2080,19 +2100,30 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  static void
  mt7996_cancel_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
  {
@@ -234,7 +234,7 @@
  	int ret;
  
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index f6933418..38b924b5 100644
+index f693341..38b924b 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -793,6 +793,28 @@ mt7996_has_background_radar(struct mt7996_dev *dev)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0085-mtk-mt76-mt7996-rework-ieee80211_ops-callbacks-for-l.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0085-mtk-mt76-mt7996-rework-ieee80211_ops-callbacks-for-l.patch
index f87ae95..aca1d87 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0085-mtk-mt76-mt7996-rework-ieee80211_ops-callbacks-for-l.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0085-mtk-mt76-mt7996-rework-ieee80211_ops-callbacks-for-l.patch
@@ -1,7 +1,7 @@
-From 088cb092b3a6b3387d2d6f7ee5100ac803ff626a Mon Sep 17 00:00:00 2001
+From 37fa4373e33da2f65b06318e86a30256aef4f3d9 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Fri, 1 Dec 2023 17:26:43 +0800
-Subject: [PATCH 085/223] mtk: mt76: mt7996: rework ieee80211_ops callbacks for
+Subject: [PATCH 085/193] mtk: mt76: mt7996: rework ieee80211_ops callbacks for
  link consideration
 
 Extend ieee80211 callback functions to support multi-link operation.
@@ -15,7 +15,7 @@
  1 file changed, 204 insertions(+), 109 deletions(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index ae1b2875..580cb2a5 100644
+index 6cff54f..f6b02b8 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -566,7 +566,6 @@ static int mt7996_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
@@ -172,7 +172,7 @@
  
  	/* firmware uses access class index */
  	mconf->queue_params[mq_to_aci[queue]] = *params;
-@@ -838,19 +848,26 @@ mt7996_update_mu_group(struct ieee80211_hw *hw, struct ieee80211_bss_conf *conf,
+@@ -837,19 +847,26 @@ mt7996_update_mu_group(struct ieee80211_hw *hw, struct ieee80211_bss_conf *conf,
  static void mt7996_vif_cfg_changed(struct ieee80211_hw *hw,
  				   struct ieee80211_vif *vif, u64 changed)
  {
@@ -206,7 +206,7 @@
  	}
  
  	mutex_unlock(&dev->mt76.mutex);
-@@ -869,8 +886,13 @@ static void mt7996_link_info_changed(struct ieee80211_hw *hw,
+@@ -868,8 +885,13 @@ static void mt7996_link_info_changed(struct ieee80211_hw *hw,
  
  	mutex_lock(&dev->mt76.mutex);
  
@@ -222,7 +222,7 @@
  	/* station mode uses BSSID to map the wlan entry to a peer,
  	 * and then peer references bss_info_rfch to set bandwidth cap.
  	 */
-@@ -926,6 +948,7 @@ static void mt7996_link_info_changed(struct ieee80211_hw *hw,
+@@ -925,6 +947,7 @@ static void mt7996_link_info_changed(struct ieee80211_hw *hw,
  	if (changed & BSS_CHANGED_MU_GROUPS)
  		mt7996_update_mu_group(hw, info, mconf);
  
@@ -230,7 +230,7 @@
  	mutex_unlock(&dev->mt76.mutex);
  }
  
-@@ -936,13 +959,22 @@ mt7996_channel_switch_beacon(struct ieee80211_hw *hw,
+@@ -935,13 +958,22 @@ mt7996_channel_switch_beacon(struct ieee80211_hw *hw,
  {
  	struct mt7996_dev *dev = mt7996_hw_dev(hw);
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
@@ -258,7 +258,7 @@
  	mutex_unlock(&dev->mt76.mutex);
  }
  
-@@ -1218,34 +1250,74 @@ void mt7996_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -1217,34 +1249,74 @@ void mt7996_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  	mt7996_mac_sta_remove_links(dev, vif, sta, rem);
  }
  
@@ -345,7 +345,7 @@
  }
  
  static int mt7996_set_rts_threshold(struct ieee80211_hw *hw, u32 val)
-@@ -1281,7 +1353,7 @@ mt7996_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -1280,7 +1352,7 @@ mt7996_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	mtxq = (struct mt76_txq *)txq->drv_priv;
  
  	mutex_lock(&dev->mt76.mutex);
@@ -354,7 +354,7 @@
  	switch (action) {
  	case IEEE80211_AMPDU_RX_START:
  		mt76_rx_aggr_start(&dev->mt76, &mlink->wcid, tid, ssn,
-@@ -1496,7 +1568,7 @@ static void mt7996_sta_statistics(struct ieee80211_hw *hw,
+@@ -1495,7 +1567,7 @@ static void mt7996_sta_statistics(struct ieee80211_hw *hw,
  
  	/* TODO: support per-link rate report */
  	mutex_lock(&dev->mt76.mutex);
@@ -363,7 +363,7 @@
  	if (!mlink)
  		goto out;
  
-@@ -1556,7 +1628,7 @@ static void mt7996_sta_rc_work(void *data, struct ieee80211_sta *sta)
+@@ -1555,7 +1627,7 @@ static void mt7996_sta_rc_work(void *data, struct ieee80211_sta *sta)
  	u32 *changed = data;
  
  	rcu_read_lock();
@@ -372,7 +372,7 @@
  
  	spin_lock_bh(&dev->mt76.sta_poll_lock);
  	mlink->changed |= *changed;
-@@ -1623,19 +1695,26 @@ static void mt7996_sta_set_4addr(struct ieee80211_hw *hw,
+@@ -1622,19 +1694,26 @@ static void mt7996_sta_set_4addr(struct ieee80211_hw *hw,
  	struct mt7996_dev *dev = mt7996_hw_dev(hw);
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
@@ -408,7 +408,7 @@
  	mutex_unlock(&dev->mt76.mutex);
  }
  
-@@ -1647,19 +1726,26 @@ static void mt7996_sta_set_decap_offload(struct ieee80211_hw *hw,
+@@ -1646,19 +1725,26 @@ static void mt7996_sta_set_decap_offload(struct ieee80211_hw *hw,
  	struct mt7996_dev *dev = mt7996_hw_dev(hw);
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
@@ -444,7 +444,7 @@
  	mutex_unlock(&dev->mt76.mutex);
  }
  
-@@ -1792,9 +1878,13 @@ static void mt7996_ethtool_worker(void *wi_data, struct ieee80211_sta *sta)
+@@ -1791,9 +1877,13 @@ static void mt7996_ethtool_worker(void *wi_data, struct ieee80211_sta *sta)
  {
  	struct mt76_ethtool_worker_info *wi = wi_data;
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
@@ -460,7 +460,7 @@
  		return;
  
  	mt76_ethtool_worker(wi, &mlink->wcid.stats, true);
-@@ -2026,12 +2116,13 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
+@@ -2025,12 +2115,13 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
  			     struct net_device_path *path)
  {
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
@@ -476,7 +476,7 @@
  
  	if (dev->hif2) {
  		switch (dev->option_type) {
-@@ -2051,6 +2142,10 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
+@@ -2050,6 +2141,10 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
  	if (!mtk_wed_device_active(wed))
  		return -ENODEV;
  
@@ -487,7 +487,7 @@
  	if (mlink->wcid.idx > MT7996_WTBL_STA)
  		return -EIO;
  
-@@ -2383,7 +2478,7 @@ const struct ieee80211_ops mt7996_ops = {
+@@ -2382,7 +2477,7 @@ const struct ieee80211_ops mt7996_ops = {
  	.vif_cfg_changed = mt7996_vif_cfg_changed,
  	.link_info_changed = mt7996_link_info_changed,
  	.sta_state = mt76_sta_state,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0086-mtk-mt76-mt7996-rework-TXD-for-multi-link-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0086-mtk-mt76-mt7996-rework-TXD-for-multi-link-support.patch
index 9b5eeed..f14cbfe 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0086-mtk-mt76-mt7996-rework-TXD-for-multi-link-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0086-mtk-mt76-mt7996-rework-TXD-for-multi-link-support.patch
@@ -1,7 +1,7 @@
-From ee502aed06bf89606b05b5ac3e2d89b766de7772 Mon Sep 17 00:00:00 2001
+From d6863b43e892718e59245501afd54e322ba1ecc2 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Mon, 4 Dec 2023 11:25:54 +0800
-Subject: [PATCH 086/223] mtk: mt76: mt7996: rework TXD for multi-link support
+Subject: [PATCH 086/193] mtk: mt76: mt7996: rework TXD for multi-link support
 
 This is a preliminary patch to add MLO support for mt7996 chipsets.
 
@@ -14,7 +14,7 @@
  2 files changed, 73 insertions(+), 24 deletions(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 8b682842..26878e29 100644
+index 8b68284..26878e2 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -627,9 +627,8 @@ mt7996_mac_write_txwi_8023(struct mt7996_dev *dev, __le32 *txwi,
@@ -179,7 +179,7 @@
  	txp->fw.rept_wds_wcid = cpu_to_le16(sta ? wcid->idx : 0xfff);
  
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 38b924b5..bde3bec1 100644
+index 38b924b..bde3bec 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -835,6 +835,15 @@ mlink_dereference_protected(struct mt7996_sta *msta, u8 link_id)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0087-mtk-mt76-mt7996-rework-TXS-for-multi-link-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0087-mtk-mt76-mt7996-rework-TXS-for-multi-link-support.patch
index 8191d6a..32cb8a3 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0087-mtk-mt76-mt7996-rework-TXS-for-multi-link-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0087-mtk-mt76-mt7996-rework-TXS-for-multi-link-support.patch
@@ -1,7 +1,7 @@
-From 40622f831dbacee3a7b35c3786fd81d0abf733bd Mon Sep 17 00:00:00 2001
+From 5407ee03fdd87741ef778a14a3a15b4ab12ec7ee Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Mon, 4 Dec 2023 11:57:38 +0800
-Subject: [PATCH 087/223] mtk: mt76: mt7996: rework TXS for multi-link support
+Subject: [PATCH 087/193] mtk: mt76: mt7996: rework TXS for multi-link support
 
 This is a preliminary patch to add MLO support for mt7996 chipsets.
 
@@ -25,7 +25,7 @@
  3 files changed, 34 insertions(+), 2 deletions(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 26878e29..92628e17 100644
+index 26878e2..92628e1 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -1207,7 +1207,7 @@ mt7996_mac_add_txs_skb(struct mt7996_dev *dev, struct mt76_wcid *wcid,
@@ -47,10 +47,10 @@
  	if (list_empty(&mlink->wcid.poll_list))
  		list_add_tail(&mlink->wcid.poll_list, &dev->mt76.sta_poll_list);
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 580cb2a5..cadfee9f 100644
+index f6b02b8..743a7a8 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -2319,6 +2319,7 @@ mt7996_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2318,6 +2318,7 @@ mt7996_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	mconf = mconf_dereference_protected(mvif, link_id);
  	mconf->chanctx = ctx;
  	ctx->nbss_assigned++;
@@ -59,7 +59,7 @@
  	if (mt7996_hw_phy(hw) == phy)
  		mvif->master_link_id = link_id;
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index bde3bec1..f83308de 100644
+index bde3bec..f83308d 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -359,6 +359,8 @@ struct mt7996_vif {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0088-mtk-mt76-mt7996-rework-RXD-for-multi-link-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0088-mtk-mt76-mt7996-rework-RXD-for-multi-link-support.patch
index ab34986..12976ca 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0088-mtk-mt76-mt7996-rework-RXD-for-multi-link-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0088-mtk-mt76-mt7996-rework-RXD-for-multi-link-support.patch
@@ -1,7 +1,7 @@
-From c30c021612cad8eefe3cae1b4cca929ab5a2d7fd Mon Sep 17 00:00:00 2001
+From f7d5ebc7b839a6f6601f829b5b34d86c86510cf9 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Mon, 4 Dec 2023 14:50:47 +0800
-Subject: [PATCH 088/223] mtk: mt76: mt7996: rework RXD for multi-link support
+Subject: [PATCH 088/193] mtk: mt76: mt7996: rework RXD for multi-link support
 
 This is a preliminary patch to add MLO support for mt7996 chipsets.
 
@@ -13,7 +13,7 @@
  1 file changed, 2 insertions(+), 25 deletions(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 92628e17..98cd7e3b 100644
+index 92628e1..98cd7e3 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -51,29 +51,6 @@ static const struct mt7996_dfs_radar_spec jp_radar_specs = {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0089-mtk-mt76-mt7996-rework-mac-functions-for-multi-link-.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0089-mtk-mt76-mt7996-rework-mac-functions-for-multi-link-.patch
index 29c724a..d54ef9c 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0089-mtk-mt76-mt7996-rework-mac-functions-for-multi-link-.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0089-mtk-mt76-mt7996-rework-mac-functions-for-multi-link-.patch
@@ -1,7 +1,7 @@
-From 83a66d966beb9a326c0a75641d21e562306cc8ab Mon Sep 17 00:00:00 2001
+From fce8d7b3e928e4d56389fbc3460717ce3be1cd90 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Mon, 4 Dec 2023 18:31:02 +0800
-Subject: [PATCH 089/223] mtk: mt76: mt7996: rework mac functions for
+Subject: [PATCH 089/193] mtk: mt76: mt7996: rework mac functions for
  multi-link support
 
 This is a preliminary patch to add MLO support for mt7996 chipsets.
@@ -14,7 +14,7 @@
  1 file changed, 65 insertions(+), 26 deletions(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 98cd7e3b..c4cd5bc2 100644
+index 98cd7e3..c4cd5bc 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -85,10 +85,11 @@ static int mt7996_reverse_frag0_hdr_trans(struct sk_buff *skb, u16 hdr_gap)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0090-mtk-mt76-rework-mcu-functions-for-multi-link-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0090-mtk-mt76-rework-mcu-functions-for-multi-link-support.patch
index 646fbf5..5c5cefe 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0090-mtk-mt76-rework-mcu-functions-for-multi-link-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0090-mtk-mt76-rework-mcu-functions-for-multi-link-support.patch
@@ -1,7 +1,7 @@
-From d3bc0fc0ebebd8cff5549930cb7b5c336fb2b5f4 Mon Sep 17 00:00:00 2001
+From fb9580cf1c7472f764aa260590a7e522a016ec0b Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Thu, 7 Dec 2023 15:39:03 +0800
-Subject: [PATCH 090/223] mtk: mt76: rework mcu functions for multi-link
+Subject: [PATCH 090/193] mtk: mt76: rework mcu functions for multi-link
  support
 
 This is a preliminary patch to add MLO support for mt7996 chipsets.
@@ -15,7 +15,7 @@
  3 files changed, 56 insertions(+), 26 deletions(-)
 
 diff --git a/mt76_connac_mcu.c b/mt76_connac_mcu.c
-index c7145074..0c89222b 100644
+index c714507..0c89222 100644
 --- a/mt76_connac_mcu.c
 +++ b/mt76_connac_mcu.c
 @@ -370,10 +370,11 @@ void mt76_connac_mcu_bss_omac_tlv(struct sk_buff *skb,
@@ -54,7 +54,7 @@
  					      info->newly);
  	if (info->sta && info->enable)
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 11a1224a..ff8a314c 100644
+index 11a1224..ff8a314 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1928,7 +1928,7 @@ mt76_connac_mcu_add_tlv(struct sk_buff *skb, int tag, int len)
@@ -67,7 +67,7 @@
  				   int state, bool newly);
  void mt76_connac_mcu_wtbl_generic_tlv(struct mt76_dev *dev, struct sk_buff *skb,
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 96d4d5b0..7b77cab2 100644
+index aeeb393..cb6f126 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -1174,10 +1174,12 @@ mt7996_mcu_bss_basic_tlv(struct sk_buff *skb, struct ieee80211_bss_conf *conf,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0091-mtk-mt76-rework-connac-helpers.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0091-mtk-mt76-rework-connac-helpers.patch
index b1e017c..bb8adbb 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0091-mtk-mt76-rework-connac-helpers.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0091-mtk-mt76-rework-connac-helpers.patch
@@ -1,7 +1,7 @@
-From 2e58003c154277e36f759a53975c61cbecb9af02 Mon Sep 17 00:00:00 2001
+From c99ed4b7cd1933dd8098e20f40338047894ed505 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Mon, 11 Dec 2023 18:45:00 +0800
-Subject: [PATCH 091/223] mtk: mt76: rework connac helpers
+Subject: [PATCH 091/193] mtk: mt76: rework connac helpers
 
 Rework connac helpers related to rate and phymode.
 This is a preliminary patch to add MLO support for mt7996 chipsets.
@@ -20,7 +20,7 @@
  7 files changed, 16 insertions(+), 17 deletions(-)
 
 diff --git a/mt76_connac.h b/mt76_connac.h
-index 445d0f0a..f7766a98 100644
+index 445d0f0..f7766a9 100644
 --- a/mt76_connac.h
 +++ b/mt76_connac.h
 @@ -427,7 +427,7 @@ void mt76_connac2_mac_write_txwi(struct mt76_dev *dev, __le32 *txwi,
@@ -33,7 +33,7 @@
  bool mt76_connac2_mac_fill_txs(struct mt76_dev *dev, struct mt76_wcid *wcid,
  			       __le32 *txs_data);
 diff --git a/mt76_connac_mac.c b/mt76_connac_mac.c
-index a72551ba..e58570c2 100644
+index a72551b..e58570c 100644
 --- a/mt76_connac_mac.c
 +++ b/mt76_connac_mac.c
 @@ -291,12 +291,11 @@ EXPORT_SYMBOL_GPL(mt76_connac_init_tx_queues);
@@ -93,7 +93,7 @@
  		u32 val = MT_TXD6_FIXED_BW;
  
 diff --git a/mt76_connac_mcu.c b/mt76_connac_mcu.c
-index 0c89222b..e4e6c0d3 100644
+index 0c89222..e4e6c0d 100644
 --- a/mt76_connac_mcu.c
 +++ b/mt76_connac_mcu.c
 @@ -1368,7 +1368,7 @@ u8 mt76_connac_get_phy_mode(struct mt76_phy *phy, struct ieee80211_vif *vif,
@@ -118,7 +118,7 @@
  
  	switch (band) {
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index ff8a314c..1dcd1696 100644
+index ff8a314..1dcd169 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -2041,7 +2041,7 @@ mt76_connac_get_eht_phy_cap(struct mt76_phy *phy, struct ieee80211_vif *vif);
@@ -131,7 +131,7 @@
  
  int mt76_connac_mcu_add_key(struct mt76_dev *dev, struct ieee80211_vif *vif,
 diff --git a/mt7925/main.c b/mt7925/main.c
-index 791c8b00..147b71e7 100644
+index 791c8b0..147b71e 100644
 --- a/mt7925/main.c
 +++ b/mt7925/main.c
 @@ -806,7 +806,7 @@ mt7925_get_rates_table(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
@@ -144,10 +144,10 @@
  
  	if (beacon && ht) {
 diff --git a/mt7996/main.c b/mt7996/main.c
-index cadfee9f..68234032 100644
+index 743a7a8..3f0c0ec 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -802,7 +802,7 @@ mt7996_get_rates_table(struct ieee80211_hw *hw, struct ieee80211_bss_conf *conf,
+@@ -801,7 +801,7 @@ mt7996_get_rates_table(struct ieee80211_hw *hw, struct ieee80211_bss_conf *conf,
  	u16 rate;
  	u8 i, idx;
  
@@ -157,7 +157,7 @@
  	if (beacon) {
  		struct mt7996_phy *phy = mphy->priv;
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 7b77cab2..edaf8814 100644
+index cb6f126..f4493c9 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -1224,7 +1224,7 @@ mt7996_mcu_bss_basic_tlv(struct sk_buff *skb, struct ieee80211_bss_conf *conf,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0092-mtk-mt76-mt7996-handle-mapping-for-hw-and-phy.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0092-mtk-mt76-mt7996-handle-mapping-for-hw-and-phy.patch
index 2214557..dbbfae9 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0092-mtk-mt76-mt7996-handle-mapping-for-hw-and-phy.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0092-mtk-mt76-mt7996-handle-mapping-for-hw-and-phy.patch
@@ -1,7 +1,7 @@
-From eb1ff9f088a5f55389f499e53b63b5f183025a61 Mon Sep 17 00:00:00 2001
+From e006a5bd3426c65015ad3437cc840f36e4a30c54 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Tue, 5 Dec 2023 13:56:51 +0800
-Subject: [PATCH 092/223] mtk: mt76: mt7996: handle mapping for hw and phy
+Subject: [PATCH 092/193] mtk: mt76: mt7996: handle mapping for hw and phy
 
 We've used mt7996_band_phy() to do mapping from ieee80211_hw to mt7996_phy,
 and this patch is a temporal workaround for opposite direction.
@@ -16,7 +16,7 @@
  4 files changed, 60 insertions(+), 13 deletions(-)
 
 diff --git a/mac80211.c b/mac80211.c
-index ec73fe00..03632279 100644
+index ec73fe0..0363227 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -823,9 +823,13 @@ EXPORT_SYMBOL_GPL(mt76_has_tx_pending);
@@ -55,7 +55,7 @@
  
  static void
 diff --git a/mt76.h b/mt76.h
-index 36e92dfe..9fa411cb 100644
+index 36e92df..9fa411c 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -843,6 +843,7 @@ struct mt76_vif {
@@ -83,7 +83,7 @@
  mt76_get_txwi_ptr(struct mt76_dev *dev, struct mt76_txwi_cache *t)
  {
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index c4cd5bc2..f9aa0e57 100644
+index c4cd5bc..f9aa0e5 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -2394,7 +2394,10 @@ void mt7996_mac_work(struct work_struct *work)
@@ -108,7 +108,7 @@
  				      NULL)) {
  		rcu_read_unlock();
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 68234032..01c736a9 100644
+index 3f0c0ec..bfa78e3 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -173,6 +173,7 @@ static void mt7996_stop(struct ieee80211_hw *hw, bool suspend)
@@ -157,8 +157,8 @@
  
  #define MT76_FILTER(_flag, _hw) do {					\
  		flags |= *total_flags & FIF_##_flag;			\
-@@ -762,12 +771,26 @@ static void mt7996_configure_filter(struct ieee80211_hw *hw,
- 			     MT_WF_RFCR_DROP_NDPA);
+@@ -761,12 +770,26 @@ static void mt7996_configure_filter(struct ieee80211_hw *hw,
+ 			     MT_WF_RFCR_DROP_CTL_RSV);
  
  	*total_flags = flags;
 -	mt76_wr(dev, MT_WF_RFCR(phy->mt76->band_idx), phy->rxfilter);
@@ -189,7 +189,7 @@
  
  	mutex_unlock(&dev->mt76.mutex);
  }
-@@ -2188,7 +2211,7 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2187,7 +2210,7 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	phy->scan_chan_idx = 0;
  	mutex_unlock(&phy->dev->mt76.mutex);
  
@@ -198,7 +198,7 @@
  
  	return 0;
  }
-@@ -2205,7 +2228,8 @@ mt7996_cancel_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
+@@ -2204,7 +2227,8 @@ mt7996_cancel_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
  			continue;
  
  		phy = mt7996_band_phy(hw, band);
@@ -208,7 +208,7 @@
  			continue;
  
  		cancel_delayed_work_sync(&phy->scan_work);
-@@ -2226,6 +2250,7 @@ mt7996_add_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *conf)
+@@ -2225,6 +2249,7 @@ mt7996_add_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *conf)
  	wiphy_info(hw->wiphy, "%s: add %u\n", __func__, conf->def.chan->hw_value);
  	mutex_lock(&phy->dev->mt76.mutex);
  
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0093-mtk-mt76-mt7996-handle-mapping-for-hw-and-vif.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0093-mtk-mt76-mt7996-handle-mapping-for-hw-and-vif.patch
index fed2615..d758ebc 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0093-mtk-mt76-mt7996-handle-mapping-for-hw-and-vif.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0093-mtk-mt76-mt7996-handle-mapping-for-hw-and-vif.patch
@@ -1,7 +1,7 @@
-From d1ceb708475e11cf159886d4c9e6ce78c4d3030d Mon Sep 17 00:00:00 2001
+From abadd35e16e05493cadfadde59956327312b762d Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Fri, 8 Dec 2023 18:08:13 +0800
-Subject: [PATCH 093/223] mtk: mt76: mt7996: handle mapping for hw and vif
+Subject: [PATCH 093/193] mtk: mt76: mt7996: handle mapping for hw and vif
 
 We have several temporal workarounds for ieee80211_hw and mt76_phy
 mappings. For legacy MBSS cases, we also need a method to do the
@@ -24,7 +24,7 @@
  9 files changed, 46 insertions(+), 9 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index 38701c71..3f1fb6c2 100644
+index 38701c7..3f1fb6c 100644
 --- a/dma.c
 +++ b/dma.c
 @@ -685,7 +685,7 @@ free:
@@ -37,7 +37,7 @@
  	ieee80211_tx_status_ext(hw, &status);
  	spin_unlock_bh(&dev->rx_lock);
 diff --git a/mac80211.c b/mac80211.c
-index 03632279..b1af346a 100644
+index 0363227..b1af346 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -1546,7 +1546,7 @@ void mt76_wcid_cleanup(struct mt76_dev *dev, struct mt76_wcid *wcid)
@@ -50,7 +50,7 @@
  	}
  }
 diff --git a/mt76.h b/mt76.h
-index 9fa411cb..2dea07a3 100644
+index 9fa411c..2dea07a 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -567,6 +567,9 @@ struct mt76_driver_ops {
@@ -88,7 +88,7 @@
  }
  
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index f9aa0e57..a48e4f44 100644
+index f9aa0e5..a48e4f4 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -2857,13 +2857,23 @@ static void mt7996_scan_check_sta(void *data, struct ieee80211_sta *sta)
@@ -133,7 +133,7 @@
 +	}
 +}
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 01c736a9..cabd5729 100644
+index bfa78e3..02b6798 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -444,6 +444,7 @@ static int mt7996_add_interface(struct ieee80211_hw *hw,
@@ -145,7 +145,7 @@
  
  	ret = mt7996_add_bss_conf(phy, vif, &vif->bss_conf);
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index edaf8814..e7ee970b 100644
+index f4493c9..3ecaa0d 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -2955,11 +2955,11 @@ int mt7996_mcu_beacon_inband_discov(struct mt7996_dev *dev,
@@ -163,7 +163,7 @@
  
  	if (!skb) {
 diff --git a/mt7996/mmio.c b/mt7996/mmio.c
-index 8ac1b12a..ee5ee5a5 100644
+index 8ac1b12..ee5ee5a 100644
 --- a/mt7996/mmio.c
 +++ b/mt7996/mmio.c
 @@ -659,6 +659,7 @@ struct mt7996_dev *mt7996_mmio_probe(struct device *pdev,
@@ -175,7 +175,7 @@
  	struct mt7996_dev *dev;
  	struct mt76_dev *mdev;
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index f83308de..9dd4d478 100644
+index f83308d..9dd4d47 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -355,6 +355,7 @@ struct mt7996_vif {
@@ -196,7 +196,7 @@
  void mt7996_coredump(struct mt7996_dev *dev, u8 state);
  int mt7996_run(struct ieee80211_hw *hw);
 diff --git a/tx.c b/tx.c
-index a78ab2c8..95c84dab 100644
+index 330b8d3..7906023 100644
 --- a/tx.c
 +++ b/tx.c
 @@ -76,7 +76,7 @@ mt76_tx_status_unlock(struct mt76_dev *dev, struct sk_buff_head *list)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0094-mtk-mt76-mt7996-rework-scanning-parts-for-MLD-STA-su.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0094-mtk-mt76-mt7996-rework-scanning-parts-for-MLD-STA-su.patch
index 8dc2209..c879b9e 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0094-mtk-mt76-mt7996-rework-scanning-parts-for-MLD-STA-su.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0094-mtk-mt76-mt7996-rework-scanning-parts-for-MLD-STA-su.patch
@@ -1,7 +1,7 @@
-From 2dd9be1a2d916ec0ca58ec933f55154db6a40bf9 Mon Sep 17 00:00:00 2001
+From fd01b451fe67c4b09c10de44d03a1c02e8bd393e Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Wed, 13 Dec 2023 16:58:31 +0800
-Subject: [PATCH 094/223] mtk: mt76: mt7996: rework scanning parts for MLD STA
+Subject: [PATCH 094/193] mtk: mt76: mt7996: rework scanning parts for MLD STA
  support
 
 During the first scanning, the STA VIF is still a legacy interface,
@@ -17,7 +17,7 @@
  2 files changed, 57 insertions(+), 22 deletions(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index a48e4f44..a30b7dfa 100644
+index a48e4f4..a30b7df 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -2781,23 +2781,40 @@ static void
@@ -105,10 +105,10 @@
  {
  	bool *has_sta = data;
 diff --git a/mt7996/main.c b/mt7996/main.c
-index cabd5729..9ce7c6fb 100644
+index 02b6798..f5a5f72 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -2193,12 +2193,28 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
+@@ -2192,12 +2192,28 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
  
  #endif
  
@@ -137,7 +137,7 @@
  
  	mutex_lock(&phy->dev->mt76.mutex);
  	if (WARN_ON(phy->scan_req || phy->scan_chan)) {
-@@ -2206,10 +2222,23 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2205,10 +2221,23 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  		return -EBUSY;
  	}
  
@@ -162,7 +162,7 @@
  	mutex_unlock(&phy->dev->mt76.mutex);
  
  	ieee80211_queue_delayed_work(mt76_main_hw(phy->mt76), &phy->scan_work, 0);
-@@ -2220,6 +2249,7 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2219,6 +2248,7 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  static void
  mt7996_cancel_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
  {
@@ -170,7 +170,7 @@
  	int band;
  
  	for (band = 0; band < NUM_NL80211_BANDS; band++) {
-@@ -2237,6 +2267,9 @@ mt7996_cancel_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
+@@ -2236,6 +2266,9 @@ mt7996_cancel_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
  
  		mutex_lock(&phy->dev->mt76.mutex);
  		mt7996_scan_complete(phy, true);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0095-mtk-mt76-mt7996-implement-mld-address-translation.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0095-mtk-mt76-mt7996-implement-mld-address-translation.patch
index 0045fb2..aa18a58 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0095-mtk-mt76-mt7996-implement-mld-address-translation.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0095-mtk-mt76-mt7996-implement-mld-address-translation.patch
@@ -1,7 +1,7 @@
-From e5e8751f543d8558637b4b8438f1f2f518effc2b Mon Sep 17 00:00:00 2001
+From 8313c7414f417852ab27a3ee749204e6aa8741aa Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Thu, 7 Dec 2023 16:31:56 +0800
-Subject: [PATCH 095/223] mtk: mt76: mt7996: implement mld address translation
+Subject: [PATCH 095/193] mtk: mt76: mt7996: implement mld address translation
 
 Do the MLD to link address translation for EAPOL and management frames
 in driver.
@@ -18,7 +18,7 @@
  2 files changed, 66 insertions(+), 3 deletions(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index a30b7dfa..9c256655 100644
+index a30b7df..9c25665 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -910,6 +910,26 @@ int mt7996_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
@@ -49,10 +49,10 @@
  	for (i = 0; i < nbuf; i++) {
  		u16 len;
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 9ce7c6fb..75e571b0 100644
+index f5a5f72..39aa5ee 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -1316,14 +1316,56 @@ static void mt7996_tx(struct ieee80211_hw *hw,
+@@ -1315,14 +1315,56 @@ static void mt7996_tx(struct ieee80211_hw *hw,
  
  	rcu_read_lock();
  	if (mvif && msta) {
@@ -112,7 +112,7 @@
  
  		mconf = rcu_dereference(mvif->link[link_id]);
  		mlink = rcu_dereference(msta->link[link_id]);
-@@ -1341,6 +1383,7 @@ static void mt7996_tx(struct ieee80211_hw *hw,
+@@ -1340,6 +1382,7 @@ static void mt7996_tx(struct ieee80211_hw *hw,
  	}
  
  	mt76_tx(mphy, control->sta, wcid, skb);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0096-mtk-mt76-mt7996-use-BSS_CHANGED_TXPOWER-for-txpower-.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0096-mtk-mt76-mt7996-use-BSS_CHANGED_TXPOWER-for-txpower-.patch
index 455160b..f2c5dc8 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0096-mtk-mt76-mt7996-use-BSS_CHANGED_TXPOWER-for-txpower-.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0096-mtk-mt76-mt7996-use-BSS_CHANGED_TXPOWER-for-txpower-.patch
@@ -1,7 +1,7 @@
-From bb16725ec128a46c3205d1cb67f152799bc58bb6 Mon Sep 17 00:00:00 2001
+From 2d87464e6b05838fc3f46cd58de33c3be8262d45 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Tue, 27 Feb 2024 18:07:11 +0800
-Subject: [PATCH 096/223] mtk: mt76: mt7996: use BSS_CHANGED_TXPOWER for
+Subject: [PATCH 096/193] mtk: mt76: mt7996: use BSS_CHANGED_TXPOWER for
  txpower setting
 
 This is a preliminary patch to add MLO support for mt7996 chipsets.
@@ -15,7 +15,7 @@
  4 files changed, 9 insertions(+), 13 deletions(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 75e571b0..5c2bc2b0 100644
+index 39aa5ee..ba63a16 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -665,14 +665,6 @@ static int mt7996_config(struct ieee80211_hw *hw, u32 changed)
@@ -33,7 +33,7 @@
  
  	mutex_lock(&dev->mt76.mutex);
  
-@@ -972,6 +964,9 @@ static void mt7996_link_info_changed(struct ieee80211_hw *hw,
+@@ -971,6 +963,9 @@ static void mt7996_link_info_changed(struct ieee80211_hw *hw,
  	if (changed & BSS_CHANGED_MU_GROUPS)
  		mt7996_update_mu_group(hw, info, mconf);
  
@@ -43,7 +43,7 @@
  out:
  	mutex_unlock(&dev->mt76.mutex);
  }
-@@ -1615,7 +1610,6 @@ mt7996_set_antenna(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant)
+@@ -1614,7 +1609,6 @@ mt7996_set_antenna(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant)
  	mt76_set_stream_caps(phy->mt76, true);
  	mt7996_set_stream_vht_txbf_caps(phy);
  	mt7996_set_stream_he_eht_caps(phy);
@@ -52,7 +52,7 @@
  	mutex_unlock(&dev->mt76.mutex);
  
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index e7ee970b..d9edba0c 100644
+index 3ecaa0d..72b4619 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -5336,7 +5336,8 @@ mt7996_update_max_txpower_cur(struct mt7996_phy *phy, int tx_power)
@@ -75,7 +75,7 @@
  	if (phy->sku_limit_en) {
  		txpower_limit = mt76_get_rate_power_limits(mphy, mphy->chandef.chan,
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 9dd4d478..ba954623 100644
+index 9dd4d47..ba95462 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -984,7 +984,8 @@ int mt7996_mcu_get_chan_mib_info(struct mt7996_phy *phy, bool chan_switch);
@@ -89,7 +89,7 @@
  		       u8 rx_sel, u8 val);
  int mt7996_mcu_rdd_background_disable_timer(struct mt7996_dev *dev,
 diff --git a/mt7996/testmode.c b/mt7996/testmode.c
-index be224373..799e443c 100644
+index be22437..799e443 100644
 --- a/mt7996/testmode.c
 +++ b/mt7996/testmode.c
 @@ -1834,7 +1834,7 @@ mt7996_tm_update_params(struct mt7996_phy *phy, u32 changed)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0097-mtk-mt76-mt7996-temp-support-for-single-wiphy.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0097-mtk-mt76-mt7996-temp-support-for-single-wiphy.patch
index ee07409..6b817ff 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0097-mtk-mt76-mt7996-temp-support-for-single-wiphy.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0097-mtk-mt76-mt7996-temp-support-for-single-wiphy.patch
@@ -1,7 +1,7 @@
-From 0764c048b72deb7ee2f988a4c6f708c661182f81 Mon Sep 17 00:00:00 2001
+From c894ae5e277dd6dfa168eef5edab9914310d31ba Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Thu, 28 Mar 2024 18:50:04 +0800
-Subject: [PATCH 097/223] mtk: mt76: mt7996: temp support for single wiphy
+Subject: [PATCH 097/193] mtk: mt76: mt7996: temp support for single wiphy
 
 Add temporal single wiphy for simultaneously supporting MLD and legacy
 interfaces.
@@ -19,7 +19,7 @@
  7 files changed, 86 insertions(+), 80 deletions(-)
 
 diff --git a/mac80211.c b/mac80211.c
-index b1af346a..a98fe4fb 100644
+index b1af346..a98fe4f 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -823,13 +823,9 @@ EXPORT_SYMBOL_GPL(mt76_has_tx_pending);
@@ -49,7 +49,7 @@
  }
  EXPORT_SYMBOL_GPL(mt76_channel_state);
 diff --git a/mt76.h b/mt76.h
-index 2dea07a3..b65a6b0a 100644
+index 2dea07a..b65a6b0 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -845,8 +845,8 @@ struct mt76_vif {
@@ -79,7 +79,7 @@
  mt76_get_txwi_ptr(struct mt76_dev *dev, struct mt76_txwi_cache *t)
  {
 diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index 8272ead2..f9bd4d91 100644
+index 8272ead..f9bd4d9 100644
 --- a/mt7996/eeprom.c
 +++ b/mt7996/eeprom.c
 @@ -422,12 +422,6 @@ static int mt7996_eeprom_parse_band_config(struct mt7996_phy *phy)
@@ -96,13 +96,13 @@
  }
  
 diff --git a/mt7996/init.c b/mt7996/init.c
-index cedadefc..f26687df 100644
+index 8240735..25ffd69 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -19,13 +19,13 @@ static const struct ieee80211_iface_limit if_limits[] = {
- 		.max = 1,
- 		.types = BIT(NL80211_IFTYPE_ADHOC)
- 	}, {
+@@ -16,13 +16,13 @@
+ 
+ static const struct ieee80211_iface_limit if_limits[] = {
+ 	{
 -		.max = 16,
 +		.max = 16 * 3,
  		.types = BIT(NL80211_IFTYPE_AP)
@@ -115,7 +115,7 @@
  		.types = BIT(NL80211_IFTYPE_STATION)
  	}
  };
-@@ -34,7 +34,7 @@ static const struct ieee80211_iface_combination if_comb[] = {
+@@ -31,7 +31,7 @@ static const struct ieee80211_iface_combination if_comb[] = {
  	{
  		.limits = if_limits,
  		.n_limits = ARRAY_SIZE(if_limits),
@@ -124,7 +124,7 @@
  		.num_different_channels = 3,
  		.beacon_int_infra_match = true,
  		.radar_detect_widths = BIT(NL80211_CHAN_WIDTH_20_NOHT) |
-@@ -417,7 +417,7 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
+@@ -414,7 +414,7 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
  	wiphy->n_iface_combinations = ARRAY_SIZE(if_comb);
  	wiphy->reg_notifier = mt7996_regd_notifier;
  	wiphy->flags |= WIPHY_FLAG_HAS_CHANNEL_SWITCH;
@@ -133,7 +133,7 @@
  
  	wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_BSS_COLOR);
  	wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_VHT_IBSS);
-@@ -795,6 +795,10 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
+@@ -792,6 +792,10 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
  		mtk_wed_device_start(&dev->mt76.mmio.wed_hif2, MT_INT_TX_RX_DONE_EXT);
  	}
  
@@ -144,7 +144,7 @@
  	return 0;
  
  error:
-@@ -811,6 +815,9 @@ mt7996_unregister_phy(struct mt7996_phy *phy, enum mt76_band_id band)
+@@ -808,6 +812,9 @@ mt7996_unregister_phy(struct mt7996_phy *phy, enum mt76_band_id band)
  	if (!phy)
  		return;
  
@@ -154,7 +154,7 @@
  	mt7996_unregister_thermal(phy);
  
  	mphy = phy->dev->mt76.phys[band];
-@@ -1697,6 +1704,12 @@ int mt7996_register_device(struct mt7996_dev *dev)
+@@ -1694,6 +1701,12 @@ int mt7996_register_device(struct mt7996_dev *dev)
  	if (ret)
  		return ret;
  
@@ -167,7 +167,7 @@
  	ieee80211_queue_work(mt76_hw(dev), &dev->init_work);
  
  	dev->recovery.hw_init_done = true;
-@@ -1726,11 +1739,11 @@ error:
+@@ -1723,11 +1736,11 @@ error:
  void mt7996_unregister_device(struct mt7996_dev *dev)
  {
  	cancel_work_sync(&dev->wed_rro.work);
@@ -182,7 +182,7 @@
  	mt7996_mcu_exit(dev);
  	mt7996_tx_token_put(dev);
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 9c256655..f5725b3c 100644
+index 9c25665..f5725b3 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -2414,10 +2414,7 @@ void mt7996_mac_work(struct work_struct *work)
@@ -198,7 +198,7 @@
  }
  
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 5c2bc2b0..d9cd7df1 100644
+index ba63a16..906ae8e 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -140,6 +140,10 @@ static int mt7996_start(struct ieee80211_hw *hw)
@@ -293,7 +293,7 @@
  
  	return 0;
  }
-@@ -773,9 +784,6 @@ static void mt7996_configure_filter(struct ieee80211_hw *hw,
+@@ -772,9 +783,6 @@ static void mt7996_configure_filter(struct ieee80211_hw *hw,
  			continue;
  
  		tmp = dev->mt76.phys[band]->priv;
@@ -303,7 +303,7 @@
  		tmp->rxfilter = phy->rxfilter;
  		mt76_wr(dev, MT_WF_RFCR(tmp->mt76->band_idx), phy->rxfilter);
  
-@@ -1584,9 +1592,11 @@ static int
+@@ -1583,9 +1591,11 @@ static int
  mt7996_set_antenna(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant)
  {
  	struct mt7996_dev *dev = mt7996_hw_dev(hw);
@@ -318,7 +318,7 @@
  
  	if (!tx_ant || tx_ant != rx_ant || ffs(tx_ant) > max_nss)
  		return -EINVAL;
-@@ -1596,20 +1606,34 @@ mt7996_set_antenna(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant)
+@@ -1595,20 +1605,34 @@ mt7996_set_antenna(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant)
  
  	mutex_lock(&dev->mt76.mutex);
  
@@ -365,7 +365,7 @@
  
  	mutex_unlock(&dev->mt76.mutex);
  
-@@ -2265,7 +2289,7 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2264,7 +2288,7 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  
  	if (vif->type == NL80211_IFTYPE_STATION && !ieee80211_vif_is_mld(vif) &&
  	    (phy->mt76 != mvif->deflink.phy->mt76)) {
@@ -374,7 +374,7 @@
  		mt7996_remove_bss_conf(vif, &vif->bss_conf, &mvif->deflink);
  
  		ret = mt7996_add_bss_conf(phy, vif, &vif->bss_conf);
-@@ -2278,7 +2302,7 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2277,7 +2301,7 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	set_bit(MT76_SCANNING, &phy->mt76->state);
  	mutex_unlock(&phy->dev->mt76.mutex);
  
@@ -383,7 +383,7 @@
  
  	return 0;
  }
-@@ -2286,7 +2310,7 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2285,7 +2309,7 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  static void
  mt7996_cancel_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
  {
@@ -392,7 +392,7 @@
  	int band;
  
  	for (band = 0; band < NUM_NL80211_BANDS; band++) {
-@@ -2296,17 +2320,16 @@ mt7996_cancel_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
+@@ -2295,17 +2319,16 @@ mt7996_cancel_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
  			continue;
  
  		phy = mt7996_band_phy(hw, band);
@@ -414,7 +414,7 @@
  		mutex_unlock(&phy->dev->mt76.mutex);
  	}
  }
-@@ -2321,7 +2344,6 @@ mt7996_add_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *conf)
+@@ -2320,7 +2343,6 @@ mt7996_add_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *conf)
  	wiphy_info(hw->wiphy, "%s: add %u\n", __func__, conf->def.chan->hw_value);
  	mutex_lock(&phy->dev->mt76.mutex);
  
@@ -423,7 +423,7 @@
  		mutex_unlock(&phy->dev->mt76.mutex);
  		return -ENOSPC;
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index ba954623..66908ad2 100644
+index ba95462..66908ad 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -799,21 +799,19 @@ mt7996_has_background_radar(struct mt7996_dev *dev)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0098-mtk-mt76-mt7996-implement-ieee80211_ops-for-link-deb.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0098-mtk-mt76-mt7996-implement-ieee80211_ops-for-link-deb.patch
index 3023032..1b05259 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0098-mtk-mt76-mt7996-implement-ieee80211_ops-for-link-deb.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0098-mtk-mt76-mt7996-implement-ieee80211_ops-for-link-deb.patch
@@ -1,7 +1,7 @@
-From 063ce389fe9a412cb67f97ca6d0d5143dddb22ca Mon Sep 17 00:00:00 2001
+From 6658fb63886a904eee769821de4be82eb520fa64 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Fri, 29 Dec 2023 18:37:41 +0800
-Subject: [PATCH 098/223] mtk: mt76: mt7996: implement ieee80211_ops for link
+Subject: [PATCH 098/193] mtk: mt76: mt7996: implement ieee80211_ops for link
  debugfs
 
 Add .link_sta_add_debugfs and .link_add_debugfs for per-link STA and BSS
@@ -18,7 +18,7 @@
  5 files changed, 214 insertions(+), 4 deletions(-)
 
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index 786bdc38..ab8732dd 100644
+index 786bdc3..ab8732d 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -1294,4 +1294,205 @@ void mt7996_sta_add_debugfs(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
@@ -228,7 +228,7 @@
 +}
  #endif
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index f5725b3c..b8cf557b 100644
+index f5725b3..b8cf557 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -2390,10 +2390,10 @@ void mt7996_mac_work(struct work_struct *work)
@@ -245,10 +245,10 @@
  				if (mt7996_mcu_wa_cmd(phy->dev, MCU_WA_PARAM_CMD(QUERY), MCU_WA_PARAM_BSS_ACQ_PKT_CNT,
  				                      BSS_ACQ_PKT_CNT_BSS_BITMAP_ALL | BSS_ACQ_PKT_CNT_READ_CLR, 0))
 diff --git a/mt7996/main.c b/mt7996/main.c
-index d9cd7df1..fe5bfd72 100644
+index 906ae8e..75d55f4 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -2629,6 +2629,8 @@ const struct ieee80211_ops mt7996_ops = {
+@@ -2628,6 +2628,8 @@ const struct ieee80211_ops mt7996_ops = {
  	CFG80211_TESTMODE_DUMP(mt76_testmode_dump)
  #ifdef CONFIG_MAC80211_DEBUGFS
  	.sta_add_debugfs = mt7996_sta_add_debugfs,
@@ -258,7 +258,7 @@
  	.set_radar_background = mt7996_set_radar_background,
  #ifdef CONFIG_NET_MEDIATEK_SOC_WED
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index d9edba0c..9359a251 100644
+index 72b4619..c484b4f 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -621,8 +621,10 @@ mt7996_mcu_rx_all_sta_info_event(struct mt7996_dev *dev, struct sk_buff *skb)
@@ -275,7 +275,7 @@
  		case UNI_ALL_STA_TXRX_AIRTIME:
  			wlan_idx = le16_to_cpu(res->airtime[i].wlan_idx);
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 66908ad2..c94853f2 100644
+index 66908ad..c94853f 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1146,6 +1146,11 @@ int mt7996_mcu_set_pp_en(struct mt7996_phy *phy, u8 mode, u16 bitmap);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0099-mtk-mt76-mt7996-support-multi-link-channel-switch.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0099-mtk-mt76-mt7996-support-multi-link-channel-switch.patch
index a58349a..a8ab5d7 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0099-mtk-mt76-mt7996-support-multi-link-channel-switch.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0099-mtk-mt76-mt7996-support-multi-link-channel-switch.patch
@@ -1,7 +1,7 @@
-From 70a14f12eef8b505890f654876a7f89432070bbf Mon Sep 17 00:00:00 2001
+From 374dc7d4e4eb39e6e7023ec7792f9306051b66e0 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Fri, 19 Jan 2024 14:04:03 +0800
-Subject: [PATCH 099/223] mtk: mt76: mt7996: support multi-link channel switch
+Subject: [PATCH 099/193] mtk: mt76: mt7996: support multi-link channel switch
 
 mtk: wifi: mt76: mt7996: remove the limitation of radar detect width for mlo
 
@@ -27,7 +27,7 @@
  4 files changed, 22 insertions(+), 7 deletions(-)
 
 diff --git a/mac80211.c b/mac80211.c
-index a98fe4fb..a2b111c0 100644
+index a98fe4f..a2b111c 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -1801,7 +1801,7 @@ enum mt76_dfs_state mt76_phy_dfs_state(struct mt76_phy *phy)
@@ -40,7 +40,7 @@
  		    (phy->chandef.chan->flags & IEEE80211_CHAN_RADAR))
  			return MT_DFS_STATE_ACTIVE;
 diff --git a/mt76.h b/mt76.h
-index b65a6b0a..bc263bd4 100644
+index b65a6b0..bc263bd 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -862,6 +862,7 @@ struct mt76_phy {
@@ -52,10 +52,10 @@
  
  	u32 aggr_stats[32];
 diff --git a/mt7996/main.c b/mt7996/main.c
-index fe5bfd72..e3f30b23 100644
+index 75d55f4..e1fa8bc 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -2143,7 +2143,7 @@ static int
+@@ -2142,7 +2142,7 @@ static int
  mt7996_set_radar_background(struct ieee80211_hw *hw,
  			    struct cfg80211_chan_def *chandef)
  {
@@ -64,7 +64,7 @@
  	struct mt7996_dev *dev = phy->dev;
  	int ret = -EINVAL;
  	bool running;
-@@ -2358,6 +2358,7 @@ mt7996_add_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *conf)
+@@ -2357,6 +2357,7 @@ mt7996_add_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *conf)
  	}
  
  	phy->chanctx = ctx;
@@ -72,7 +72,7 @@
  	mutex_unlock(&phy->dev->mt76.mutex);
  
  	if (!mt76_testmode_enabled(phy->mt76) && !phy->mt76->test.bf_en) {
-@@ -2385,8 +2386,10 @@ mt7996_remove_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *co
+@@ -2384,8 +2385,10 @@ mt7996_remove_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *co
  
  	mutex_lock(&phy->dev->mt76.mutex);
  	ctx->assigned = false;
@@ -84,7 +84,7 @@
  	mutex_unlock(&phy->dev->mt76.mutex);
  }
  
-@@ -2398,8 +2401,10 @@ mt7996_change_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *co
+@@ -2397,8 +2400,10 @@ mt7996_change_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *co
  	struct mt7996_phy *phy = ctx->phy;
  
  	wiphy_info(hw->wiphy, "%s: change %u, 0x%x\n", __func__, conf->def.chan->hw_value, changed);
@@ -96,7 +96,7 @@
  
  		mt7996_set_channel(phy, &ctx->chandef);
  	}
-@@ -2497,6 +2502,7 @@ mt7996_switch_vif_chanctx(struct ieee80211_hw *hw,
+@@ -2496,6 +2501,7 @@ mt7996_switch_vif_chanctx(struct ieee80211_hw *hw,
  	mutex_lock(&phy->dev->mt76.mutex);
  
  	phy->chanctx = new_ctx;
@@ -105,7 +105,7 @@
  	new_ctx->chandef = vifs->new_ctx->def;
  	new_ctx->phy = phy;
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 9359a251..d897098e 100644
+index c484b4f..6c92baa 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -362,10 +362,18 @@ int mt7996_mcu_wa_cmd(struct mt7996_dev *dev, int cmd, u32 a1, u32 a2, u32 a3)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0100-mtk-mt76-mt7996-ACS-channel-time-too-long-on-duty-ch.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0100-mtk-mt76-mt7996-ACS-channel-time-too-long-on-duty-ch.patch
index d5ed3fd..f27f1c0 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0100-mtk-mt76-mt7996-ACS-channel-time-too-long-on-duty-ch.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0100-mtk-mt76-mt7996-ACS-channel-time-too-long-on-duty-ch.patch
@@ -1,7 +1,7 @@
-From 8e4e5598fe8695f1234e35849916b1a3fcc862f5 Mon Sep 17 00:00:00 2001
+From 19b2b7434b475fc7cc27f75f82443541cf939174 Mon Sep 17 00:00:00 2001
 From: Michael-CY Lee <michael-cy.lee@mediatek.com>
 Date: Thu, 22 Feb 2024 11:09:10 +0800
-Subject: [PATCH 100/223] mtk: mt76: mt7996: ACS channel time too long on duty
+Subject: [PATCH 100/193] mtk: mt76: mt7996: ACS channel time too long on duty
  channel
 
 This problem happens in SW scan and was already fixed.
@@ -15,7 +15,7 @@
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index e3f30b23..6fad94b8 100644
+index e1fa8bc..85d747d 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -499,6 +499,7 @@ static void ___mt7996_set_channel(struct mt7996_phy *phy,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0101-mtk-mt76-mt7996-add-beacon-monitoring-in-driver-for-.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0101-mtk-mt76-mt7996-add-beacon-monitoring-in-driver-for-.patch
index 66d8cff..f171507 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0101-mtk-mt76-mt7996-add-beacon-monitoring-in-driver-for-.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0101-mtk-mt76-mt7996-add-beacon-monitoring-in-driver-for-.patch
@@ -1,7 +1,7 @@
-From cad5f671fef13c087e4e38058944cac48fecf479 Mon Sep 17 00:00:00 2001
+From 6bc7da4dbb67dbbf9d6e9d02918c1e7e9bbd5793 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Tue, 20 Feb 2024 10:08:01 +0800
-Subject: [PATCH 101/223] mtk: mt76: mt7996: add beacon monitoring in driver
+Subject: [PATCH 101/193] mtk: mt76: mt7996: add beacon monitoring in driver
  for mlo
 
 Add beacon monitoring in driver since mac80211 does not
@@ -38,7 +38,7 @@
  3 files changed, 290 insertions(+), 1 deletion(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index b8cf557b..1cf84fe5 100644
+index b8cf557..1cf84fe 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -559,6 +559,32 @@ mt7996_mac_fill_rx(struct mt7996_dev *dev, enum mt76_rxq_id q,
@@ -294,7 +294,7 @@
  		   struct ieee80211_hw **hw)
  {
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 6fad94b8..67948343 100644
+index 85d747d..9533de2 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -452,6 +452,7 @@ static int mt7996_add_interface(struct ieee80211_hw *hw,
@@ -313,7 +313,7 @@
  
  	mutex_lock(&dev->mt76.mutex);
  
-@@ -1146,6 +1148,9 @@ mt7996_mac_sta_remove_links(struct mt7996_dev *dev, struct ieee80211_vif *vif,
+@@ -1145,6 +1147,9 @@ mt7996_mac_sta_remove_links(struct mt7996_dev *dev, struct ieee80211_vif *vif,
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
  	unsigned int link_id;
  
@@ -323,7 +323,7 @@
  	for_each_set_bit(link_id, &rem, IEEE80211_MLD_MAX_NUM_LINKS) {
  		struct mt7996_bss_conf *mconf =
  			mconf_dereference_protected(mvif, link_id);
-@@ -2588,6 +2593,61 @@ out:
+@@ -2587,6 +2592,61 @@ out:
  	return ret;
  }
  
@@ -385,7 +385,7 @@
  const struct ieee80211_ops mt7996_ops = {
  	.add_chanctx = ieee80211_emulate_add_chanctx,
  	.remove_chanctx = ieee80211_emulate_remove_chanctx,
-@@ -2644,6 +2704,7 @@ const struct ieee80211_ops mt7996_ops = {
+@@ -2643,6 +2703,7 @@ const struct ieee80211_ops mt7996_ops = {
  	.net_fill_forward_path = mt7996_net_fill_forward_path,
  	.net_setup_tc = mt76_wed_net_setup_tc,
  #endif
@@ -394,7 +394,7 @@
  	.remove_chanctx = mt7996_remove_chanctx,
  	.change_chanctx = mt7996_change_chanctx,
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index c94853f2..2a638a4a 100644
+index c94853f..2a638a4 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -131,6 +131,10 @@
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0102-mtk-mt76-mt7996-support-band_idx-option-for-set_mu-g.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0102-mtk-mt76-mt7996-support-band_idx-option-for-set_mu-g.patch
index 95329b4..9aebd6b 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0102-mtk-mt76-mt7996-support-band_idx-option-for-set_mu-g.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0102-mtk-mt76-mt7996-support-band_idx-option-for-set_mu-g.patch
@@ -1,7 +1,7 @@
-From 7b4305017b499ad805701f6022ed92b1e5746aa2 Mon Sep 17 00:00:00 2001
+From a14fec185fd1411d4986e57d43cdcd7d1c558cc7 Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Mon, 4 Mar 2024 16:21:16 +0800
-Subject: [PATCH 102/223] mtk: mt76: mt7996: support band_idx option for
+Subject: [PATCH 102/193] mtk: mt76: mt7996: support band_idx option for
  set_mu/get_mu vendor command
 
 The vendor command set_mu and get_mu should be executed with band_idx.
@@ -17,7 +17,7 @@
  4 files changed, 56 insertions(+), 12 deletions(-)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index d897098e..48837d41 100644
+index 6c92baa..5475d8a 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -5864,12 +5864,23 @@ int mt7996_mcu_set_vow_feature_ctrl(struct mt7996_phy *phy)
@@ -67,7 +67,7 @@
  
  void mt7996_set_beacon_vif(void *data, u8 *mac, struct ieee80211_vif *vif)
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 23d44cd3..9903d88e 100644
+index 23d44cd..9903d88 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -882,6 +882,7 @@ enum {
@@ -79,7 +79,7 @@
  #define RATE_CFG_VAL	GENMASK(7, 0)
  
 diff --git a/mt7996/vendor.c b/mt7996/vendor.c
-index 31688c37..64ef5515 100644
+index 31688c3..64ef551 100644
 --- a/mt7996/vendor.c
 +++ b/mt7996/vendor.c
 @@ -16,6 +16,7 @@ mu_ctrl_policy[NUM_MTK_VENDOR_ATTRS_MU_CTRL] = {
@@ -163,7 +163,7 @@
  
  void mt7996_set_wireless_rts_sigta(struct ieee80211_hw *hw, u8 value) {
 diff --git a/mt7996/vendor.h b/mt7996/vendor.h
-index 0d1ef322..32346775 100644
+index 0d1ef32..3234677 100644
 --- a/mt7996/vendor.h
 +++ b/mt7996/vendor.h
 @@ -68,6 +68,7 @@ enum mtk_vendor_attr_mu_ctrl {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0103-mtk-mt76-mt7996-tmp-disable-VOW.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0103-mtk-mt76-mt7996-tmp-disable-VOW.patch
index 6682f9b..8126afe 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0103-mtk-mt76-mt7996-tmp-disable-VOW.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0103-mtk-mt76-mt7996-tmp-disable-VOW.patch
@@ -1,7 +1,7 @@
-From ab265243158a3d44bd5c0a55d0e92bd6decbb3e2 Mon Sep 17 00:00:00 2001
+From 9858422e0681795d8e9f76629b7ede619ee4c611 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Wed, 20 Mar 2024 22:56:44 +0800
-Subject: [PATCH 103/223] mtk: mt76: mt7996: tmp disable VOW
+Subject: [PATCH 103/193] mtk: mt76: mt7996: tmp disable VOW
 
 FW will return failed when legacy 5G station connects after legacy 2G
 station, need to check.
@@ -12,7 +12,7 @@
  1 file changed, 5 insertions(+), 1 deletion(-)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 48837d41..54b0272c 100644
+index 5475d8a..511ab2d 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -2374,6 +2374,7 @@ int mt7996_mcu_add_rate_ctrl(struct mt7996_dev *dev,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0104-mtk-mt76-mt7996-enable-ampdu-limit-to-avoid-BA-bound.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0104-mtk-mt76-mt7996-enable-ampdu-limit-to-avoid-BA-bound.patch
index 1e446d4..2cfed15 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0104-mtk-mt76-mt7996-enable-ampdu-limit-to-avoid-BA-bound.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0104-mtk-mt76-mt7996-enable-ampdu-limit-to-avoid-BA-bound.patch
@@ -1,7 +1,7 @@
-From bd12a6bbc6783a69d6ab5630b7b7ffda53da88d5 Mon Sep 17 00:00:00 2001
+From dc77f50b68d7901f245533fefae5ad8cf8858710 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Mon, 1 Apr 2024 17:00:21 +0800
-Subject: [PATCH 104/223] mtk: mt76: mt7996: enable ampdu limit to avoid BA
+Subject: [PATCH 104/193] mtk: mt76: mt7996: enable ampdu limit to avoid BA
  bound issue
 
 [Description]
@@ -34,7 +34,7 @@
  3 files changed, 95 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 1dcd1696..f6b472ef 100644
+index 1dcd169..f6b472e 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -834,6 +834,7 @@ enum {
@@ -46,7 +46,7 @@
  };
  
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 54b0272c..8034c8ab 100644
+index 511ab2d..efc0d54 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -1349,6 +1349,85 @@ mt7996_mcu_sta_ba(struct mt7996_dev *dev, struct mt76_vif *mvif,
@@ -157,7 +157,7 @@
  
  	return 0;
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 9903d88e..f9f04680 100644
+index 9903d88..f9f0468 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -573,6 +573,13 @@ struct sta_rec_ba_uni {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0105-mtk-mt76-mt7996-Fix-get_txpower-wrong-result-in-sing.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0105-mtk-mt76-mt7996-Fix-get_txpower-wrong-result-in-sing.patch
index d147e2f..8eee427 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0105-mtk-mt76-mt7996-Fix-get_txpower-wrong-result-in-sing.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0105-mtk-mt76-mt7996-Fix-get_txpower-wrong-result-in-sing.patch
@@ -1,7 +1,7 @@
-From 67c0e729c31b13fc348746b398857c353e43dab1 Mon Sep 17 00:00:00 2001
+From 223e2986e0169ab82e248f995e787f6c175bd3e3 Mon Sep 17 00:00:00 2001
 From: Allen Ye <allen.ye@mediatek.com>
 Date: Mon, 8 Apr 2024 16:56:09 +0800
-Subject: [PATCH 105/223] mtk: mt76: mt7996: Fix get_txpower wrong result in
+Subject: [PATCH 105/193] mtk: mt76: mt7996: Fix get_txpower wrong result in
  single wiphy and legacy mode
 
 Fix get_txpower wrong result in single wiphy and legacy mode.
@@ -15,10 +15,10 @@
  1 file changed, 27 insertions(+), 1 deletion(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 67948343..b7096901 100644
+index 9533de2..408f848 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -982,6 +982,32 @@ out:
+@@ -981,6 +981,32 @@ out:
  	mutex_unlock(&dev->mt76.mutex);
  }
  
@@ -51,7 +51,7 @@
  static void
  mt7996_channel_switch_beacon(struct ieee80211_hw *hw,
  			     struct ieee80211_vif *vif,
-@@ -2673,7 +2699,7 @@ const struct ieee80211_ops mt7996_ops = {
+@@ -2672,7 +2698,7 @@ const struct ieee80211_ops mt7996_ops = {
  	.hw_scan = mt7996_hw_scan,
  	.cancel_hw_scan = mt7996_cancel_hw_scan,
  	.release_buffered_frames = mt76_release_buffered_frames,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0106-mtk-mt76-mt7996-Add-connac3-csi-feature.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0106-mtk-mt76-mt7996-Add-connac3-csi-feature.patch
index e7146ca..0565eae 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0106-mtk-mt76-mt7996-Add-connac3-csi-feature.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0106-mtk-mt76-mt7996-Add-connac3-csi-feature.patch
@@ -1,7 +1,7 @@
-From c16fd657d9955992ab12c22ac068c7f9d0035ed3 Mon Sep 17 00:00:00 2001
+From 3420fc6b8b3645808456e49f55180c23e3260c46 Mon Sep 17 00:00:00 2001
 From: mtk20656 <chank.chen@mediatek.com>
 Date: Sat, 20 Jan 2024 12:03:24 +0800
-Subject: [PATCH 106/223] mtk: mt76: mt7996: Add connac3 csi feature.
+Subject: [PATCH 106/193] mtk: mt76: mt7996: Add connac3 csi feature.
 
 1. format align to wifi6.
 2. add bw320 support.
@@ -24,7 +24,7 @@
  8 files changed, 951 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index f6b472ef..11c147cd 100644
+index f6b472e..11c147c 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1066,6 +1066,7 @@ enum {
@@ -44,10 +44,10 @@
  	MCU_UNI_CMD_RRO = 0x57,
  	MCU_UNI_CMD_OFFCH_SCAN_CTRL = 0x58,
 diff --git a/mt7996/init.c b/mt7996/init.c
-index f26687df..211ad40c 100644
+index 25ffd69..c501d19 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -807,6 +807,24 @@ error:
+@@ -804,6 +804,24 @@ error:
  	return ret;
  }
  
@@ -72,7 +72,7 @@
  static void
  mt7996_unregister_phy(struct mt7996_phy *phy, enum mt76_band_id band)
  {
-@@ -818,6 +836,10 @@ mt7996_unregister_phy(struct mt7996_phy *phy, enum mt76_band_id band)
+@@ -815,6 +833,10 @@ mt7996_unregister_phy(struct mt7996_phy *phy, enum mt76_band_id band)
  	/* TODO: FIXME: temp for single wiphy support */
  	phy->mt76->hw = phy->mt76->ori_hw;
  
@@ -84,10 +84,10 @@
  
  	mphy = phy->dev->mt76.phys[band];
 diff --git a/mt7996/main.c b/mt7996/main.c
-index b7096901..32a37936 100644
+index 408f848..574b0b5 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -1306,6 +1306,9 @@ void mt7996_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -1305,6 +1305,9 @@ void mt7996_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  	struct mt7996_dev *dev = container_of(mdev, struct mt7996_dev, mt76);
  	unsigned long rem = sta->valid_links ?: BIT(0);
  
@@ -98,7 +98,7 @@
  }
  
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 8034c8ab..56bb32a0 100644
+index efc0d54..56ad93a 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -658,6 +658,263 @@ mt7996_mcu_rx_all_sta_info_event(struct mt7996_dev *dev, struct sk_buff *skb)
@@ -586,7 +586,7 @@
 +}
  #endif
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index f9f04680..42e9f525 100644
+index f9f0468..42e9f52 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -1153,4 +1153,109 @@ struct fixed_rate_table_ctrl {
@@ -700,7 +700,7 @@
 +
  #endif
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 2a638a4a..eb38427b 100644
+index 2a638a4..eb38427 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -446,6 +446,47 @@ struct mt7996_air_monitor_ctrl {
@@ -780,7 +780,7 @@
  
  int mt7996_mcu_edcca_enable(struct mt7996_phy *phy, bool enable);
 diff --git a/mt7996/vendor.c b/mt7996/vendor.c
-index 64ef5515..84b50ab2 100644
+index 64ef551..84b50ab 100644
 --- a/mt7996/vendor.c
 +++ b/mt7996/vendor.c
 @@ -119,6 +119,19 @@ beacon_ctrl_policy[NUM_MTK_VENDOR_ATTRS_BEACON_CTRL] = {
@@ -1060,7 +1060,7 @@
  }
  #endif
 diff --git a/mt7996/vendor.h b/mt7996/vendor.h
-index 32346775..834b3d08 100644
+index 3234677..834b3d0 100644
 --- a/mt7996/vendor.h
 +++ b/mt7996/vendor.h
 @@ -7,6 +7,7 @@
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0107-mtk-mt76-mt7996-add-more-debug-info-for-MLO.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0107-mtk-mt76-mt7996-add-more-debug-info-for-MLO.patch
index a1f4a1f..2ace425 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0107-mtk-mt76-mt7996-add-more-debug-info-for-MLO.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0107-mtk-mt76-mt7996-add-more-debug-info-for-MLO.patch
@@ -1,7 +1,7 @@
-From 7aa62c926e4323d8a19bac3c286903ec3d266503 Mon Sep 17 00:00:00 2001
+From 448b88d2d911427ccf2d731da9386b6a514f9e12 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Mon, 22 Apr 2024 11:06:48 +0800
-Subject: [PATCH 107/223] mtk: mt76: mt7996: add more debug info for MLO
+Subject: [PATCH 107/193] mtk: mt76: mt7996: add more debug info for MLO
 
 Change-Id: Id61889262c153f28fca8f209319137d86e8b9c36
 ---
@@ -20,7 +20,7 @@
  12 files changed, 1856 insertions(+), 18 deletions(-)
 
 diff --git a/mt76_connac_mcu.c b/mt76_connac_mcu.c
-index e4e6c0d3..b62a1ac8 100644
+index e4e6c0d..b62a1ac 100644
 --- a/mt76_connac_mcu.c
 +++ b/mt76_connac_mcu.c
 @@ -428,6 +428,7 @@ void mt76_connac_mcu_sta_basic_tlv(struct mt76_dev *dev, struct sk_buff *skb,
@@ -32,7 +32,7 @@
  }
  EXPORT_SYMBOL_GPL(mt76_connac_mcu_sta_basic_tlv);
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 11c147cd..86a2fdf8 100644
+index 11c147c..86a2fdf 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1300,6 +1300,7 @@ enum {
@@ -44,7 +44,7 @@
  	MCU_UNI_CMD_TESTMODE_TRX_PARAM = 0x42,
  	MCU_UNI_CMD_TESTMODE_CTRL = 0x46,
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index ab8732dd..db41e378 100644
+index ab8732d..db41e37 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -314,15 +314,17 @@ mt7996_fw_debug_wm_set(void *data, u64 val)
@@ -127,7 +127,7 @@
  	if (is_fwlog) {
  		if (dev->relay_fwlog)
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 1cf84fe5..cd139111 100644
+index 1cf84fe..cd13911 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -331,6 +331,10 @@ mt7996_mac_fill_rx(struct mt7996_dev *dev, enum mt76_rxq_id q,
@@ -167,7 +167,7 @@
  }
  
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 32a37936..0c5ddda1 100644
+index 574b0b5..7b976d0 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -433,6 +433,9 @@ static int mt7996_add_bss_conf(struct mt7996_phy *phy,
@@ -192,7 +192,7 @@
  	mutex_lock(&dev->mt76.mutex);
  
  	for_each_set_bit(link_id, &add, IEEE80211_MLD_MAX_NUM_LINKS) {
-@@ -1140,6 +1148,8 @@ static int mt7996_add_link_sta(struct mt7996_dev *dev,
+@@ -1139,6 +1147,8 @@ static int mt7996_add_link_sta(struct mt7996_dev *dev,
  			mt76_wcid_mask_set(dev->mt76.wcid_phy_mask, idx);
  		rcu_assign_pointer(dev->mt76.wcid[idx], &mlink->wcid);
  		mt76_wcid_init(&mlink->wcid);
@@ -201,7 +201,7 @@
  	}
  
  	if (!assoc)
-@@ -1177,6 +1187,7 @@ mt7996_mac_sta_remove_links(struct mt7996_dev *dev, struct ieee80211_vif *vif,
+@@ -1176,6 +1186,7 @@ mt7996_mac_sta_remove_links(struct mt7996_dev *dev, struct ieee80211_vif *vif,
  	if (!ieee80211_vif_is_mld(vif) || rem == sta->valid_links)
  		cancel_delayed_work(&mvif->beacon_mon_work);
  
@@ -209,7 +209,7 @@
  	for_each_set_bit(link_id, &rem, IEEE80211_MLD_MAX_NUM_LINKS) {
  		struct mt7996_bss_conf *mconf =
  			mconf_dereference_protected(mvif, link_id);
-@@ -1202,6 +1213,7 @@ mt7996_mac_sta_add_links(struct mt7996_dev *dev, struct ieee80211_vif *vif,
+@@ -1201,6 +1212,7 @@ mt7996_mac_sta_add_links(struct mt7996_dev *dev, struct ieee80211_vif *vif,
  	unsigned int link_id;
  	int i, ret;
  
@@ -217,7 +217,7 @@
  	for_each_set_bit(link_id, &add, IEEE80211_MLD_MAX_NUM_LINKS) {
  		struct mt7996_bss_conf *mconf =
  			mconf_dereference_protected(mvif, link_id);
-@@ -2560,6 +2572,7 @@ mt7996_change_vif_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2559,6 +2571,7 @@ mt7996_change_vif_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	unsigned int link_id;
  	int ret = 0;
  
@@ -225,7 +225,7 @@
  	if (old_links == new_links)
  		return 0;
  
-@@ -2605,6 +2618,7 @@ mt7996_change_sta_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2604,6 +2617,7 @@ mt7996_change_sta_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	unsigned long rem = old_links & ~new_links;
  	int ret = 0;
  
@@ -234,7 +234,7 @@
  
  	if (rem)
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 56bb32a0..956bd396 100644
+index 56ad93a..9b5534d 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -338,6 +338,10 @@ mt7996_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb,
@@ -327,7 +327,7 @@
  
  int mt7996_mcu_add_beacon(struct ieee80211_hw *hw,
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 42e9f525..5e217719 100644
+index 42e9f52..5e21771 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -1029,6 +1029,14 @@ enum {
@@ -346,7 +346,7 @@
  	UNI_CMD_SR_ENABLE = 0x1,
  	UNI_CMD_SR_ENABLE_SD,
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index eb38427b..00023a5e 100644
+index eb38427..00023a5 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -742,6 +742,14 @@ struct mt7996_dev {
@@ -393,7 +393,7 @@
  
  #ifdef CONFIG_NET_MEDIATEK_SOC_WED
 diff --git a/mt7996/mtk_debug.h b/mt7996/mtk_debug.h
-index da2a6072..82990239 100644
+index da2a607..8299023 100644
 --- a/mt7996/mtk_debug.h
 +++ b/mt7996/mtk_debug.h
 @@ -2288,4 +2288,664 @@ enum cipher_suit {
@@ -1062,7 +1062,7 @@
 +
  #endif
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index bc9a0f04..f9c5b238 100644
+index bc9a0f0..f9c5b23 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -3186,6 +3186,1038 @@ mt7996_thermal_recal_set(void *data, u64 val)
@@ -2130,7 +2130,7 @@
  	return 0;
  }
 diff --git a/tools/fwlog.c b/tools/fwlog.c
-index 0e2de2dc..8d163e1d 100644
+index 0e2de2d..8d163e1 100644
 --- a/tools/fwlog.c
 +++ b/tools/fwlog.c
 @@ -94,7 +94,7 @@ static void handle_signal(int sig)
@@ -2213,7 +2213,7 @@
  			return out_fd;
  	} else {
 diff --git a/tools/main.c b/tools/main.c
-index e9e25567..dcbb9b26 100644
+index e9e2556..dcbb9b2 100644
 --- a/tools/main.c
 +++ b/tools/main.c
 @@ -49,6 +49,7 @@ void usage(void)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0108-mtk-mt76-add-internal-debug-tool.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0108-mtk-mt76-add-internal-debug-tool.patch
index 37f7759..cf260f0 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0108-mtk-mt76-add-internal-debug-tool.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0108-mtk-mt76-add-internal-debug-tool.patch
@@ -1,7 +1,7 @@
-From 9ba1059c52cbf12123e8b3531291623e692fe1d9 Mon Sep 17 00:00:00 2001
+From 1db1fb62393aab45621c5960a5d4281657151c8f Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Mon, 22 Apr 2024 12:22:05 +0800
-Subject: [PATCH 108/223] mtk: mt76: add internal debug tool
+Subject: [PATCH 108/193] mtk: mt76: add internal debug tool
 
 Add the following DebugFS knobs:
 - reset_counter: reset TX/RX statistical counters in FW, WTBL, and MT76.
@@ -71,7 +71,7 @@
  create mode 100644 mt7996/mtk_debugfs_i.c
 
 diff --git a/mt7996/Makefile b/mt7996/Makefile
-index 6643c7a3..49ec9154 100644
+index 6643c7a..49ec915 100644
 --- a/mt7996/Makefile
 +++ b/mt7996/Makefile
 @@ -1,4 +1,5 @@
@@ -87,7 +87,7 @@
 -mt7996e-y += mtk_debugfs.o mtk_mcu.o
 +mt7996e-y += mtk_debugfs.o mtk_mcu.o mtk_debugfs_i.o
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index db41e378..7e545f61 100644
+index db41e37..7e545f6 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -1118,8 +1118,12 @@ int mt7996_init_debugfs(struct mt7996_phy *phy)
@@ -105,10 +105,10 @@
  #ifdef CONFIG_MTK_DEBUG
  	debugfs_create_u16("wlan_idx", 0600, dir, &dev->wlan_idx);
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 211ad40c..1d31e96a 100644
+index c501d19..3cd0c9e 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -886,6 +886,10 @@ void mt7996_rro_hw_init(struct mt7996_dev *dev)
+@@ -883,6 +883,10 @@ void mt7996_rro_hw_init(struct mt7996_dev *dev)
  		mt76_wr(dev, MT_RRO_ADDR_ARRAY_BASE0,
  			dev->wed_rro.addr_elem[0].phy_addr);
  	} else {
@@ -120,7 +120,7 @@
  		mt76_clear(dev, WF_RRO_AXI_MST_CFG, WF_RRO_AXI_MST_CFG_DIDX_OK);
  
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index cd139111..2e27e3b3 100644
+index cd13911..2e27e3b 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -334,6 +334,7 @@ mt7996_mac_fill_rx(struct mt7996_dev *dev, enum mt76_rxq_id q,
@@ -140,7 +140,7 @@
  
  	return 0;
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 00023a5e..e23ed8e7 100644
+index 00023a5..e23ed8e 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -103,6 +103,7 @@
@@ -186,7 +186,7 @@
  #ifdef CONFIG_NET_MEDIATEK_SOC_WED
 diff --git a/mt7996/mtk_debug_i.h b/mt7996/mtk_debug_i.h
 new file mode 100644
-index 00000000..d3756fa2
+index 0000000..d3756fa
 --- /dev/null
 +++ b/mt7996/mtk_debug_i.h
 @@ -0,0 +1,987 @@
@@ -1179,7 +1179,7 @@
 +#endif
 diff --git a/mt7996/mtk_debugfs_i.c b/mt7996/mtk_debugfs_i.c
 new file mode 100644
-index 00000000..ea412cd5
+index 0000000..ea412cd
 --- /dev/null
 +++ b/mt7996/mtk_debugfs_i.c
 @@ -0,0 +1,720 @@
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0109-mtk-mt76-mt7996-add-linux-tracing-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0109-mtk-mt76-mt7996-add-linux-tracing-support.patch
index 9705ef9..495622d 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0109-mtk-mt76-mt7996-add-linux-tracing-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0109-mtk-mt76-mt7996-add-linux-tracing-support.patch
@@ -1,7 +1,7 @@
-From 72119323570a647a238c6d3dfb2c07c190e062c4 Mon Sep 17 00:00:00 2001
+From 32f0003ab6551bda92347cad31cd00cc024f88cb Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Wed, 7 Sep 2022 12:13:20 +0800
-Subject: [PATCH 109/223] mtk: mt76: mt7996: add linux tracing support
+Subject: [PATCH 109/193] mtk: mt76: mt7996: add linux tracing support
 
 Add static tracepoint support for besra.
 
@@ -21,7 +21,7 @@
  create mode 100644 mt7996/trace.c
 
 diff --git a/agg-rx.c b/agg-rx.c
-index 07c386c7..b48943c4 100644
+index 07c386c..b48943c 100644
 --- a/agg-rx.c
 +++ b/agg-rx.c
 @@ -3,6 +3,7 @@
@@ -41,7 +41,7 @@
  	if (!tid->started) {
  		if (sn_less)
 diff --git a/mac80211.c b/mac80211.c
-index a2b111c0..75674462 100644
+index a2b111c..7567446 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -5,6 +5,7 @@
@@ -69,7 +69,7 @@
  			ieee80211_rx_list(hw, sta, skb, &list);
  		}
 diff --git a/mt7996/Makefile b/mt7996/Makefile
-index 49ec9154..936edc61 100644
+index 49ec915..936edc6 100644
 --- a/mt7996/Makefile
 +++ b/mt7996/Makefile
 @@ -12,4 +12,4 @@ mt7996e-y := pci.o init.o dma.o eeprom.o main.o mcu.o mac.o \
@@ -79,7 +79,7 @@
 -mt7996e-y += mtk_debugfs.o mtk_mcu.o mtk_debugfs_i.o
 +mt7996e-y += mtk_debugfs.o mtk_mcu.o mtk_debugfs_i.o trace.o
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 2e27e3b3..1c0d3676 100644
+index 2e27e3b..1c0d367 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -11,6 +11,7 @@
@@ -117,7 +117,7 @@
  	return 0;
  }
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 956bd396..d1aa19cb 100644
+index 9b5534d..b6b659d 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -10,6 +10,7 @@
@@ -158,7 +158,7 @@
  		return;
 diff --git a/mt7996/mt7996_trace.h b/mt7996/mt7996_trace.h
 new file mode 100644
-index 00000000..5fa73482
+index 0000000..5fa7348
 --- /dev/null
 +++ b/mt7996/mt7996_trace.h
 @@ -0,0 +1,141 @@
@@ -305,7 +305,7 @@
 +#include <trace/define_trace.h>
 diff --git a/mt7996/trace.c b/mt7996/trace.c
 new file mode 100644
-index 00000000..ba36f79a
+index 0000000..ba36f79
 --- /dev/null
 +++ b/mt7996/trace.c
 @@ -0,0 +1,12 @@
@@ -322,7 +322,7 @@
 +
 +#endif
 diff --git a/trace.h b/trace.h
-index c3d0ef8e..57c94c6b 100644
+index c3d0ef8..57c94c6 100644
 --- a/trace.h
 +++ b/trace.h
 @@ -101,6 +101,64 @@ DEFINE_EVENT(dev_txid_evt, mac_txdone,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0110-mtk-mt76-temp-changes-for-SQC-period.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0110-mtk-mt76-temp-changes-for-SQC-period.patch
index 7d25362..b635ea7 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0110-mtk-mt76-temp-changes-for-SQC-period.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0110-mtk-mt76-temp-changes-for-SQC-period.patch
@@ -1,7 +1,7 @@
-From 1ee4eb8cb63f275f929b3f7aabbdb0df66ed1f2f Mon Sep 17 00:00:00 2001
+From af9a8ff47bf5ebe4e0da768e6bac43b9a211e613 Mon Sep 17 00:00:00 2001
 From: MeiChia Chiu <meichia.chiu@mediatek.com>
 Date: Fri, 9 Jun 2023 14:11:30 +0800
-Subject: [PATCH 110/223] mtk: mt76: temp changes for SQC period
+Subject: [PATCH 110/193] mtk: mt76: temp changes for SQC period
 
 mtk: wifi: mt76: mt7996: For SQC test Disable single sku
 
@@ -29,7 +29,7 @@
  4 files changed, 71 insertions(+), 2 deletions(-)
 
 diff --git a/mt7996/dma.c b/mt7996/dma.c
-index a2490fa7..bbc3814d 100644
+index a2490fa..bbc3814 100644
 --- a/mt7996/dma.c
 +++ b/mt7996/dma.c
 @@ -800,11 +800,23 @@ void mt7996_dma_reset(struct mt7996_dev *dev, bool force)
@@ -117,7 +117,7 @@
  
  void mt7996_dma_cleanup(struct mt7996_dev *dev)
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 1c0d3676..ac61869d 100644
+index 1c0d367..ac61869 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -1992,6 +1992,9 @@ void mt7996_mac_reset_work(struct work_struct *work)
@@ -193,7 +193,7 @@
  	clear_bit(MT76_RESET, &dev->mphy.state);
  	if (phy2)
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index d1aa19cb..d56630e9 100644
+index b6b659d..7699194 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -3857,11 +3857,11 @@ int mt7996_mcu_init_firmware(struct mt7996_dev *dev)
@@ -211,7 +211,7 @@
  		return ret;
  
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index f9c5b238..0cf48193 100644
+index f9c5b23..0cf4819 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -4297,6 +4297,7 @@ int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0111-mtk-mt76-mt7996-remain-multiple-wiphy-model-for-test.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0111-mtk-mt76-mt7996-remain-multiple-wiphy-model-for-test.patch
index 4ac10cb..68801d2 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0111-mtk-mt76-mt7996-remain-multiple-wiphy-model-for-test.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0111-mtk-mt76-mt7996-remain-multiple-wiphy-model-for-test.patch
@@ -1,7 +1,7 @@
-From 2437744f9744acc7ca65d991906a17f7f5d123d5 Mon Sep 17 00:00:00 2001
+From 882682e4d7b0212bfe7c519d6ae4f5d30bd8f3d4 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Mon, 22 Apr 2024 16:49:48 +0800
-Subject: [PATCH 111/223] mtk: mt76: mt7996: remain multiple wiphy model for
+Subject: [PATCH 111/193] mtk: mt76: mt7996: remain multiple wiphy model for
  testmode
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
@@ -12,10 +12,10 @@
  3 files changed, 22 insertions(+), 14 deletions(-)
 
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 1d31e96a..c5c12ba0 100644
+index 3cd0c9e..59ea76f 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -795,9 +795,11 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
+@@ -792,9 +792,11 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
  		mtk_wed_device_start(&dev->mt76.mmio.wed_hif2, MT_INT_TX_RX_DONE_EXT);
  	}
  
@@ -30,7 +30,7 @@
  
  	return 0;
  
-@@ -833,8 +835,9 @@ mt7996_unregister_phy(struct mt7996_phy *phy, enum mt76_band_id band)
+@@ -830,8 +832,9 @@ mt7996_unregister_phy(struct mt7996_phy *phy, enum mt76_band_id band)
  	if (!phy)
  		return;
  
@@ -43,7 +43,7 @@
  #ifdef CONFIG_MTK_VENDOR
  	mt7996_unregister_csi(phy);
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 0c5ddda1..0b62858b 100644
+index 7b976d0..765e7d6 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -140,8 +140,8 @@ static int mt7996_start(struct ieee80211_hw *hw)
@@ -82,7 +82,7 @@
  	mvif->dev = dev;
  	mvif->hw = hw;
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index e23ed8e7..b8699b65 100644
+index e23ed8e..b8699b6 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -880,16 +880,15 @@ mt7996_has_background_radar(struct mt7996_dev *dev)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0112-mtk-mt76-mt7996-enable-ibf-capability-for-mt7992.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0112-mtk-mt76-mt7996-enable-ibf-capability-for-mt7992.patch
index e28f39c..3011b26 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0112-mtk-mt76-mt7996-enable-ibf-capability-for-mt7992.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0112-mtk-mt76-mt7996-enable-ibf-capability-for-mt7992.patch
@@ -1,7 +1,7 @@
-From 349f51f541c02b1a3f72cce4e2f70110a0f39252 Mon Sep 17 00:00:00 2001
+From 368c14bdb51f4d5bf323f9dbffc6fb65ea43c8a7 Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Tue, 23 Apr 2024 09:19:25 +0800
-Subject: [PATCH 112/223] mtk: mt76: mt7996: enable ibf capability for mt7992
+Subject: [PATCH 112/193] mtk: mt76: mt7996: enable ibf capability for mt7992
 
 For the specific sku of mt7992, it supports both ibf and ebf
 functionality. The firmware algorithm may decide which type is better
@@ -14,7 +14,7 @@
  1 file changed, 6 insertions(+), 1 deletion(-)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index d56630e9..f9ed473a 100644
+index 7699194..e9a1837 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -2270,6 +2270,8 @@ mt7996_mcu_sta_bfer_tlv(struct mt7996_dev *dev, struct sk_buff *skb,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0113-mtk-mt76-remove-the-limitation-for-legacy-AP-sacn.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0113-mtk-mt76-remove-the-limitation-for-legacy-AP-sacn.patch
index f991a92..a8e769b 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0113-mtk-mt76-remove-the-limitation-for-legacy-AP-sacn.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0113-mtk-mt76-remove-the-limitation-for-legacy-AP-sacn.patch
@@ -1,7 +1,7 @@
-From da809c32e3531e217dbf22a9c5c372999c4642cb Mon Sep 17 00:00:00 2001
+From 3f276937d2633ccbe750fa73684bdc38f7a0ef60 Mon Sep 17 00:00:00 2001
 From: Michael-CY Lee <michael-cy.lee@mediatek.com>
 Date: Thu, 2 May 2024 15:40:21 +0800
-Subject: [PATCH 113/223] mtk: mt76: remove the limitation for legacy AP sacn
+Subject: [PATCH 113/193] mtk: mt76: remove the limitation for legacy AP sacn
 
 The limitation was used to prevent resource conflict in multiple wiphys
 architecture. It becomes single wiphy and the limitation seems to be
@@ -17,7 +17,7 @@
  1 file changed, 7 deletions(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index ac61869d..901c70e5 100644
+index ac61869..901c70e 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -2980,13 +2980,6 @@ void mt7996_scan_work(struct work_struct *work)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0114-mtk-mt76-add-support-for-get_survey-in-single-wiphy-.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0114-mtk-mt76-add-support-for-get_survey-in-single-wiphy-.patch
index 02216b8..d721851 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0114-mtk-mt76-add-support-for-get_survey-in-single-wiphy-.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0114-mtk-mt76-add-support-for-get_survey-in-single-wiphy-.patch
@@ -1,7 +1,7 @@
-From be22e24f74bc54660f8034e345dfadcae73b2101 Mon Sep 17 00:00:00 2001
+From fd37df808cf669ea47f2657076a64ef089a03e36 Mon Sep 17 00:00:00 2001
 From: Michael-CY Lee <michael-cy.lee@mediatek.com>
 Date: Thu, 2 May 2024 15:22:22 +0800
-Subject: [PATCH 114/223] mtk: mt76: add support for get_survey in single wiphy
+Subject: [PATCH 114/193] mtk: mt76: add support for get_survey in single wiphy
  architecture
 
 ---
@@ -9,7 +9,7 @@
  1 file changed, 35 insertions(+), 10 deletions(-)
 
 diff --git a/mac80211.c b/mac80211.c
-index 75674462..f986d5fd 100644
+index 7567446..f986d5f 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -937,19 +937,44 @@ int mt76_get_survey(struct ieee80211_hw *hw, int idx,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0115-mtk-mt76-mt7996-add-critical-update-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0115-mtk-mt76-mt7996-add-critical-update-support.patch
index 397fde1..c735012 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0115-mtk-mt76-mt7996-add-critical-update-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0115-mtk-mt76-mt7996-add-critical-update-support.patch
@@ -1,7 +1,7 @@
-From d4e9a9535f8f51d6a4adabee9efc1a61b0798490 Mon Sep 17 00:00:00 2001
+From 78bfe7143b1d2e024ceff7a5171cd7e8b53ecb7e Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Tue, 23 Apr 2024 15:22:24 +0800
-Subject: [PATCH 115/223] mtk: mt76: mt7996: add critical update support
+Subject: [PATCH 115/193] mtk: mt76: mt7996: add critical update support
 
 Add critical update support
 modification: wmm configuration
@@ -30,7 +30,7 @@
  5 files changed, 208 insertions(+), 30 deletions(-)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 86a2fdf8..0a4bf9b7 100644
+index 86a2fdf..0a4bf9b 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1385,6 +1385,8 @@ enum {
@@ -43,7 +43,7 @@
  
  enum {
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 0b62858b..9a265710 100644
+index 765e7d6..6e90083 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -370,6 +370,7 @@ static int mt7996_add_bss_conf(struct mt7996_phy *phy,
@@ -54,7 +54,7 @@
  
  	ret = mt7996_mcu_add_dev_info(phy, conf, mconf, true);
  	if (ret)
-@@ -979,7 +980,9 @@ static void mt7996_link_info_changed(struct ieee80211_hw *hw,
+@@ -978,7 +979,9 @@ static void mt7996_link_info_changed(struct ieee80211_hw *hw,
  		mconf->mt76.beacon_rates_idx =
  			mt7996_get_rates_table(hw, info, mconf, true, false);
  
@@ -65,7 +65,7 @@
  	}
  
  	if (changed & (BSS_CHANGED_UNSOL_BCAST_PROBE_RESP |
-@@ -1030,21 +1033,45 @@ mt7996_channel_switch_beacon(struct ieee80211_hw *hw,
+@@ -1029,21 +1032,45 @@ mt7996_channel_switch_beacon(struct ieee80211_hw *hw,
  	struct mt7996_dev *dev = mt7996_hw_dev(hw);
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
  	struct mt7996_phy *phy = mt7996_band_phy(hw, chandef->chan->band);
@@ -120,7 +120,7 @@
  	mutex_unlock(&dev->mt76.mutex);
  }
  
-@@ -2538,32 +2565,54 @@ mt7996_switch_vif_chanctx(struct ieee80211_hw *hw,
+@@ -2537,32 +2564,54 @@ mt7996_switch_vif_chanctx(struct ieee80211_hw *hw,
  			  int n_vifs,
  			  enum ieee80211_chanctx_switch_mode mode)
  {
@@ -195,7 +195,7 @@
  
  static int
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index f9ed473a..ea399a0b 100644
+index e9a1837..ed8b07f 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -375,6 +375,7 @@ mt7996_mcu_csa_finish(void *priv, u8 *mac, struct ieee80211_vif *vif)
@@ -327,7 +327,7 @@
  	dev_kfree_skb(skb);
  	return mt76_mcu_skb_send_msg(&phy->dev->mt76, rskb,
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 5e217719..c39dcc3c 100644
+index 5e21771..c39dcc3 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -503,6 +503,27 @@ struct bss_bcn_mbss_tlv {
@@ -371,7 +371,7 @@
  					 MT7996_BEACON_UPDATE_SIZE)
  
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index b8699b65..4815cf7b 100644
+index b8699b6..4815cf7 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -352,6 +352,7 @@ struct mt7996_bss_conf {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0116-mtk-mt76-mt7996-Add-support-for-EMLSR.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0116-mtk-mt76-mt7996-Add-support-for-EMLSR.patch
index d3ced0b..4c9a732 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0116-mtk-mt76-mt7996-Add-support-for-EMLSR.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0116-mtk-mt76-mt7996-Add-support-for-EMLSR.patch
@@ -1,7 +1,7 @@
-From 05cc12c0f48dae0a560f1eca2ad2a49f80f614bf Mon Sep 17 00:00:00 2001
+From 7d6f49bd212716b610be5cb9c8905a10d5e891f2 Mon Sep 17 00:00:00 2001
 From: MeiChia Chiu <MeiChia.Chiu@mediatek.com>
 Date: Tue, 7 May 2024 15:47:23 +0800
-Subject: [PATCH 116/223] mtk: mt76: mt7996: Add support for EMLSR
+Subject: [PATCH 116/193] mtk: mt76: mt7996: Add support for EMLSR
 
 1. Register the EMLSR capability
 2. Set the EML capability of the station to firmware
@@ -19,7 +19,7 @@
  6 files changed, 166 insertions(+), 1 deletion(-)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 0a4bf9b7..2daa09cc 100644
+index 0a4bf9b..2daa09c 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -629,6 +629,13 @@ struct sta_rec_tx_proc {
@@ -45,10 +45,10 @@
  	STA_REC_TX_CAP = 0x2f,
  	STA_REC_MAX_NUM
 diff --git a/mt7996/init.c b/mt7996/init.c
-index c5c12ba0..c8eb7523 100644
+index 59ea76f..dc06fa8 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -64,6 +64,7 @@ static const struct wiphy_iftype_ext_capab mt7996_iftypes_ext_capa[] = {
+@@ -61,6 +61,7 @@ static const struct wiphy_iftype_ext_capab mt7996_iftypes_ext_capa[] = {
  		.extended_capabilities = mt7996_if_types_ext_capa,
  		.extended_capabilities_mask = mt7996_if_types_ext_capa,
  		.extended_capabilities_len = sizeof(mt7996_if_types_ext_capa),
@@ -57,7 +57,7 @@
  		/* the max number of simultaneous links is defined as the
  		 * maximum number of affiliated APs minus 1.
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index ea399a0b..76f0bb7e 100644
+index ed8b07f..93c2696 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -2926,9 +2926,10 @@ mt7996_mcu_sta_eht_mld_tlv(struct mt7996_dev *dev, struct sk_buff *skb,
@@ -137,7 +137,7 @@
  void mt7996_set_wireless_vif(void *data, u8 *mac, struct ieee80211_vif *vif)
  {
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 4815cf7b..94121471 100644
+index 4815cf7..9412147 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -411,6 +411,23 @@ enum {
@@ -174,7 +174,7 @@
  void mt7996_sta_add_debugfs(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  			    struct ieee80211_sta *sta, struct dentry *dir);
 diff --git a/mt7996/vendor.c b/mt7996/vendor.c
-index 84b50ab2..585c4e28 100644
+index 84b50ab..585c4e2 100644
 --- a/mt7996/vendor.c
 +++ b/mt7996/vendor.c
 @@ -119,6 +119,13 @@ beacon_ctrl_policy[NUM_MTK_VENDOR_ATTRS_BEACON_CTRL] = {
@@ -263,7 +263,7 @@
  
  void mt7996_vendor_register(struct mt7996_phy *phy)
 diff --git a/mt7996/vendor.h b/mt7996/vendor.h
-index 834b3d08..f6fcb623 100644
+index 834b3d0..f6fcb62 100644
 --- a/mt7996/vendor.h
 +++ b/mt7996/vendor.h
 @@ -18,6 +18,7 @@ enum mtk_nl80211_vendor_subcmds {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0117-mtk-mt76-mt7996-add-max-mpdu-len-capability.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0117-mtk-mt76-mt7996-add-max-mpdu-len-capability.patch
index 120d25a..c4ce6b9 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0117-mtk-mt76-mt7996-add-max-mpdu-len-capability.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0117-mtk-mt76-mt7996-add-max-mpdu-len-capability.patch
@@ -1,7 +1,7 @@
-From ce78d5c76700d61fa752c2ac34e53c87ed88f37d Mon Sep 17 00:00:00 2001
+From b35228edc5c705ab5f4dd540f10c153bc2fd6c89 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Thu, 9 May 2024 11:16:10 +0800
-Subject: [PATCH 117/223] mtk: mt76: mt7996: add max mpdu len capability
+Subject: [PATCH 117/193] mtk: mt76: mt7996: add max mpdu len capability
 
 Set max mpdu len to 11454 according to hardware capability.
 Without this patch, the max ampdu length would be 3895 and hurt performance.
@@ -13,10 +13,10 @@
  1 file changed, 3 insertions(+), 1 deletion(-)
 
 diff --git a/mt7996/init.c b/mt7996/init.c
-index c8eb7523..e674361a 100644
+index dc06fa8..252712d 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -1539,7 +1539,9 @@ mt7996_init_eht_caps(struct mt7996_phy *phy, enum nl80211_band band,
+@@ -1536,7 +1536,9 @@ mt7996_init_eht_caps(struct mt7996_phy *phy, enum nl80211_band band,
  
  	eht_cap_elem->mac_cap_info[0] =
  		IEEE80211_EHT_MAC_CAP0_EPCS_PRIO_ACCESS |
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0118-mtk-mt76-mt7996-add-correct-bss_conf-for-legacy-AP-s.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0118-mtk-mt76-mt7996-add-correct-bss_conf-for-legacy-AP-s.patch
index 86ada93..d39fc46 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0118-mtk-mt76-mt7996-add-correct-bss_conf-for-legacy-AP-s.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0118-mtk-mt76-mt7996-add-correct-bss_conf-for-legacy-AP-s.patch
@@ -1,7 +1,7 @@
-From c8d1e3084599c7dbd74dd8408d0786e09851f177 Mon Sep 17 00:00:00 2001
+From 194e4d4f9a6a7c17555509795d13ee99e97d28d5 Mon Sep 17 00:00:00 2001
 From: Michael-CY Lee <michael-cy.lee@mediatek.com>
 Date: Fri, 10 May 2024 13:35:56 +0800
-Subject: [PATCH 118/223] mtk: mt76: mt7996: add correct bss_conf for legacy AP
+Subject: [PATCH 118/193] mtk: mt76: mt7996: add correct bss_conf for legacy AP
  scan
 
 If the legacy AP interface is added but not yet started, its bss_conf
@@ -28,10 +28,10 @@
  1 file changed, 13 insertions(+), 8 deletions(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 9a265710..2b16385d 100644
+index 6e90083..9ae23f5 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -2367,15 +2367,20 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2366,15 +2366,20 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	phy->scan_vif = vif;
  	phy->scan_chan_idx = 0;
  
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0119-mtk-mt76-mt7996-fix-set-beacon-mcu-command.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0119-mtk-mt76-mt7996-fix-set-beacon-mcu-command.patch
index 1b39d7f..2999db1 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0119-mtk-mt76-mt7996-fix-set-beacon-mcu-command.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0119-mtk-mt76-mt7996-fix-set-beacon-mcu-command.patch
@@ -1,7 +1,7 @@
-From 50cf21c286aa55676fa5a341781c5e72aa4758f5 Mon Sep 17 00:00:00 2001
+From a057701d35443223049fcd9d3d79d8fcfc6dee2f Mon Sep 17 00:00:00 2001
 From: Michael-CY Lee <michael-cy.lee@mediatek.com>
 Date: Tue, 14 May 2024 10:52:43 +0800
-Subject: [PATCH 119/223] mtk: mt76: mt7996: fix set beacon mcu command
+Subject: [PATCH 119/193] mtk: mt76: mt7996: fix set beacon mcu command
 
 When stopping AP, mac80211 frees beacon template before it calls
 driver's stop_ap operation. In other words, on the path of stopping
@@ -19,7 +19,7 @@
  1 file changed, 15 insertions(+), 11 deletions(-)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 76f0bb7e..1dcc367e 100644
+index 93c2696..5279293 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -3384,7 +3384,7 @@ int mt7996_mcu_add_beacon(struct ieee80211_hw *hw,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0120-mtk-mt76-fix-incorrect-setting-of-antenna-capability.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0120-mtk-mt76-fix-incorrect-setting-of-antenna-capability.patch
index a46553e..e5b02da 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0120-mtk-mt76-fix-incorrect-setting-of-antenna-capability.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0120-mtk-mt76-fix-incorrect-setting-of-antenna-capability.patch
@@ -1,7 +1,7 @@
-From 6c2e3e0211da74d06132593d9783e0f62179ee81 Mon Sep 17 00:00:00 2001
+From 6698bc8bc9f2942eb0817e90504f573821a28cf4 Mon Sep 17 00:00:00 2001
 From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
 Date: Tue, 14 May 2024 14:12:28 +0800
-Subject: [PATCH 120/223] mtk: mt76: fix incorrect setting of antenna
+Subject: [PATCH 120/193] mtk: mt76: fix incorrect setting of antenna
  capability
 
 Due to current implementation of single-wiphy architecture, only one antenna capability can be set for all PHYs via mt7996_set_antenna().
@@ -15,10 +15,10 @@
  1 file changed, 4 insertions(+)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 2b16385d..3a85b025 100644
+index 9ae23f5..fea73b1 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -1674,6 +1674,10 @@ mt7996_set_antenna(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant)
+@@ -1673,6 +1673,10 @@ mt7996_set_antenna(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant)
  	struct mt7996_dev *dev = mt7996_hw_dev(hw);
  	int band, max_nss = hweight8(hw->wiphy->available_antennas_tx);
  
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0121-mtk-mt76-mt7996-fix-stop_tx_ba_session-warning.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0121-mtk-mt76-mt7996-fix-stop_tx_ba_session-warning.patch
index c1f4116..2a1493c 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0121-mtk-mt76-mt7996-fix-stop_tx_ba_session-warning.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0121-mtk-mt76-mt7996-fix-stop_tx_ba_session-warning.patch
@@ -1,7 +1,7 @@
-From 6ae2f546b249738b3c1f3ad573dd2ce4d2020558 Mon Sep 17 00:00:00 2001
+From 32209f3efba3619f641ae5d989fb1b6aa9e43d68 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Wed, 15 May 2024 11:10:17 +0800
-Subject: [PATCH 121/223] mtk: mt76: mt7996: fix stop_tx_ba_session warning
+Subject: [PATCH 121/193] mtk: mt76: mt7996: fix stop_tx_ba_session warning
 
 ---
  mt7996/main.c | 11 +++++++----
@@ -9,10 +9,10 @@
  2 files changed, 13 insertions(+), 4 deletions(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 3a85b025..3f93eda0 100644
+index fea73b1..bdb1fab 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -1079,7 +1079,8 @@ static void mt7996_remove_link_sta(struct mt7996_dev *dev,
+@@ -1078,7 +1078,8 @@ static void mt7996_remove_link_sta(struct mt7996_dev *dev,
  				   struct ieee80211_bss_conf *conf,
  				   struct mt7996_bss_conf *mconf,
  				   struct ieee80211_link_sta *link_sta,
@@ -22,7 +22,7 @@
  {
  	struct ieee80211_sta *sta = link_sta->sta;
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
-@@ -1091,7 +1092,7 @@ static void mt7996_remove_link_sta(struct mt7996_dev *dev,
+@@ -1090,7 +1091,7 @@ static void mt7996_remove_link_sta(struct mt7996_dev *dev,
  	for (i = 0; i < ARRAY_SIZE(mlink->wcid.aggr); i++)
  			mt76_rx_aggr_stop(&dev->mt76, &mlink->wcid, i);
  
@@ -31,7 +31,7 @@
  		mt7996_mcu_teardown_mld_sta(dev, mconf, mlink);
  	else
  		mt7996_mcu_add_sta(dev, conf, mconf, link_sta, mlink, false, false);
-@@ -1205,7 +1206,8 @@ static int mt7996_add_link_sta(struct mt7996_dev *dev,
+@@ -1204,7 +1205,8 @@ static int mt7996_add_link_sta(struct mt7996_dev *dev,
  
  	return 0;
  error:
@@ -41,7 +41,7 @@
  	return ret;
  }
  
-@@ -1230,8 +1232,9 @@ mt7996_mac_sta_remove_links(struct mt7996_dev *dev, struct ieee80211_vif *vif,
+@@ -1229,8 +1231,9 @@ mt7996_mac_sta_remove_links(struct mt7996_dev *dev, struct ieee80211_vif *vif,
  			link_conf_dereference_protected(vif, link_id);
  		struct ieee80211_link_sta *link_sta =
  			link_sta_dereference_protected(sta, link_id);
@@ -53,7 +53,7 @@
  }
  
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 1dcc367e..d9d29c4e 100644
+index 5279293..1f89c5f 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -1740,6 +1740,9 @@ int mt7996_mcu_add_tx_ba(struct mt7996_dev *dev,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0122-mtk-mt76-mt7996-do-software-link-addr-translation-fo.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0122-mtk-mt76-mt7996-do-software-link-addr-translation-fo.patch
index b0c0f55..7540087 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0122-mtk-mt76-mt7996-do-software-link-addr-translation-fo.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0122-mtk-mt76-mt7996-do-software-link-addr-translation-fo.patch
@@ -1,7 +1,7 @@
-From a6b712a367b0e76ac5982f846f096ab936138c16 Mon Sep 17 00:00:00 2001
+From 65574c009356434eb5154104a8f65c944446839b Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Wed, 15 May 2024 17:47:33 +0800
-Subject: [PATCH 122/223] mtk: mt76: mt7996: do software link addr translation
+Subject: [PATCH 122/193] mtk: mt76: mt7996: do software link addr translation
  for EAPOL
 
 Previously, we do HW link address translation for EAPOL addr1 and addr2,
@@ -27,7 +27,7 @@
  1 file changed, 31 insertions(+), 15 deletions(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 901c70e5..02045b84 100644
+index 901c70e..02045b8 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -843,7 +843,8 @@ void mt7996_mac_write_txwi(struct mt7996_dev *dev, __le32 *txwi,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0123-mtk-mt76-mt7996-add-per-band-debugfs-folder.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0123-mtk-mt76-mt7996-add-per-band-debugfs-folder.patch
index 933099c..fdd952e 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0123-mtk-mt76-mt7996-add-per-band-debugfs-folder.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0123-mtk-mt76-mt7996-add-per-band-debugfs-folder.patch
@@ -1,7 +1,7 @@
-From bfbeab14fc5c4a9caab56873328caee7fb407721 Mon Sep 17 00:00:00 2001
+From 8055630fc38101c33a667f4f1a31f6b301754130 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Thu, 16 May 2024 18:03:19 +0800
-Subject: [PATCH 123/223] mtk: mt76: mt7996: add per-band debugfs folder
+Subject: [PATCH 123/193] mtk: mt76: mt7996: add per-band debugfs folder
 
 Add per-band debugfs folder and  move upstream debugfs knob to it.
 
@@ -14,7 +14,7 @@
  3 files changed, 42 insertions(+), 18 deletions(-)
 
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index 7e545f61..d2b38efb 100644
+index 7e545f6..d2b38ef 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -1073,21 +1073,49 @@ mt7996_airtime_read(struct seq_file *s, void *data)
@@ -90,10 +90,10 @@
  			    &fops_fw_debug_muru_disable);
  
 diff --git a/mt7996/init.c b/mt7996/init.c
-index e674361a..9a2e51f8 100644
+index 252712d..e4fd6da 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -787,7 +787,7 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
+@@ -784,7 +784,7 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
  			goto error;
  	}
  
@@ -102,7 +102,7 @@
  	if (ret)
  		goto error;
  
-@@ -1728,6 +1728,14 @@ int mt7996_register_device(struct mt7996_dev *dev)
+@@ -1725,6 +1725,14 @@ int mt7996_register_device(struct mt7996_dev *dev)
  	if (ret)
  		return ret;
  
@@ -117,7 +117,7 @@
  	ret = mt7996_register_phy(dev, mt7996_phy2(dev), MT_BAND1);
  	if (ret)
  		return ret;
-@@ -1752,10 +1760,6 @@ int mt7996_register_device(struct mt7996_dev *dev)
+@@ -1749,10 +1757,6 @@ int mt7996_register_device(struct mt7996_dev *dev)
  			goto error;
  	}
  
@@ -129,7 +129,7 @@
  	if (ret)
  		goto error;
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 94121471..ef41beee 100644
+index 9412147..ef41bee 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1230,7 +1230,8 @@ int mt7996_dfs_init_radar_detector(struct mt7996_phy *phy);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0124-mtk-mt76-mt7996-move-internal-debugfs-knob-to-per-ba.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0124-mtk-mt76-mt7996-move-internal-debugfs-knob-to-per-ba.patch
index 0af54d5..0071ccc 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0124-mtk-mt76-mt7996-move-internal-debugfs-knob-to-per-ba.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0124-mtk-mt76-mt7996-move-internal-debugfs-knob-to-per-ba.patch
@@ -1,7 +1,7 @@
-From 4a9412a2376d1a0c1c642cc2dea242b059a7463d Mon Sep 17 00:00:00 2001
+From 60bad0ddca997fdc6e0a235ded2def0fdb720b10 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Thu, 16 May 2024 18:04:28 +0800
-Subject: [PATCH 124/223] mtk: mt76: mt7996: move internal debugfs knob to
+Subject: [PATCH 124/193] mtk: mt76: mt7996: move internal debugfs knob to
  per-band folder
 
 Change-Id: I03efc222cd57035aa089babbc94c70e807494763
@@ -13,7 +13,7 @@
  3 files changed, 44 insertions(+), 81 deletions(-)
 
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index d2b38efb..9a62dfda 100644
+index d2b38ef..9a62dfd 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -1105,6 +1105,9 @@ int mt7996_init_band_debugfs(struct mt7996_phy *phy)
@@ -36,7 +36,7 @@
  
  	return 0;
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index ef41beee..21be14d0 100644
+index ef41bee..21be14d 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1290,7 +1290,8 @@ enum edcca_bw_id {
@@ -50,7 +50,7 @@
  int mt7996_mcu_set_sr_enable(struct mt7996_phy *phy, u8 action, u64 val, bool set);
  void mt7996_mcu_rx_sr_event(struct mt7996_dev *dev, struct sk_buff *skb);
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 0cf48193..06fa83bb 100644
+index 0cf4819..06fa83b 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -14,13 +14,14 @@
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0125-mtk-mt76-mt7996-refactor-amsdu-debugfs.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0125-mtk-mt76-mt7996-refactor-amsdu-debugfs.patch
index 5670dc8..3c55ef2 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0125-mtk-mt76-mt7996-refactor-amsdu-debugfs.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0125-mtk-mt76-mt7996-refactor-amsdu-debugfs.patch
@@ -1,7 +1,7 @@
-From e7b50308230e874028c65233d5e2f7a7d1ad6479 Mon Sep 17 00:00:00 2001
+From a478298624f92ce97005a37b5a67e6b9bae17654 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Fri, 17 May 2024 17:34:03 +0800
-Subject: [PATCH 125/223] mtk: mt76: mt7996: refactor amsdu debugfs
+Subject: [PATCH 125/193] mtk: mt76: mt7996: refactor amsdu debugfs
 
 1. Remove hw_amsdu_info which is duplicated with amsdu_info.
 
@@ -16,7 +16,7 @@
  1 file changed, 22 insertions(+), 41 deletions(-)
 
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 06fa83bb..9d8c1942 100644
+index 06fa83b..9d8c194 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -210,28 +210,35 @@ DEFINE_SHOW_ATTRIBUTE(mt7996_agginfo);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0126-mtk-mt76-mt7996-trigger-channel-calibration-for-DFS-.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0126-mtk-mt76-mt7996-trigger-channel-calibration-for-DFS-.patch
index 11e2f62..fd1408d 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0126-mtk-mt76-mt7996-trigger-channel-calibration-for-DFS-.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0126-mtk-mt76-mt7996-trigger-channel-calibration-for-DFS-.patch
@@ -1,7 +1,7 @@
-From 799a94c158a9c9df4586f8efec1cf586a7ad29d9 Mon Sep 17 00:00:00 2001
+From 1dfd2813ec62c27890085927164b4613284c1f12 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Fri, 17 May 2024 14:49:50 +0800
-Subject: [PATCH 126/223] mtk: mt76: mt7996: trigger channel calibration for
+Subject: [PATCH 126/193] mtk: mt76: mt7996: trigger channel calibration for
  DFS link after sta is associated
 
 Trigger channel calibration (set channel with switch reason = NORMAL)
@@ -18,7 +18,7 @@
  4 files changed, 18 insertions(+), 10 deletions(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 3f93eda0..f45f6c02 100644
+index bdb1fab..161b5cb 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -82,12 +82,12 @@ int mt7996_run(struct ieee80211_hw *hw)
@@ -50,7 +50,7 @@
  	if (ret)
  		goto out;
  
-@@ -2736,6 +2736,13 @@ mt7996_event_callback(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2735,6 +2735,13 @@ mt7996_event_callback(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  				next_time = min(next_time,
  						MT7996_MAX_BEACON_LOSS *
  						conf->beacon_int);
@@ -65,7 +65,7 @@
  
  			ieee80211_queue_delayed_work(hw, &mvif->beacon_mon_work,
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index d9d29c4e..a6f2c157 100644
+index 1f89c5f..29dc95b 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -4405,7 +4405,7 @@ int mt7996_mcu_rdd_background_enable(struct mt7996_phy *phy,
@@ -97,7 +97,7 @@
  	else
  		req.switch_reason = CH_SWITCH_NORMAL;
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 21be14d0..07c72d2b 100644
+index 21be14d..07c72d2 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1058,7 +1058,7 @@ int mt7996_mcu_add_rate_ctrl(struct mt7996_dev *dev,
@@ -110,7 +110,7 @@
  int mt7996_mcu_set_fixed_rate_ctrl(struct mt7996_dev *dev,
  				   void *data, u16 version);
 diff --git a/mt7996/testmode.c b/mt7996/testmode.c
-index 799e443c..c68619cb 100644
+index 799e443..c68619c 100644
 --- a/mt7996/testmode.c
 +++ b/mt7996/testmode.c
 @@ -550,7 +550,7 @@ mt7996_tm_dpd_prek_send_req(struct mt7996_phy *phy, struct mt7996_tm_req *req,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0127-mtk-mt76-mt7996-do-not-remove-bss_info-and-starec-wh.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0127-mtk-mt76-mt7996-do-not-remove-bss_info-and-starec-wh.patch
index acef98c..c03003a 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0127-mtk-mt76-mt7996-do-not-remove-bss_info-and-starec-wh.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0127-mtk-mt76-mt7996-do-not-remove-bss_info-and-starec-wh.patch
@@ -1,7 +1,7 @@
-From ebc64cf0ebe700231a5b94b299abb49b8db88308 Mon Sep 17 00:00:00 2001
+From 81e8f959269eed83f6611ea65f7e1fc22bb4d934 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Wed, 22 May 2024 18:22:51 +0800
-Subject: [PATCH 127/223] mtk: mt76: mt7996: do not remove bss_info and starec
+Subject: [PATCH 127/193] mtk: mt76: mt7996: do not remove bss_info and starec
  when assign_vif_chanctx
 
 When STA interface re-connect from rootAP, it would unsign/assign vif
@@ -17,7 +17,7 @@
  1 file changed, 13 insertions(+), 4 deletions(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index f45f6c02..be0864a0 100644
+index 161b5cb..5a6165b 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -338,6 +338,9 @@ static int mt7996_add_bss_conf(struct mt7996_phy *phy,
@@ -30,7 +30,7 @@
  	if (conf != &vif->bss_conf) {
  		mconf = kzalloc(sizeof(*mconf), GFP_KERNEL);
  		if (!mconf)
-@@ -2520,10 +2523,16 @@ mt7996_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2519,10 +2522,16 @@ mt7996_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  
  	mutex_lock(&phy->dev->mt76.mutex);
  
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0128-mtk-mt76-mt7996-remove-chanctx-in-mt7996_bss_conf.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0128-mtk-mt76-mt7996-remove-chanctx-in-mt7996_bss_conf.patch
index 30d4ef1..b8f0275 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0128-mtk-mt76-mt7996-remove-chanctx-in-mt7996_bss_conf.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0128-mtk-mt76-mt7996-remove-chanctx-in-mt7996_bss_conf.patch
@@ -1,7 +1,7 @@
-From 279a649bea9faaab320a88c2dfeedd83668d059c Mon Sep 17 00:00:00 2001
+From 84e65a5251ffd3e849a14152fd919ce6a745cb8c Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Tue, 28 May 2024 09:33:11 +0800
-Subject: [PATCH 128/223] mtk: mt76: mt7996: remove chanctx in mt7996_bss_conf
+Subject: [PATCH 128/193] mtk: mt76: mt7996: remove chanctx in mt7996_bss_conf
 
 Different vif under the same phy cannot use different chanctx.
 So it is better to maintain the chanctx in mt7996_phy.
@@ -15,10 +15,10 @@
  2 files changed, 1 insertion(+), 9 deletions(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index be0864a0..2b272cc4 100644
+index 5a6165b..c8dc068 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -2540,8 +2540,6 @@ mt7996_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2539,8 +2539,6 @@ mt7996_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  		return ret;
  	}
  
@@ -27,7 +27,7 @@
  	ctx->nbss_assigned++;
  	mvif->band_to_link[phy->mt76->band_idx] = link_id;
  
-@@ -2560,8 +2558,6 @@ mt7996_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2559,8 +2557,6 @@ mt7996_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  {
  	struct mt7996_chanctx *ctx = mt7996_chanctx_get(conf);
  	struct mt7996_phy *phy = ctx->phy;
@@ -36,7 +36,7 @@
  
  	wiphy_info(hw->wiphy, "Remove VIF (addr: %pM, type: %d, link_id: %d) from channel context: %d MHz\n",
  		   vif->addr, vif->type, link_conf->link_id,
-@@ -2573,8 +2569,6 @@ mt7996_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2572,8 +2568,6 @@ mt7996_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	if (test_bit(MT76_SCANNING, &phy->mt76->state))
  		mt7996_scan_complete(phy, true);
  
@@ -45,7 +45,7 @@
  	ctx->nbss_assigned--;
  
  	mutex_unlock(&phy->dev->mt76.mutex);
-@@ -2748,7 +2742,7 @@ mt7996_event_callback(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2747,7 +2741,7 @@ mt7996_event_callback(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  
  				/* trigger calibration for DFS link */
  				if (!cfg80211_reg_can_beacon(hw->wiphy,
@@ -55,7 +55,7 @@
  					mt7996_mcu_set_chan_info(phy, UNI_CHANNEL_SWITCH,
  								 true);
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 07c72d2b..9f58a793 100644
+index 07c72d2..9f58a79 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -348,8 +348,6 @@ struct mt7996_bss_conf {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0129-mtk-mt76-mt7996-temporarily-disable-EPCS.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0129-mtk-mt76-mt7996-temporarily-disable-EPCS.patch
index 1697db6..a3c4784 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0129-mtk-mt76-mt7996-temporarily-disable-EPCS.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0129-mtk-mt76-mt7996-temporarily-disable-EPCS.patch
@@ -1,7 +1,7 @@
-From b10446fafd8688cdcfc358bd7a293cb3cc69aa6c Mon Sep 17 00:00:00 2001
+From 8dda32e23c7d7d57e7f1daa70cfc35fc9b951d79 Mon Sep 17 00:00:00 2001
 From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
 Date: Tue, 28 May 2024 15:58:57 +0800
-Subject: [PATCH 129/223] mtk: mt76: mt7996: temporarily disable EPCS
+Subject: [PATCH 129/193] mtk: mt76: mt7996: temporarily disable EPCS
 
 EPCS is not yet ready, so do not claim to support it.
 
@@ -12,10 +12,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 9a2e51f8..32c79bd8 100644
+index e4fd6da..1fe3f09 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -1538,7 +1538,7 @@ mt7996_init_eht_caps(struct mt7996_phy *phy, enum nl80211_band band,
+@@ -1535,7 +1535,7 @@ mt7996_init_eht_caps(struct mt7996_phy *phy, enum nl80211_band band,
  	eht_cap->has_eht = true;
  
  	eht_cap_elem->mac_cap_info[0] =
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0130-mtk-mt76-mt7996-fix-kite-can-t-handle-11v-beacon-on-.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0130-mtk-mt76-mt7996-fix-kite-can-t-handle-11v-beacon-on-.patch
index b9f377e..3094b7d 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0130-mtk-mt76-mt7996-fix-kite-can-t-handle-11v-beacon-on-.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0130-mtk-mt76-mt7996-fix-kite-can-t-handle-11v-beacon-on-.patch
@@ -1,7 +1,7 @@
-From f703aab4906d08ae441eb0c710c288db45445cae Mon Sep 17 00:00:00 2001
+From 0d11b7b5e82424cc85fb019ae36f42ce2e602d5c Mon Sep 17 00:00:00 2001
 From: Rex Lu <rex.lu@mediatek.com>
 Date: Thu, 30 May 2024 17:39:38 +0800
-Subject: [PATCH 130/223] mtk: mt76: mt7996: fix kite can't handle 11v beacon
+Subject: [PATCH 130/193] mtk: mt76: mt7996: fix kite can't handle 11v beacon
  on sta side
 
 this hw flag SUPPORTS_MULTI_BSSID need to set. otherwise cfg80211_parse_mbssid_data will not handle 11v mbss beacon
@@ -12,10 +12,10 @@
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 32c79bd8..001f0d9c 100644
+index 1fe3f09..7d0dea4 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -48,6 +48,7 @@ static const struct ieee80211_iface_combination if_comb[] = {
+@@ -45,6 +45,7 @@ static const struct ieee80211_iface_combination if_comb[] = {
  
  static const u8 mt7996_if_types_ext_capa[] = {
  	[0] = WLAN_EXT_CAPA1_EXT_CHANNEL_SWITCHING,
@@ -23,7 +23,7 @@
  	[7] = WLAN_EXT_CAPA8_OPMODE_NOTIF,
  };
  
-@@ -447,7 +448,7 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
+@@ -444,7 +445,7 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
  	ieee80211_hw_set(hw, SUPPORTS_TX_ENCAP_OFFLOAD);
  	ieee80211_hw_set(hw, SUPPORTS_RX_DECAP_OFFLOAD);
  	ieee80211_hw_set(hw, WANT_MONITOR_VIF);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0131-mtk-mt76-mt7996-add-post-channel-switch-for-DFS-chan.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0131-mtk-mt76-mt7996-add-post-channel-switch-for-DFS-chan.patch
index 421aa70..a5f9932 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0131-mtk-mt76-mt7996-add-post-channel-switch-for-DFS-chan.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0131-mtk-mt76-mt7996-add-post-channel-switch-for-DFS-chan.patch
@@ -1,7 +1,7 @@
-From 00ef78d4d0738e36f529950b754e0042bdd57a68 Mon Sep 17 00:00:00 2001
+From fc4b0be9b3360a333f7bdfb75ab55e6f8edeb2d2 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Wed, 21 Feb 2024 13:41:23 +0800
-Subject: [PATCH 131/223] mtk: mt76: mt7996: add post channel switch for DFS
+Subject: [PATCH 131/193] mtk: mt76: mt7996: add post channel switch for DFS
  channel switching
 
 Add post channel switch callback for DFS channel switch support
@@ -17,10 +17,10 @@
  2 files changed, 17 insertions(+)
 
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 001f0d9c..420c23c9 100644
+index 7d0dea4..311d7cc 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -451,6 +451,7 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
+@@ -448,6 +448,7 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
  	ieee80211_hw_set(hw, SUPPORTS_MULTI_BSSID);
  	ieee80211_hw_set(hw, CHANCTX_STA_CSA);
  	ieee80211_hw_set(hw, CONNECTION_MONITOR);
@@ -29,10 +29,10 @@
  	hw->max_tx_fragments = 4;
  
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 2b272cc4..485c87f9 100644
+index c8dc068..170657f 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -1078,6 +1078,21 @@ fail:
+@@ -1077,6 +1077,21 @@ fail:
  	mutex_unlock(&dev->mt76.mutex);
  }
  
@@ -54,7 +54,7 @@
  static void mt7996_remove_link_sta(struct mt7996_dev *dev,
  				   struct ieee80211_bss_conf *conf,
  				   struct mt7996_bss_conf *mconf,
-@@ -2795,6 +2810,7 @@ const struct ieee80211_ops mt7996_ops = {
+@@ -2794,6 +2809,7 @@ const struct ieee80211_ops mt7996_ops = {
  	.release_buffered_frames = mt76_release_buffered_frames,
  	.get_txpower = mt7996_get_txpower,
  	.channel_switch_beacon = mt7996_channel_switch_beacon,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0132-mtk-mt76-mt7996-update-testmode-bf-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0132-mtk-mt76-mt7996-update-testmode-bf-support.patch
index 40e7ee1..4681bca 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0132-mtk-mt76-mt7996-update-testmode-bf-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0132-mtk-mt76-mt7996-update-testmode-bf-support.patch
@@ -1,7 +1,7 @@
-From 04a4a2672095e1b0162153655874ba194370ffc2 Mon Sep 17 00:00:00 2001
+From 5d2c4853535d0f98c5a0f5259c713c99b663175c Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Mon, 3 Jun 2024 16:40:38 +0800
-Subject: [PATCH 132/223] mtk: mt76: mt7996: update testmode bf support
+Subject: [PATCH 132/193] mtk: mt76: mt7996: update testmode bf support
 
 Fix bssid & omac idx to band idx when testmode is enabled
 
@@ -20,7 +20,7 @@
  6 files changed, 98 insertions(+), 34 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
-index bc263bd4..526b6298 100644
+index bc263bd..526b629 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -796,6 +796,9 @@ struct mt76_testmode_data {
@@ -34,7 +34,7 @@
  
  	u8 tx_power[4];
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 485c87f9..f67e1b5d 100644
+index 170657f..5ed82a0 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -349,16 +349,27 @@ static int mt7996_add_bss_conf(struct mt7996_phy *phy,
@@ -75,7 +75,7 @@
  
  	mconf->own_mld_id = get_own_mld_idx(dev->mld_id_mask, false);
 diff --git a/mt7996/testmode.c b/mt7996/testmode.c
-index c68619cb..240227a9 100644
+index c68619c..240227a 100644
 --- a/mt7996/testmode.c
 +++ b/mt7996/testmode.c
 @@ -241,8 +241,10 @@ mt7996_tm_init(struct mt7996_phy *phy, bool en)
@@ -210,7 +210,7 @@
  
  	if (ebf) {
 diff --git a/testmode.c b/testmode.c
-index a1744755..2834400f 100644
+index a174475..2834400 100644
 --- a/testmode.c
 +++ b/testmode.c
 @@ -25,6 +25,8 @@ const struct nla_policy mt76_tm_policy[NUM_MT76_TM_ATTRS] = {
@@ -261,7 +261,7 @@
  	     nla_put_u32(msg, MT76_TM_ATTR_FREQ_OFFSET, td->freq_offset)))
  		goto out;
 diff --git a/testmode.h b/testmode.h
-index 794a74f9..44f9984c 100644
+index 794a74f..44f9984 100644
 --- a/testmode.h
 +++ b/testmode.h
 @@ -37,6 +37,9 @@
@@ -285,7 +285,7 @@
  
  	MT76_TM_ATTR_STATS,
 diff --git a/tools/fields.c b/tools/fields.c
-index f793d1a5..8b372602 100644
+index f793d1a..8b37260 100644
 --- a/tools/fields.c
 +++ b/tools/fields.c
 @@ -35,13 +35,21 @@ static const char * const testmode_tx_mode[] = {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0133-mtk-mt76-mt7996-add-mlo-related-debugfs-knob.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0133-mtk-mt76-mt7996-add-mlo-related-debugfs-knob.patch
index 819ecfb..a65f9d2 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0133-mtk-mt76-mt7996-add-mlo-related-debugfs-knob.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0133-mtk-mt76-mt7996-add-mlo-related-debugfs-knob.patch
@@ -1,7 +1,7 @@
-From 4f2f27ccf6133c9f51f798a872387aa15337b923 Mon Sep 17 00:00:00 2001
+From 5271bd64b66e489a96dd99571385f700baed6f5c Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Mon, 27 May 2024 19:06:04 +0800
-Subject: [PATCH 133/223] mtk: mt76: mt7996: add mlo related debugfs knob
+Subject: [PATCH 133/193] mtk: mt76: mt7996: add mlo related debugfs knob
 
 Add the following debugfs knob
 Per-bss link info
@@ -21,7 +21,7 @@
  3 files changed, 119 insertions(+), 1 deletion(-)
 
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index 9a62dfda..bafbcda1 100644
+index 9a62dfd..bafbcda 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -1330,11 +1330,128 @@ mt7996_queues_show(struct seq_file *s, void *data)
@@ -162,10 +162,10 @@
  	seq_printf(file, "\t\tMPDU Fails: %u (PER: %u.%u%%)\n", stats->tx_failed,
  		   stats->tx_mpdus ? stats->tx_failed * 1000 / stats->tx_mpdus / 10 : 0,
 diff --git a/mt7996/main.c b/mt7996/main.c
-index f67e1b5d..915a9f4f 100644
+index 5ed82a0..7bd189b 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -2845,6 +2845,7 @@ const struct ieee80211_ops mt7996_ops = {
+@@ -2844,6 +2844,7 @@ const struct ieee80211_ops mt7996_ops = {
  	.sta_add_debugfs = mt7996_sta_add_debugfs,
  	.link_sta_add_debugfs = mt7996_link_sta_add_debugfs,
  	// .link_add_debugfs = mt7996_link_add_debugfs,
@@ -174,7 +174,7 @@
  	.set_radar_background = mt7996_set_radar_background,
  #ifdef CONFIG_NET_MEDIATEK_SOC_WED
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 9f58a793..984ae79e 100644
+index 9f58a79..984ae79 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1251,6 +1251,7 @@ int mt7996_mcu_set_eml_omn(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0134-mtk-mt76-mt7996-add-debugfs-knob-to-show-mlo-related.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0134-mtk-mt76-mt7996-add-debugfs-knob-to-show-mlo-related.patch
index ca24c64..84d20a9 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0134-mtk-mt76-mt7996-add-debugfs-knob-to-show-mlo-related.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0134-mtk-mt76-mt7996-add-debugfs-knob-to-show-mlo-related.patch
@@ -1,7 +1,7 @@
-From c2753e78a28cc8efca84dcf1e7d33dff6ccfa528 Mon Sep 17 00:00:00 2001
+From 09b0caba56ffde8a00f5e4cf2c2a90fcd71d5e21 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Wed, 29 May 2024 18:45:50 +0800
-Subject: [PATCH 134/223] mtk: mt76: mt7996: add debugfs knob to show mlo
+Subject: [PATCH 134/193] mtk: mt76: mt7996: add debugfs knob to show mlo
  related table
 
 Add the following debugfs knob
@@ -19,7 +19,7 @@
  4 files changed, 119 insertions(+), 3 deletions(-)
 
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index bafbcda1..240c6d46 100644
+index bafbcda..240c6d4 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -1107,6 +1107,7 @@ int mt7996_init_band_debugfs(struct mt7996_phy *phy)
@@ -40,7 +40,7 @@
  	}
  
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 984ae79e..8af3c400 100644
+index 984ae79..8af3c40 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1326,7 +1326,8 @@ void mt7996_packet_log_to_host(struct mt7996_dev *dev, const void *data, int len
@@ -54,7 +54,7 @@
  
  #ifdef CONFIG_NET_MEDIATEK_SOC_WED
 diff --git a/mt7996/mtk_debug_i.h b/mt7996/mtk_debug_i.h
-index d3756fa2..cec8d57e 100644
+index d3756fa..cec8d57 100644
 --- a/mt7996/mtk_debug_i.h
 +++ b/mt7996/mtk_debug_i.h
 @@ -982,6 +982,30 @@
@@ -89,7 +89,7 @@
  
  #endif
 diff --git a/mt7996/mtk_debugfs_i.c b/mt7996/mtk_debugfs_i.c
-index ea412cd5..839c3e31 100644
+index ea412cd..839c3e3 100644
 --- a/mt7996/mtk_debugfs_i.c
 +++ b/mt7996/mtk_debugfs_i.c
 @@ -695,7 +695,86 @@ static int mt7996_rx_msdu_pg_read(struct seq_file *s, void *data)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0135-mtk-mt76-mt7996-add-debugfs-knob-to-set-agc.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0135-mtk-mt76-mt7996-add-debugfs-knob-to-set-agc.patch
index 4aa3e88..28fee85 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0135-mtk-mt76-mt7996-add-debugfs-knob-to-set-agc.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0135-mtk-mt76-mt7996-add-debugfs-knob-to-set-agc.patch
@@ -1,7 +1,7 @@
-From 4483bcc086666bb2eaf40774c30d35d60911524b Mon Sep 17 00:00:00 2001
+From 70dea3d8ac2ae513c116b0fc075552a46f3fcf47 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Fri, 31 May 2024 10:55:03 +0800
-Subject: [PATCH 135/223] mtk: mt76: mt7996: add debugfs knob to set agc
+Subject: [PATCH 135/193] mtk: mt76: mt7996: add debugfs knob to set agc
 
 Add the following debugfs knob
 - /sys/kernel/debug/ieee80211/phy0/mt76/mlo_agc_tx
@@ -18,7 +18,7 @@
  5 files changed, 131 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 2daa09cc..73cf311a 100644
+index 2daa09c..73cf311 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1317,6 +1317,7 @@ enum {
@@ -30,7 +30,7 @@
  	MCU_UNI_CMD_ALL_STA_INFO = 0x6e,
  	MCU_UNI_CMD_ASSERT_DUMP = 0x6f,
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index c39dcc3c..389aab63 100644
+index c39dcc3..389aab6 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -1157,6 +1157,26 @@ enum {
@@ -61,7 +61,7 @@
  #define MT7996_PATCH_SCRAMBLE_KEY	GENMASK(15, 8)
  #define MT7996_PATCH_AES_KEY		GENMASK(7, 0)
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 8af3c400..7bb17126 100644
+index 8af3c40..7bb1712 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1328,6 +1328,7 @@ void mt7996_dump_bmac_txd_info(struct seq_file *s, struct mt7996_dev *dev,
@@ -73,7 +73,7 @@
  
  #ifdef CONFIG_NET_MEDIATEK_SOC_WED
 diff --git a/mt7996/mtk_debugfs_i.c b/mt7996/mtk_debugfs_i.c
-index 839c3e31..852d1b12 100644
+index 839c3e3..852d1b1 100644
 --- a/mt7996/mtk_debugfs_i.c
 +++ b/mt7996/mtk_debugfs_i.c
 @@ -774,6 +774,106 @@ mt7996_agg_table_show(struct seq_file *s, void *data)
@@ -194,7 +194,7 @@
  }
  
 diff --git a/mt7996/mtk_mcu.c b/mt7996/mtk_mcu.c
-index 809181e0..82e3f721 100644
+index 809181e..82e3f72 100644
 --- a/mt7996/mtk_mcu.c
 +++ b/mt7996/mtk_mcu.c
 @@ -1364,4 +1364,10 @@ int mt7996_mcu_thermal_debug(struct mt7996_dev *dev, u8 mode, u8 action)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0136-mtk-mt76-mt7996-set-unused-band-to-UNSPECIFIED-in-ba.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0136-mtk-mt76-mt7996-set-unused-band-to-UNSPECIFIED-in-ba.patch
index 9bc37e1..4e55b7e 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0136-mtk-mt76-mt7996-set-unused-band-to-UNSPECIFIED-in-ba.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0136-mtk-mt76-mt7996-set-unused-band-to-UNSPECIFIED-in-ba.patch
@@ -1,7 +1,7 @@
-From c179e8dd87acac5c2a7d04bb7e58722da862fc95 Mon Sep 17 00:00:00 2001
+From c14b26df4ab2474ea89fbc410f570d28d415bb9f Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Wed, 5 Jun 2024 10:11:13 +0800
-Subject: [PATCH 136/223] mtk: mt76: mt7996: set unused band to UNSPECIFIED in
+Subject: [PATCH 136/193] mtk: mt76: mt7996: set unused band to UNSPECIFIED in
  band_to_link
 
 Change-Id: I21190c5952a9c2f2a7f5f619f8d1fb23dd127c6f
@@ -13,7 +13,7 @@
  3 files changed, 10 insertions(+)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 915a9f4f..9ad4a9d6 100644
+index 7bd189b..436ef82 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -482,6 +482,8 @@ static int mt7996_add_interface(struct ieee80211_hw *hw,
@@ -25,7 +25,7 @@
  
  	if (vif->type == NL80211_IFTYPE_STATION)
  		ret = mt7996_add_bss_conf(phy, vif, &vif->bss_conf);
-@@ -1054,6 +1056,8 @@ mt7996_channel_switch_beacon(struct ieee80211_hw *hw,
+@@ -1053,6 +1055,8 @@ mt7996_channel_switch_beacon(struct ieee80211_hw *hw,
  
  	mutex_lock(&dev->mt76.mutex);
  	link_id = mvif->band_to_link[phy->mt76->band_idx];
@@ -35,7 +35,7 @@
  	if (!mvif->cs_ready_links)
  		mvif->cs_link_id = link_id;
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index a6f2c157..a62b5f9e 100644
+index 29dc95b..b498e9e 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -379,6 +379,9 @@ mt7996_mcu_csa_finish(void *priv, u8 *mac, struct ieee80211_vif *vif)
@@ -49,7 +49,7 @@
  
  	if (!link_conf || !link_conf->csa_active || vif->type == NL80211_IFTYPE_STATION)
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 7bb17126..3ff9cb68 100644
+index 7bb1712..3ff9cb6 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -966,6 +966,9 @@ mt7996_get_link_wcid(struct mt7996_dev *dev, u16 idx, u8 band_idx)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0137-mtk-mt76-mt7996-support-per-link-report-of-bss-color.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0137-mtk-mt76-mt7996-support-per-link-report-of-bss-color.patch
index 6839514..ac98060 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0137-mtk-mt76-mt7996-support-per-link-report-of-bss-color.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0137-mtk-mt76-mt7996-support-per-link-report-of-bss-color.patch
@@ -1,7 +1,7 @@
-From c481c255433c20d071b76c82d8c4f4372a13fd17 Mon Sep 17 00:00:00 2001
+From 9258ff3f702e39c417fa0a15815d4b494cd4f917 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Wed, 5 Jun 2024 19:11:13 +0800
-Subject: [PATCH 137/223] mtk: mt76: mt7996: support per-link report of bss
+Subject: [PATCH 137/193] mtk: mt76: mt7996: support per-link report of bss
  color change
 
 ieee80211_color_change_finish() has been extended for per-link support.
@@ -13,7 +13,7 @@
  1 file changed, 14 insertions(+), 3 deletions(-)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index a62b5f9e..043f8d5c 100644
+index b498e9e..03ddb6a 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -477,10 +477,21 @@ out:
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0138-mtk-mt76-mt7996-Fix-inconsistent-QoS-mapping-between.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0138-mtk-mt76-mt7996-Fix-inconsistent-QoS-mapping-between.patch
index 64030e7..f44171e 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0138-mtk-mt76-mt7996-Fix-inconsistent-QoS-mapping-between.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0138-mtk-mt76-mt7996-Fix-inconsistent-QoS-mapping-between.patch
@@ -1,7 +1,7 @@
-From 0f060bd8db3e101c30617548032f00adabcd9ffa Mon Sep 17 00:00:00 2001
+From fead2ef7e8e72032188e81fc53c58dfbe4eb3940 Mon Sep 17 00:00:00 2001
 From: Rex Lu <rex.lu@mediatek.com>
 Date: Fri, 7 Jun 2024 13:51:25 +0800
-Subject: [PATCH 138/223] mtk: mt76: mt7996: Fix inconsistent QoS mapping
+Subject: [PATCH 138/193] mtk: mt76: mt7996: Fix inconsistent QoS mapping
  between SW and HW
 
 Fix inconsistent QoS mapping between SW and HW.
@@ -28,7 +28,7 @@
  4 files changed, 94 insertions(+), 1 deletion(-)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 73cf311a..1971c7bf 100644
+index 73cf311..1971c7b 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1267,6 +1267,7 @@ enum {
@@ -40,10 +40,10 @@
  
  enum {
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 9ad4a9d6..c1c62d32 100644
+index 436ef82..dc3f555 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -2369,6 +2369,9 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
+@@ -2368,6 +2368,9 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
  
  	ctx->dev = NULL;
  
@@ -53,7 +53,7 @@
  	return 0;
  }
  
-@@ -2798,6 +2801,33 @@ mt7996_event_callback(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2797,6 +2800,33 @@ mt7996_event_callback(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	}
  }
  
@@ -87,14 +87,14 @@
  const struct ieee80211_ops mt7996_ops = {
  	.add_chanctx = ieee80211_emulate_add_chanctx,
  	.remove_chanctx = ieee80211_emulate_remove_chanctx,
-@@ -2865,4 +2895,5 @@ const struct ieee80211_ops mt7996_ops = {
+@@ -2864,4 +2894,5 @@ const struct ieee80211_ops mt7996_ops = {
  	.switch_vif_chanctx = mt7996_switch_vif_chanctx,
  	.change_vif_links = mt7996_change_vif_links,
  	.change_sta_links = mt7996_change_sta_links,
 +	.set_qos_map = mt7996_set_qos_map,
  };
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 043f8d5c..edbe9cbe 100644
+index 03ddb6a..675af8c 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -6693,4 +6693,59 @@ int mt7996_mcu_set_csi(struct mt7996_phy *phy, u8 mode,
@@ -158,7 +158,7 @@
 +}
  #endif
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 3ff9cb68..d97df22f 100644
+index 3ff9cb6..d97df22 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -136,6 +136,8 @@
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0139-mtk-mt76-mt7996-add-support-for-MLD-interface-to-sca.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0139-mtk-mt76-mt7996-add-support-for-MLD-interface-to-sca.patch
index 366eea1..c7aa096 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0139-mtk-mt76-mt7996-add-support-for-MLD-interface-to-sca.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0139-mtk-mt76-mt7996-add-support-for-MLD-interface-to-sca.patch
@@ -1,7 +1,7 @@
-From 648d4259da57439452141aeaeed96722d96c1c56 Mon Sep 17 00:00:00 2001
+From 36b4da069bd63833b025da512fe9301aecf302a9 Mon Sep 17 00:00:00 2001
 From: Michael-CY Lee <michael-cy.lee@mediatek.com>
 Date: Thu, 30 May 2024 15:26:34 +0800
-Subject: [PATCH 139/223] mtk: mt76: mt7996: add support for MLD interface to
+Subject: [PATCH 139/193] mtk: mt76: mt7996: add support for MLD interface to
  scan
 
 Before queueing a HW scan work, mt7996_hw_scan() should make sure that
@@ -27,10 +27,10 @@
  1 file changed, 77 insertions(+), 2 deletions(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index c1c62d32..5ddf3a1b 100644
+index dc3f555..5207716 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -2379,10 +2379,24 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
+@@ -2378,10 +2378,24 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
  
  void mt7996_scan_complete(struct mt7996_phy *phy, bool aborted)
  {
@@ -56,7 +56,7 @@
  
  	ieee80211_scan_completed(mvif->hw, &info);
  	phy->scan_chan = NULL;
-@@ -2398,6 +2412,7 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2397,6 +2411,7 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	struct cfg80211_scan_request *req = &hw_req->req;
  	struct mt7996_phy *phy = mt7996_band_phy(hw, req->channels[0]->band);
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
@@ -64,7 +64,7 @@
  	int ret;
  
  	mutex_lock(&phy->dev->mt76.mutex);
-@@ -2411,7 +2426,7 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2410,7 +2425,7 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	phy->scan_chan_idx = 0;
  
  	if (!ieee80211_vif_is_mld(vif)) {
@@ -73,7 +73,7 @@
  
  		if (mconf && mconf->phy != phy) {
  			mt7996_remove_bss_conf(vif, &vif->bss_conf, &mvif->deflink);
-@@ -2425,6 +2440,66 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2424,6 +2439,66 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  				return ret;
  			}
  		}
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0140-mtk-mt76-mt7996-add-per-link-txpower-config.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0140-mtk-mt76-mt7996-add-per-link-txpower-config.patch
index 71363f4..7ea07b3 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0140-mtk-mt76-mt7996-add-per-link-txpower-config.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0140-mtk-mt76-mt7996-add-per-link-txpower-config.patch
@@ -1,7 +1,7 @@
-From 20c5dfdc5afbb01b853689dd45f1826e9644a87b Mon Sep 17 00:00:00 2001
+From 144595bc970deaff03247b457a43cf8685328c97 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Tue, 11 Jun 2024 17:04:00 +0800
-Subject: [PATCH 140/223] mtk: mt76: mt7996: add per-link txpower config
+Subject: [PATCH 140/193] mtk: mt76: mt7996: add per-link txpower config
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 ---
@@ -9,10 +9,10 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 5ddf3a1b..ed64cf06 100644
+index 5207716..cc0c5ac 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -1016,7 +1016,7 @@ out:
+@@ -1015,7 +1015,7 @@ out:
  }
  
  int mt7996_get_txpower(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
@@ -21,7 +21,7 @@
  {
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
  	struct mt7996_bss_conf *mconf;
-@@ -1025,7 +1025,7 @@ int mt7996_get_txpower(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -1024,7 +1024,7 @@ int mt7996_get_txpower(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	int delta;
  
  	mutex_lock(&dev->mt76.mutex);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0141-mtk-mt76-mt7996-update-TX-RX-rates-via-MCU-command.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0141-mtk-mt76-mt7996-update-TX-RX-rates-via-MCU-command.patch
index f23c7ee..ebdd4e3 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0141-mtk-mt76-mt7996-update-TX-RX-rates-via-MCU-command.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0141-mtk-mt76-mt7996-update-TX-RX-rates-via-MCU-command.patch
@@ -1,7 +1,7 @@
-From c394984fc5a6e52aa435ead825e617fb3a0e7b81 Mon Sep 17 00:00:00 2001
+From 0c094b292cac8e88528a2eeb7ffc47125b2a63f4 Mon Sep 17 00:00:00 2001
 From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
 Date: Fri, 7 Jun 2024 10:44:45 +0800
-Subject: [PATCH 141/223] mtk: mt76: mt7996: update TX/RX rates via MCU command
+Subject: [PATCH 141/193] mtk: mt76: mt7996: update TX/RX rates via MCU command
 
 Update TX/RX rates via MCU command to address following issues:
 1. TX rate was originally updated via TXS. However in MLO connection, WCID from TXS may not represent the actually used link.
@@ -20,7 +20,7 @@
  4 files changed, 161 insertions(+), 131 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
-index 526b6298..de6f2be0 100644
+index 526b629..de6f2be 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -374,6 +374,7 @@ struct mt76_wcid {
@@ -32,7 +32,7 @@
  
  	u16 idx;
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 02045b84..39336832 100644
+index 02045b8..3933683 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -1254,15 +1254,12 @@ mt7996_mac_add_txs_skb(struct mt7996_dev *dev, struct mt76_wcid *wcid,
@@ -174,10 +174,10 @@
  		mt76_tx_status_skb_done(mdev, skb, &list);
  	mt76_tx_status_unlock(mdev, &list);
 diff --git a/mt7996/main.c b/mt7996/main.c
-index ed64cf06..05917cc8 100644
+index cc0c5ac..73a04e9 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -1769,32 +1769,24 @@ static void mt7996_sta_statistics(struct ieee80211_hw *hw,
+@@ -1768,32 +1768,24 @@ static void mt7996_sta_statistics(struct ieee80211_hw *hw,
  	struct mt7996_phy *phy = mt7996_hw_phy(hw);
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
  	struct mt7996_link_sta *mlink;
@@ -221,7 +221,7 @@
  	sinfo->tx_failed = mlink->wcid.stats.tx_failed;
  	sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_FAILED);
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index edbe9cbe..ee27b5df 100644
+index 675af8c..66f6d46 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -537,42 +537,164 @@ mt7996_mcu_ie_countdown(struct mt7996_dev *dev, struct sk_buff *skb)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0142-mtk-mt76-mt7996-add-link-information-when-dump-stati.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0142-mtk-mt76-mt7996-add-link-information-when-dump-stati.patch
index 9ce1f11..6dca178 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0142-mtk-mt76-mt7996-add-link-information-when-dump-stati.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0142-mtk-mt76-mt7996-add-link-information-when-dump-stati.patch
@@ -1,7 +1,7 @@
-From ff2647b012eddbe530dd4b900506911fa91c8329 Mon Sep 17 00:00:00 2001
+From f4bc56dac7cff717c1a6a510ecafea00a25c0c2c Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Tue, 11 Jun 2024 18:09:57 +0800
-Subject: [PATCH 142/223] mtk: mt76: mt7996: add link information when dump
+Subject: [PATCH 142/193] mtk: mt76: mt7996: add link information when dump
  station
 
 Report following per-link information to mac80211:
@@ -21,10 +21,10 @@
  1 file changed, 78 insertions(+)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 05917cc8..380a6ca0 100644
+index 73a04e9..ad35b65 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -1817,6 +1817,83 @@ out:
+@@ -1816,6 +1816,83 @@ out:
  	mutex_unlock(&dev->mt76.mutex);
  }
  
@@ -108,7 +108,7 @@
  static void mt7996_sta_rc_work(void *data, struct ieee80211_sta *sta)
  {
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
-@@ -2936,6 +3013,7 @@ const struct ieee80211_ops mt7996_ops = {
+@@ -2935,6 +3012,7 @@ const struct ieee80211_ops mt7996_ops = {
  	.set_bitrate_mask = mt7996_set_bitrate_mask,
  	.set_coverage_class = mt7996_set_coverage_class,
  	.sta_statistics = mt7996_sta_statistics,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0143-mtk-mt76-mt7996-add-per-link-RX-MPDU-statistics.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0143-mtk-mt76-mt7996-add-per-link-RX-MPDU-statistics.patch
index bb0bde1..2fd5579 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0143-mtk-mt76-mt7996-add-per-link-RX-MPDU-statistics.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0143-mtk-mt76-mt7996-add-per-link-RX-MPDU-statistics.patch
@@ -1,7 +1,7 @@
-From 9e31f71efd5909af8d8916285f0816914fd15bac Mon Sep 17 00:00:00 2001
+From b784e9ad2ee7187b065d10c87b20a127e59346eb Mon Sep 17 00:00:00 2001
 From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
 Date: Tue, 23 Jul 2024 16:37:57 +0800
-Subject: [PATCH 143/223] mtk: mt76: mt7996: add per-link RX MPDU statistics
+Subject: [PATCH 143/193] mtk: mt76: mt7996: add per-link RX MPDU statistics
 
 Add per-link RX MPDU total/failed counts.
 
@@ -16,7 +16,7 @@
  5 files changed, 22 insertions(+)
 
 diff --git a/mt76.h b/mt76.h
-index de6f2be0..ce34cccc 100644
+index de6f2be..ce34ccc 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -340,6 +340,8 @@ struct mt76_sta_stats {
@@ -29,7 +29,7 @@
  	u32 rx_drops;
  	u64 rx_airtime;
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 1971c7bf..931b29eb 100644
+index 1971c7b..931b29e 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1426,6 +1426,8 @@ enum UNI_ALL_STA_INFO_TAG {
@@ -42,7 +42,7 @@
  };
  
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 39336832..966cf314 100644
+index 3933683..966cf31 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -2420,6 +2420,7 @@ void mt7996_mac_work(struct work_struct *work)
@@ -54,7 +54,7 @@
  				if (mt7996_mcu_wa_cmd(phy->dev, MCU_WA_PARAM_CMD(QUERY), MCU_WA_PARAM_BSS_ACQ_PKT_CNT,
  				                      BSS_ACQ_PKT_CNT_BSS_BITMAP_ALL | BSS_ACQ_PKT_CNT_READ_CLR, 0))
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index ee27b5df..4a99671f 100644
+index 66f6d46..8bd2718 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -808,6 +808,16 @@ mt7996_mcu_rx_all_sta_info_event(struct mt7996_dev *dev, struct sk_buff *skb)
@@ -75,7 +75,7 @@
  			break;
  		}
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 389aab63..737f426d 100644
+index 389aab6..737f426 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -268,6 +268,13 @@ struct mt7996_mcu_all_sta_info_event {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0144-mtk-mt76-mt7996-support-link_id-for-mt7996_set_bitra.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0144-mtk-mt76-mt7996-support-link_id-for-mt7996_set_bitra.patch
index 4e9a59b..48da425 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0144-mtk-mt76-mt7996-support-link_id-for-mt7996_set_bitra.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0144-mtk-mt76-mt7996-support-link_id-for-mt7996_set_bitra.patch
@@ -1,7 +1,7 @@
-From cd89b66b8dac6cbb4569d61c7f23b06692410adf Mon Sep 17 00:00:00 2001
+From 0cd3a2d760fa93dac064a2d44770a1742d797dfb Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Fri, 7 Jun 2024 13:23:55 +0800
-Subject: [PATCH 144/223] mtk: mt76: mt7996: support link_id for
+Subject: [PATCH 144/193] mtk: mt76: mt7996: support link_id for
  mt7996_set_bitrate_mask
 
 Add support new argument link_id for set_bitrate_mask within
@@ -15,10 +15,10 @@
  2 files changed, 31 insertions(+), 8 deletions(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 380a6ca0..118c7d67 100644
+index ad35b65..5044e89 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -1899,17 +1899,21 @@ static void mt7996_sta_rc_work(void *data, struct ieee80211_sta *sta)
+@@ -1898,17 +1898,21 @@ static void mt7996_sta_rc_work(void *data, struct ieee80211_sta *sta)
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
  	struct mt7996_link_sta *mlink;
  	struct mt7996_dev *dev = msta->vif->dev;
@@ -43,7 +43,7 @@
  	rcu_read_unlock();
  }
  
-@@ -1921,6 +1925,10 @@ static void mt7996_sta_rc_update(struct ieee80211_hw *hw,
+@@ -1920,6 +1924,10 @@ static void mt7996_sta_rc_update(struct ieee80211_hw *hw,
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
  	struct mt7996_phy *phy = mt7996_hw_phy(hw);
  	struct mt7996_dev *dev = phy->dev;
@@ -54,7 +54,7 @@
  
  	if (!msta->vif) {
  		dev_warn(dev->mt76.dev, "Un-initialized STA %pM wcid %d in rc_work\n",
-@@ -1928,22 +1936,32 @@ static void mt7996_sta_rc_update(struct ieee80211_hw *hw,
+@@ -1927,22 +1935,32 @@ static void mt7996_sta_rc_update(struct ieee80211_hw *hw,
  		return;
  	}
  
@@ -91,7 +91,7 @@
  	mconf->bitrate_mask = *mask;
  	mutex_unlock(&dev->mt76.mutex);
  
-@@ -1955,7 +1973,7 @@ mt7996_set_bitrate_mask(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -1954,7 +1972,7 @@ mt7996_set_bitrate_mask(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	 * - multiple rates: if it's not in range format i.e 0-{7,8,9} for VHT
  	 * then multiple MCS setting (MCS 4,5,6) is not supported.
  	 */
@@ -101,7 +101,7 @@
  
  	return 0;
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index d97df22f..ccea70af 100644
+index d97df22..ccea70a 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -445,6 +445,11 @@ struct mt7996_wed_rro_session_id {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0145-mtk-mt76-mt7996-add-per-radio-antenna-config.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0145-mtk-mt76-mt7996-add-per-radio-antenna-config.patch
index bee539b..e6b11af 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0145-mtk-mt76-mt7996-add-per-radio-antenna-config.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0145-mtk-mt76-mt7996-add-per-radio-antenna-config.patch
@@ -1,7 +1,7 @@
-From 31c98d0e5f309c927880c4781a4c9323b6d41981 Mon Sep 17 00:00:00 2001
+From 087fde967ac8a47068fbf7a704320af4ce1dc641 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Tue, 11 Jun 2024 17:04:22 +0800
-Subject: [PATCH 145/223] mtk: mt76: mt7996: add per-radio antenna config
+Subject: [PATCH 145/193] mtk: mt76: mt7996: add per-radio antenna config
 
 Add per-radio antenna config
 
@@ -18,7 +18,7 @@
  7 files changed, 47 insertions(+), 29 deletions(-)
 
 diff --git a/mac80211.c b/mac80211.c
-index f986d5fd..a555bec2 100644
+index f986d5f..a555bec 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -431,8 +431,8 @@ mt76_phy_init(struct mt76_phy *phy, struct ieee80211_hw *hw)
@@ -60,7 +60,7 @@
  	*rx_ant = phy->antenna_mask;
  	mutex_unlock(&dev->mutex);
 diff --git a/mt76.h b/mt76.h
-index ce34cccc..8e71c2ce 100644
+index ce34ccc..8e71c2c 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -877,6 +877,7 @@ struct mt76_phy {
@@ -81,7 +81,7 @@
  void mt76_insert_ccmp_hdr(struct sk_buff *skb, u8 key_id);
  int mt76_get_rate(struct mt76_dev *dev,
 diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index f9bd4d91..72a21fcf 100644
+index f9bd4d9..72a21fc 100644
 --- a/mt7996/eeprom.c
 +++ b/mt7996/eeprom.c
 @@ -410,12 +410,15 @@ static int mt7996_eeprom_parse_band_config(struct mt7996_phy *phy)
@@ -101,10 +101,10 @@
  	default:
  		ret = -EINVAL;
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 420c23c9..18a86afe 100644
+index 311d7cc..419ecaf 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -392,8 +392,10 @@ static void
+@@ -389,8 +389,10 @@ static void
  mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
  {
  	struct mt7996_phy *phy = mt7996_hw_phy(hw);
@@ -115,7 +115,7 @@
  	u16 max_subframes = phy->dev->has_eht ? IEEE80211_MAX_AMPDU_BUF_EHT :
  						IEEE80211_MAX_AMPDU_BUF_HE;
  
-@@ -455,25 +457,25 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
+@@ -452,25 +454,25 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
  
  	hw->max_tx_fragments = 4;
  
@@ -148,7 +148,7 @@
  			IEEE80211_HT_MPDU_DENSITY_1;
  
  		ieee80211_hw_set(hw, SUPPORTS_VHT_EXT_NSS_BW);
-@@ -481,17 +483,17 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
+@@ -478,17 +480,17 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
  
  	/* init led callbacks */
  	if (IS_ENABLED(CONFIG_MT76_LEDS)) {
@@ -172,10 +172,10 @@
  	wiphy->max_scan_ssids = 4;
  	wiphy->max_scan_ie_len = IEEE80211_MAX_DATA_LEN;
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 118c7d67..d73fd9d6 100644
+index 5044e89..678da02 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -1705,14 +1705,11 @@ mt7996_set_coverage_class(struct ieee80211_hw *hw, s16 coverage_class)
+@@ -1704,14 +1704,11 @@ mt7996_set_coverage_class(struct ieee80211_hw *hw, s16 coverage_class)
  }
  
  static int
@@ -193,7 +193,7 @@
  
  	/* only allow settings from hw0 */
  	if (hw != dev->phy.mt76->hw)
-@@ -1726,14 +1723,14 @@ mt7996_set_antenna(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant)
+@@ -1725,14 +1722,14 @@ mt7996_set_antenna(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant)
  
  	mutex_lock(&dev->mt76.mutex);
  
@@ -212,7 +212,7 @@
  			continue;
  
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 4a99671f..28bccc15 100644
+index 8bd2718..3a356b9 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -2435,6 +2435,7 @@ mt7996_mcu_sta_bfer_tlv(struct mt7996_dev *dev, struct sk_buff *skb,
@@ -233,7 +233,7 @@
  	bf->bw = link_sta->bandwidth;
  	bf->ibf_dbw = link_sta->bandwidth;
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index ccea70af..c20206c6 100644
+index ccea70a..c20206c 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1177,9 +1177,10 @@ void mt7996_memcpy_fromio(struct mt7996_dev *dev, void *buf, u32 offset,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0146-mtk-mt76-mt7996-rework-debug-prints.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0146-mtk-mt76-mt7996-rework-debug-prints.patch
index 28f11c6..521c0b6 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0146-mtk-mt76-mt7996-rework-debug-prints.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0146-mtk-mt76-mt7996-rework-debug-prints.patch
@@ -1,7 +1,7 @@
-From 28b5dc0783ecf0b3b173c76b9138f769ec6345f3 Mon Sep 17 00:00:00 2001
+From d84d275ceb0ff433f58c1bbfde93267225260e84 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Wed, 19 Jun 2024 12:04:46 +0800
-Subject: [PATCH 146/223] mtk: mt76: mt7996: rework debug prints
+Subject: [PATCH 146/193] mtk: mt76: mt7996: rework debug prints
 
 Trim debug messages, and move some of them (especially mcu cmd) into
 tracing log.
@@ -17,7 +17,7 @@
  5 files changed, 67 insertions(+), 49 deletions(-)
 
 diff --git a/mt76_connac_mcu.c b/mt76_connac_mcu.c
-index b62a1ac8..e4e6c0d3 100644
+index b62a1ac..e4e6c0d 100644
 --- a/mt76_connac_mcu.c
 +++ b/mt76_connac_mcu.c
 @@ -428,7 +428,6 @@ void mt76_connac_mcu_sta_basic_tlv(struct mt76_dev *dev, struct sk_buff *skb,
@@ -29,7 +29,7 @@
  }
  EXPORT_SYMBOL_GPL(mt76_connac_mcu_sta_basic_tlv);
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 966cf314..0a96b5de 100644
+index 966cf31..0a96b5d 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -2942,9 +2942,6 @@ void mt7996_scan_work(struct work_struct *work)
@@ -43,7 +43,7 @@
  
  	if (!req->n_ssids ||
 diff --git a/mt7996/main.c b/mt7996/main.c
-index d73fd9d6..647e0e8a 100644
+index 678da02..543265a 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -297,6 +297,9 @@ static void mt7996_remove_bss_conf(struct ieee80211_vif *vif,
@@ -83,7 +83,7 @@
  
  	mutex_lock(&dev->mt76.mutex);
  
-@@ -1216,7 +1220,8 @@ static int mt7996_add_link_sta(struct mt7996_dev *dev,
+@@ -1215,7 +1219,8 @@ static int mt7996_add_link_sta(struct mt7996_dev *dev,
  		rcu_assign_pointer(dev->mt76.wcid[idx], &mlink->wcid);
  		mt76_wcid_init(&mlink->wcid);
  
@@ -93,7 +93,7 @@
  	}
  
  	if (!assoc)
-@@ -1255,7 +1260,7 @@ mt7996_mac_sta_remove_links(struct mt7996_dev *dev, struct ieee80211_vif *vif,
+@@ -1254,7 +1259,7 @@ mt7996_mac_sta_remove_links(struct mt7996_dev *dev, struct ieee80211_vif *vif,
  	if (!ieee80211_vif_is_mld(vif) || rem == sta->valid_links)
  		cancel_delayed_work(&mvif->beacon_mon_work);
  
@@ -102,7 +102,7 @@
  	for_each_set_bit(link_id, &rem, IEEE80211_MLD_MAX_NUM_LINKS) {
  		struct mt7996_bss_conf *mconf =
  			mconf_dereference_protected(mvif, link_id);
-@@ -1282,7 +1287,7 @@ mt7996_mac_sta_add_links(struct mt7996_dev *dev, struct ieee80211_vif *vif,
+@@ -1281,7 +1286,7 @@ mt7996_mac_sta_add_links(struct mt7996_dev *dev, struct ieee80211_vif *vif,
  	unsigned int link_id;
  	int i, ret;
  
@@ -111,7 +111,7 @@
  	for_each_set_bit(link_id, &add, IEEE80211_MLD_MAX_NUM_LINKS) {
  		struct mt7996_bss_conf *mconf =
  			mconf_dereference_protected(mvif, link_id);
-@@ -1291,6 +1296,9 @@ mt7996_mac_sta_add_links(struct mt7996_dev *dev, struct ieee80211_vif *vif,
+@@ -1290,6 +1295,9 @@ mt7996_mac_sta_add_links(struct mt7996_dev *dev, struct ieee80211_vif *vif,
  		struct ieee80211_link_sta *link_sta =
  			link_sta_dereference_protected(sta, link_id);
  
@@ -121,7 +121,7 @@
  		ret = mt7996_add_link_sta(dev, conf, mconf, link_sta, assoc);
  		if (ret)
  			goto error;
-@@ -1461,13 +1469,13 @@ static void mt7996_tx(struct ieee80211_hw *hw,
+@@ -1460,13 +1468,13 @@ static void mt7996_tx(struct ieee80211_hw *hw,
  					rcu_dereference(sta->link[link_id]);
  
  				if (!link_sta) {
@@ -138,7 +138,7 @@
  						goto unlock;
  					}
  				}
-@@ -2499,6 +2507,7 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2498,6 +2506,7 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	struct mt7996_bss_conf *mconf;
  	int ret;
  
@@ -146,7 +146,7 @@
  	mutex_lock(&phy->dev->mt76.mutex);
  	if (WARN_ON(phy->scan_req || phy->scan_chan)) {
  		mutex_unlock(&phy->dev->mt76.mutex);
-@@ -2628,7 +2637,7 @@ mt7996_add_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *conf)
+@@ -2627,7 +2636,7 @@ mt7996_add_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *conf)
  	struct mt7996_chanctx *ctx = mt7996_chanctx_get(conf);
  	int ret;
  
@@ -155,7 +155,7 @@
  	mutex_lock(&phy->dev->mt76.mutex);
  
  	if (ctx->assigned) {
-@@ -2667,7 +2676,7 @@ mt7996_remove_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *co
+@@ -2666,7 +2675,7 @@ mt7996_remove_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *co
  	struct mt7996_chanctx *ctx = mt7996_chanctx_get(conf);
  	struct mt7996_phy *phy = ctx->phy;
  
@@ -164,7 +164,7 @@
  	cancel_delayed_work_sync(&phy->scan_work);
  	cancel_delayed_work_sync(&phy->mt76->mac_work);
  
-@@ -2687,13 +2696,14 @@ mt7996_change_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *co
+@@ -2686,13 +2695,14 @@ mt7996_change_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *co
  	struct mt7996_chanctx *ctx = mt7996_chanctx_get(conf);
  	struct mt7996_phy *phy = ctx->phy;
  
@@ -180,7 +180,7 @@
  	}
  }
  
-@@ -2709,9 +2719,8 @@ mt7996_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2708,9 +2718,8 @@ mt7996_assign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	u8 link_id = link_conf->link_id;
  	int ret;
  
@@ -192,7 +192,7 @@
  
  	mutex_lock(&phy->dev->mt76.mutex);
  
-@@ -2751,9 +2760,8 @@ mt7996_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2750,9 +2759,8 @@ mt7996_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	struct mt7996_chanctx *ctx = mt7996_chanctx_get(conf);
  	struct mt7996_phy *phy = ctx->phy;
  
@@ -204,7 +204,7 @@
  	cancel_delayed_work_sync(&phy->scan_work);
  
  	mutex_lock(&phy->dev->mt76.mutex);
-@@ -2782,9 +2790,15 @@ mt7996_switch_vif_chanctx(struct ieee80211_hw *hw,
+@@ -2781,9 +2789,15 @@ mt7996_switch_vif_chanctx(struct ieee80211_hw *hw,
  		if (vifs[i].old_ctx == vifs[i].new_ctx)
  			continue;
  
@@ -223,7 +223,7 @@
  
  		mutex_lock(&dev->mt76.mutex);
  
-@@ -2834,7 +2848,7 @@ mt7996_change_vif_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2833,7 +2847,7 @@ mt7996_change_vif_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	unsigned int link_id;
  	int ret = 0;
  
@@ -232,7 +232,7 @@
  	if (old_links == new_links)
  		return 0;
  
-@@ -2880,7 +2894,7 @@ mt7996_change_sta_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2879,7 +2893,7 @@ mt7996_change_sta_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	unsigned long rem = old_links & ~new_links;
  	int ret = 0;
  
@@ -242,7 +242,7 @@
  
  	if (rem)
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 28bccc15..6149f227 100644
+index 3a356b9..5461fb1 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -387,7 +387,6 @@ mt7996_mcu_csa_finish(void *priv, u8 *mac, struct ieee80211_vif *vif)
@@ -351,7 +351,7 @@
  	return mt76_mcu_skb_send_msg(&dev->mt76, skb,
  			MCU_WMWA_UNI_CMD(STA_REC_UPDATE), true);
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index c20206c6..d56d9715 100644
+index c20206c..d56d971 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -986,7 +986,15 @@ mt7996_get_link_wcid(struct mt7996_dev *dev, u16 idx, u8 band_idx)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0147-mtk-mt76-mt7996-support-configure-trigger-frame-type.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0147-mtk-mt76-mt7996-support-configure-trigger-frame-type.patch
index c77006d..e3c7e49 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0147-mtk-mt76-mt7996-support-configure-trigger-frame-type.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0147-mtk-mt76-mt7996-support-configure-trigger-frame-type.patch
@@ -1,7 +1,7 @@
-From 4ea48c70592eb0d0907dddfeffc11686e42328d0 Mon Sep 17 00:00:00 2001
+From 50c88ad55b51d1a0edf4b3f1ab9cb07b5f6840af Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Tue, 7 May 2024 10:00:09 +0800
-Subject: [PATCH 147/223] mtk: mt76: mt7996: support configure trigger frame
+Subject: [PATCH 147/193] mtk: mt76: mt7996: support configure trigger frame
  type
 
 Support receiving an nl80211 subcmd
@@ -23,7 +23,7 @@
  4 files changed, 11 insertions(+)
 
 diff --git a/mt7996/mtk_mcu.c b/mt7996/mtk_mcu.c
-index 82e3f721..74f185c2 100644
+index 82e3f72..74f185c 100644
 --- a/mt7996/mtk_mcu.c
 +++ b/mt7996/mtk_mcu.c
 @@ -1041,6 +1041,7 @@ error:
@@ -35,7 +35,7 @@
  int mt7996_mcu_set_muru_cmd(struct mt7996_dev *dev, u16 action, int val)
  {
 diff --git a/mt7996/mtk_mcu.h b/mt7996/mtk_mcu.h
-index 2cffc893..8ba261a7 100644
+index 2cffc89..8ba261a 100644
 --- a/mt7996/mtk_mcu.h
 +++ b/mt7996/mtk_mcu.h
 @@ -133,6 +133,7 @@ enum {
@@ -47,7 +47,7 @@
  
  struct bf_pfmu_tag {
 diff --git a/mt7996/vendor.c b/mt7996/vendor.c
-index 585c4e28..54eb2686 100644
+index 585c4e2..54eb268 100644
 --- a/mt7996/vendor.c
 +++ b/mt7996/vendor.c
 @@ -107,6 +107,7 @@ rfeature_ctrl_policy[NUM_MTK_VENDOR_ATTRS_RFEATURE_CTRL] = {
@@ -73,7 +73,7 @@
  
  	return 0;
 diff --git a/mt7996/vendor.h b/mt7996/vendor.h
-index f6fcb623..bd9579d5 100644
+index f6fcb62..bd9579d 100644
 --- a/mt7996/vendor.h
 +++ b/mt7996/vendor.h
 @@ -93,6 +93,7 @@ enum mtk_vendor_attr_rfeature_ctrl {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0148-mtk-mt76-mt7996-support-configure-coding-type-for-wi.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0148-mtk-mt76-mt7996-support-configure-coding-type-for-wi.patch
index 0833a39..ff12c4d 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0148-mtk-mt76-mt7996-support-configure-coding-type-for-wi.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0148-mtk-mt76-mt7996-support-configure-coding-type-for-wi.patch
@@ -1,7 +1,7 @@
-From 5838cde9b267f8792119865a8224308b569899b0 Mon Sep 17 00:00:00 2001
+From 047b65f53b65de80ad00d23bb3af4e852d580e0e Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Fri, 7 Jun 2024 13:24:04 +0800
-Subject: [PATCH 148/223] mtk: mt76: mt7996: support configure coding type for
+Subject: [PATCH 148/193] mtk: mt76: mt7996: support configure coding type for
  wifi7 r1 cert
 
 This commit includes two changes for WiFi7 cert fix rate test cases.
@@ -31,7 +31,7 @@
  7 files changed, 82 insertions(+), 2 deletions(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 0a96b5de..19484081 100644
+index 0a96b5d..1948408 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -2385,6 +2385,16 @@ void mt7996_mac_sta_rc_work(struct work_struct *work)
@@ -52,7 +52,7 @@
  		spin_lock_bh(&dev->mt76.sta_poll_lock);
  	}
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 6149f227..94746005 100644
+index 5461fb1..d8001de 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -2664,6 +2664,7 @@ int mt7996_mcu_set_fixed_field(struct mt7996_dev *dev,
@@ -77,7 +77,7 @@
  	 * once dev->rc_work changes the settings driver should also
  	 * update sta_rec_he here.
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 737f426d..9b29dc29 100644
+index 737f426..9b29dc2 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -909,6 +909,7 @@ enum {
@@ -89,7 +89,7 @@
  #ifdef CONFIG_MTK_VENDOR
  	RATE_PARAM_FIXED_MIMO = 30,
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index d56d9715..0b3df44a 100644
+index d56d971..0b3df44 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -517,6 +517,8 @@ struct csi_data {
@@ -112,7 +112,7 @@
  
  #if defined CONFIG_NL80211_TESTMODE || defined CONFIG_MTK_DEBUG
 diff --git a/mt7996/mtk_mcu.c b/mt7996/mtk_mcu.c
-index 74f185c2..7cf4b2be 100644
+index 74f185c..7cf4b2b 100644
 --- a/mt7996/mtk_mcu.c
 +++ b/mt7996/mtk_mcu.c
 @@ -1372,3 +1372,44 @@ int mt7996_mcu_mlo_agc(struct mt7996_dev *dev, const void *data, int len)
@@ -161,7 +161,7 @@
 +}
 +#endif
 diff --git a/mt7996/vendor.c b/mt7996/vendor.c
-index 54eb2686..e929f812 100644
+index 54eb268..e929f81 100644
 --- a/mt7996/vendor.c
 +++ b/mt7996/vendor.c
 @@ -108,6 +108,8 @@ rfeature_ctrl_policy[NUM_MTK_VENDOR_ATTRS_RFEATURE_CTRL] = {
@@ -221,7 +221,7 @@
  	} else if (tb[MTK_VENDOR_ATTR_WIRELESS_CTRL_AMSDU]) {
  		val8 = nla_get_u8(tb[MTK_VENDOR_ATTR_WIRELESS_CTRL_AMSDU]);
 diff --git a/mt7996/vendor.h b/mt7996/vendor.h
-index bd9579d5..5608a3b4 100644
+index bd9579d..5608a3b 100644
 --- a/mt7996/vendor.h
 +++ b/mt7996/vendor.h
 @@ -94,6 +94,8 @@ enum mtk_vendor_attr_rfeature_ctrl {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0149-mtk-mt76-mt7996-record-RSSI-and-SNR.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0149-mtk-mt76-mt7996-record-RSSI-and-SNR.patch
index 21983e5..7659869 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0149-mtk-mt76-mt7996-record-RSSI-and-SNR.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0149-mtk-mt76-mt7996-record-RSSI-and-SNR.patch
@@ -1,7 +1,7 @@
-From bd67084cff9aa21fe1b714ebcfe771aad0286e11 Mon Sep 17 00:00:00 2001
+From bb4be1811310546534aa2767ef5aaed73322507c Mon Sep 17 00:00:00 2001
 From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
 Date: Thu, 13 Jun 2024 17:27:03 +0800
-Subject: [PATCH 149/223] mtk: mt76: mt7996: record RSSI and SNR
+Subject: [PATCH 149/193] mtk: mt76: mt7996: record RSSI and SNR
 
 RSSI and SNR information were incomplete.
 - RSSI: per-antenna ACK-frame RSSI was not reported.
@@ -18,7 +18,7 @@
  4 files changed, 70 insertions(+), 32 deletions(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 19484081..c341a553 100644
+index 1948408..c341a55 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -493,6 +493,13 @@ mt7996_mac_fill_rx(struct mt7996_dev *dev, enum mt76_rxq_id q,
@@ -45,7 +45,7 @@
  					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);
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 94746005..db975daa 100644
+index d8001de..f35a83b 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -5817,14 +5817,15 @@ int mt7996_mcu_set_rro(struct mt7996_dev *dev, u16 tag, u16 val)
@@ -176,7 +176,7 @@
  
  	return ret;
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 9b29dc29..20eaf20d 100644
+index 9b29dc2..20eaf20 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -202,7 +202,13 @@ struct mt7996_mcu_mib {
@@ -203,7 +203,7 @@
  } __packed;
  
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 0b3df44a..ee43c9e0 100644
+index 0b3df44..ee43c9e 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -318,9 +318,15 @@ struct mt7996_link_sta {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0150-mtk-mt76-mt7996-support-find-the-mt7996_phy-by-link_.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0150-mtk-mt76-mt7996-support-find-the-mt7996_phy-by-link_.patch
index 1045b99..3db6139 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0150-mtk-mt76-mt7996-support-find-the-mt7996_phy-by-link_.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0150-mtk-mt76-mt7996-support-find-the-mt7996_phy-by-link_.patch
@@ -1,7 +1,7 @@
-From 5538043f91de86efa859432e4473f020bdcd23c3 Mon Sep 17 00:00:00 2001
+From 8f63a61593cf03073c4c4b499a8ddcdc8e14d81f Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Thu, 20 Jun 2024 10:55:07 +0800
-Subject: [PATCH 150/223] mtk: mt76: mt7996: support find the mt7996_phy by
+Subject: [PATCH 150/193] mtk: mt76: mt7996: support find the mt7996_phy by
  link_id for vendor command
 
 Add support to find the corresponding phy by link_id. This commit is for
@@ -22,7 +22,7 @@
  4 files changed, 30 insertions(+), 18 deletions(-)
 
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index ee43c9e0..b0d9b0bd 100644
+index ee43c9e..b0d9b0b 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1330,11 +1330,12 @@ int mt7996_mcu_set_txbf_internal(struct mt7996_phy *phy, u8 action, int idx, boo
@@ -41,7 +41,7 @@
  void mt7996_mcu_set_nusers_ofdma(struct mt7996_phy *phy, u8 type, u8 ofdma_user_cnt);
  void mt7996_mcu_set_cert(struct mt7996_phy *phy, u8 type);
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 9d8c1942..f13f09e1 100644
+index 9d8c194..f13f09e 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -2928,7 +2928,7 @@ mt7996_bf_txsnd_info_set(struct file *file,
@@ -54,7 +54,7 @@
  	if (ret) return -EFAULT;
  
 diff --git a/mt7996/mtk_mcu.c b/mt7996/mtk_mcu.c
-index 7cf4b2be..c87daf8e 100644
+index 7cf4b2b..c87daf8 100644
 --- a/mt7996/mtk_mcu.c
 +++ b/mt7996/mtk_mcu.c
 @@ -352,7 +352,7 @@ int mt7996_mcu_set_txbf_internal(struct mt7996_phy *phy, u8 action, int idx, boo
@@ -134,7 +134,7 @@
  		return 0;
  	}
 diff --git a/mt7996/vendor.c b/mt7996/vendor.c
-index e929f812..ed7c1322 100644
+index e929f81..ed7c132 100644
 --- a/mt7996/vendor.c
 +++ b/mt7996/vendor.c
 @@ -866,12 +866,13 @@ static int mt7996_vendor_rfeature_ctrl(struct wiphy *wiphy,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0151-mtk-mt76-mt7996-workaround-for-get_tsf-crash-issue.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0151-mtk-mt76-mt7996-workaround-for-get_tsf-crash-issue.patch
index 0b8ea2c..d79cbd9 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0151-mtk-mt76-mt7996-workaround-for-get_tsf-crash-issue.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0151-mtk-mt76-mt7996-workaround-for-get_tsf-crash-issue.patch
@@ -1,17 +1,17 @@
-From 2f3676a2b60827dfd02540af2e0325e50161ff6a Mon Sep 17 00:00:00 2001
+From 9cdb7730bd64ebe78d2ec9c284637c4e50468252 Mon Sep 17 00:00:00 2001
 From: Michael-CY Lee <michael-cy.lee@mediatek.com>
 Date: Mon, 24 Jun 2024 11:09:50 +0800
-Subject: [PATCH 151/223] mtk: mt76: mt7996: workaround for get_tsf crash issue
+Subject: [PATCH 151/193] mtk: mt76: mt7996: workaround for get_tsf crash issue
 
 ---
  mt7996/main.c | 15 ++++++++++++---
  1 file changed, 12 insertions(+), 3 deletions(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 647e0e8a..455beb74 100644
+index 543265a..e0bee15 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -1634,11 +1634,20 @@ mt7996_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
+@@ -1633,11 +1633,20 @@ mt7996_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
  	struct mt7996_dev *dev = mt7996_hw_dev(hw);
  	struct mt7996_bss_conf *mconf;
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0152-mtk-mt76-add-debugfs-for-tx-drop-counters.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0152-mtk-mt76-add-debugfs-for-tx-drop-counters.patch
index b753114..1660fd9 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0152-mtk-mt76-add-debugfs-for-tx-drop-counters.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0152-mtk-mt76-add-debugfs-for-tx-drop-counters.patch
@@ -1,7 +1,7 @@
-From e126a0d9cd5d6a25caf5db58a5cc5edb6b22cc16 Mon Sep 17 00:00:00 2001
+From 97eb75e0679624054787ccd62655c3b542aab616 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Thu, 13 Jun 2024 17:47:13 +0800
-Subject: [PATCH 152/223] mtk: mt76: add debugfs for tx drop counters
+Subject: [PATCH 152/193] mtk: mt76: add debugfs for tx drop counters
 
 Change-Id: I1d375169cca29fb58544edfbd235ef3e058a130a
 Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
@@ -16,7 +16,7 @@
  7 files changed, 161 insertions(+), 12 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index 3f1fb6c2..0dae40e2 100644
+index 3f1fb6c..0dae40e 100644
 --- a/dma.c
 +++ b/dma.c
 @@ -612,12 +612,16 @@ mt76_dma_tx_queue_skb(struct mt76_phy *phy, struct mt76_queue *q,
@@ -87,7 +87,7 @@
  				tx_info.info, tx_info.skb, t);
  
 diff --git a/mac80211.c b/mac80211.c
-index a555bec2..93ff77be 100644
+index a555bec..93ff77b 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -417,6 +417,7 @@ mt76_phy_init(struct mt76_phy *phy, struct ieee80211_hw *hw)
@@ -107,7 +107,7 @@
  	init_waitqueue_head(&dev->tx_wait);
  
 diff --git a/mt76.h b/mt76.h
-index 8e71c2ce..8e78ba86 100644
+index 8e71c2c..8e78ba8 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -849,6 +849,31 @@ struct mt76_vif {
@@ -159,7 +159,7 @@
  
  #define MT76_MAX_AMSDU_NUM 8
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index c341a553..a78ebefc 100644
+index c341a55..a78ebef 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -909,11 +909,15 @@ int mt7996_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
@@ -215,10 +215,10 @@
  		dma_sync_single_for_cpu(mdev->dma_dev, tx_info->buf[1].addr,
  					tx_info->buf[1].len, DMA_TO_DEVICE);
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 455beb74..8fb68880 100644
+index e0bee15..499290d 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -1427,11 +1427,13 @@ static void mt7996_tx(struct ieee80211_hw *hw,
+@@ -1426,11 +1426,13 @@ static void mt7996_tx(struct ieee80211_hw *hw,
  		      struct sk_buff *skb)
  {
  	struct mt76_phy *mphy;
@@ -232,7 +232,7 @@
  
  	if (control->sta) {
  		msta = (struct mt7996_sta *)control->sta->drv_priv;
-@@ -1503,14 +1505,18 @@ static void mt7996_tx(struct ieee80211_hw *hw,
+@@ -1502,14 +1504,18 @@ static void mt7996_tx(struct ieee80211_hw *hw,
  		mphy = mconf->phy->mt76;
  		wcid = &mlink->wcid;
  	} else {
@@ -254,7 +254,7 @@
  }
  
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index f13f09e1..d15d403b 100644
+index f13f09e..d15d403 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -4162,6 +4162,83 @@ out:
@@ -352,7 +352,7 @@
  
  #endif
 diff --git a/tx.c b/tx.c
-index 95c84dab..c9fda966 100644
+index 7906023..e7aba9f 100644
 --- a/tx.c
 +++ b/tx.c
 @@ -335,8 +335,14 @@ mt76_tx(struct mt76_phy *phy, struct ieee80211_sta *sta,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0153-mtk-mt76-add-debugfs-for-rx-drop-counters.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0153-mtk-mt76-add-debugfs-for-rx-drop-counters.patch
index a78ee58..f77a28c 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0153-mtk-mt76-add-debugfs-for-rx-drop-counters.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0153-mtk-mt76-add-debugfs-for-rx-drop-counters.patch
@@ -1,7 +1,7 @@
-From b230d11d8c61d395043c5463a780f7bcabfc7196 Mon Sep 17 00:00:00 2001
+From 7726ef490ef3be1d0d0db033116a0edb931a95f6 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Thu, 23 May 2024 02:33:47 +0800
-Subject: [PATCH 153/223] mtk: mt76: add debugfs for rx drop counters
+Subject: [PATCH 153/193] mtk: mt76: add debugfs for rx drop counters
 
 Change-Id: I23c494a80095c680cfe7765b5898fb044a4b73da
 Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
@@ -16,7 +16,7 @@
  7 files changed, 193 insertions(+), 16 deletions(-)
 
 diff --git a/agg-rx.c b/agg-rx.c
-index b48943c4..9875baa8 100644
+index b48943c..9875baa 100644
 --- a/agg-rx.c
 +++ b/agg-rx.c
 @@ -152,6 +152,7 @@ void mt76_rx_aggr_reorder(struct sk_buff *skb, struct sk_buff_head *frames)
@@ -57,7 +57,7 @@
  	}
  
 diff --git a/dma.c b/dma.c
-index 0dae40e2..81e76191 100644
+index 0dae40e..81e7619 100644
 --- a/dma.c
 +++ b/dma.c
 @@ -251,13 +251,16 @@ mt76_dma_add_rx_buf(struct mt76_dev *dev, struct mt76_queue *q,
@@ -194,7 +194,7 @@
  		skb_reserve(skb, q->buf_offset);
  
 diff --git a/dma.h b/dma.h
-index 3a8c2e55..718122d5 100644
+index 3a8c2e5..718122d 100644
 --- a/dma.h
 +++ b/dma.h
 @@ -93,27 +93,29 @@ mt76_dma_reset_tx_queue(struct mt76_dev *dev, struct mt76_queue *q)
@@ -234,7 +234,7 @@
  
  #endif
 diff --git a/mac80211.c b/mac80211.c
-index 93ff77be..6190822c 100644
+index 93ff77b..6190822 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -418,6 +418,7 @@ mt76_phy_init(struct mt76_phy *phy, struct ieee80211_hw *hw)
@@ -288,7 +288,7 @@
  
  static void
 diff --git a/mt76.h b/mt76.h
-index 8e78ba86..62ae2662 100644
+index 8e78ba8..62ae266 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -188,6 +188,34 @@ enum mt76_dfs_state {
@@ -359,7 +359,7 @@
  
  struct mt76_dev {
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index a78ebefc..ee505a55 100644
+index a78ebef..ee505a5 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -1422,9 +1422,11 @@ void mt7996_queue_rx_skb(struct mt76_dev *mdev, enum mt76_rxq_id q,
@@ -399,7 +399,7 @@
  		break;
  	}
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index d15d403b..422518f5 100644
+index d15d403..422518f 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -4239,6 +4239,84 @@ out:
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0154-mtk-mt76-mt7996-add-support-for-remain-on-channel-op.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0154-mtk-mt76-mt7996-add-support-for-remain-on-channel-op.patch
index f68f239..aad6471 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0154-mtk-mt76-mt7996-add-support-for-remain-on-channel-op.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0154-mtk-mt76-mt7996-add-support-for-remain-on-channel-op.patch
@@ -1,7 +1,7 @@
-From 78e6f75e8e5114ed78257bf708655084fe36dcd1 Mon Sep 17 00:00:00 2001
+From 70ae2ca209ec46ca04ec532df7ade623bfd82a0b Mon Sep 17 00:00:00 2001
 From: Michael-CY Lee <michael-cy.lee@mediatek.com>
 Date: Fri, 7 Jun 2024 15:24:00 +0800
-Subject: [PATCH 154/223] mtk: mt76: mt7996: add support for remain-on-channel
+Subject: [PATCH 154/193] mtk: mt76: mt7996: add support for remain-on-channel
  operation
 
 Remain-on-channel operation allows interface to temporarily leave the
@@ -26,10 +26,10 @@
  3 files changed, 181 insertions(+), 2 deletions(-)
 
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 18a86afe..fe2958f5 100644
+index 419ecaf..6cd40db 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -498,6 +498,8 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
+@@ -495,6 +495,8 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
  	wiphy->max_scan_ssids = 4;
  	wiphy->max_scan_ie_len = IEEE80211_MAX_DATA_LEN;
  
@@ -38,7 +38,7 @@
  	/* enable MLO support */
  	wiphy->flags |= WIPHY_FLAG_SUPPORTS_MLO;
  	wiphy->iftype_ext_capab = mt7996_iftypes_ext_capa;
-@@ -740,6 +742,7 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
+@@ -737,6 +739,7 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
  
  	INIT_DELAYED_WORK(&mphy->mac_work, mt7996_mac_work);
  	INIT_DELAYED_WORK(&phy->scan_work, mt7996_scan_work);
@@ -46,7 +46,7 @@
  
  	ret = mt7996_eeprom_parse_hw_cap(dev, phy);
  	if (ret)
-@@ -1696,6 +1699,7 @@ int mt7996_register_device(struct mt7996_dev *dev)
+@@ -1693,6 +1696,7 @@ int mt7996_register_device(struct mt7996_dev *dev)
  	INIT_WORK(&dev->rc_work, mt7996_mac_sta_rc_work);
  	INIT_DELAYED_WORK(&dev->mphy.mac_work, mt7996_mac_work);
  	INIT_DELAYED_WORK(&dev->phy.scan_work, mt7996_scan_work);
@@ -55,7 +55,7 @@
  	INIT_LIST_HEAD(&dev->sta_rc_list);
  	INIT_LIST_HEAD(&dev->twt_list);
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 8fb68880..ff4ef55d 100644
+index 499290d..9cdbc5b 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -505,6 +505,7 @@ static void mt7996_remove_interface(struct ieee80211_hw *hw,
@@ -75,7 +75,7 @@
  	int timeout = HZ / 5;
  	unsigned long was_scanning = ieee80211_get_scanning(mphy->hw);
  
-@@ -2524,7 +2525,8 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2523,7 +2524,8 @@ mt7996_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  
  	mt76_vif_dbg(vif, "trigger scan on mt76 band %u\n", phy->mt76->band_idx);
  	mutex_lock(&phy->dev->mt76.mutex);
@@ -85,7 +85,7 @@
  		mutex_unlock(&phy->dev->mt76.mutex);
  		return -EBUSY;
  	}
-@@ -2645,6 +2647,170 @@ mt7996_cancel_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
+@@ -2644,6 +2646,170 @@ mt7996_cancel_hw_scan(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
  	}
  }
  
@@ -256,7 +256,7 @@
  static int
  mt7996_add_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *conf)
  {
-@@ -2693,6 +2859,7 @@ mt7996_remove_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *co
+@@ -2692,6 +2858,7 @@ mt7996_remove_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *co
  
  	mt76_dbg(hw, "remove %u\n", conf->def.chan->hw_value);
  	cancel_delayed_work_sync(&phy->scan_work);
@@ -264,7 +264,7 @@
  	cancel_delayed_work_sync(&phy->mt76->mac_work);
  
  	mutex_lock(&phy->dev->mt76.mutex);
-@@ -2778,6 +2945,7 @@ mt7996_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -2777,6 +2944,7 @@ mt7996_unassign_vif_chanctx(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	mt76_vif_dbg(vif, "remove link %u from %d MHz\n",
  		     link_conf->link_id, conf->def.chan->center_freq);
  	cancel_delayed_work_sync(&phy->scan_work);
@@ -272,7 +272,7 @@
  
  	mutex_lock(&phy->dev->mt76.mutex);
  
-@@ -3040,6 +3208,8 @@ const struct ieee80211_ops mt7996_ops = {
+@@ -3039,6 +3207,8 @@ const struct ieee80211_ops mt7996_ops = {
  	.wake_tx_queue = mt76_wake_tx_queue,
  	.hw_scan = mt7996_hw_scan,
  	.cancel_hw_scan = mt7996_cancel_hw_scan,
@@ -282,7 +282,7 @@
  	.get_txpower = mt7996_get_txpower,
  	.channel_switch_beacon = mt7996_channel_switch_beacon,
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index b0d9b0bd..251a3c70 100644
+index b0d9b0b..251a3c7 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -598,6 +598,10 @@ struct mt7996_phy {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0155-mtk-mt76-mt7996-rework-the-setting-flow-of-starec-RA.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0155-mtk-mt76-mt7996-rework-the-setting-flow-of-starec-RA.patch
index 4cb45ec..ddd5868 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0155-mtk-mt76-mt7996-rework-the-setting-flow-of-starec-RA.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0155-mtk-mt76-mt7996-rework-the-setting-flow-of-starec-RA.patch
@@ -1,7 +1,7 @@
-From 6d567ce5c36ea5a0c26cb2b55063bbc383adbca7 Mon Sep 17 00:00:00 2001
+From df6c9f2a21127d2e95d8c618362b255ee5d660e4 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Wed, 26 Jun 2024 19:09:46 +0800
-Subject: [PATCH 155/223] mtk: mt76: mt7996: rework the setting flow of starec
+Subject: [PATCH 155/193] mtk: mt76: mt7996: rework the setting flow of starec
  RA and MLD tags
 
 1. STA_REC_RA and STA_REC_MLD tags need to be set when newly is true,
@@ -20,10 +20,10 @@
  4 files changed, 83 insertions(+), 113 deletions(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index ff4ef55d..103902b7 100644
+index 9cdbc5b..e09798c 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -1318,10 +1318,6 @@ mt7996_mac_sta_add_links(struct mt7996_dev *dev, struct ieee80211_vif *vif,
+@@ -1317,10 +1317,6 @@ mt7996_mac_sta_add_links(struct mt7996_dev *dev, struct ieee80211_vif *vif,
  		mtxq->wcid = mlink->wcid.idx;
  	}
  
@@ -35,7 +35,7 @@
  error:
  	mt7996_mac_sta_remove_links(dev, vif, sta, add);
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index db975daa..bad8e030 100644
+index f35a83b..534a362 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -2916,6 +2916,77 @@ int mt7996_mcu_add_rate_ctrl(struct mt7996_dev *dev,
@@ -261,7 +261,7 @@
  				struct mt7996_bss_conf *mconf,
  				struct mt7996_link_sta *mlink)
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 20eaf20d..05b29c90 100644
+index 20eaf20..05b29c9 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -983,6 +983,9 @@ enum {
@@ -275,7 +275,7 @@
  
  #define MT7996_MAX_BEACON_SIZE		1338
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 251a3c70..edd9c7c9 100644
+index 251a3c7..edd9c7c 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1087,8 +1087,6 @@ int mt7996_mcu_add_rate_ctrl(struct mt7996_dev *dev,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0156-mtk-mt76-mt7996-Fix-NULL-pointer-crash-when-mac-tx-f.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0156-mtk-mt76-mt7996-Fix-NULL-pointer-crash-when-mac-tx-f.patch
index 36029cf..b79c007 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0156-mtk-mt76-mt7996-Fix-NULL-pointer-crash-when-mac-tx-f.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0156-mtk-mt76-mt7996-Fix-NULL-pointer-crash-when-mac-tx-f.patch
@@ -1,7 +1,7 @@
-From 59aecb430cc995720c5fa10353fb68372952f0df Mon Sep 17 00:00:00 2001
+From e509c27732a53efc496081261df1c80b22a02b45 Mon Sep 17 00:00:00 2001
 From: Bo Jiao <Bo.Jiao@mediatek.com>
 Date: Thu, 27 Jun 2024 14:54:38 +0800
-Subject: [PATCH 156/223] mtk: mt76: mt7996: Fix NULL pointer crash when mac tx
+Subject: [PATCH 156/193] mtk: mt76: mt7996: Fix NULL pointer crash when mac tx
  free with a msta that has been removed.
 
 Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com>
@@ -10,7 +10,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index ee505a55..3cd034cd 100644
+index ee505a5..3cd034c 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -1212,7 +1212,7 @@ mt7996_mac_tx_free(struct mt7996_dev *dev, void *data, int len)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0157-mtk-mt76-mt7996-update-adie-efuse-merge-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0157-mtk-mt76-mt7996-update-adie-efuse-merge-support.patch
index 40f9db6..47cf420 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0157-mtk-mt76-mt7996-update-adie-efuse-merge-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0157-mtk-mt76-mt7996-update-adie-efuse-merge-support.patch
@@ -1,7 +1,7 @@
-From b930141330014c5e7402fe75bd05e2f2a9705a81 Mon Sep 17 00:00:00 2001
+From 7f862ec237b850ed6b0e1683f46fd3b30368880d Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Fri, 14 Jun 2024 10:14:31 +0800
-Subject: [PATCH 157/223] mtk: mt76: mt7996: update adie efuse merge support
+Subject: [PATCH 157/193] mtk: mt76: mt7996: update adie efuse merge support
 
 Refactor efuse merge due to FW supporting the efuse merge mcu command
 
@@ -14,7 +14,7 @@
  3 files changed, 153 insertions(+), 147 deletions(-)
 
 diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index 72a21fcf..327a36b2 100644
+index 72a21fc..327a36b 100644
 --- a/mt7996/eeprom.c
 +++ b/mt7996/eeprom.c
 @@ -564,146 +564,6 @@ fail:
@@ -176,7 +176,7 @@
  	if (ret < 0)
  		return ret;
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index bad8e030..9194886b 100644
+index 534a362..27dfe29 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -4603,6 +4603,150 @@ int mt7996_mcu_set_chan_info(struct mt7996_phy *phy, u16 tag, bool sta)
@@ -352,7 +352,7 @@
  
  int mt7996_mcu_get_eeprom(struct mt7996_dev *dev, u32 offset, u8 *buf, u32 buf_len)
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 05b29c90..d99e9a60 100644
+index 05b29c9..d99e9a6 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -1038,6 +1038,7 @@ enum {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0158-mtk-mt76-mt7996-support-handle-link_id-in-ap_wireles.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0158-mtk-mt76-mt7996-support-handle-link_id-in-ap_wireles.patch
index 27a87a7..def4ba3 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0158-mtk-mt76-mt7996-support-handle-link_id-in-ap_wireles.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0158-mtk-mt76-mt7996-support-handle-link_id-in-ap_wireles.patch
@@ -1,7 +1,7 @@
-From e2ca291d9edba04731cbec32d52ad00c13e5d1c9 Mon Sep 17 00:00:00 2001
+From 188ada444810cba695c6c54087de0266a2d9f36f Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Fri, 14 Jun 2024 14:54:44 +0800
-Subject: [PATCH 158/223] mtk: mt76: mt7996: support handle link_id in
+Subject: [PATCH 158/193] mtk: mt76: mt7996: support handle link_id in
  ap_wireless vendor cmd
 
 Add support handle link_id in ap_wireless vendor command. The link_id is
@@ -21,7 +21,7 @@
  4 files changed, 73 insertions(+), 44 deletions(-)
 
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index edd9c7c9..c122989d 100644
+index edd9c7c..c122989 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1304,8 +1304,8 @@ int mt7996_vendor_amnt_sta_remove(struct mt7996_phy *phy,
@@ -53,7 +53,7 @@
  
  int mt7996_mcu_set_vow_drr_dbg(struct mt7996_dev *dev, u32 val);
 diff --git a/mt7996/mtk_mcu.c b/mt7996/mtk_mcu.c
-index c87daf8e..8bacf29d 100644
+index c87daf8..8bacf29 100644
 --- a/mt7996/mtk_mcu.c
 +++ b/mt7996/mtk_mcu.c
 @@ -1082,11 +1082,10 @@ int mt7996_mcu_muru_set_prot_frame_thr(struct mt7996_dev *dev, u32 val)
@@ -201,7 +201,7 @@
  
  	mt76_mcu_send_msg(&dev->mt76, MCU_WM_UNI_CMD(WSYS_CONFIG), &req,
 diff --git a/mt7996/vendor.c b/mt7996/vendor.c
-index ed7c1322..33c682c0 100644
+index ed7c132..33c682c 100644
 --- a/mt7996/vendor.c
 +++ b/mt7996/vendor.c
 @@ -31,6 +31,7 @@ wireless_ctrl_policy[NUM_MTK_VENDOR_ATTRS_WIRELESS_CTRL] = {
@@ -300,7 +300,7 @@
  		val8 = nla_get_u8(tb[MTK_VENDOR_ATTR_WIRELESS_CTRL_AMSDU]);
  		mt7996_set_wireless_amsdu(hw, val8);
 diff --git a/mt7996/vendor.h b/mt7996/vendor.h
-index 5608a3b4..714f0b3e 100644
+index 5608a3b..714f0b3 100644
 --- a/mt7996/vendor.h
 +++ b/mt7996/vendor.h
 @@ -78,11 +78,6 @@ enum mtk_vendor_attr_mu_ctrl {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0159-mtk-mt76-mt7996-fix-incorrect-indexing-of-MIB-FW-eve.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0159-mtk-mt76-mt7996-fix-incorrect-indexing-of-MIB-FW-eve.patch
index 9941a17..fe64723 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0159-mtk-mt76-mt7996-fix-incorrect-indexing-of-MIB-FW-eve.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0159-mtk-mt76-mt7996-fix-incorrect-indexing-of-MIB-FW-eve.patch
@@ -1,7 +1,7 @@
-From 2986830e53280e7c49ef3893108a631d19d88023 Mon Sep 17 00:00:00 2001
+From 5c5dd2412f1ec0b8de95adc549ae1e39748f23f8 Mon Sep 17 00:00:00 2001
 From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
 Date: Fri, 28 Jun 2024 18:03:41 +0800
-Subject: [PATCH 159/223] mtk: mt76: mt7996: fix incorrect indexing of MIB FW
+Subject: [PATCH 159/193] mtk: mt76: mt7996: fix incorrect indexing of MIB FW
  event
 
 When porting channel state reporting from Wi-Fi 6 to Wi-Fi 7 codebase, indexing of FW event of MIB data was not properly handled.
@@ -13,7 +13,7 @@
  1 file changed, 29 insertions(+), 16 deletions(-)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 9194886b..723a7ad9 100644
+index 27dfe29..cef0882 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -5116,6 +5116,13 @@ int mt7996_mcu_get_chip_config(struct mt7996_dev *dev, u32 *cap)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0160-mtk-mt76-mt7996-support-muru-dbg-info-debug-commands.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0160-mtk-mt76-mt7996-support-muru-dbg-info-debug-commands.patch
index 1f278bd..1587427 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0160-mtk-mt76-mt7996-support-muru-dbg-info-debug-commands.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0160-mtk-mt76-mt7996-support-muru-dbg-info-debug-commands.patch
@@ -1,7 +1,7 @@
-From ef4a19e3bb7aebd2ceb745cefc45fd7000db2014 Mon Sep 17 00:00:00 2001
+From bc5844e85a6195f384fef07a8fda185d851c4ffd Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Mon, 3 Jun 2024 15:18:05 +0800
-Subject: [PATCH 160/223] mtk: mt76: mt7996: support muru dbg info debug
+Subject: [PATCH 160/193] mtk: mt76: mt7996: support muru dbg info debug
  commands
 
 Support enable muru debug functionality by debugfs.
@@ -17,7 +17,7 @@
  1 file changed, 44 insertions(+)
 
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 422518f5..02a6ee81 100644
+index 422518f..02a6ee8 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -4325,6 +4325,48 @@ mt7996_drr_info(struct seq_file *s, void *data)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0161-mtk-mt76-mt7996-add-kite-if_comb.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0161-mtk-mt76-mt7996-add-kite-if_comb.patch
index d4a1f0d..2197dc7 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0161-mtk-mt76-mt7996-add-kite-if_comb.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0161-mtk-mt76-mt7996-add-kite-if_comb.patch
@@ -1,7 +1,7 @@
-From fe7a769deaeb995f9657dc160ec670192464e8e4 Mon Sep 17 00:00:00 2001
+From 20644fe73018c3a1e1d73b22472ab4238f7d7aaa Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Wed, 3 Jul 2024 10:34:39 +0800
-Subject: [PATCH 161/223] mtk: mt76: mt7996: add kite if_comb
+Subject: [PATCH 161/193] mtk: mt76: mt7996: add kite if_comb
 
 Add Kite (dual band) if_comb
 
@@ -11,10 +11,10 @@
  1 file changed, 30 insertions(+), 3 deletions(-)
 
 diff --git a/mt7996/init.c b/mt7996/init.c
-index fe2958f5..18847ff5 100644
+index 6cd40db..53781d4 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -46,6 +46,22 @@ static const struct ieee80211_iface_combination if_comb[] = {
+@@ -43,6 +43,22 @@ static const struct ieee80211_iface_combination if_comb[] = {
  	}
  };
  
@@ -37,7 +37,7 @@
  static const u8 mt7996_if_types_ext_capa[] = {
  	[0] = WLAN_EXT_CAPA1_EXT_CHANNEL_SWITCHING,
  	[2] = WLAN_EXT_CAPA3_MULTI_BSSID_SUPPORT,
-@@ -417,11 +433,22 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
+@@ -414,11 +430,22 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
  	hw->vif_data_size = sizeof(struct mt7996_vif);
  	hw->chanctx_data_size = sizeof(struct mt7996_chanctx);
  
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0162-mtk-mt76-mt7996-change-source-of-per-WCID-TX-MPDU-st.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0162-mtk-mt76-mt7996-change-source-of-per-WCID-TX-MPDU-st.patch
index 33c0bc7..281cae6 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0162-mtk-mt76-mt7996-change-source-of-per-WCID-TX-MPDU-st.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0162-mtk-mt76-mt7996-change-source-of-per-WCID-TX-MPDU-st.patch
@@ -1,7 +1,7 @@
-From ce85a854c7b07de8cb560417a038a2c9870c61e5 Mon Sep 17 00:00:00 2001
+From 31d291dbd8415f4e31b083493f78bdbf6f1230e7 Mon Sep 17 00:00:00 2001
 From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
 Date: Mon, 17 Jun 2024 17:16:19 +0800
-Subject: [PATCH 162/223] mtk: mt76: mt7996: change source of per-WCID TX MPDU
+Subject: [PATCH 162/193] mtk: mt76: mt7996: change source of per-WCID TX MPDU
  statistics
 
 Change source of per-WCID TX MPDU statistics from TX-free-done event to PPDU TXS, because WCID from TX-free-done event may not represent the actually used link.
@@ -15,7 +15,7 @@
  3 files changed, 33 insertions(+), 23 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
-index 62ae2662..c3b71cc3 100644
+index 62ae266..c3b71cc 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -364,6 +364,7 @@ struct mt76_sta_stats {
@@ -27,7 +27,7 @@
  	u32 tx_failed;
  	u64 tx_airtime;
 diff --git a/mt76_connac3_mac.h b/mt76_connac3_mac.h
-index db0c29e6..ad8392cd 100644
+index db0c29e..ad8392c 100644
 --- a/mt76_connac3_mac.h
 +++ b/mt76_connac3_mac.h
 @@ -204,6 +204,11 @@ enum tx_frag_idx {
@@ -43,7 +43,7 @@
  #define MT_CT_INFO_COPY_HOST_TXD_ALL	BIT(1)
  #define MT_CT_INFO_MGMT_FRAME		BIT(2)
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 3cd034cd..87e671a3 100644
+index 3cd034c..87e671a 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -1218,19 +1218,9 @@ mt7996_mac_tx_free(struct mt7996_dev *dev, void *data, int len)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0163-mtk-mt76-mt7996-update-preamble-puncture-support-for.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0163-mtk-mt76-mt7996-update-preamble-puncture-support-for.patch
index b8184c9..4379c40 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0163-mtk-mt76-mt7996-update-preamble-puncture-support-for.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0163-mtk-mt76-mt7996-update-preamble-puncture-support-for.patch
@@ -1,7 +1,7 @@
-From 8908556d4135d7aee178baa3bfb9d3025d1611d9 Mon Sep 17 00:00:00 2001
+From f383ae59e0f45d2205bab591e4a35b92a378c4b3 Mon Sep 17 00:00:00 2001
 From: Allen Ye <allen.ye@mediatek.com>
 Date: Tue, 28 May 2024 15:31:39 +0800
-Subject: [PATCH 163/223] mtk: mt76: mt7996: update preamble puncture support
+Subject: [PATCH 163/193] mtk: mt76: mt7996: update preamble puncture support
  for mt7996
 
 Add pp station mode support. Current fw only support one bitmap on a band.
@@ -23,7 +23,7 @@
  5 files changed, 165 insertions(+), 1 deletion(-)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 931b29eb..cc644edf 100644
+index 931b29e..cc644ed 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1076,6 +1076,7 @@ enum {
@@ -35,10 +35,10 @@
  	MCU_UNI_EVENT_ALL_STA_INFO = 0x6e,
  };
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 103902b7..562137a5 100644
+index e09798c..1c86a8c 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -1241,6 +1241,12 @@ static int mt7996_add_link_sta(struct mt7996_dev *dev,
+@@ -1240,6 +1240,12 @@ static int mt7996_add_link_sta(struct mt7996_dev *dev,
  	if (ret)
  		goto error;
  
@@ -51,7 +51,7 @@
  	ewma_avg_signal_init(&mlink->avg_ack_signal);
  
  	return 0;
-@@ -2844,6 +2850,10 @@ mt7996_add_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *conf)
+@@ -2843,6 +2849,10 @@ mt7996_add_chanctx(struct ieee80211_hw *hw, struct ieee80211_chanctx_conf *conf)
  	if (ret)
  		return ret;
  
@@ -62,7 +62,7 @@
  	return mt7996_set_channel(phy, &ctx->chandef);
  }
  
-@@ -2964,6 +2974,7 @@ mt7996_switch_vif_chanctx(struct ieee80211_hw *hw,
+@@ -2963,6 +2973,7 @@ mt7996_switch_vif_chanctx(struct ieee80211_hw *hw,
  	struct mt7996_chanctx *new_ctx;
  	struct mt7996_phy *phy;
  	int i, ret = 0;
@@ -70,7 +70,7 @@
  
  	for (i = 0; i < n_vifs; i++) {
  		if (vifs[i].old_ctx == vifs[i].new_ctx)
-@@ -3006,6 +3017,17 @@ mt7996_switch_vif_chanctx(struct ieee80211_hw *hw,
+@@ -3005,6 +3016,17 @@ mt7996_switch_vif_chanctx(struct ieee80211_hw *hw,
  
  		mutex_unlock(&dev->mt76.mutex);
  
@@ -89,7 +89,7 @@
  		if (ret)
  			goto out;
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 723a7ad9..fce92046 100644
+index cef0882..13dc0ac 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -1285,6 +1285,39 @@ mt7996_mcu_wed_rro_event(struct mt7996_dev *dev, struct sk_buff *skb)
@@ -235,7 +235,7 @@
  {
  	struct mt7996_dev *dev = phy->dev;
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index d99e9a60..011b6c7a 100644
+index d99e9a6..011b6c7 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -1162,6 +1162,7 @@ enum {
@@ -287,7 +287,7 @@
  	UNI_CMD_SCS_SEND_DATA,
  	UNI_CMD_SCS_SET_PD_THR_RANGE = 2,
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index c122989d..58151ed0 100644
+index c122989..58151ed 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1280,6 +1280,8 @@ int mt7996_mcu_wtbl_update_hdr_trans(struct mt7996_dev *dev,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0164-mtk-mt76-Add-dynamic-pp-vendor-and-debug-pp-algo-cmd.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0164-mtk-mt76-Add-dynamic-pp-vendor-and-debug-pp-algo-cmd.patch
index f0528a9..fef5dc9 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0164-mtk-mt76-Add-dynamic-pp-vendor-and-debug-pp-algo-cmd.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0164-mtk-mt76-Add-dynamic-pp-vendor-and-debug-pp-algo-cmd.patch
@@ -1,7 +1,7 @@
-From fdf267776932e3bab7c0d87f2c9c8a96ac9a4e0f Mon Sep 17 00:00:00 2001
+From 8ec1b934dbece35a4512a7ea203bb81c84dc268e Mon Sep 17 00:00:00 2001
 From: Allen Ye <allen.ye@mediatek.com>
 Date: Tue, 28 May 2024 15:39:06 +0800
-Subject: [PATCH 164/223] mtk: mt76: Add dynamic pp vendor and debug pp algo
+Subject: [PATCH 164/193] mtk: mt76: Add dynamic pp vendor and debug pp algo
  cmd support
 
 Add dynamic pp vendor and debug pp algo cmd support.
@@ -26,7 +26,7 @@
  6 files changed, 205 insertions(+), 30 deletions(-)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index fce92046..77d3b2c8 100644
+index 13dc0ac..e587051 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -1285,6 +1285,39 @@ mt7996_mcu_wed_rro_event(struct mt7996_dev *dev, struct sk_buff *skb)
@@ -122,7 +122,7 @@
  {
  	struct mt7996_dev *dev = phy->dev;
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 011b6c7a..01eb0ea1 100644
+index 011b6c7..01eb0ea 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -1162,6 +1162,7 @@ enum {
@@ -185,7 +185,7 @@
  	UNI_CMD_SCS_SEND_DATA,
  	UNI_CMD_SCS_SET_PD_THR_RANGE = 2,
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 58151ed0..755b4cf0 100644
+index 58151ed..755b4cf 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1282,6 +1282,7 @@ int mt7996_mcu_cp_support(struct mt7996_dev *dev, u8 mode);
@@ -205,7 +205,7 @@
  
  int mt7996_mcu_edcca_enable(struct mt7996_phy *phy, bool enable);
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 02a6ee81..2ded5f79 100644
+index 02a6ee8..2ded5f7 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -4367,6 +4367,18 @@ static const struct file_operations fops_muru_dbg_info = {
@@ -237,7 +237,7 @@
  
  void mt7996_mtk_init_dev_debugfs(struct mt7996_dev *dev, struct dentry *dir)
 diff --git a/mt7996/vendor.c b/mt7996/vendor.c
-index 33c682c0..d7973c5e 100644
+index 33c682c..d7973c5 100644
 --- a/mt7996/vendor.c
 +++ b/mt7996/vendor.c
 @@ -96,7 +96,9 @@ ibf_ctrl_policy[NUM_MTK_VENDOR_ATTRS_IBF_CTRL] = {
@@ -397,7 +397,7 @@
  	INIT_LIST_HEAD(&phy->csi.list);
  	spin_lock_init(&phy->csi.lock);
 diff --git a/mt7996/vendor.h b/mt7996/vendor.h
-index 714f0b3e..ca4f00ad 100644
+index 714f0b3..ca4f00a 100644
 --- a/mt7996/vendor.h
 +++ b/mt7996/vendor.h
 @@ -21,6 +21,10 @@ enum mtk_nl80211_vendor_subcmds {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0165-mtk-mt76-mt7996-disable-MAT-and-set-force-link-for-4.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0165-mtk-mt76-mt7996-disable-MAT-and-set-force-link-for-4.patch
index 8d58295..412abba 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0165-mtk-mt76-mt7996-disable-MAT-and-set-force-link-for-4.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0165-mtk-mt76-mt7996-disable-MAT-and-set-force-link-for-4.patch
@@ -1,7 +1,7 @@
-From 05542b2127e52eae086612d666891b8f84f357e9 Mon Sep 17 00:00:00 2001
+From a07c7a995292a0df235287f217c91d6ea2b532fc Mon Sep 17 00:00:00 2001
 From: Michael-CY Lee <michael-cy.lee@mediatek.com>
 Date: Mon, 8 Jul 2024 11:05:31 +0800
-Subject: [PATCH 165/223] mtk: mt76: mt7996: disable MAT and set force-link for
+Subject: [PATCH 165/193] mtk: mt76: mt7996: disable MAT and set force-link for
  4-addr NULL func data frame
 
 This is a temporary solution to solve a WDS connection problem.
@@ -20,7 +20,7 @@
  1 file changed, 6 insertions(+)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 87e671a3..1f225756 100644
+index 87e671a..1f22575 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -771,6 +771,12 @@ mt7996_mac_write_txwi_80211(struct mt7996_dev *dev, __le32 *txwi,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0166-mtk-mt76-mt7996-add-per-STA-TX-MSDU-failed-and-retri.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0166-mtk-mt76-mt7996-add-per-STA-TX-MSDU-failed-and-retri.patch
index 8433a4e..25dbf2b 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0166-mtk-mt76-mt7996-add-per-STA-TX-MSDU-failed-and-retri.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0166-mtk-mt76-mt7996-add-per-STA-TX-MSDU-failed-and-retri.patch
@@ -1,7 +1,7 @@
-From e785b2395e3f293ce49ddab807fee0f3bda779d6 Mon Sep 17 00:00:00 2001
+From a7a99f2c82b7dfcc147eb45e695b2c04058ec8b4 Mon Sep 17 00:00:00 2001
 From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
 Date: Thu, 4 Jul 2024 14:00:16 +0800
-Subject: [PATCH 166/223] mtk: mt76: mt7996: add per-STA TX MSDU failed and
+Subject: [PATCH 166/193] mtk: mt76: mt7996: add per-STA TX MSDU failed and
  retried counts
 
 Record per-STA TX MSDU failed and retried counts for debugging.
@@ -18,7 +18,7 @@
  6 files changed, 68 insertions(+), 59 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
-index c3b71cc3..27c990df 100644
+index c3b71cc..27c990d 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -364,6 +364,8 @@ struct mt76_sta_stats {
@@ -31,7 +31,7 @@
  	u32 tx_retries;
  	u32 tx_failed;
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index cc644edf..302567e3 100644
+index cc644ed..302567e 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1407,6 +1407,8 @@ enum {
@@ -52,7 +52,7 @@
  };
  
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 1f225756..8c68e08e 100644
+index 1f22575..8c68e08 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -2443,6 +2443,43 @@ void mt7996_mac_sta_rc_work(struct work_struct *work)
@@ -109,7 +109,7 @@
  					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);
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 77d3b2c8..3fcc7fac 100644
+index e587051..cd2bab3 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -6027,7 +6027,6 @@ int mt7996_mcu_set_rro(struct mt7996_dev *dev, u16 tag, u16 val)
@@ -208,7 +208,7 @@
  {
  	struct {
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 01eb0ea1..739e357c 100644
+index 01eb0ea..739e357 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -211,6 +211,13 @@ struct per_sta_snr {
@@ -234,7 +234,7 @@
  } __packed;
  
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 755b4cf0..a02e976a 100644
+index 755b4cf..a02e976 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1138,7 +1138,6 @@ void mt7996_mcu_rx_event(struct mt7996_dev *dev, struct sk_buff *skb);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0167-mtk-mt76-mt7996-fill-in-sn-into-txd-for-MLD-multicas.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0167-mtk-mt76-mt7996-fill-in-sn-into-txd-for-MLD-multicas.patch
index 00e7840..c8380c4 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0167-mtk-mt76-mt7996-fill-in-sn-into-txd-for-MLD-multicas.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0167-mtk-mt76-mt7996-fill-in-sn-into-txd-for-MLD-multicas.patch
@@ -1,7 +1,7 @@
-From 261d876ae90ba658963a1aae901a4f513e56684e Mon Sep 17 00:00:00 2001
+From ac83d9b14355f09b77e9292d641e894ccfa01f9d Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Mon, 15 Jul 2024 11:42:47 +0800
-Subject: [PATCH 167/223] mtk: mt76: mt7996: fill in sn into txd for MLD
+Subject: [PATCH 167/193] mtk: mt76: mt7996: fill in sn into txd for MLD
  multicast packet
 
 Change-Id: I09d3dd71aee227f7b8ef06756064b0d4079e7d54
@@ -11,7 +11,7 @@
  1 file changed, 7 insertions(+), 2 deletions(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 8c68e08e..1952cb0c 100644
+index 8c68e08..1952cb0 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -693,6 +693,7 @@ mt7996_mac_write_txwi_80211(struct mt7996_dev *dev, __le32 *txwi,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0168-mtk-mt76-mt7996-fix-potential-null-pointer.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0168-mtk-mt76-mt7996-fix-potential-null-pointer.patch
index 418c92e..8b24958 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0168-mtk-mt76-mt7996-fix-potential-null-pointer.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0168-mtk-mt76-mt7996-fix-potential-null-pointer.patch
@@ -1,7 +1,7 @@
-From 4de8ef89ddae7299fbf92927aaa6bf226e10bef0 Mon Sep 17 00:00:00 2001
+From 262e17ebf0c8c55427b2d483fa0e9d3d0224331a Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Tue, 9 Jul 2024 14:54:39 +0800
-Subject: [PATCH 168/223] mtk: mt76: mt7996: fix potential null pointer
+Subject: [PATCH 168/193] mtk: mt76: mt7996: fix potential null pointer
 
 Fix more parts that might have null pointer access.
 
@@ -16,7 +16,7 @@
  3 files changed, 16 insertions(+)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 1952cb0c..1a3c661f 100644
+index 1952cb0..1a3c661 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -1127,6 +1127,9 @@ mt7996_tx_check_aggr(struct ieee80211_sta *sta, struct sk_buff *skb,
@@ -30,7 +30,7 @@
  		ieee80211_start_tx_ba_session(sta, tid, 0);
  }
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 562137a5..c95e7e35 100644
+index 1c86a8c..90320e5 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -518,9 +518,12 @@ static void mt7996_remove_interface(struct ieee80211_hw *hw,
@@ -46,7 +46,7 @@
  	mutex_unlock(&dev->mt76.mutex);
  }
  
-@@ -928,6 +931,9 @@ static void mt7996_vif_cfg_changed(struct ieee80211_hw *hw,
+@@ -927,6 +930,9 @@ static void mt7996_vif_cfg_changed(struct ieee80211_hw *hw,
  			struct mt7996_link_sta *mlink =
  				mlink_dereference_protected(&mvif->sta, link_id);
  
@@ -56,7 +56,7 @@
  			mt7996_mcu_add_bss_info(mconf->phy, conf, mconf, mlink, true);
  			mt7996_mcu_add_sta(dev, conf, mconf, NULL, mlink, true, false);
  		}
-@@ -1279,6 +1285,8 @@ mt7996_mac_sta_remove_links(struct mt7996_dev *dev, struct ieee80211_vif *vif,
+@@ -1278,6 +1284,8 @@ mt7996_mac_sta_remove_links(struct mt7996_dev *dev, struct ieee80211_vif *vif,
  			link_sta_dereference_protected(sta, link_id);
  		bool last_link = rem == sta->valid_links && link_id == __fls(rem);
  
@@ -65,7 +65,7 @@
  		mt7996_remove_link_sta(dev, conf, mconf, link_sta, mlink, last_link);
  	}
  }
-@@ -1419,6 +1427,8 @@ mt7996_sta_pre_rcu_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -1418,6 +1426,8 @@ mt7996_sta_pre_rcu_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  		struct mt7996_link_sta *mlink =
  			mlink_dereference_protected(msta, link_id);
  
@@ -75,7 +75,7 @@
  	}
  	spin_unlock_bh(&dev->mt76.status_lock);
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 3fcc7fac..856168f6 100644
+index cd2bab3..fb4f5f5 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -3032,6 +3032,9 @@ mt7996_mcu_sta_mld_setup_tlv(struct mt7996_dev *dev, struct sk_buff *skb,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0169-mtk-mt76-mt7996-Fix-legacy-action-frame-wrong-addres.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0169-mtk-mt76-mt7996-Fix-legacy-action-frame-wrong-addres.patch
index 01f7688..6687e45 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0169-mtk-mt76-mt7996-Fix-legacy-action-frame-wrong-addres.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0169-mtk-mt76-mt7996-Fix-legacy-action-frame-wrong-addres.patch
@@ -1,7 +1,7 @@
-From 9134d34ad3ad49037980ec5e37437753dc583a4b Mon Sep 17 00:00:00 2001
+From f53d004650f9a9d4d8f3f8e929be22d32a45f31c Mon Sep 17 00:00:00 2001
 From: Allen Ye <allen.ye@mediatek.com>
 Date: Wed, 17 Jul 2024 11:36:11 +0800
-Subject: [PATCH 169/223] mtk: mt76: mt7996: Fix legacy action frame wrong
+Subject: [PATCH 169/193] mtk: mt76: mt7996: Fix legacy action frame wrong
  address translation
 
 For non-associated STA send unicast ANQP request, AP should use unicast
@@ -14,7 +14,7 @@
  1 file changed, 6 insertions(+), 2 deletions(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 1a3c661f..406a1275 100644
+index 1a3c661..406a127 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -683,7 +683,8 @@ mt7996_mac_write_txwi_8023(struct mt7996_dev *dev, __le32 *txwi,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0170-mtk-mt76-mt7996-add-AP-affiliated-link-removal-suppo.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0170-mtk-mt76-mt7996-add-AP-affiliated-link-removal-suppo.patch
index 1819f12..10de901 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0170-mtk-mt76-mt7996-add-AP-affiliated-link-removal-suppo.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0170-mtk-mt76-mt7996-add-AP-affiliated-link-removal-suppo.patch
@@ -1,7 +1,7 @@
-From a025d78199c2a329723707c689075c34d7c780e5 Mon Sep 17 00:00:00 2001
+From 95ad534b954c4ed55417dd5e1fbfb80410c52835 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Fri, 31 May 2024 18:14:59 +0800
-Subject: [PATCH 170/223] mtk: mt76: mt7996: add AP affiliated link removal
+Subject: [PATCH 170/193] mtk: mt76: mt7996: add AP affiliated link removal
  support
 
 Add support for ap link removal of MLD reconfiguration.
@@ -17,7 +17,7 @@
  5 files changed, 367 insertions(+), 12 deletions(-)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 302567e3..4976d944 100644
+index 302567e..4976d94 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1079,6 +1079,7 @@ enum {
@@ -45,7 +45,7 @@
  
  enum {
 diff --git a/mt7996/main.c b/mt7996/main.c
-index c95e7e35..6ad4558b 100644
+index 90320e5..a9ae083 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
 @@ -319,6 +319,21 @@ static void mt7996_remove_bss_conf(struct ieee80211_vif *vif,
@@ -79,7 +79,7 @@
  		mtxq = (struct mt76_txq *)vif->txq->drv_priv;
  		mtxq->wcid = idx;
  	}
-@@ -1128,6 +1143,8 @@ static void mt7996_remove_link_sta(struct mt7996_dev *dev,
+@@ -1127,6 +1142,8 @@ static void mt7996_remove_link_sta(struct mt7996_dev *dev,
  {
  	struct ieee80211_sta *sta = link_sta->sta;
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
@@ -88,7 +88,7 @@
  	int i;
  
  	if (!mlink)
-@@ -1148,6 +1165,7 @@ static void mt7996_remove_link_sta(struct mt7996_dev *dev,
+@@ -1147,6 +1164,7 @@ static void mt7996_remove_link_sta(struct mt7996_dev *dev,
  		mt7996_mac_twt_teardown_flow(dev, mlink, i);
  
  	rcu_assign_pointer(mlink->sta->link[mlink->wcid.link_id], NULL);
@@ -96,7 +96,7 @@
  
  	spin_lock_bh(&dev->mt76.sta_poll_lock);
  	if (!list_empty(&mlink->wcid.poll_list))
-@@ -1156,17 +1174,41 @@ static void mt7996_remove_link_sta(struct mt7996_dev *dev,
+@@ -1155,17 +1173,41 @@ static void mt7996_remove_link_sta(struct mt7996_dev *dev,
  		list_del_init(&mlink->rc_list);
  	spin_unlock_bh(&dev->mt76.sta_poll_lock);
  
@@ -146,7 +146,7 @@
  	mt76_wcid_cleanup(&dev->mt76, &mlink->wcid);
  	mt76_wcid_mask_clear(dev->mt76.wcid_mask, mlink->wcid.idx);
  	mt76_wcid_mask_clear(dev->mt76.wcid_phy_mask, mlink->wcid.idx);
-@@ -3108,9 +3150,15 @@ mt7996_change_sta_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -3107,9 +3149,15 @@ mt7996_change_sta_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	mt76_vif_dbg(vif, "STA %pM old=0x%x, new=0x%x\n", sta->addr, old_links, new_links);
  	mutex_lock(&dev->mt76.mutex);
  
@@ -164,7 +164,7 @@
  	if (ret)
  		goto remove;
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 856168f6..417c38a3 100644
+index fb4f5f5..b6cc459 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -1355,6 +1355,48 @@ mt7996_mcu_pp_event(struct mt7996_dev *dev, struct sk_buff *skb)
@@ -427,7 +427,7 @@
  	dev_kfree_skb(skb);
  	return mt76_mcu_skb_send_msg(&phy->dev->mt76, rskb,
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 739e357c..7c559d2b 100644
+index 739e357..7c559d2 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -546,6 +546,20 @@ struct bss_bcn_sta_prof_cntdwn_tlv {
@@ -548,7 +548,7 @@
  	u8 _rsv[4];
  
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index a02e976a..a7655a61 100644
+index a02e976..a7655a6 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1087,6 +1087,8 @@ int mt7996_mcu_add_rate_ctrl(struct mt7996_dev *dev,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0171-mtk-mt76-mt7996-add-support-for-AP-A-TTLM.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0171-mtk-mt76-mt7996-add-support-for-AP-A-TTLM.patch
index 4365a84..298bf29 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0171-mtk-mt76-mt7996-add-support-for-AP-A-TTLM.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0171-mtk-mt76-mt7996-add-support-for-AP-A-TTLM.patch
@@ -1,7 +1,7 @@
-From 54aea6e753436bff0a258c753d2b8da3daea72f8 Mon Sep 17 00:00:00 2001
+From b70fdcfd5cd1de56bbf1fdb04dc8b14dd59de7b5 Mon Sep 17 00:00:00 2001
 From: Michael-CY Lee <michael-cy.lee@mediatek.com>
 Date: Fri, 28 Jun 2024 13:45:15 +0800
-Subject: [PATCH 171/223] mtk: mt76: mt7996: add support for AP A-TTLM
+Subject: [PATCH 171/193] mtk: mt76: mt7996: add support for AP A-TTLM
 
 This add support for AP A-TTLM support by following actions
 1. request at2lm resource to FW and get switch time TSF value
@@ -20,7 +20,7 @@
  5 files changed, 214 insertions(+), 1 deletion(-)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 4976d944..18758ff2 100644
+index 4976d94..18758ff 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1401,6 +1401,7 @@ enum {
@@ -32,10 +32,10 @@
  
  enum {
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 6ad4558b..c6cb5104 100644
+index a9ae083..972023c 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -3171,6 +3171,19 @@ out:
+@@ -3170,6 +3170,19 @@ out:
  	return ret;
  }
  
@@ -55,14 +55,14 @@
  static void
  mt7996_event_callback(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  		      const struct ieee80211_event *event)
-@@ -3331,4 +3344,5 @@ const struct ieee80211_ops mt7996_ops = {
+@@ -3330,4 +3343,5 @@ const struct ieee80211_ops mt7996_ops = {
  	.change_vif_links = mt7996_change_vif_links,
  	.change_sta_links = mt7996_change_sta_links,
  	.set_qos_map = mt7996_set_qos_map,
 +	.set_attlm = mt7996_set_attlm,
  };
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 417c38a3..0e8e2c06 100644
+index b6cc459..2ab7377 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -1367,6 +1367,22 @@ mt7996_mcu_mld_reconf_finish(void *priv, u8 *mac, struct ieee80211_vif *vif)
@@ -255,7 +255,7 @@
  	dev_kfree_skb(skb);
  	return mt76_mcu_skb_send_msg(&phy->dev->mt76, rskb,
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 7c559d2b..0f2695eb 100644
+index 7c559d2..0f2695e 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -560,6 +560,14 @@ struct bss_bcn_ml_reconf_offset {
@@ -340,7 +340,7 @@
  };
  
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index a7655a61..15c4e557 100644
+index a7655a6..15c4e55 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1158,6 +1158,8 @@ int mt7996_mcu_set_vow_drr_ctrl(struct mt7996_phy *phy,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0172-mtk-mt76-mt7996-leave-ps-when-4-address-is-establish.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0172-mtk-mt76-mt7996-leave-ps-when-4-address-is-establish.patch
index f7fb35f..2b18cc3 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0172-mtk-mt76-mt7996-leave-ps-when-4-address-is-establish.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0172-mtk-mt76-mt7996-leave-ps-when-4-address-is-establish.patch
@@ -1,7 +1,7 @@
-From 4b29092cc31d34967152a3062966d987fc5352eb Mon Sep 17 00:00:00 2001
+From c338f3a5a47c2bbb7c4654e558ad0a73c84c38e0 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Thu, 18 Jul 2024 10:29:22 +0800
-Subject: [PATCH 172/223] mtk: mt76: mt7996: leave ps when 4 address is
+Subject: [PATCH 172/193] mtk: mt76: mt7996: leave ps when 4 address is
  established
 
 Because the 4 address non-amsdu packet does not have bssid field, the
@@ -20,7 +20,7 @@
  5 files changed, 30 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 18758ff2..69c8389f 100644
+index 18758ff..69c8389 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -843,6 +843,7 @@ enum {
@@ -32,10 +32,10 @@
  };
  
 diff --git a/mt7996/main.c b/mt7996/main.c
-index c6cb5104..21d65f78 100644
+index 972023c..79334a7 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -2081,6 +2081,9 @@ static void mt7996_sta_set_4addr(struct ieee80211_hw *hw,
+@@ -2080,6 +2080,9 @@ static void mt7996_sta_set_4addr(struct ieee80211_hw *hw,
  			clear_bit(MT_WCID_FLAG_4ADDR, &mlink->wcid.flags);
  
  		mt7996_mcu_wtbl_update_hdr_trans(dev, vif, mconf, mlink);
@@ -46,7 +46,7 @@
  	mutex_unlock(&dev->mt76.mutex);
  }
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 0e8e2c06..b47aa7d6 100644
+index 2ab7377..faf7477 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -6257,6 +6257,24 @@ int mt7996_mcu_wtbl_update_hdr_trans(struct mt7996_dev *dev,
@@ -75,7 +75,7 @@
  				    u16 rate_idx, bool beacon)
  {
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 0f2695eb..ffa574b8 100644
+index 0f2695e..ffa574b 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -775,6 +775,12 @@ struct sta_rec_hdr_trans {
@@ -92,7 +92,7 @@
  	__le16 tag;
  	__le16 len;
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 15c4e557..21019bc2 100644
+index 15c4e55..21019bc 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1281,6 +1281,8 @@ int mt7996_mcu_wtbl_update_hdr_trans(struct mt7996_dev *dev,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0173-mtk-mt76-mt7996-add-debugfs-knob-to-set-and-dump-txo.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0173-mtk-mt76-mt7996-add-debugfs-knob-to-set-and-dump-txo.patch
index 687d1ff..98557fc 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0173-mtk-mt76-mt7996-add-debugfs-knob-to-set-and-dump-txo.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0173-mtk-mt76-mt7996-add-debugfs-knob-to-set-and-dump-txo.patch
@@ -1,7 +1,7 @@
-From c8d33542d7f89e4404f932beb1883093f4c723a1 Mon Sep 17 00:00:00 2001
+From 89d2a4f1f7f085d5abed6adba0cea27380ffa2c0 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Wed, 17 Jul 2024 16:57:24 +0800
-Subject: [PATCH 173/223] mtk: mt76: mt7996: add debugfs knob to set and dump
+Subject: [PATCH 173/193] mtk: mt76: mt7996: add debugfs knob to set and dump
  txop
 
 Change-Id: Iaf4fa82556c9ee4433de29f1ebe125e91c743284
@@ -12,7 +12,7 @@
  2 files changed, 112 insertions(+)
 
 diff --git a/mt7996/mtk_debug_i.h b/mt7996/mtk_debug_i.h
-index cec8d57e..01023e16 100644
+index cec8d57..01023e1 100644
 --- a/mt7996/mtk_debug_i.h
 +++ b/mt7996/mtk_debug_i.h
 @@ -1006,6 +1006,14 @@
@@ -31,7 +31,7 @@
  
  #endif
 diff --git a/mt7996/mtk_debugfs_i.c b/mt7996/mtk_debugfs_i.c
-index 852d1b12..c9224eee 100644
+index 852d1b1..c9224ee 100644
 --- a/mt7996/mtk_debugfs_i.c
 +++ b/mt7996/mtk_debugfs_i.c
 @@ -824,6 +824,109 @@ static const struct file_operations fops_mlo_agc_tx = {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0174-mtk-mt76-mt7996-add-mcu-command-to-set-bssid-mapping.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0174-mtk-mt76-mt7996-add-mcu-command-to-set-bssid-mapping.patch
index 9d09a4f..f1f790f 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0174-mtk-mt76-mt7996-add-mcu-command-to-set-bssid-mapping.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0174-mtk-mt76-mt7996-add-mcu-command-to-set-bssid-mapping.patch
@@ -1,7 +1,7 @@
-From 848a43638c737f72cf30a53b855f0f09ee7be729 Mon Sep 17 00:00:00 2001
+From 1d0deb0b86c36daa34ed2d8f64c4a1dbb161ad37 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Mon, 22 Jul 2024 10:47:45 +0800
-Subject: [PATCH 174/223] mtk: mt76: mt7996: add mcu command to set bssid
+Subject: [PATCH 174/193] mtk: mt76: mt7996: add mcu command to set bssid
  mapping address
 
 When receiving 4 address non-amsdu packet, there is no bssid in the address
@@ -18,10 +18,10 @@
  4 files changed, 35 insertions(+)
 
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 18847ff5..d7a1d7cd 100644
+index 53781d4..e8192b8 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -539,6 +539,9 @@ mt7996_mac_init_band(struct mt7996_dev *dev, u8 band)
+@@ -536,6 +536,9 @@ mt7996_mac_init_band(struct mt7996_dev *dev, u8 band)
  {
  	u32 mask, set;
  
@@ -31,7 +31,7 @@
  	/* clear estimated value of EIFS for Rx duration & OBSS time */
  	mt76_wr(dev, MT_WF_RMAC_RSVD0(band), MT_WF_RMAC_RSVD0_EIFS_CLR);
  
-@@ -566,6 +569,10 @@ mt7996_mac_init_band(struct mt7996_dev *dev, u8 band)
+@@ -563,6 +566,10 @@ mt7996_mac_init_band(struct mt7996_dev *dev, u8 band)
  	 * MT_AGG_ACR_PPDU_TXS2H (PPDU format) even though ACR bit is set.
  	 */
  	mt76_set(dev, MT_AGG_ACR4(band), MT_AGG_ACR_PPDU_TXS2H);
@@ -43,7 +43,7 @@
  
  static void mt7996_mac_init_basic_rates(struct mt7996_dev *dev)
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index b47aa7d6..dc1af0be 100644
+index faf7477..19e0d6c 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -6127,6 +6127,32 @@ int mt7996_mcu_twt_agrt_update(struct mt7996_dev *dev,
@@ -80,7 +80,7 @@
  {
  	struct {
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index ffa574b8..5d4625c8 100644
+index ffa574b..5d4625c 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -1067,6 +1067,7 @@ enum {
@@ -92,7 +92,7 @@
  
  enum {
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 21019bc2..b9b52d17 100644
+index 21019bc..b9b52d1 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1112,6 +1112,7 @@ int mt7996_mcu_set_radar_th(struct mt7996_dev *dev, int index,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0175-mtk-mt76-mt7996-Temporary-fix-init-txpwoer-for-singl.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0175-mtk-mt76-mt7996-Temporary-fix-init-txpwoer-for-singl.patch
index ebf90c9..e982085 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0175-mtk-mt76-mt7996-Temporary-fix-init-txpwoer-for-singl.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0175-mtk-mt76-mt7996-Temporary-fix-init-txpwoer-for-singl.patch
@@ -1,7 +1,7 @@
-From ece67fdae758e7e94b3a00148e9d205c8cff3228 Mon Sep 17 00:00:00 2001
+From ce486289c0bc2d401aa0ea225f66a34bbad0d8a3 Mon Sep 17 00:00:00 2001
 From: Allen Ye <allen.ye@mediatek.com>
 Date: Mon, 22 Jul 2024 19:33:07 +0800
-Subject: [PATCH 175/223] mtk: mt76: mt7996: Temporary fix init txpwoer for
+Subject: [PATCH 175/193] mtk: mt76: mt7996: Temporary fix init txpwoer for
  single wiphy
 
 This patch can be removed after the real single wiphy finished.
@@ -13,10 +13,10 @@
  1 file changed, 15 insertions(+), 6 deletions(-)
 
 diff --git a/mt7996/init.c b/mt7996/init.c
-index d7a1d7cd..64c28ba4 100644
+index e8192b8..6e83eaa 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -373,15 +373,24 @@ static void __mt7996_init_txpower(struct mt7996_phy *phy,
+@@ -370,15 +370,24 @@ static void __mt7996_init_txpower(struct mt7996_phy *phy,
  
  void mt7996_init_txpower(struct mt7996_phy *phy)
  {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0176-mtk-mt76-mt7996-Add-lpi-support-with-sku_idx-and-enh.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0176-mtk-mt76-mt7996-Add-lpi-support-with-sku_idx-and-enh.patch
index 50c352a..1943b05 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0176-mtk-mt76-mt7996-Add-lpi-support-with-sku_idx-and-enh.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0176-mtk-mt76-mt7996-Add-lpi-support-with-sku_idx-and-enh.patch
@@ -1,7 +1,7 @@
-From b6751afce073f71139c40e17b05b25950b037a28 Mon Sep 17 00:00:00 2001
+From a48dd483314110598c030bb29d044ae3a466300f Mon Sep 17 00:00:00 2001
 From: Allen Ye <allen.ye@mediatek.com>
 Date: Fri, 12 Jul 2024 16:58:57 +0800
-Subject: [PATCH 176/223] mtk: mt76: mt7996: Add lpi support with sku_idx and
+Subject: [PATCH 176/193] mtk: mt76: mt7996: Add lpi support with sku_idx and
  enhancement
 
 Add lpi support with sku_idx and enhancement.
@@ -30,7 +30,7 @@
  14 files changed, 286 insertions(+), 30 deletions(-)
 
 diff --git a/eeprom.c b/eeprom.c
-index 4eb27782..469af710 100644
+index 4eb2778..469af71 100644
 --- a/eeprom.c
 +++ b/eeprom.c
 @@ -233,8 +233,9 @@ static bool mt76_string_prop_find(struct property *prop, const char *str)
@@ -92,7 +92,7 @@
  		return target_power;
  
 diff --git a/mt76.h b/mt76.h
-index 27c990df..14f409ba 100644
+index 27c990d..14f409b 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -948,6 +948,7 @@ struct mt76_phy {
@@ -124,7 +124,7 @@
  mt76_find_channel_node(struct device_node *np, struct ieee80211_channel *chan);
  
 diff --git a/mt76_connac3_mac.h b/mt76_connac3_mac.h
-index ad8392cd..7bc41047 100644
+index ad8392c..7bc4104 100644
 --- a/mt76_connac3_mac.h
 +++ b/mt76_connac3_mac.h
 @@ -209,6 +209,18 @@ enum {
@@ -147,10 +147,10 @@
  #define MT_CT_INFO_COPY_HOST_TXD_ALL	BIT(1)
  #define MT_CT_INFO_MGMT_FRAME		BIT(2)
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 64c28ba4..b63316b4 100644
+index 6e83eaa..9634928 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -347,7 +347,7 @@ static void __mt7996_init_txpower(struct mt7996_phy *phy,
+@@ -344,7 +344,7 @@ static void __mt7996_init_txpower(struct mt7996_phy *phy,
  
  	phy->sku_limit_en = true;
  	phy->sku_path_en = true;
@@ -160,7 +160,7 @@
  		struct ieee80211_channel *chan = &sband->channels[i];
  		int target_power = mt7996_eeprom_get_target_power(dev, chan);
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 406a1275..295bff24 100644
+index 406a127..295bff2 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -897,8 +897,13 @@ void mt7996_mac_write_txwi(struct mt7996_dev *dev, __le32 *txwi,
@@ -178,10 +178,10 @@
  		txwi[3] |= cpu_to_le32(MT_TXD3_BA_DISABLE);
  	}
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 21d65f78..2b92b686 100644
+index 79334a7..f3c55bc 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -878,6 +878,7 @@ static u8
+@@ -877,6 +877,7 @@ static u8
  mt7996_get_rates_table(struct ieee80211_hw *hw, struct ieee80211_bss_conf *conf,
  		       struct mt7996_bss_conf *mconf, bool beacon, bool mcast)
  {
@@ -189,7 +189,7 @@
  	struct mt7996_dev *dev = mt7996_hw_dev(hw);
  	struct mt76_phy *mphy = mconf->phy->mt76;
  	u16 rate;
-@@ -890,6 +891,8 @@ mt7996_get_rates_table(struct ieee80211_hw *hw, struct ieee80211_bss_conf *conf,
+@@ -889,6 +890,8 @@ mt7996_get_rates_table(struct ieee80211_hw *hw, struct ieee80211_bss_conf *conf,
  
  		if (dev->cert_mode && phy->mt76->band_idx == MT_BAND2)
  			rate = 0x0200;
@@ -198,7 +198,7 @@
  
  		/* odd index for driver, even index for firmware */
  		idx = MT7996_BEACON_RATES_TBL + 2 * phy->mt76->band_idx;
-@@ -1035,7 +1038,7 @@ static void mt7996_link_info_changed(struct ieee80211_hw *hw,
+@@ -1034,7 +1037,7 @@ static void mt7996_link_info_changed(struct ieee80211_hw *hw,
  		mt7996_update_mu_group(hw, info, mconf);
  
  	if (changed & BSS_CHANGED_TXPOWER)
@@ -208,7 +208,7 @@
  out:
  	mutex_unlock(&dev->mt76.mutex);
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index dc1af0be..c6b6f405 100644
+index 19e0d6c..4919267 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -6320,7 +6320,7 @@ int mt7996_mcu_set_fixed_rate_table(struct mt7996_phy *phy, u8 table_idx,
@@ -380,7 +380,7 @@
  {
  	__le32 cp_mode;
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 5d4625c8..a5818f95 100644
+index 5d4625c..a5818f9 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -1067,6 +1067,7 @@ enum {
@@ -392,7 +392,7 @@
  };
  
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index b9b52d17..8b7486a1 100644
+index b9b52d1..8b7486a 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1119,7 +1119,7 @@ int mt7996_mcu_get_temperature(struct mt7996_phy *phy);
@@ -413,7 +413,7 @@
  
  int mt7996_mcu_edcca_enable(struct mt7996_phy *phy, bool enable);
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 2ded5f79..78450935 100644
+index 2ded5f7..7845093 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -2508,7 +2508,7 @@ mt7996_get_txpower_info(struct file *file, char __user *user_buf,
@@ -434,7 +434,7 @@
  
  #endif
 diff --git a/mt7996/testmode.c b/mt7996/testmode.c
-index 240227a9..1674e129 100644
+index 240227a..1674e12 100644
 --- a/mt7996/testmode.c
 +++ b/mt7996/testmode.c
 @@ -1857,7 +1857,7 @@ mt7996_tm_update_params(struct mt7996_phy *phy, u32 changed)
@@ -447,7 +447,7 @@
  	if (changed & BIT(TM_CHANGED_TX_LENGTH)) {
  		mt7996_tm_set(dev, SET_ID(TX_LEN), td->tx_mpdu_len);
 diff --git a/mt7996/testmode.h b/mt7996/testmode.h
-index ba1767ae..5c720da7 100644
+index ba1767a..5c720da 100644
 --- a/mt7996/testmode.h
 +++ b/mt7996/testmode.h
 @@ -15,18 +15,6 @@ enum {
@@ -470,7 +470,7 @@
  	BF_CDBW_20MHZ,
  	BF_CDBW_40MHZ,
 diff --git a/mt7996/vendor.c b/mt7996/vendor.c
-index d7973c5e..e75c163e 100644
+index d7973c5..e75c163 100644
 --- a/mt7996/vendor.c
 +++ b/mt7996/vendor.c
 @@ -145,6 +145,14 @@ csi_ctrl_policy[NUM_MTK_VENDOR_ATTRS_CSI_CTRL] = {
@@ -611,7 +611,7 @@
  
  static const struct nl80211_vendor_cmd_info mt7996_vendor_events[] = {
 diff --git a/mt7996/vendor.h b/mt7996/vendor.h
-index ca4f00ad..515f77a6 100644
+index ca4f00a..515f77a 100644
 --- a/mt7996/vendor.h
 +++ b/mt7996/vendor.h
 @@ -18,6 +18,7 @@ enum mtk_nl80211_vendor_subcmds {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0177-mtk-mt76-mt7996-Add-Triggered-Uplink-Access-Optimiza.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0177-mtk-mt76-mt7996-Add-Triggered-Uplink-Access-Optimiza.patch
index 53d656d..77b151b 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0177-mtk-mt76-mt7996-Add-Triggered-Uplink-Access-Optimiza.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0177-mtk-mt76-mt7996-Add-Triggered-Uplink-Access-Optimiza.patch
@@ -1,7 +1,7 @@
-From 80c870cb7dc5faa9b045a1a44322fc07f5f8aed3 Mon Sep 17 00:00:00 2001
+From d216d869ee7e131fd895472bd83f12bb4abf58e1 Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Tue, 2 Jul 2024 10:06:26 +0800
-Subject: [PATCH 177/223] mtk: mt76: mt7996: Add Triggered Uplink Access
+Subject: [PATCH 177/193] mtk: mt76: mt7996: Add Triggered Uplink Access
  Optimization support
 
 Add TUAO feature, which is a subset of SCS procedure support.
@@ -18,10 +18,10 @@
  6 files changed, 173 insertions(+), 7 deletions(-)
 
 diff --git a/mt7996/init.c b/mt7996/init.c
-index b63316b4..ae86c0eb 100644
+index 9634928..3978560 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -62,7 +62,14 @@ static const struct ieee80211_iface_combination if_comb_7992[] = {
+@@ -59,7 +59,14 @@ static const struct ieee80211_iface_combination if_comb_7992[] = {
  	}
  };
  
@@ -37,7 +37,7 @@
  	[0] = WLAN_EXT_CAPA1_EXT_CHANNEL_SWITCHING,
  	[2] = WLAN_EXT_CAPA3_MULTI_BSSID_SUPPORT,
  	[7] = WLAN_EXT_CAPA8_OPMODE_NOTIF,
-@@ -71,16 +78,16 @@ static const u8 mt7996_if_types_ext_capa[] = {
+@@ -68,16 +75,16 @@ static const u8 mt7996_if_types_ext_capa[] = {
  static const struct wiphy_iftype_ext_capab mt7996_iftypes_ext_capa[] = {
  	{
  		.iftype = NL80211_IFTYPE_STATION,
@@ -60,7 +60,7 @@
  		.eml_capabilities = IEEE80211_EML_CAP_EMLSR_SUPP,
  		.mld_capa_and_ops = 2,
  		/* the max number of simultaneous links is defined as the
-@@ -1593,6 +1600,10 @@ mt7996_init_eht_caps(struct mt7996_phy *phy, enum nl80211_band band,
+@@ -1590,6 +1597,10 @@ mt7996_init_eht_caps(struct mt7996_phy *phy, enum nl80211_band band,
  		u8_encode_bits(IEEE80211_EHT_MAC_CAP0_MAX_MPDU_LEN_11454,
  			       IEEE80211_EHT_MAC_CAP0_MAX_MPDU_LEN_MASK);
  
@@ -72,7 +72,7 @@
  		IEEE80211_EHT_PHY_CAP0_NDP_4_EHT_LFT_32_GI |
  		IEEE80211_EHT_PHY_CAP0_SU_BEAMFORMER |
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 8b7486a1..8f8cd7ae 100644
+index 8b7486a..8f8cd7a 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -525,6 +525,9 @@ struct csi_data {
@@ -86,7 +86,7 @@
  
  struct mt7996_rro_ba_session {
 diff --git a/mt7996/mtk_mcu.c b/mt7996/mtk_mcu.c
-index 8bacf29d..9ec4bc9a 100644
+index 8bacf29..9ec4bc9 100644
 --- a/mt7996/mtk_mcu.c
 +++ b/mt7996/mtk_mcu.c
 @@ -1429,4 +1429,53 @@ int mt7996_set_coding_type(struct ieee80211_hw *hw, u8 coding_type, u8 link_id)
@@ -144,7 +144,7 @@
 +}
  #endif
 diff --git a/mt7996/mtk_mcu.h b/mt7996/mtk_mcu.h
-index 8ba261a7..711903e0 100644
+index 8ba261a..711903e 100644
 --- a/mt7996/mtk_mcu.h
 +++ b/mt7996/mtk_mcu.h
 @@ -134,6 +134,7 @@ enum {
@@ -167,7 +167,7 @@
 +
  #endif
 diff --git a/mt7996/vendor.c b/mt7996/vendor.c
-index e75c163e..e13a148a 100644
+index e75c163..e13a148 100644
 --- a/mt7996/vendor.c
 +++ b/mt7996/vendor.c
 @@ -132,6 +132,17 @@ eml_ctrl_policy[NUM_MTK_VENDOR_ATTRS_EML_CTRL] = {
@@ -271,7 +271,7 @@
  
  static const struct nl80211_vendor_cmd_info mt7996_vendor_events[] = {
 diff --git a/mt7996/vendor.h b/mt7996/vendor.h
-index 515f77a6..71800590 100644
+index 515f77a..7180059 100644
 --- a/mt7996/vendor.h
 +++ b/mt7996/vendor.h
 @@ -19,6 +19,7 @@ enum mtk_nl80211_vendor_subcmds {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0178-mtk-mt76-mt7996-add-per-band-token-limit.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0178-mtk-mt76-mt7996-add-per-band-token-limit.patch
index 883ab46..273498b 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0178-mtk-mt76-mt7996-add-per-band-token-limit.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0178-mtk-mt76-mt7996-add-per-band-token-limit.patch
@@ -1,7 +1,7 @@
-From 0d130b8ba58d84007b12bd6984b94b756c5d6d3b Mon Sep 17 00:00:00 2001
+From 9ea195f63990ccc4925cf5f75f730eac744cda95 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Tue, 30 Jul 2024 19:49:39 +0800
-Subject: [PATCH 178/223] mtk: mt76: mt7996: add per-band token limit
+Subject: [PATCH 178/193] mtk: mt76: mt7996: add per-band token limit
 
 Add a threshold for per-band token count.
 The bands use the same token pool so a band cannot transmit if
@@ -21,7 +21,7 @@
  6 files changed, 40 insertions(+), 7 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
-index 14f409ba..5d7b8c4c 100644
+index 14f409b..5d7b8c4 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -468,6 +468,7 @@ struct mt76_txwi_cache {
@@ -59,10 +59,10 @@
  struct mt76_rxwi_cache *mt76_rx_token_release(struct mt76_dev *dev, int token);
  int mt76_rx_token_consume(struct mt76_dev *dev, void *ptr,
 diff --git a/mt7996/init.c b/mt7996/init.c
-index ae86c0eb..6e8791c8 100644
+index 3978560..e9e2ca1 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -1790,6 +1790,8 @@ int mt7996_register_device(struct mt7996_dev *dev)
+@@ -1787,6 +1787,8 @@ int mt7996_register_device(struct mt7996_dev *dev)
  	if (ret)
  		return ret;
  
@@ -72,7 +72,7 @@
  	if (ret)
  		goto error;
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 295bff24..ac51e27d 100644
+index 295bff2..ac51e27 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -971,7 +971,7 @@ int mt7996_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
@@ -97,7 +97,7 @@
  	spin_unlock_bh(&dev->mt76.token_lock);
  	idr_destroy(&dev->mt76.token);
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 8f8cd7ae..38f62d89 100644
+index 8f8cd7a..38f62d8 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -78,6 +78,7 @@
@@ -109,7 +109,7 @@
  #define MT7996_CFEND_RATE_DEFAULT	0x49	/* OFDM 24M */
  #define MT7996_CFEND_RATE_11B		0x03	/* 11B LP, 11M */
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 78450935..96a4a514 100644
+index 7845093..96a4a51 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -2400,7 +2400,7 @@ static int mt7996_sta_info(struct seq_file *s, void *data)
@@ -142,7 +142,7 @@
  	return 0;
  }
 diff --git a/tx.c b/tx.c
-index c9fda966..9bf43124 100644
+index e7aba9f..6f594fa 100644
 --- a/tx.c
 +++ b/tx.c
 @@ -855,20 +855,29 @@ void __mt76_set_tx_blocked(struct mt76_dev *dev, bool blocked)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0180-mtk-mt76-mt7996-record-per-antenna-average-data-fram.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0179-mtk-mt76-mt7996-record-per-antenna-average-data-fram.patch
similarity index 85%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0180-mtk-mt76-mt7996-record-per-antenna-average-data-fram.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0179-mtk-mt76-mt7996-record-per-antenna-average-data-fram.patch
index 7d1b622..3584105 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0180-mtk-mt76-mt7996-record-per-antenna-average-data-fram.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0179-mtk-mt76-mt7996-record-per-antenna-average-data-fram.patch
@@ -1,7 +1,7 @@
-From a8a7baa9433713f20bd0e8f6f78972097d0f0820 Mon Sep 17 00:00:00 2001
+From 100cc75f250acc3ade27c95a0e005390a5887b42 Mon Sep 17 00:00:00 2001
 From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
 Date: Thu, 1 Aug 2024 09:11:02 +0800
-Subject: [PATCH 180/223] mtk: mt76: mt7996: record per-antenna average
+Subject: [PATCH 179/193] mtk: mt76: mt7996: record per-antenna average
  data-frame RSSI
 
 Record per-antenna average data-frame RSSI.
@@ -14,7 +14,7 @@
  3 files changed, 13 insertions(+), 1 deletion(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index ac51e27d..58b462e8 100644
+index ac51e27..58b462e 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -494,10 +494,17 @@ mt7996_mac_fill_rx(struct mt7996_dev *dev, enum mt76_rxq_id q,
@@ -36,10 +36,10 @@
  
  		/* RXD Group 5 - C-RXV */
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 2b92b686..ed0f9154 100644
+index f3c55bc..2dbe4a3 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -1230,7 +1230,7 @@ static int mt7996_add_link_sta(struct mt7996_dev *dev,
+@@ -1229,7 +1229,7 @@ static int mt7996_add_link_sta(struct mt7996_dev *dev,
  	struct mt7996_sta *msta = (struct mt7996_sta *)sta->drv_priv;
  	u8 link_id = link_sta->link_id;
  	struct mt7996_link_sta *mlink = NULL;
@@ -48,7 +48,7 @@
  
  	if (!rcu_access_pointer(msta->link[link_id])) {
  		idx = mt76_wcid_alloc(dev->mt76.wcid_mask, MT7996_WTBL_STA);
-@@ -1298,6 +1298,9 @@ static int mt7996_add_link_sta(struct mt7996_dev *dev,
+@@ -1297,6 +1297,9 @@ static int mt7996_add_link_sta(struct mt7996_dev *dev,
  			goto error;
  	}
  
@@ -59,7 +59,7 @@
  
  	return 0;
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 38f62d89..59f0be0a 100644
+index 38f62d8..59f0be0 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -321,6 +321,8 @@ struct mt7996_link_sta {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0179-mtk-mt76-sync-with-upstream-changes.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0179-mtk-mt76-sync-with-upstream-changes.patch
deleted file mode 100644
index 07714b3..0000000
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0179-mtk-mt76-sync-with-upstream-changes.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From dd6e1e68ae6daf98e724d37d7fb099f2b825b094 Mon Sep 17 00:00:00 2001
-From: Shayne Chen <shayne.chen@mediatek.com>
-Date: Wed, 31 Jul 2024 11:19:53 +0800
-Subject: [PATCH 179/223] mtk: mt76: sync with upstream changes
-
-Change-Id: I0d1b5ad073e0e2b6f74fca5e800f0b3365151814
-Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
----
- mt7996/mcu.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index c6b6f405..47f8b5cc 100644
---- a/mt7996/mcu.c
-+++ b/mt7996/mcu.c
-@@ -426,7 +426,7 @@ mt7996_mcu_rx_radar_detected(struct mt7996_dev *dev, struct sk_buff *skb)
- 						&dev->rdd2_chandef,
- 						GFP_ATOMIC);
- 	} else {
--		ieee80211_radar_detected(mphy->hw);
-+		ieee80211_radar_detected(mphy->hw, NULL);
- 	}
- 	dev->hw_pattern++;
- }
--- 
-2.45.2
-
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0181-mtk-mt76-mt7996-remove-default-bss_conf-when-link-be.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0180-mtk-mt76-mt7996-remove-default-bss_conf-when-link-be.patch
similarity index 77%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0181-mtk-mt76-mt7996-remove-default-bss_conf-when-link-be.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0180-mtk-mt76-mt7996-remove-default-bss_conf-when-link-be.patch
index e78c343..48f6801 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0181-mtk-mt76-mt7996-remove-default-bss_conf-when-link-be.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0180-mtk-mt76-mt7996-remove-default-bss_conf-when-link-be.patch
@@ -1,7 +1,7 @@
-From f8be713871266a7834ad070e6ed737ddc51aeb92 Mon Sep 17 00:00:00 2001
+From b2870f1c814259b362f1c363fd9e6b5600a101cf Mon Sep 17 00:00:00 2001
 From: Michael-CY Lee <michael-cy.lee@mediatek.com>
 Date: Mon, 5 Aug 2024 14:54:43 +0800
-Subject: [PATCH 181/223] mtk: mt76: mt7996: remove default bss_conf when link
+Subject: [PATCH 180/193] mtk: mt76: mt7996: remove default bss_conf when link
  becomes MLD
 
 Change-Id: I192aab47adfa038f0ca9320cd5840f1e624a618d
@@ -11,10 +11,10 @@
  1 file changed, 6 insertions(+)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index ed0f9154..7678059b 100644
+index 2dbe4a3..938e8c8 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -3128,6 +3128,12 @@ mt7996_change_vif_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -3127,6 +3127,12 @@ mt7996_change_vif_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	}
  
  	if (!old_links) {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0182-mtk-mt76-mt7996-pass-vif-cfg.assoc-to-mt7996_mac_sta.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0181-mtk-mt76-mt7996-pass-vif-cfg.assoc-to-mt7996_mac_sta.patch
similarity index 80%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0182-mtk-mt76-mt7996-pass-vif-cfg.assoc-to-mt7996_mac_sta.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0181-mtk-mt76-mt7996-pass-vif-cfg.assoc-to-mt7996_mac_sta.patch
index c7a101e..09d4b05 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0182-mtk-mt76-mt7996-pass-vif-cfg.assoc-to-mt7996_mac_sta.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0181-mtk-mt76-mt7996-pass-vif-cfg.assoc-to-mt7996_mac_sta.patch
@@ -1,7 +1,7 @@
-From 582927a3040724713a313cd346dd8f63c907c044 Mon Sep 17 00:00:00 2001
+From 356f29e586897090b81b4dd87076b8b07de1a96c Mon Sep 17 00:00:00 2001
 From: Michael-CY Lee <michael-cy.lee@mediatek.com>
 Date: Mon, 5 Aug 2024 14:55:10 +0800
-Subject: [PATCH 182/223] mtk: mt76: mt7996: pass vif->cfg.assoc to
+Subject: [PATCH 181/193] mtk: mt76: mt7996: pass vif->cfg.assoc to
  mt7996_mac_sta_add_links
 
 Link management functions might leverage mt7996_change_sta_links to
@@ -15,10 +15,10 @@
  1 file changed, 3 insertions(+), 1 deletion(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 7678059b..7d4352c7 100644
+index 938e8c8..61c065a 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -3161,6 +3161,7 @@ mt7996_change_sta_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -3160,6 +3160,7 @@ mt7996_change_sta_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	unsigned long add = new_links & ~old_links;
  	unsigned long rem = old_links & ~new_links;
  	int ret = 0;
@@ -26,7 +26,7 @@
  
  	mt76_vif_dbg(vif, "STA %pM old=0x%x, new=0x%x\n", sta->addr, old_links, new_links);
  	mutex_lock(&dev->mt76.mutex);
-@@ -3174,7 +3175,8 @@ mt7996_change_sta_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -3173,7 +3174,8 @@ mt7996_change_sta_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  		/* 	goto remove; */
  	}
  
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0183-mtk-mt76-mt7996-separate-hwrro-from-wed.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0182-mtk-mt76-mt7996-separate-hwrro-from-wed.patch
similarity index 96%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0183-mtk-mt76-mt7996-separate-hwrro-from-wed.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0182-mtk-mt76-mt7996-separate-hwrro-from-wed.patch
index a037dff..36576ab 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0183-mtk-mt76-mt7996-separate-hwrro-from-wed.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0182-mtk-mt76-mt7996-separate-hwrro-from-wed.patch
@@ -1,7 +1,7 @@
-From 1d7510d986c174a852a91d51415019538c4bd95b Mon Sep 17 00:00:00 2001
+From c43d67fb45091ce36aae1f3096a5b8c6cdd46891 Mon Sep 17 00:00:00 2001
 From: Rex Lu <rex.lu@mediatek.com>
 Date: Tue, 6 Aug 2024 10:06:10 +0800
-Subject: [PATCH 183/223] mtk: mt76: mt7996: separate hwrro from wed
+Subject: [PATCH 182/193] mtk: mt76: mt7996: separate hwrro from wed
 
 1. separate hwrro from wed
 2. support mt7996/mt7992 run hwrro 3.0 without wed
@@ -22,7 +22,7 @@
  11 files changed, 617 insertions(+), 76 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index 81e76191..7598823a 100644
+index 81e7619..7598823 100644
 --- a/dma.c
 +++ b/dma.c
 @@ -231,7 +231,7 @@ mt76_dma_add_rx_buf(struct mt76_dev *dev, struct mt76_queue *q,
@@ -205,7 +205,7 @@
  	.rx_reset = mt76_dma_rx_reset,
  	.kick = mt76_dma_kick_queue,
 diff --git a/dma.h b/dma.h
-index 718122d5..393be98a 100644
+index 718122d..393be98 100644
 --- a/dma.h
 +++ b/dma.h
 @@ -31,8 +31,12 @@
@@ -223,7 +223,7 @@
  #define MT_DMA_WED_IND_REASON		GENMASK(15, 12)
  
 diff --git a/mac80211.c b/mac80211.c
-index 6190822c..d87aba36 100644
+index 6190822..d87aba3 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -732,6 +732,7 @@ static void mt76_rx_release_amsdu(struct mt76_phy *phy, enum mt76_rxq_id q)
@@ -246,7 +246,7 @@
  }
  
 diff --git a/mt76.h b/mt76.h
-index 5d7b8c4c..50d52776 100644
+index 5d7b8c4..50d5277 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -277,6 +277,7 @@ struct mt76_queue {
@@ -311,7 +311,7 @@
  
  struct mt76_txwi_cache *
 diff --git a/mt7996/dma.c b/mt7996/dma.c
-index bbc3814d..e4b0af29 100644
+index bbc3814..e4b0af2 100644
 --- a/mt7996/dma.c
 +++ b/mt7996/dma.c
 @@ -300,7 +300,7 @@ void mt7996_dma_start(struct mt7996_dev *dev, bool reset, bool wed_reset)
@@ -482,10 +482,10 @@
  
  	if (!force)
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 6e8791c8..ddceddff 100644
+index e9e2ca1..9f80143 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -931,7 +931,6 @@ void mt7996_wfsys_reset(struct mt7996_dev *dev)
+@@ -928,7 +928,6 @@ void mt7996_wfsys_reset(struct mt7996_dev *dev)
  
  void mt7996_rro_hw_init(struct mt7996_dev *dev)
  {
@@ -493,7 +493,7 @@
  	struct mtk_wed_device *wed = &dev->mt76.mmio.wed;
  	u32 reg = MT_RRO_ADDR_ELEM_SEG_ADDR0;
  	int i;
-@@ -939,6 +938,10 @@ void mt7996_rro_hw_init(struct mt7996_dev *dev)
+@@ -936,6 +935,10 @@ void mt7996_rro_hw_init(struct mt7996_dev *dev)
  	if (!dev->has_rro)
  		return;
  
@@ -504,7 +504,7 @@
  	if (is_mt7992(&dev->mt76)) {
  		/* set emul 3.0 function */
  		mt76_wr(dev, MT_RRO_3_0_EMU_CONF,
-@@ -947,9 +950,6 @@ void mt7996_rro_hw_init(struct mt7996_dev *dev)
+@@ -944,9 +947,6 @@ void mt7996_rro_hw_init(struct mt7996_dev *dev)
  		mt76_wr(dev, MT_RRO_ADDR_ARRAY_BASE0,
  			dev->wed_rro.addr_elem[0].phy_addr);
  	} else {
@@ -514,7 +514,7 @@
  
  		/* TODO: remove line after WM has set */
  		mt76_clear(dev, WF_RRO_AXI_MST_CFG, WF_RRO_AXI_MST_CFG_DIDX_OK);
-@@ -972,18 +972,24 @@ void mt7996_rro_hw_init(struct mt7996_dev *dev)
+@@ -969,18 +969,24 @@ void mt7996_rro_hw_init(struct mt7996_dev *dev)
  		mt76_wr(dev, MT_RRO_ADDR_ARRAY_BASE1,
  			MT_RRO_ADDR_ARRAY_ELEM_ADDR_SEG_MODE);
  	}
@@ -550,7 +550,7 @@
  
  	/* particular session configure */
  	/* use max session idx + 1 as particular session id */
-@@ -1012,12 +1018,10 @@ void mt7996_rro_hw_init(struct mt7996_dev *dev)
+@@ -1009,12 +1015,10 @@ void mt7996_rro_hw_init(struct mt7996_dev *dev)
  	mt76_wr(dev, MT_RRO_HOST_INT_ENA,
  		MT_RRO_HOST_INT_ENA_HOST_RRO_DONE_ENA);
  
@@ -563,7 +563,7 @@
  	struct mtk_wed_device *wed = &dev->mt76.mmio.wed;
  	struct mt7996_wed_rro_addr *addr;
  	void *ptr;
-@@ -1026,9 +1030,6 @@ static int mt7996_wed_rro_init(struct mt7996_dev *dev)
+@@ -1023,9 +1027,6 @@ static int mt7996_wed_rro_init(struct mt7996_dev *dev)
  	if (!dev->has_rro)
  		return 0;
  
@@ -573,7 +573,7 @@
  	for (i = 0; i < ARRAY_SIZE(dev->wed_rro.ba_bitmap); i++) {
  		ptr = dmam_alloc_coherent(dev->mt76.dma_dev,
  					  MT7996_RRO_BA_BITMAP_CR_SIZE,
-@@ -1059,9 +1060,8 @@ static int mt7996_wed_rro_init(struct mt7996_dev *dev)
+@@ -1056,9 +1057,8 @@ static int mt7996_wed_rro_init(struct mt7996_dev *dev)
  			addr->signature = 0xff;
  			addr++;
  		}
@@ -585,7 +585,7 @@
  	}
  
  	for (i = 0; i < MT7996_RRO_MSDU_PG_CR_CNT; i++) {
-@@ -1093,22 +1093,15 @@ static int mt7996_wed_rro_init(struct mt7996_dev *dev)
+@@ -1090,22 +1090,15 @@ static int mt7996_wed_rro_init(struct mt7996_dev *dev)
  	mt7996_rro_hw_init(dev);
  
  	return mt7996_dma_rro_init(dev);
@@ -608,7 +608,7 @@
  	for (i = 0; i < ARRAY_SIZE(dev->wed_rro.ba_bitmap); i++) {
  		if (!dev->wed_rro.ba_bitmap[i].ptr)
  			continue;
-@@ -1148,12 +1141,10 @@ static void mt7996_wed_rro_free(struct mt7996_dev *dev)
+@@ -1145,12 +1138,10 @@ static void mt7996_wed_rro_free(struct mt7996_dev *dev)
  			   sizeof(struct mt7996_wed_rro_addr),
  			   dev->wed_rro.session.ptr,
  			   dev->wed_rro.session.phy_addr);
@@ -621,7 +621,7 @@
  	struct mt7996_dev *dev;
  	LIST_HEAD(list);
  
-@@ -1196,7 +1187,6 @@ reset:
+@@ -1193,7 +1184,6 @@ reset:
  out:
  		kfree(e);
  	}
@@ -629,7 +629,7 @@
  }
  
  static int mt7996_variant_type_init(struct mt7996_dev *dev)
-@@ -1848,6 +1838,10 @@ void mt7996_unregister_device(struct mt7996_dev *dev)
+@@ -1845,6 +1835,10 @@ void mt7996_unregister_device(struct mt7996_dev *dev)
  	mt7996_mcu_exit(dev);
  	mt7996_tx_token_put(dev);
  	mt7996_dma_cleanup(dev);
@@ -641,7 +641,7 @@
  
  	mt76_free_device(&dev->mt76);
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 58b462e8..b0b664e7 100644
+index 58b462e..b0b664e 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -1517,6 +1517,387 @@ void mt7996_queue_rx_skb(struct mt76_dev *mdev, enum mt76_rxq_id q,
@@ -1054,7 +1054,7 @@
  					    true);
  
 diff --git a/mt7996/mmio.c b/mt7996/mmio.c
-index ee5ee5a5..c84c1bbb 100644
+index ee5ee5a..c84c1bb 100644
 --- a/mt7996/mmio.c
 +++ b/mt7996/mmio.c
 @@ -654,6 +654,8 @@ struct mt7996_dev *mt7996_mmio_probe(struct device *pdev,
@@ -1067,7 +1067,7 @@
  		.sta_event = mt7996_mac_sta_event,
  		.sta_remove = mt7996_mac_sta_remove,
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 59f0be0a..b115e7dd 100644
+index 59f0be0..b115e7d 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -104,6 +104,7 @@
@@ -1152,7 +1152,7 @@
  void mt7996_stats_work(struct work_struct *work);
  void mt7996_scan_work(struct work_struct *work);
 diff --git a/mt7996/pci.c b/mt7996/pci.c
-index 382b6a89..a010680f 100644
+index 382b6a8..a010680 100644
 --- a/mt7996/pci.c
 +++ b/mt7996/pci.c
 @@ -13,6 +13,9 @@
@@ -1174,7 +1174,7 @@
  	mt7996_wfsys_reset(dev);
  	hif2 = mt7996_pci_init_hif2(pdev);
 diff --git a/mt7996/regs.h b/mt7996/regs.h
-index a0b57e59..e86d5df3 100644
+index a0b57e5..e86d5df 100644
 --- a/mt7996/regs.h
 +++ b/mt7996/regs.h
 @@ -561,6 +561,7 @@ enum offs_rev {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0184-mtk-mt76-mt7996-ignore-vif.dormant_links-in-mt7996_c.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0183-mtk-mt76-mt7996-ignore-vif.dormant_links-in-mt7996_c.patch
similarity index 83%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0184-mtk-mt76-mt7996-ignore-vif.dormant_links-in-mt7996_c.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0183-mtk-mt76-mt7996-ignore-vif.dormant_links-in-mt7996_c.patch
index 858e4c2..dd9fbed 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0184-mtk-mt76-mt7996-ignore-vif.dormant_links-in-mt7996_c.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0183-mtk-mt76-mt7996-ignore-vif.dormant_links-in-mt7996_c.patch
@@ -1,7 +1,7 @@
-From 986d45c9ebf4793cababd01b338ff9a6b90ba449 Mon Sep 17 00:00:00 2001
+From c3cb6f7a94e2fdff60d5fd7f9446f0b7715000e6 Mon Sep 17 00:00:00 2001
 From: Michael-CY Lee <michael-cy.lee@mediatek.com>
 Date: Mon, 5 Aug 2024 14:56:19 +0800
-Subject: [PATCH 184/223] mtk: mt76: mt7996: ignore vif.dormant_links in
+Subject: [PATCH 183/193] mtk: mt76: mt7996: ignore vif.dormant_links in
  mt7996_change_vif_links
 
 The dormant links are disabled for reasons like TTLM, and might become
@@ -14,10 +14,10 @@
  1 file changed, 3 insertions(+), 2 deletions(-)
 
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 7d4352c7..a7c2043f 100644
+index 61c065a..10cfd93 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -3106,11 +3106,12 @@ mt7996_change_vif_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -3105,11 +3105,12 @@ mt7996_change_vif_links(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  	struct mt7996_dev *dev = mt7996_hw_dev(hw);
  	struct mt7996_phy *phy = mt7996_hw_phy(hw);
  	struct mt7996_vif *mvif = (struct mt7996_vif *)vif->drv_priv;
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0185-mtk-mt76-mt7996-add-Adv-TTLM-support-for-STA.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0184-mtk-mt76-mt7996-add-Adv-TTLM-support-for-STA.patch
similarity index 92%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0185-mtk-mt76-mt7996-add-Adv-TTLM-support-for-STA.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0184-mtk-mt76-mt7996-add-Adv-TTLM-support-for-STA.patch
index 7a046ae..d155953 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0185-mtk-mt76-mt7996-add-Adv-TTLM-support-for-STA.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0184-mtk-mt76-mt7996-add-Adv-TTLM-support-for-STA.patch
@@ -1,7 +1,7 @@
-From cbe2fdac92d74596b378fbdc027434210d31d88b Mon Sep 17 00:00:00 2001
+From 34de6317753746b67f335d3da31f46b70d505afb Mon Sep 17 00:00:00 2001
 From: Michael-CY Lee <michael-cy.lee@mediatek.com>
 Date: Mon, 5 Aug 2024 15:03:55 +0800
-Subject: [PATCH 185/223] mtk: mt76: mt7996: add Adv-TTLM support for STA
+Subject: [PATCH 184/193] mtk: mt76: mt7996: add Adv-TTLM support for STA
 
 1. add the handling for valid_link and TTLM changing in vif_cfg_changed
    callback.
@@ -19,7 +19,7 @@
  5 files changed, 92 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 69c8389f..68d7c31d 100644
+index 69c8389..68d7c31 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1327,6 +1327,7 @@ enum {
@@ -31,10 +31,10 @@
  
  enum {
 diff --git a/mt7996/main.c b/mt7996/main.c
-index a7c2043f..290dff6e 100644
+index 10cfd93..eb364dc 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -957,6 +957,9 @@ static void mt7996_vif_cfg_changed(struct ieee80211_hw *hw,
+@@ -956,6 +956,9 @@ static void mt7996_vif_cfg_changed(struct ieee80211_hw *hw,
  		}
  	}
  
@@ -45,7 +45,7 @@
  }
  
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 47f8b5cc..265f39a6 100644
+index 4919267..2fef4ea 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -3623,6 +3623,70 @@ int mt7996_mcu_mld_set_attlm(struct mt7996_dev *dev, struct ieee80211_vif *vif,
@@ -120,7 +120,7 @@
  mt7996_mcu_beacon_cntdwn(struct ieee80211_bss_conf *conf, struct sk_buff *rskb,
  			 struct sk_buff *skb,
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index a5818f95..dab4700e 100644
+index a5818f9..dab4700 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -1244,6 +1244,28 @@ enum {
@@ -153,7 +153,7 @@
  	u8 _rsv[4];
  
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index b115e7dd..1e52377a 100644
+index b115e7d..1e52377 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1215,6 +1215,8 @@ int mt7996_mcu_set_vow_feature_ctrl(struct mt7996_phy *phy);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0186-mtk-mt76-mt7996-Add-AFC-and-lpi-power-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0185-mtk-mt76-mt7996-Add-AFC-and-lpi-power-support.patch
similarity index 97%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0186-mtk-mt76-mt7996-Add-AFC-and-lpi-power-support.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0185-mtk-mt76-mt7996-Add-AFC-and-lpi-power-support.patch
index ddc45f4..18ee76e 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0186-mtk-mt76-mt7996-Add-AFC-and-lpi-power-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0185-mtk-mt76-mt7996-Add-AFC-and-lpi-power-support.patch
@@ -1,7 +1,7 @@
-From 4f43eb23f373930534372c1b82787f2da37c940d Mon Sep 17 00:00:00 2001
+From 2daaeb2a795d53cd7d04a3007ae032f1c5b6addd Mon Sep 17 00:00:00 2001
 From: Allen Ye <allen.ye@mediatek.com>
 Date: Thu, 1 Aug 2024 11:25:03 +0800
-Subject: [PATCH 186/223] mtk: mt76: mt7996: Add AFC and lpi power support
+Subject: [PATCH 185/193] mtk: mt76: mt7996: Add AFC and lpi power support
 
 This patch receiving and storing the power table from hostapd vendor cmd.
 The power table would be use to compare the sku table in standard power
@@ -41,7 +41,7 @@
  9 files changed, 429 insertions(+), 25 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
-index 50d52776..a465785f 100644
+index 50d5277..a465785 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -1078,6 +1078,8 @@ struct mt76_dev {
@@ -54,7 +54,7 @@
  #ifdef CONFIG_NL80211_TESTMODE
  	const struct mt76_testmode_ops *test_ops;
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index b0b664e7..5d40b8f1 100644
+index b0b664e..5d40b8f 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -908,7 +908,7 @@ void mt7996_mac_write_txwi(struct mt7996_dev *dev, __le32 *txwi,
@@ -67,10 +67,10 @@
  			val |= FIELD_PREP(MT_TXD6_BW, FW_CDBW_80MHZ);
  		txwi[6] |= cpu_to_le32(val);
 diff --git a/mt7996/main.c b/mt7996/main.c
-index 290dff6e..812d8269 100644
+index eb364dc..6041bb4 100644
 --- a/mt7996/main.c
 +++ b/mt7996/main.c
-@@ -891,7 +891,7 @@ mt7996_get_rates_table(struct ieee80211_hw *hw, struct ieee80211_bss_conf *conf,
+@@ -890,7 +890,7 @@ mt7996_get_rates_table(struct ieee80211_hw *hw, struct ieee80211_bss_conf *conf,
  
  		if (dev->cert_mode && phy->mt76->band_idx == MT_BAND2)
  			rate = 0x0200;
@@ -80,7 +80,7 @@
  
  		/* odd index for driver, even index for firmware */
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 265f39a6..725f2f31 100644
+index 2fef4ea..dce180f 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -6384,7 +6384,8 @@ int mt7996_mcu_set_fixed_rate_table(struct mt7996_phy *phy, u8 table_idx,
@@ -322,7 +322,7 @@
  {
  	__le32 cp_mode;
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index dab4700e..33ba3774 100644
+index dab4700..33ba377 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -1295,6 +1295,145 @@ enum {
@@ -472,7 +472,7 @@
  	UNI_CMD_ACCESS_REG_BASIC = 0x0,
  	UNI_CMD_ACCESS_RF_REG_BASIC,
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 1e52377a..b841cc2a 100644
+index 1e52377..b841cc2 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -1174,6 +1174,8 @@ int mt7996_mcu_set_thermal_throttling(struct mt7996_phy *phy, u8 state);
@@ -485,7 +485,7 @@
  		       u8 rx_sel, u8 val);
  int mt7996_mcu_rdd_background_disable_timer(struct mt7996_dev *dev,
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 96a4a514..5338d0bd 100644
+index 96a4a51..5338d0b 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -2522,6 +2522,11 @@ mt7996_get_txpower_info(struct file *file, char __user *user_buf,
@@ -547,7 +547,7 @@
  
  #endif
 diff --git a/mt7996/vendor.c b/mt7996/vendor.c
-index e13a148a..867c277d 100644
+index e13a148..867c277 100644
 --- a/mt7996/vendor.c
 +++ b/mt7996/vendor.c
 @@ -162,6 +162,8 @@ txpower_ctrl_policy[NUM_MTK_VENDOR_ATTRS_TXPOWER_CTRL] = {
@@ -700,7 +700,7 @@
  
  static const struct wiphy_vendor_command mt7996_vendor_commands[] = {
 diff --git a/mt7996/vendor.h b/mt7996/vendor.h
-index 71800590..cd84a492 100644
+index 7180059..cd84a49 100644
 --- a/mt7996/vendor.h
 +++ b/mt7996/vendor.h
 @@ -338,12 +338,15 @@ enum mtk_vendor_attr_txpower_ctrl {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0187-mtk-mt76-do-not-report-ACK-when-TXS-is-lost.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0186-mtk-mt76-do-not-report-ACK-when-TXS-is-lost.patch
similarity index 81%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0187-mtk-mt76-do-not-report-ACK-when-TXS-is-lost.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0186-mtk-mt76-do-not-report-ACK-when-TXS-is-lost.patch
index 059a790..e1a30a2 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0187-mtk-mt76-do-not-report-ACK-when-TXS-is-lost.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0186-mtk-mt76-do-not-report-ACK-when-TXS-is-lost.patch
@@ -1,7 +1,7 @@
-From 6bd9e4f92817c054a87abc52b59b20219585aff4 Mon Sep 17 00:00:00 2001
+From 5e93bc87cfd7465cca293e65daa73230d1a63dbc Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Tue, 13 Aug 2024 18:55:00 +0800
-Subject: [PATCH 187/223] mtk: mt76: do not report ACK when TXS is lost
+Subject: [PATCH 186/193] mtk: mt76: do not report ACK when TXS is lost
 
 Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
 ---
@@ -9,7 +9,7 @@
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/tx.c b/tx.c
-index 9bf43124..d002cf6d 100644
+index 6f594fa..a6b8c8f 100644
 --- a/tx.c
 +++ b/tx.c
 @@ -100,7 +100,8 @@ __mt76_tx_status_skb_done(struct mt76_dev *dev, struct sk_buff *skb, u8 flags,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0188-mtk-mt76-mt7996-fix-ldpc-setting.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0187-mtk-mt76-mt7996-fix-ldpc-setting.patch
similarity index 86%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0188-mtk-mt76-mt7996-fix-ldpc-setting.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0187-mtk-mt76-mt7996-fix-ldpc-setting.patch
index 9f0d62e..1f0e71b 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0188-mtk-mt76-mt7996-fix-ldpc-setting.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0187-mtk-mt76-mt7996-fix-ldpc-setting.patch
@@ -1,7 +1,7 @@
-From 1e59567d865e9e23c193919f8ce2d84e8d4d52f5 Mon Sep 17 00:00:00 2001
+From 8e8a814bc421411bcfe636f81a35e0993b4e6281 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Wed, 28 Aug 2024 13:58:30 +0800
-Subject: [PATCH 188/223] mtk: mt76: mt7996: fix ldpc setting
+Subject: [PATCH 187/193] mtk: mt76: mt7996: fix ldpc setting
 
 The non-AP interfaces would not update conf->vht_ldpc so they never set
 STA_CAP_VHT_LDPC even if peer-station support LDPC.
@@ -16,7 +16,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 725f2f31..b0e9617d 100644
+index dce180f..6d4765b 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -2994,7 +2994,7 @@ mt7996_mcu_sta_rate_ctrl_tlv(struct sk_buff *skb, struct mt7996_dev *dev,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0189-mtk-mt76-mt7996-add-external-eeprom-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0188-mtk-mt76-mt7996-add-external-eeprom-support.patch
similarity index 96%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0189-mtk-mt76-mt7996-add-external-eeprom-support.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0188-mtk-mt76-mt7996-add-external-eeprom-support.patch
index 54d2da6..61dedbf 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0189-mtk-mt76-mt7996-add-external-eeprom-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0188-mtk-mt76-mt7996-add-external-eeprom-support.patch
@@ -1,7 +1,7 @@
-From 47862d9e7019f0e7524beb819bc875404cf687bd Mon Sep 17 00:00:00 2001
+From 2e68a34aa076b06b96614e3a1db37967909d8f2c Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Thu, 22 Aug 2024 23:22:46 +0800
-Subject: [PATCH 189/223] mtk: mt76: mt7996: add external eeprom support
+Subject: [PATCH 188/193] mtk: mt76: mt7996: add external eeprom support
 
 Add external eeprom support
 For Kite and Griffin, efuse mode is not supported due to the lack of
@@ -33,7 +33,7 @@
  13 files changed, 277 insertions(+), 68 deletions(-)
 
 diff --git a/debugfs.c b/debugfs.c
-index ac5207e5..2ded5c03 100644
+index ac5207e..2ded5c0 100644
 --- a/debugfs.c
 +++ b/debugfs.c
 @@ -121,6 +121,8 @@ mt76_register_debugfs_fops(struct mt76_phy *phy,
@@ -46,7 +46,7 @@
  				    mt76_rx_queues_read);
  
 diff --git a/mt76.h b/mt76.h
-index a465785f..c319ba26 100644
+index a465785..c319ba2 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -1065,6 +1065,7 @@ struct mt76_dev {
@@ -58,7 +58,7 @@
  	char alpha2[3];
  	enum nl80211_dfs_regions region;
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 68d7c31d..25d5f9f9 100644
+index 68d7c31..25d5f9f 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1325,6 +1325,7 @@ enum {
@@ -70,7 +70,7 @@
  	MCU_UNI_CMD_MLD = 0x82,
  	MCU_UNI_CMD_PEER_MLD = 0x83,
 diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index 240c6d46..d06fb587 100644
+index 240c6d4..d06fb58 100644
 --- a/mt7996/debugfs.c
 +++ b/mt7996/debugfs.c
 @@ -972,7 +972,9 @@ mt7996_efuse_get(struct file *file, char __user *user_buf,
@@ -152,7 +152,7 @@
  	                            mt7996_vow_info_read);
  	debugfs_create_devm_seqfile(dev->mt76.dev, "airtime", dir,
 diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index 327a36b2..db98db21 100644
+index 327a36b..db98db2 100644
 --- a/mt7996/eeprom.c
 +++ b/mt7996/eeprom.c
 @@ -315,43 +315,52 @@ static int mt7996_eeprom_load(struct mt7996_dev *dev)
@@ -222,7 +222,7 @@
  
  out:
 diff --git a/mt7996/eeprom.h b/mt7996/eeprom.h
-index 788c33c8..15b6620d 100644
+index 788c33c..15b6620 100644
 --- a/mt7996/eeprom.h
 +++ b/mt7996/eeprom.h
 @@ -151,13 +151,6 @@ enum mt7996_eeprom_band {
@@ -240,10 +240,10 @@
  mt7996_get_channel_group_5g(int channel)
  {
 diff --git a/mt7996/init.c b/mt7996/init.c
-index ddceddff..f739afd2 100644
+index 9f80143..604d015 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -1238,7 +1238,8 @@ static int mt7996_variant_fem_init(struct mt7996_dev *dev)
+@@ -1235,7 +1235,8 @@ static int mt7996_variant_fem_init(struct mt7996_dev *dev)
  	if (ret)
  		return ret;
  
@@ -254,7 +254,7 @@
  		return ret;
  
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index b0e9617d..01969464 100644
+index 6d4765b..b584a0e 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -5259,7 +5259,7 @@ int mt7996_mcu_set_eeprom_flash(struct mt7996_dev *dev)
@@ -431,7 +431,7 @@
  	struct {
  		u8 _rsv[4];
 diff --git a/mt7996/mcu.h b/mt7996/mcu.h
-index 33ba3774..f405b0cd 100644
+index 33ba377..f405b0c 100644
 --- a/mt7996/mcu.h
 +++ b/mt7996/mcu.h
 @@ -161,7 +161,7 @@ struct mt7996_mcu_background_chain_ctrl {
@@ -498,7 +498,7 @@
  	UNI_VOW_DRR_CTRL,
  	UNI_VOW_FEATURE_CTRL,
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index b841cc2a..a0f2f251 100644
+index b841cc2..e65d2a6 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -74,7 +74,8 @@
@@ -560,7 +560,7 @@
  int mt7996_mcu_set_ser(struct mt7996_dev *dev, u8 action, u8 set, u8 band);
  int mt7996_mcu_set_txbf(struct mt7996_dev *dev, u8 action);
 diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 5338d0bd..4996774f 100644
+index 5338d0b..4996774 100644
 --- a/mt7996/mtk_debugfs.c
 +++ b/mt7996/mtk_debugfs.c
 @@ -2829,6 +2829,9 @@ static int mt7996_show_eeprom_mode(struct seq_file *s, void *data)
@@ -574,7 +574,7 @@
  		break;
  	}
 diff --git a/mt7996/testmode.c b/mt7996/testmode.c
-index 1674e129..b3692637 100644
+index 1674e12..b369263 100644
 --- a/mt7996/testmode.c
 +++ b/mt7996/testmode.c
 @@ -2138,37 +2138,43 @@ mt7996_tm_write_back_to_efuse(struct mt7996_dev *dev)
@@ -647,7 +647,7 @@
  		break;
  	}
 diff --git a/testmode.h b/testmode.h
-index 44f9984c..8e751bbf 100644
+index 44f9984..8e751bb 100644
 --- a/testmode.h
 +++ b/testmode.h
 @@ -281,11 +281,13 @@ enum mt76_testmode_tx_mode {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0190-mtk-mt76-mt7996-add-efuse-write-protection.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0189-mtk-mt76-mt7996-add-efuse-write-protection.patch
similarity index 97%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0190-mtk-mt76-mt7996-add-efuse-write-protection.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0189-mtk-mt76-mt7996-add-efuse-write-protection.patch
index 72a2d92..2ee41ed 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0190-mtk-mt76-mt7996-add-efuse-write-protection.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0189-mtk-mt76-mt7996-add-efuse-write-protection.patch
@@ -1,7 +1,7 @@
-From 617b4824df541129e545daa0015d43d2e625350b Mon Sep 17 00:00:00 2001
+From 5bdd94800111ac1742558a5d6e8b9daae0c24e79 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Thu, 29 Aug 2024 09:47:44 +0800
-Subject: [PATCH 190/223] mtk: mt76: mt7996: add efuse write protection
+Subject: [PATCH 189/193] mtk: mt76: mt7996: add efuse write protection
 
 Add efuse write protection in case that the user overwritten
 the FT value stored in efuse.
@@ -19,7 +19,7 @@
  4 files changed, 157 insertions(+), 18 deletions(-)
 
 diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 01969464..b27b74d3 100644
+index b584a0e..cd10ee9 100644
 --- a/mt7996/mcu.c
 +++ b/mt7996/mcu.c
 @@ -5115,13 +5115,6 @@ static int mt7996_mcu_set_cal_free_data(struct mt7996_dev *dev)
@@ -50,7 +50,7 @@
  	static const u16 *adie_offs[__MT_MAX_BAND];
  	static const u16 *eep_offs[__MT_MAX_BAND];
 diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index a0f2f251..592b3673 100644
+index e65d2a6..ddc44de 100644
 --- a/mt7996/mt7996.h
 +++ b/mt7996/mt7996.h
 @@ -180,6 +180,29 @@ enum mt7996_eeprom_mode {
@@ -84,7 +84,7 @@
  	MT7996_COREDUMP_IDLE = 0,
  	MT7996_COREDUMP_MANUAL_WA,
 diff --git a/mt7996/testmode.c b/mt7996/testmode.c
-index b3692637..6f9900a6 100644
+index b369263..6e1cfcf 100644
 --- a/mt7996/testmode.c
 +++ b/mt7996/testmode.c
 @@ -2133,6 +2133,127 @@ mt7996_tm_dump_stats(struct mt76_phy *mphy, struct sk_buff *msg)
@@ -252,7 +252,7 @@
  		ret = mt76_mcu_skb_send_msg(&dev->mt76, skb,
  					    MCU_WM_UNI_CMD(EFUSE_CTRL), true);
 diff --git a/mt7996/testmode.h b/mt7996/testmode.h
-index 5c720da7..154392dc 100644
+index 5c720da..154392d 100644
 --- a/mt7996/testmode.h
 +++ b/mt7996/testmode.h
 @@ -363,4 +363,10 @@ struct mt7996_tm_rdd_ipi_ctrl {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0191-mtk-mt76-mt7996-fix-the-capability-of-reception-of-E.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0190-mtk-mt76-mt7996-fix-the-capability-of-reception-of-E.patch
similarity index 88%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0191-mtk-mt76-mt7996-fix-the-capability-of-reception-of-E.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0190-mtk-mt76-mt7996-fix-the-capability-of-reception-of-E.patch
index d5c42df..1107cee 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0191-mtk-mt76-mt7996-fix-the-capability-of-reception-of-E.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0190-mtk-mt76-mt7996-fix-the-capability-of-reception-of-E.patch
@@ -1,7 +1,7 @@
-From eaaf030c560747704321c51c00e275da3d7a8217 Mon Sep 17 00:00:00 2001
+From 7ecb70d316fc12dacebec431d4349a44e72e49ea Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Tue, 3 Sep 2024 15:36:56 +0800
-Subject: [PATCH 191/223] mtk: mt76: mt7996: fix the capability of reception of
+Subject: [PATCH 190/193] mtk: mt76: mt7996: fix the capability of reception of
  EHT MU PPDU
 
 This commit includes two changes. First, enable "EHT MU PPDU With 4x
@@ -11,16 +11,15 @@
 Bit 3-4 was incorrect.
 
 Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com>
-
 ---
  mt7996/init.c | 5 ++---
  1 file changed, 2 insertions(+), 3 deletions(-)
 
 diff --git a/mt7996/init.c b/mt7996/init.c
-index f739afd2..2db4b3b5 100644
+index 604d015..00a7c8c 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -1636,21 +1636,20 @@ mt7996_init_eht_caps(struct mt7996_phy *phy, enum nl80211_band band,
+@@ -1633,21 +1633,20 @@ mt7996_init_eht_caps(struct mt7996_phy *phy, enum nl80211_band band,
  		IEEE80211_EHT_PHY_CAP3_CODEBOOK_7_5_MU_FDBK;
  
  	eht_cap_elem->phy_cap_info[4] =
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0192-mtk-mt76-mt7996-fix-HE-Phy-capability.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0191-mtk-mt76-mt7996-fix-HE-Phy-capability.patch
similarity index 81%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0192-mtk-mt76-mt7996-fix-HE-Phy-capability.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0191-mtk-mt76-mt7996-fix-HE-Phy-capability.patch
index a9f0fad..1e40546 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0192-mtk-mt76-mt7996-fix-HE-Phy-capability.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0191-mtk-mt76-mt7996-fix-HE-Phy-capability.patch
@@ -1,22 +1,21 @@
-From d46fc9a7335c94d5be16414e8898122d23c74b47 Mon Sep 17 00:00:00 2001
+From 6667bcec944bcd4dc47ef8ab5a4e1772d5d16a18 Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Wed, 4 Sep 2024 13:44:32 +0800
-Subject: [PATCH 192/223] mtk: mt76: mt7996: fix HE Phy capability
+Subject: [PATCH 191/193] mtk: mt76: mt7996: fix HE Phy capability
 
 Set HE SU PPDU And HE MU PPDU With 4x HE-LTF And 0.8 us GI within HE PHY
 Capabilities element as 1 since hardware can support.
 
 Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com>
-
 ---
  mt7996/init.c | 6 ++++--
  1 file changed, 4 insertions(+), 2 deletions(-)
 
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 2db4b3b5..6c8a9b48 100644
+index 00a7c8c..da272b1 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
-@@ -1477,6 +1477,9 @@ mt7996_init_he_caps(struct mt7996_phy *phy, enum nl80211_band band,
+@@ -1474,6 +1474,9 @@ mt7996_init_he_caps(struct mt7996_phy *phy, enum nl80211_band band,
  	he_cap_elem->phy_cap_info[2] = IEEE80211_HE_PHY_CAP2_STBC_TX_UNDER_80MHZ |
  				       IEEE80211_HE_PHY_CAP2_STBC_RX_UNDER_80MHZ;
  
@@ -26,7 +25,7 @@
  	switch (iftype) {
  	case NL80211_IFTYPE_AP:
  		he_cap_elem->mac_cap_info[0] |= IEEE80211_HE_MAC_CAP0_TWT_RES;
-@@ -1516,8 +1519,7 @@ mt7996_init_he_caps(struct mt7996_phy *phy, enum nl80211_band band,
+@@ -1513,8 +1516,7 @@ mt7996_init_he_caps(struct mt7996_phy *phy, enum nl80211_band band,
  			IEEE80211_HE_PHY_CAP6_PARTIAL_BW_EXT_RANGE |
  			IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT;
  		he_cap_elem->phy_cap_info[7] |=
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0193-mtk-mt76-mt7996-fix-potential-crash-issue-in-mt7996_.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0192-mtk-mt76-mt7996-fix-potential-crash-issue-in-mt7996_.patch
similarity index 85%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0193-mtk-mt76-mt7996-fix-potential-crash-issue-in-mt7996_.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0192-mtk-mt76-mt7996-fix-potential-crash-issue-in-mt7996_.patch
index 089bba0..112f759 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0193-mtk-mt76-mt7996-fix-potential-crash-issue-in-mt7996_.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0192-mtk-mt76-mt7996-fix-potential-crash-issue-in-mt7996_.patch
@@ -1,7 +1,7 @@
-From e70e972add40eb5db6463cf156ae19b8dc9bc67c Mon Sep 17 00:00:00 2001
+From b3c56d88281c0bf3838c3c35b283a98fc689aa15 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Thu, 5 Sep 2024 15:46:10 +0800
-Subject: [PATCH 193/223] mtk: mt76: mt7996: fix potential crash issue in
+Subject: [PATCH 192/193] mtk: mt76: mt7996: fix potential crash issue in
  mt7996_tx_prepare_skb()
 
 This commit aims to fix potential NULL pointer issue of sta, especially
@@ -14,7 +14,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index 5d40b8f1..b6980584 100644
+index 5d40b8f..b698058 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -947,7 +947,7 @@ int mt7996_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0194-mtk-mt76-mt7996-Fix-call-trace-happened-when-wed-att.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0193-mtk-mt76-mt7996-Fix-call-trace-happened-when-wed-att.patch
similarity index 81%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0194-mtk-mt76-mt7996-Fix-call-trace-happened-when-wed-att.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0193-mtk-mt76-mt7996-Fix-call-trace-happened-when-wed-att.patch
index 3c5755d..dc174f4 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0194-mtk-mt76-mt7996-Fix-call-trace-happened-when-wed-att.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0193-mtk-mt76-mt7996-Fix-call-trace-happened-when-wed-att.patch
@@ -1,7 +1,7 @@
-From eccfceec92bda3da9fa815c1ec55b1c74a0f3254 Mon Sep 17 00:00:00 2001
+From 5a9d5f2a8120137d5b7de535031325139d54a1e5 Mon Sep 17 00:00:00 2001
 From: Rex Lu <rex.lu@mediatek.com>
 Date: Fri, 6 Sep 2024 15:32:05 +0800
-Subject: [PATCH 194/223] mtk: mt76: mt7996: Fix call trace happened when wed
+Subject: [PATCH 193/193] mtk: mt76: mt7996: Fix call trace happened when wed
  attach fail
 
 1. when we attech wed0 fail, we will not going to attach wed1
@@ -12,7 +12,7 @@
  1 file changed, 4 insertions(+), 1 deletion(-)
 
 diff --git a/mt7996/mmio.c b/mt7996/mmio.c
-index c84c1bbb..8eff971d 100644
+index c84c1bb..8eff971 100644
 --- a/mt7996/mmio.c
 +++ b/mt7996/mmio.c
 @@ -449,8 +449,11 @@ int mt7996_mmio_wed_init(struct mt7996_dev *dev, void *pdev_ptr,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/patches.inc b/recipes-wifi/linux-mt76/files/patches-3.x/patches.inc
index 4017397..e6e7491 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/patches.inc
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/patches.inc
@@ -1,5 +1,6 @@
 #patch patches (come from openwrt/lede/target/linux/mediatek)
 SRC_URI_append = " \
+    file://0000-mtk-Revert-wifi-mac80211-don-t-use-rate-mask-for-offchan.patch \
     file://0001-mtk-Revert-wifi-mt76-mt7996-fill-txd-by-host-driver.patch \
     file://0002-mtk-mt76-mt7996-fix-amsdu-information.patch \
     file://0003-mtk-mt76-mt7996-add-preamble-puncture-support-for-mt.patch \
@@ -178,20 +179,19 @@
     file://0176-mtk-mt76-mt7996-Add-lpi-support-with-sku_idx-and-enh.patch \
     file://0177-mtk-mt76-mt7996-Add-Triggered-Uplink-Access-Optimiza.patch \
     file://0178-mtk-mt76-mt7996-add-per-band-token-limit.patch \
-    file://0179-mtk-mt76-sync-with-upstream-changes.patch \
-    file://0180-mtk-mt76-mt7996-record-per-antenna-average-data-fram.patch \
-    file://0181-mtk-mt76-mt7996-remove-default-bss_conf-when-link-be.patch \
-    file://0182-mtk-mt76-mt7996-pass-vif-cfg.assoc-to-mt7996_mac_sta.patch \
-    file://0183-mtk-mt76-mt7996-separate-hwrro-from-wed.patch \
-    file://0184-mtk-mt76-mt7996-ignore-vif.dormant_links-in-mt7996_c.patch \
-    file://0185-mtk-mt76-mt7996-add-Adv-TTLM-support-for-STA.patch \
-    file://0186-mtk-mt76-mt7996-Add-AFC-and-lpi-power-support.patch \
-    file://0187-mtk-mt76-do-not-report-ACK-when-TXS-is-lost.patch \
-    file://0188-mtk-mt76-mt7996-fix-ldpc-setting.patch \
-    file://0189-mtk-mt76-mt7996-add-external-eeprom-support.patch \
-    file://0190-mtk-mt76-mt7996-add-efuse-write-protection.patch \
-    file://0191-mtk-mt76-mt7996-fix-the-capability-of-reception-of-E.patch \
-    file://0192-mtk-mt76-mt7996-fix-HE-Phy-capability.patch \
-    file://0193-mtk-mt76-mt7996-fix-potential-crash-issue-in-mt7996_.patch \
-    file://0194-mtk-mt76-mt7996-Fix-call-trace-happened-when-wed-att.patch \
+    file://0179-mtk-mt76-mt7996-record-per-antenna-average-data-fram.patch \
+    file://0180-mtk-mt76-mt7996-remove-default-bss_conf-when-link-be.patch \
+    file://0181-mtk-mt76-mt7996-pass-vif-cfg.assoc-to-mt7996_mac_sta.patch \
+    file://0182-mtk-mt76-mt7996-separate-hwrro-from-wed.patch \
+    file://0183-mtk-mt76-mt7996-ignore-vif.dormant_links-in-mt7996_c.patch \
+    file://0184-mtk-mt76-mt7996-add-Adv-TTLM-support-for-STA.patch \
+    file://0185-mtk-mt76-mt7996-Add-AFC-and-lpi-power-support.patch \
+    file://0186-mtk-mt76-do-not-report-ACK-when-TXS-is-lost.patch \
+    file://0187-mtk-mt76-mt7996-fix-ldpc-setting.patch \
+    file://0188-mtk-mt76-mt7996-add-external-eeprom-support.patch \
+    file://0189-mtk-mt76-mt7996-add-efuse-write-protection.patch \
+    file://0190-mtk-mt76-mt7996-fix-the-capability-of-reception-of-E.patch \
+    file://0191-mtk-mt76-mt7996-fix-HE-Phy-capability.patch \
+    file://0192-mtk-mt76-mt7996-fix-potential-crash-issue-in-mt7996_.patch \
+    file://0193-mtk-mt76-mt7996-Fix-call-trace-happened-when-wed-att.patch \
     "
diff --git a/recipes-wifi/linux-mt76/files/patches/0024-wifi-mt76-mt7915-delete-twt-flow-before-remove-stati.patch b/recipes-wifi/linux-mt76/files/patches/0024-wifi-mt76-mt7915-delete-twt-flow-before-remove-stati.patch
new file mode 100644
index 0000000..4fb5802
--- /dev/null
+++ b/recipes-wifi/linux-mt76/files/patches/0024-wifi-mt76-mt7915-delete-twt-flow-before-remove-stati.patch
@@ -0,0 +1,38 @@
+From bd1f21a77b832ff70db23751789006090a4c5cd8 Mon Sep 17 00:00:00 2001
+From: Peter Chiu <chui-hao.chiu@mediatek.com>
+Date: Mon, 14 Oct 2024 10:33:39 +0800
+Subject: [PATCH] wifi: mt76: mt7915: delete twt flow before remove stations
+
+Send a mcu command to FW to remove twt flows before removing stations.
+If we remove stations first, twt flows may not be remove correctly.
+
+Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
+---
+ mt7915/main.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/mt7915/main.c b/mt7915/main.c
+index 35b97db7..a7aba999 100644
+--- a/mt7915/main.c
++++ b/mt7915/main.c
+@@ -812,14 +812,14 @@ void mt7915_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+ 	struct mt7915_phy *phy = msta->vif->phy;
+ 	int i;
+ 
++	for (i = 0; i < ARRAY_SIZE(msta->twt.flow); i++)
++		mt7915_mac_twt_teardown_flow(dev, msta, i);
++
+ 	mt7915_mcu_add_sta(dev, vif, sta, false);
+ 
+ 	mt7915_mac_wtbl_update(dev, msta->wcid.idx,
+ 			       MT_WTBL_UPDATE_ADM_COUNT_CLEAR);
+ 
+-	for (i = 0; i < ARRAY_SIZE(msta->twt.flow); i++)
+-		mt7915_mac_twt_teardown_flow(dev, msta, i);
+-
+ 	spin_lock_bh(&mdev->sta_poll_lock);
+ 	if (!list_empty(&msta->wcid.poll_list))
+ 		list_del_init(&msta->wcid.poll_list);
+-- 
+2.45.2
+
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0187-mtk-mt76-do-not-report-ACK-when-TXS-is-lost.patch b/recipes-wifi/linux-mt76/files/patches/0025-mtk-mt76-do-not-report-ACK-when-TXS-is-lost.patch
similarity index 63%
copy from recipes-wifi/linux-mt76/files/patches-3.x/0187-mtk-mt76-do-not-report-ACK-when-TXS-is-lost.patch
copy to recipes-wifi/linux-mt76/files/patches/0025-mtk-mt76-do-not-report-ACK-when-TXS-is-lost.patch
index 059a790..cb27ea1 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0187-mtk-mt76-do-not-report-ACK-when-TXS-is-lost.patch
+++ b/recipes-wifi/linux-mt76/files/patches/0025-mtk-mt76-do-not-report-ACK-when-TXS-is-lost.patch
@@ -1,7 +1,7 @@
-From 6bd9e4f92817c054a87abc52b59b20219585aff4 Mon Sep 17 00:00:00 2001
-From: Shayne Chen <shayne.chen@mediatek.com>
-Date: Tue, 13 Aug 2024 18:55:00 +0800
-Subject: [PATCH 187/223] mtk: mt76: do not report ACK when TXS is lost
+From 4efdf548d28d3afbc367e2cbe365107db1869690 Mon Sep 17 00:00:00 2001
+From: Peter Chiu <chui-hao.chiu@mediatek.com>
+Date: Wed, 16 Oct 2024 08:41:49 +0800
+Subject: [PATCH] mtk: mt76: do not report ACK when TXS is lost
 
 Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
 ---
@@ -9,7 +9,7 @@
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/tx.c b/tx.c
-index 9bf43124..d002cf6d 100644
+index d6054ab6..b3d76692 100644
 --- a/tx.c
 +++ b/tx.c
 @@ -100,7 +100,8 @@ __mt76_tx_status_skb_done(struct mt76_dev *dev, struct sk_buff *skb, u8 flags,
@@ -18,7 +18,7 @@
  	/* Tx status can be unreliable. if it fails, mark the frame as ACKed */
 -	if (flags & MT_TX_CB_TXS_FAILED) {
 +	if ((flags & MT_TX_CB_TXS_FAILED) &&
-+	    (dev->drv->drv_flags & MT_DRV_SW_RX_AIRTIME)) {
++	    (dev->drv->drv_flags & MT_DRV_SW_RX_AIRTIME)) { /* Only CE chips do so */
  		info->status.rates[0].count = 0;
  		info->status.rates[0].idx = -1;
  		info->flags |= IEEE80211_TX_STAT_ACK;
diff --git a/recipes-wifi/linux-mt76/files/patches/1000-wifi-mt76-mt7915-add-mtk-internal-debug-tools-for-mt.patch b/recipes-wifi/linux-mt76/files/patches/1000-wifi-mt76-mt7915-add-mtk-internal-debug-tools-for-mt.patch
index 2af1061..298678e 100644
--- a/recipes-wifi/linux-mt76/files/patches/1000-wifi-mt76-mt7915-add-mtk-internal-debug-tools-for-mt.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1000-wifi-mt76-mt7915-add-mtk-internal-debug-tools-for-mt.patch
@@ -1,8 +1,7 @@
-From 3f35505b3bbdfe9e381dbaa1c2450a7e7e461989 Mon Sep 17 00:00:00 2001
+From fc8eaff0aa3ff1f6a7ac8808922aafba48ed3efc Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Wed, 22 Jun 2022 10:39:47 +0800
-Subject: [PATCH 01/70] wifi: mt76: mt7915: add mtk internal debug tools for
- mt76
+Subject: [PATCH] wifi: mt76: mt7915: add mtk internal debug tools for mt76
 
 ---
  mt76_connac_mcu.h     |    6 +
@@ -24,7 +23,7 @@
  create mode 100644 mt7915/mtk_mcu.c
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 79d248d..78ddc6e 100644
+index abc57f18..01d6598a 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
 @@ -1197,6 +1197,7 @@ enum {
@@ -48,7 +47,7 @@
  	MCU_EXT_CMD_CAL_CACHE = 0x67,
  	MCU_EXT_CMD_RED_ENABLE = 0x68,
 diff --git a/mt7915/Makefile b/mt7915/Makefile
-index c4dca9c..fd71141 100644
+index c4dca9c1..fd711416 100644
 --- a/mt7915/Makefile
 +++ b/mt7915/Makefile
 @@ -4,7 +4,7 @@ EXTRA_CFLAGS += -DCONFIG_MT76_LEDS
@@ -61,7 +60,7 @@
  mt7915e-$(CONFIG_NL80211_TESTMODE) += testmode.o
  mt7915e-$(CONFIG_MT798X_WMAC) += soc.o
 diff --git a/mt7915/debugfs.c b/mt7915/debugfs.c
-index 894e2cd..2661386 100644
+index 894e2cd7..26613869 100644
 --- a/mt7915/debugfs.c
 +++ b/mt7915/debugfs.c
 @@ -8,6 +8,9 @@
@@ -233,7 +232,7 @@
  
  	if (dev->relay_fwlog)
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index 1c5ab41..8268c19 100644
+index 9c56f105..d1f58eb4 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -282,6 +282,10 @@ mt7915_mac_fill_rx(struct mt7915_dev *dev, struct sk_buff *skb,
@@ -272,7 +271,7 @@
  }
  
 diff --git a/mt7915/main.c b/mt7915/main.c
-index b19b433..aa4b3ae 100644
+index 2b161611..90cd834c 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -73,7 +73,11 @@ int mt7915_run(struct ieee80211_hw *hw)
@@ -293,10 +292,10 @@
  	mt76_wcid_init(&mvif->sta.wcid);
 +	mvif->sta.vif = mvif;
  
- 	mt7915_mac_wtbl_update(dev, idx,
- 			       MT_WTBL_UPDATE_ADM_COUNT_CLEAR);
+ 	/* init Default QoS map, defined in section 2.3 of RFC8325.
+ 	 * Three most significant bits of DSCP are used as UP.
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 2326523..5493efa 100644
+index 34323577..ff7f81b0 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -205,6 +205,11 @@ mt7915_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb,
@@ -380,7 +379,7 @@
 +}
 +#endif
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index fa0847d..9ae0f07 100644
+index fa0847d5..9ae0f07a 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -347,6 +347,10 @@ enum {
@@ -395,7 +394,7 @@
  	MCU_WA_PARAM_RED_SETTING = 0x40,
  };
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 74cd8ca..58c0bf9 100644
+index bfac8516..72158419 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -9,6 +9,7 @@
@@ -406,7 +405,7 @@
  #define MT7915_MAX_INTERFACES		19
  #define MT7915_WTBL_SIZE		288
  #define MT7916_WTBL_SIZE		544
-@@ -244,6 +245,14 @@ struct mt7915_phy {
+@@ -248,6 +249,14 @@ struct mt7915_phy {
  #endif
  };
  
@@ -421,7 +420,7 @@
  struct mt7915_dev {
  	union { /* must be first */
  		struct mt76_dev mt76;
-@@ -327,6 +336,33 @@ struct mt7915_dev {
+@@ -331,6 +340,33 @@ struct mt7915_dev {
  	void __iomem *dcm;
  	void __iomem *sku;
  
@@ -455,7 +454,7 @@
  	bool wmm_pbc_enable;
  	struct work_struct wmm_pbc_work;
  	u32 adie_type;
-@@ -610,4 +646,24 @@ void mt7915_sta_add_debugfs(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -614,4 +650,24 @@ void mt7915_sta_add_debugfs(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr,
  			 bool pci, int *irq);
  
@@ -482,7 +481,7 @@
  #endif
 diff --git a/mt7915/mt7915_debug.h b/mt7915/mt7915_debug.h
 new file mode 100644
-index 0000000..2f9f3da
+index 00000000..2f9f3da7
 --- /dev/null
 +++ b/mt7915/mt7915_debug.h
 @@ -0,0 +1,1442 @@
@@ -1930,7 +1929,7 @@
 +#endif
 diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
 new file mode 100644
-index 0000000..06cedaa
+index 00000000..c0fcb2ee
 --- /dev/null
 +++ b/mt7915/mtk_debugfs.c
 @@ -0,0 +1,3750 @@
@@ -5686,7 +5685,7 @@
 +#endif
 diff --git a/mt7915/mtk_mcu.c b/mt7915/mtk_mcu.c
 new file mode 100644
-index 0000000..143dae2
+index 00000000..143dae26
 --- /dev/null
 +++ b/mt7915/mtk_mcu.c
 @@ -0,0 +1,51 @@
@@ -5742,7 +5741,7 @@
 +				 sizeof(req), true);
 +}
 diff --git a/mt7915/soc.c b/mt7915/soc.c
-index bb3468a..b941a49 100644
+index bb3468a9..b941a49d 100644
 --- a/mt7915/soc.c
 +++ b/mt7915/soc.c
 @@ -360,6 +360,13 @@ static int mt798x_wmac_sku_setup(struct mt7915_dev *dev, u32 *adie_type)
@@ -5760,7 +5759,7 @@
  	mt76_wmac_spi_unlock(dev);
  
 diff --git a/tools/fwlog.c b/tools/fwlog.c
-index e5d4a10..3d51d9e 100644
+index e5d4a105..3d51d9ec 100644
 --- a/tools/fwlog.c
 +++ b/tools/fwlog.c
 @@ -26,7 +26,7 @@ static const char *debugfs_path(const char *phyname, const char *file)
diff --git a/recipes-wifi/linux-mt76/files/patches/1001-wifi-mt76-mt7915-csi-implement-csi-support.patch b/recipes-wifi/linux-mt76/files/patches/1001-wifi-mt76-mt7915-csi-implement-csi-support.patch
index 1e84172..07a7d03 100644
--- a/recipes-wifi/linux-mt76/files/patches/1001-wifi-mt76-mt7915-csi-implement-csi-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1001-wifi-mt76-mt7915-csi-implement-csi-support.patch
@@ -1,7 +1,7 @@
-From 594116fbcff4d30156c7207244633ad3c1bf9ec1 Mon Sep 17 00:00:00 2001
+From e15bcf231758ad3d3060512e772257ac7aaaaa3f Mon Sep 17 00:00:00 2001
 From: Bo Jiao <Bo.Jiao@mediatek.com>
 Date: Mon, 6 Jun 2022 20:13:02 +0800
-Subject: [PATCH 1001/1052] wifi: mt76: mt7915: csi: implement csi support
+Subject: [PATCH] wifi: mt76: mt7915: csi: implement csi support
 
 ---
  mt76_connac_mcu.h |   2 +
@@ -207,10 +207,10 @@
  				   ARRAY_SIZE(mt76_rates));
  	if (ret)
 diff --git a/mt7915/main.c b/mt7915/main.c
-index fc9a464a..12bb0b39 100644
+index 90cd834c..9a7703cf 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
-@@ -810,6 +810,19 @@ void mt7915_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -816,6 +816,19 @@ void mt7915_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  	struct mt7915_sta *msta = (struct mt7915_sta *)sta->drv_priv;
  	struct mt7915_phy *phy = msta->vif->phy;
  	int i;
@@ -228,8 +228,8 @@
 +	mutex_unlock(&phy->csi.mac_filter_lock);
 +#endif
  
- 	mt7915_mcu_add_sta(dev, vif, sta, false);
- 
+ 	for (i = 0; i < ARRAY_SIZE(msta->twt.flow); i++)
+ 		mt7915_mac_twt_teardown_flow(dev, msta, i);
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
 index ff7f81b0..44765b1f 100644
 --- a/mt7915/mcu.c
@@ -542,10 +542,10 @@
 +
  #endif
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 58c0bf99..1316f93d 100644
+index 72158419..4c2abdbf 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
-@@ -195,6 +195,57 @@ struct mt7915_hif {
+@@ -199,6 +199,57 @@ struct mt7915_hif {
  	int irq;
  };
  
@@ -603,7 +603,7 @@
  struct mt7915_phy {
  	struct mt76_phy *mt76;
  	struct mt7915_dev *dev;
-@@ -243,6 +294,25 @@ struct mt7915_phy {
+@@ -247,6 +298,25 @@ struct mt7915_phy {
  		u8 spe_idx;
  	} test;
  #endif
@@ -629,7 +629,7 @@
  };
  
  #ifdef MTK_DEBUG
-@@ -646,6 +716,14 @@ void mt7915_sta_add_debugfs(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+@@ -650,6 +720,14 @@ void mt7915_sta_add_debugfs(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
  int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr,
  			 bool pci, int *irq);
  
@@ -1338,5 +1338,5 @@
 +};
 +#endif
 -- 
-2.18.0
+2.45.2
 
diff --git a/recipes-wifi/linux-mt76/files/patches/1052-wifi-mt76-mt7915-Clear-private-driver-data-in-case-o.patch b/recipes-wifi/linux-mt76/files/patches/1052-wifi-mt76-mt7915-Clear-private-driver-data-in-case-o.patch
index a9ff608..8e444e1 100644
--- a/recipes-wifi/linux-mt76/files/patches/1052-wifi-mt76-mt7915-Clear-private-driver-data-in-case-o.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1052-wifi-mt76-mt7915-Clear-private-driver-data-in-case-o.patch
@@ -1,8 +1,8 @@
-From 903edd4667682289fca8cb7fac0f407c34598e5c Mon Sep 17 00:00:00 2001
+From 3b8af1b07109458e7274bc032b27c3c2e331acb3 Mon Sep 17 00:00:00 2001
 From: Rex Lu <rex.lu@mediatek.com>
 Date: Fri, 5 Jul 2024 17:50:29 +0800
-Subject: [PATCH 1052/1052] wifi: mt76: mt7915: Clear private driver data in
- case of reuse
+Subject: [PATCH] wifi: mt76: mt7915: Clear private driver data in case of
+ reuse
 
 Signed-off-by: Rex Lu <rex.lu@mediatek.com>
 ---
@@ -10,12 +10,12 @@
  1 file changed, 3 insertions(+)
 
 diff --git a/mt7915/main.c b/mt7915/main.c
-index eab45737..8c498683 100644
+index f9ce1ba7..d5ea85d6 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -230,6 +230,9 @@ int mt7915_init_vif(struct mt7915_phy *phy, struct ieee80211_vif *vif, bool bf_e
  	bool ext_phy = phy != &dev->phy;
- 	int idx, ret = 0;
+ 	int idx, i, ret = 0;
  
 +	/* Clear private driver data in case of reuse */
 +	memset(mvif, 0, sizeof(struct mt7915_vif));
@@ -24,5 +24,5 @@
  	vif->addr[0] |= bf_en;
  
 -- 
-2.18.0
+2.45.2
 
diff --git a/recipes-wifi/linux-mt76/files/patches/1053-wifi-mt76-mt7915-fix-TX-RX-hang-without-SER-hw-bit-t.patch b/recipes-wifi/linux-mt76/files/patches/1053-wifi-mt76-mt7915-fix-TX-RX-hang-without-SER-hw-bit-t.patch
new file mode 100644
index 0000000..4da50c9
--- /dev/null
+++ b/recipes-wifi/linux-mt76/files/patches/1053-wifi-mt76-mt7915-fix-TX-RX-hang-without-SER-hw-bit-t.patch
@@ -0,0 +1,109 @@
+From 7a5aec3bea2904c15137b3293a37cef67ab7c9b4 Mon Sep 17 00:00:00 2001
+From: Rex Lu <rex.lu@mediatek.com>
+Date: Thu, 12 Sep 2024 16:17:51 +0800
+Subject: [PATCH]  wifi: mt76: mt7915: fix TX/RX hang without SER hw bit to do
+ L1 recovery issue
+
+---
+ mcu.c             |  4 +++-
+ mt76.h            |  2 +-
+ mt76_connac_mcu.c |  2 +-
+ mt7915/mcu.c      | 10 +++++++++-
+ mt7915/regs.h     |  2 +-
+ 5 files changed, 15 insertions(+), 5 deletions(-)
+
+diff --git a/mcu.c b/mcu.c
+index 1bc94e8..d331d81 100644
+--- a/mcu.c
++++ b/mcu.c
+@@ -82,6 +82,7 @@ int mt76_mcu_skb_send_and_get_msg(struct mt76_dev *dev, struct sk_buff *skb,
+ 	int ret, seq, retry_cnt;
+ 	struct sk_buff *skb_tmp;
+ 	bool retry = wait_resp && is_connac_v2(dev);
++	bool force_ser = false;
+ 
+ 	if (ret_skb)
+ 		*ret_skb = NULL;
+@@ -99,9 +100,10 @@ int mt76_mcu_skb_send_and_get_msg(struct mt76_dev *dev, struct sk_buff *skb,
+ 				usleep_range(200000, 500000);
+ 			dev_err(dev->dev, "send message %08x timeout, try again(%d).\n",
+ 				cmd, (MT76_MSG_MAX_RETRY_CNT - retry_cnt));
++			force_ser = true;
+ 		}
+ 
+-		ret = dev->mcu_ops->mcu_skb_send_msg(dev, skb_tmp, cmd, &seq);
++		ret = dev->mcu_ops->mcu_skb_send_msg(dev, skb_tmp, cmd, &seq, force_ser);
+ 		if (ret < 0 && ret != -EAGAIN)
+ 			goto out;
+ 
+diff --git a/mt76.h b/mt76.h
+index fd59fdf..dbf0fba 100644
+--- a/mt76.h
++++ b/mt76.h
+@@ -245,7 +245,7 @@ struct mt76_mcu_ops {
+ 	int (*mcu_send_msg)(struct mt76_dev *dev, int cmd, const void *data,
+ 			    int len, bool wait_resp);
+ 	int (*mcu_skb_send_msg)(struct mt76_dev *dev, struct sk_buff *skb,
+-				int cmd, int *seq);
++				int cmd, int *seq, bool force_ser);
+ 	int (*mcu_parse_response)(struct mt76_dev *dev, int cmd,
+ 				  struct sk_buff *skb, int seq);
+ 	u32 (*mcu_rr)(struct mt76_dev *dev, u32 offset);
+diff --git a/mt76_connac_mcu.c b/mt76_connac_mcu.c
+index 0ce7ecd..e1f598f 100644
+--- a/mt76_connac_mcu.c
++++ b/mt76_connac_mcu.c
+@@ -3076,7 +3076,7 @@ int mt76_connac2_mcu_fill_message(struct mt76_dev *dev, struct sk_buff *skb,
+ 	u8 seq;
+ 
+ 	/* TODO: make dynamic based on msg type */
+-	dev->mcu.timeout = 20 * HZ;
++	dev->mcu.timeout = 3 * HZ;
+ 
+ 	seq = ++dev->mcu.msg_seq & 0xf;
+ 	if (!seq)
+diff --git a/mt7915/mcu.c b/mt7915/mcu.c
+index 250b05e..bd32b0a 100644
+--- a/mt7915/mcu.c
++++ b/mt7915/mcu.c
+@@ -192,7 +192,7 @@ mt7915_mcu_parse_response(struct mt76_dev *mdev, int cmd,
+ 
+ static int
+ mt7915_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb,
+-			int cmd, int *wait_seq)
++			int cmd, int *wait_seq, bool force_ser)
+ {
+ 	struct mt7915_dev *dev = container_of(mdev, struct mt7915_dev, mt76);
+ 	enum mt76_mcuq_id qid;
+@@ -205,6 +205,14 @@ mt7915_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb,
+ 		return -EPERM;
+ 	}
+ 
++	if (force_ser && mdev->recovery_state == MT76_RECOVERY_INIT) {
++		dev_info(dev->mt76.dev,"\n%s TX/RX hang force trigger L1 SER recovery, drop message %08x.",
++			 wiphy_name(dev->mt76.hw->wiphy), cmd);
++		mt76_wr(dev, MT_MCU_INT_EVENT, MT_MCU_INT_EVENT_SER_TRIGGER);
++		dev_kfree_skb(skb);
++		return -EPERM;
++	}
++
+ 	ret = mt76_connac2_mcu_fill_message(mdev, skb, cmd, wait_seq);
+ 
+ 	if (ret)
+diff --git a/mt7915/regs.h b/mt7915/regs.h
+index ca355d1..24778d3 100644
+--- a/mt7915/regs.h
++++ b/mt7915/regs.h
+@@ -141,8 +141,8 @@ enum offs_rev {
+ #define MT_MCU_INT_EVENT		__REG(INT_MCU_CMD_EVENT)
+ #define MT_MCU_INT_EVENT_DMA_STOPPED	BIT(0)
+ #define MT_MCU_INT_EVENT_DMA_INIT	BIT(1)
+-#define MT_MCU_INT_EVENT_SER_TRIGGER	BIT(2)
+ #define MT_MCU_INT_EVENT_RESET_DONE	BIT(3)
++#define MT_MCU_INT_EVENT_SER_TRIGGER	BIT(4)
+ 
+ /* PLE */
+ #define MT_PLE_BASE			0x820c0000
+-- 
+2.45.2
+
diff --git a/recipes-wifi/linux-mt76/files/patches/2004-wifi-mt76-mt7915-wed-HW-ATF-support-for-mt7986.patch b/recipes-wifi/linux-mt76/files/patches/2004-wifi-mt76-mt7915-wed-HW-ATF-support-for-mt7986.patch
index 65b6630..30f352b 100644
--- a/recipes-wifi/linux-mt76/files/patches/2004-wifi-mt76-mt7915-wed-HW-ATF-support-for-mt7986.patch
+++ b/recipes-wifi/linux-mt76/files/patches/2004-wifi-mt76-mt7915-wed-HW-ATF-support-for-mt7986.patch
@@ -1,7 +1,7 @@
-From 065fd51b334f21e004e8a0e03e4d90a4e8265d98 Mon Sep 17 00:00:00 2001
+From 85f40d6281ddf11d7273f8ec8b64984add5e9da6 Mon Sep 17 00:00:00 2001
 From: Lian Chen <lian.chen@mediatek.com>
 Date: Mon, 7 Nov 2022 14:47:44 +0800
-Subject: [PATCH 2004/2015] wifi: mt76: mt7915: wed: HW ATF support for mt7986
+Subject: [PATCH] wifi: mt76: mt7915: wed: HW ATF support for mt7986
 
 Signed-off-by: Lian Chen <lian.chen@mediatek.com>
 Signed-off-by: Benjamin Lin <benjamin-jw.lin@mediatek.com>
@@ -497,7 +497,7 @@
  
  int mt7915_txbf_init(struct mt7915_dev *dev)
 diff --git a/mt7915/main.c b/mt7915/main.c
-index abafa5e4..ecfd9307 100644
+index 87d26689..7d6e427f 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -226,6 +226,7 @@ int mt7915_init_vif(struct mt7915_phy *phy, struct ieee80211_vif *vif, bool bf_e
@@ -507,8 +507,8 @@
 +	struct wiphy *wiphy = dev->phy.mt76->hw->wiphy;
  	struct mt76_txq *mtxq;
  	bool ext_phy = phy != &dev->phy;
- 	int idx, ret = 0;
-@@ -291,6 +292,9 @@ int mt7915_init_vif(struct mt7915_phy *phy, struct ieee80211_vif *vif, bool bf_e
+ 	int idx, i, ret = 0;
+@@ -297,6 +298,9 @@ int mt7915_init_vif(struct mt7915_phy *phy, struct ieee80211_vif *vif, bool bf_e
  	mt7915_mcu_add_sta(dev, vif, NULL, true);
  	rcu_assign_pointer(dev->mt76.wcid[idx], &mvif->sta.wcid);
  
@@ -518,7 +518,7 @@
  	return ret;
  }
  
-@@ -829,6 +833,7 @@ int mt7915_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -835,6 +839,7 @@ int mt7915_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  	struct mt7915_sta *msta = (struct mt7915_sta *)sta->drv_priv;
  	struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv;
  	bool ext_phy = mvif->phy != &dev->phy;
@@ -526,7 +526,7 @@
  #ifdef CONFIG_MTK_VENDOR
  	struct mt7915_phy *phy = ext_phy ? mt7915_ext_phy(dev) : &dev->phy;
  #endif
-@@ -879,6 +884,15 @@ int mt7915_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -885,6 +890,15 @@ int mt7915_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  	if (phy->muru_onoff & MUMIMO_DL_CERT)
  		mt7915_mcu_set_mimo(phy, 0);
  #endif
@@ -543,10 +543,10 @@
  }
  
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 7927a523..570dd171 100644
+index 3280597b..174e68ba 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
-@@ -1866,7 +1866,7 @@ mt7915_mcu_add_group(struct mt7915_dev *dev, struct ieee80211_vif *vif,
+@@ -1874,7 +1874,7 @@ mt7915_mcu_add_group(struct mt7915_dev *dev, struct ieee80211_vif *vif,
  {
  #define MT_STA_BSS_GROUP		1
  	struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv;
@@ -555,7 +555,7 @@
  	struct {
  		__le32 action;
  		u8 wlan_idx_lo;
-@@ -1877,10 +1877,9 @@ mt7915_mcu_add_group(struct mt7915_dev *dev, struct ieee80211_vif *vif,
+@@ -1885,10 +1885,9 @@ mt7915_mcu_add_group(struct mt7915_dev *dev, struct ieee80211_vif *vif,
  		u8 rsv1[8];
  	} __packed req = {
  		.action = cpu_to_le32(MT_STA_BSS_GROUP),
@@ -567,7 +567,7 @@
  	req.wlan_idx_lo = to_wcid_lo(msta->wcid.idx);
  	req.wlan_idx_hi = to_wcid_hi(msta->wcid.idx);
  
-@@ -1938,6 +1937,7 @@ int mt7915_mcu_add_sta(struct mt7915_dev *dev, struct ieee80211_vif *vif,
+@@ -1946,6 +1945,7 @@ int mt7915_mcu_add_sta(struct mt7915_dev *dev, struct ieee80211_vif *vif,
  		mt7915_mcu_sta_bfee_tlv(dev, skb, vif, sta);
  	}
  
@@ -575,7 +575,7 @@
  	ret = mt7915_mcu_add_group(dev, vif, sta);
  	if (ret) {
  		dev_kfree_skb(skb);
-@@ -3897,6 +3897,169 @@ int mt7915_mcu_set_ser(struct mt7915_dev *dev, u8 action, u8 set, u8 band)
+@@ -3905,6 +3905,169 @@ int mt7915_mcu_set_ser(struct mt7915_dev *dev, u8 action, u8 set, u8 band)
  				 &req, sizeof(req), false);
  }
  
@@ -746,10 +746,10 @@
  {
  #define MT_BF_PROCESSING	4
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index d93ab970..9ea30f1d 100644
+index 94ea3e1c..981c438f 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
-@@ -141,6 +141,58 @@ struct mt7915_twt_flow {
+@@ -143,6 +143,58 @@ struct mt7915_twt_flow {
  
  DECLARE_EWMA(avg_signal, 10, 8)
  
@@ -808,7 +808,7 @@
  struct mt7915_sta {
  	struct mt76_wcid wcid; /* must be first */
  
-@@ -161,6 +213,7 @@ struct mt7915_sta {
+@@ -163,6 +215,7 @@ struct mt7915_sta {
  		u8 flowid_mask;
  		struct mt7915_twt_flow flow[MT7915_MAX_STA_TWT_AGRT];
  	} twt;
@@ -816,7 +816,7 @@
  };
  
  struct mt7915_vif_cap {
-@@ -507,6 +560,8 @@ struct mt7915_dev {
+@@ -511,6 +564,8 @@ struct mt7915_dev {
  #endif
  
  	struct delayed_work scs_work;
@@ -825,7 +825,7 @@
  
  	bool wmm_pbc_enable;
  	struct work_struct wmm_pbc_work;
-@@ -543,6 +598,15 @@ enum mt7915_rdd_cmd {
+@@ -547,6 +602,15 @@ enum mt7915_rdd_cmd {
  	RDD_IRQ_OFF,
  };
  
@@ -841,7 +841,7 @@
  static inline struct mt7915_phy *
  mt7915_hw_phy(struct ieee80211_hw *hw)
  {
-@@ -672,6 +736,11 @@ int mt7915_mcu_set_mac(struct mt7915_dev *dev, int band, bool enable,
+@@ -676,6 +740,11 @@ int mt7915_mcu_set_mac(struct mt7915_dev *dev, int band, bool enable,
  int mt7915_mcu_set_test_param(struct mt7915_dev *dev, u8 param, bool test_mode,
  			      u8 en);
  int mt7915_mcu_set_ser(struct mt7915_dev *dev, u8 action, u8 set, u8 band);
@@ -854,7 +854,7 @@
  int mt7915_mcu_set_txpower_sku(struct mt7915_phy *phy);
  int mt7915_mcu_get_txpower_sku(struct mt7915_phy *phy, s8 *txpower, int len,
 diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
-index c8dd569c..d6e92b12 100644
+index 3a58a06e..b2014927 100644
 --- a/mt7915/mtk_debugfs.c
 +++ b/mt7915/mtk_debugfs.c
 @@ -1518,6 +1518,136 @@ static void chip_get_sta_pause(struct mt7915_dev *dev, u32 *sta_pause)
@@ -995,5 +995,5 @@
  {
  	struct mt7915_dev *dev = dev_get_drvdata(s->private);
 -- 
-2.18.0
+2.45.2
 
diff --git a/recipes-wifi/linux-mt76/files/patches/2016-wifi-mt76-mt7915-refine-twt-mcu-update-flow.patch b/recipes-wifi/linux-mt76/files/patches/2016-wifi-mt76-mt7915-refine-twt-mcu-update-flow.patch
new file mode 100644
index 0000000..fb8587e
--- /dev/null
+++ b/recipes-wifi/linux-mt76/files/patches/2016-wifi-mt76-mt7915-refine-twt-mcu-update-flow.patch
@@ -0,0 +1,94 @@
+From 174faa97cf0fdc8f26e4b8c13fd3c4b8d19ced15 Mon Sep 17 00:00:00 2001
+From: Yi-Chia Hsieh <Yi-Chia.Hsieh@mediatek.com>
+Date: Wed, 9 Oct 2024 23:13:29 +0000
+Subject: [PATCH] wifi: mt76: mt7915: refine twt mcu update flow
+
+Fix potential issue that if the twt mcu update command fail, the twt_list entry
+is not undo and will remain in the list. Also, remove unecessary parameter for
+twt delete flow.
+
+Signed-off-by: Yi-Chia Hsieh <Yi-Chia.Hsieh@mediatek.com>
+---
+ mt7915/debugfs.c |  4 ++--
+ mt7915/mac.c     |  4 +++-
+ mt7915/mcu.c     | 22 ++++++++++++----------
+ 3 files changed, 17 insertions(+), 13 deletions(-)
+
+diff --git a/mt7915/debugfs.c b/mt7915/debugfs.c
+index 72867ff..462e167 100644
+--- a/mt7915/debugfs.c
++++ b/mt7915/debugfs.c
+@@ -1758,7 +1758,7 @@ mt7915_twt_stats(struct seq_file *s, void *data)
+ 	struct mt7915_dev *dev = dev_get_drvdata(s->private);
+ 	struct mt7915_twt_flow *iter;
+ 
+-	rcu_read_lock();
++	mutex_lock(&dev->mt76.mutex);
+ 
+ 	seq_puts(s, "     wcid |       id |    flags |      exp | mantissa");
+ 	seq_puts(s, " | duration |            tsf |\n");
+@@ -1773,7 +1773,7 @@ mt7915_twt_stats(struct seq_file *s, void *data)
+ 			iter->exp, iter->mantissa,
+ 			iter->duration, iter->tsf);
+ 
+-	rcu_read_unlock();
++	mutex_unlock(&dev->mt76.mutex);
+ 
+ 	return 0;
+ }
+diff --git a/mt7915/mac.c b/mt7915/mac.c
+index 4e7dae7..321a57d 100644
+--- a/mt7915/mac.c
++++ b/mt7915/mac.c
+@@ -2555,8 +2555,10 @@ void mt7915_mac_add_twt_setup(struct ieee80211_hw *hw,
+ 	}
+ 	flow->tsf = le64_to_cpu(twt_agrt->twt);
+ 
+-	if (mt7915_mcu_twt_agrt_update(dev, msta->vif, flow, MCU_TWT_AGRT_ADD))
++	if (mt7915_mcu_twt_agrt_update(dev, msta->vif, flow, MCU_TWT_AGRT_ADD)) {
++		list_del(&flow->list);
+ 		goto unlock;
++	}
+ 
+ 	setup_cmd = TWT_SETUP_CMD_ACCEPT;
+ 	dev->twt.table_mask |= BIT(table_id);
+diff --git a/mt7915/mcu.c b/mt7915/mcu.c
+index 2c5943b..25ac312 100644
+--- a/mt7915/mcu.c
++++ b/mt7915/mcu.c
+@@ -4811,20 +4811,22 @@ int mt7915_mcu_twt_agrt_update(struct mt7915_dev *dev,
+ 		.own_mac_idx = mvif->mt76.omac_idx,
+ 		.flowid = flow->id,
+ 		.peer_id = cpu_to_le16(flow->wcid),
+-		.duration = flow->duration,
+ 		.bss_idx = mvif->mt76.idx,
+-		.start_tsf = cpu_to_le64(flow->tsf),
+-		.mantissa = flow->mantissa,
+-		.exponent = flow->exp,
+ 		.is_ap = true,
+ 	};
+ 
+-	if (flow->protection)
+-		req.agrt_params |= TWT_AGRT_PROTECT;
+-	if (!flow->flowtype)
+-		req.agrt_params |= TWT_AGRT_ANNOUNCE;
+-	if (flow->trigger)
+-		req.agrt_params |= TWT_AGRT_TRIGGER;
++	if (cmd == MCU_TWT_AGRT_ADD) {
++		req.start_tsf = cpu_to_le64(flow->tsf);
++		req.mantissa = flow->mantissa;
++		req.exponent = flow->exp;
++		req.duration = flow->duration;
++		if (flow->protection)
++			req.agrt_params |= TWT_AGRT_PROTECT;
++		if (!flow->flowtype)
++			req.agrt_params |= TWT_AGRT_ANNOUNCE;
++		if (flow->trigger)
++			req.agrt_params |= TWT_AGRT_TRIGGER;
++	}
+ 
+ 	return mt76_mcu_send_msg(&dev->mt76, MCU_EXT_CMD(TWT_AGRT_UPDATE),
+ 				 &req, sizeof(req), true);
+-- 
+2.18.0
+
diff --git a/recipes-wifi/linux-mt76/files/patches/patches.inc b/recipes-wifi/linux-mt76/files/patches/patches.inc
index b307b8c..a2fbe6e 100644
--- a/recipes-wifi/linux-mt76/files/patches/patches.inc
+++ b/recipes-wifi/linux-mt76/files/patches/patches.inc
@@ -23,6 +23,8 @@
     file://0021-wifi-mt76-mt7915-remove-unnecessary-register-setting.patch \
     file://0022-wifi-mt76-mt7915-add-PID-to-only-report-data-frame-T.patch \
     file://0023-wifi-mt76-mt7915-fix-add-ba-issue-on-tid-not-equal-t.patch \
+    file://0024-wifi-mt76-mt7915-delete-twt-flow-before-remove-stati.patch \
+    file://0025-mtk-mt76-do-not-report-ACK-when-TXS-is-lost.patch \
     file://0999-wifi-mt76-mt7915-build-pass-for-Linux-Kernel-5.4-fix.patch \
     file://1000-wifi-mt76-mt7915-add-mtk-internal-debug-tools-for-mt.patch \
     file://1001-wifi-mt76-mt7915-csi-implement-csi-support.patch \
@@ -77,6 +79,7 @@
     file://1050-mtk-wifi-mt76-mt7915-assign-DEAUTH-to-ALTX-queue-for.patch \
     file://1051-wifi-mt76-mt7915-set-channel-after-sta-is-associated.patch \
     file://1052-wifi-mt76-mt7915-Clear-private-driver-data-in-case-o.patch \
+    file://1053-wifi-mt76-mt7915-fix-TX-RX-hang-without-SER-hw-bit-t.patch \
     file://2000-wifi-mt76-mt7915-wed-add-wed-tx-support.patch \
     file://2001-wifi-mt76-mt7915-wed-add-wds-support-when-wed-is-ena.patch \
     file://2002-wifi-mt76-mt7915-wed-add-fill-receive-path-to-report.patch \
@@ -93,5 +96,6 @@
     file://2013-wifi-mt76-add-debugfs-for-tx-drop-counters.patch \
     file://2014-wifi-mt76-add-debugfs-for-rx-drop-counters.patch \
     file://2015-wifi-mt76-mt7915-support-backaward-compatiable.patch \
+    file://2016-wifi-mt76-mt7915-refine-twt-mcu-update-flow.patch \
     file://9999-mt76-revert-for-backports-5.15-wireless-stack.patch \
     "
diff --git a/recipes-wifi/linux-mt76/files/src/firmware/mt7996/mt7992_eeprom_23_2e5e.bin b/recipes-wifi/linux-mt76/files/src/firmware/mt7996/mt7992_eeprom_23_2e5e.bin
deleted file mode 100644
index 20c5908..0000000
--- a/recipes-wifi/linux-mt76/files/src/firmware/mt7996/mt7992_eeprom_23_2e5e.bin
+++ /dev/null
Binary files differ
diff --git a/recipes-wifi/linux-mt76/files/src/firmware/mt7996/mt7992_eeprom_2e5e.bin b/recipes-wifi/linux-mt76/files/src/firmware/mt7996/mt7992_eeprom_2e5e.bin
deleted file mode 100644
index 5d567db..0000000
--- a/recipes-wifi/linux-mt76/files/src/firmware/mt7996/mt7992_eeprom_2e5e.bin
+++ /dev/null
Binary files differ
diff --git a/recipes-wifi/linux-mt76/mt76-3x.inc b/recipes-wifi/linux-mt76/mt76-3x.inc
index 6d37a04..b5629b0 100644
--- a/recipes-wifi/linux-mt76/mt76-3x.inc
+++ b/recipes-wifi/linux-mt76/mt76-3x.inc
@@ -1 +1 @@
-SRCREV_mt7990 = "680bc70f161fde0f167e2ae50c771be4775eb50a"
+SRCREV_mt7990 = "ecca0e77b4bce629ec1f79d83bbd14a68f919188"
diff --git a/recipes-wifi/wireless-regdb/wireless-regdb_2024.07.04.bb b/recipes-wifi/wireless-regdb/wireless-regdb_2024.10.07.bb
similarity index 95%
rename from recipes-wifi/wireless-regdb/wireless-regdb_2024.07.04.bb
rename to recipes-wifi/wireless-regdb/wireless-regdb_2024.10.07.bb
index cb614bc..239054b 100644
--- a/recipes-wifi/wireless-regdb/wireless-regdb_2024.07.04.bb
+++ b/recipes-wifi/wireless-regdb/wireless-regdb_2024.10.07.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=07c4f6dea3845b02a18dc00c8c87699c"
 
 SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz"
-SRC_URI[sha256sum] = "9832a14e1be24abff7be30dee3c9a1afb5fdfcf475a0d91aafef039f8d85f5eb"
+SRC_URI[sha256sum] = "f76f2bd79a653e9f9dd50548d99d03a4a4eb157da056dfd5892f403ec28fb3d5"
 
 FILESEXTRAPATHS_prepend := "${THISDIR}/files/patches:"
 require files/patches/patches.inc