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

[Description]
900a6a6d [MAC80211][WiFi6][Misc][Fix build fail because of mt76 version upgradation]
ec684e4c [MAC80211][WiFi6][hostapd][core][Fix dead lock issue during post CSA radar detection]
6997cc57 [MAC80211][WiFi6][hostapd][Sync Eagle SQC patch: hostapd_cli rekey_gtk support]
0a56da09 [MAC80211][wifi6][MT76][Add debugfs knob to dump TRx drop]
7dee09e4 [mac80211][wifi6][core][move 4 addr nullfunc after drv_event_callback]
85de8c28 [MAC80211][WiFi6][mt76][fix HE bf capabilities IE for ap and sta vif]
ba727d47 [MAC80211][WiFi6][mt76][Fix sr_scene_cond dbg cmd]

[Release-log]

Change-Id: Iffa6ac78e9bb755ba523889a13e0bccd49559617
diff --git a/recipes-wifi/hostapd/files/patches/mtk-0048-hostapd-mtk-add-support-for-channel-switching-with-c.patch b/recipes-wifi/hostapd/files/patches/mtk-0048-hostapd-mtk-add-support-for-channel-switching-with-c.patch
index 0dbdaca..fc37d6c 100644
--- a/recipes-wifi/hostapd/files/patches/mtk-0048-hostapd-mtk-add-support-for-channel-switching-with-c.patch
+++ b/recipes-wifi/hostapd/files/patches/mtk-0048-hostapd-mtk-add-support-for-channel-switching-with-c.patch
@@ -1,4 +1,4 @@
-From a0538a9373ec7def76048e020fcb6ecfec53f3db Mon Sep 17 00:00:00 2001
+From 5d4d4397d0628a1aa83f83163e97ff34a0a5de43 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Thu, 16 Nov 2023 13:18:48 +0800
 Subject: [PATCH] hostapd: mtk: add support for channel switching with csa sent
@@ -6,14 +6,15 @@
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 ---
- hostapd/ctrl_iface.c   |  82 +++++++++++++++++-----
+ hostapd/ctrl_iface.c   |  84 +++++++++++++++++-----
  src/ap/ctrl_iface_ap.c |   5 +-
  src/ap/dfs.c           | 156 +++++++++++++++++++++++++++++++++++------
  src/ap/dfs.h           |   9 ++-
- 4 files changed, 212 insertions(+), 40 deletions(-)
+ src/ap/hostapd.c       |   8 ++-
+ 5 files changed, 221 insertions(+), 41 deletions(-)
 
 diff --git a/hostapd/ctrl_iface.c b/hostapd/ctrl_iface.c
-index 0afa6a2..44903e0 100644
+index 96b593a..445cb34 100644
 --- a/hostapd/ctrl_iface.c
 +++ b/hostapd/ctrl_iface.c
 @@ -2742,11 +2742,12 @@ static int hostapd_ctrl_iface_chan_switch(struct hostapd_iface *iface,
@@ -105,10 +106,13 @@
  	}
  
  	for (i = 0; i < iface->num_bss; i++) {
-@@ -2826,6 +2844,36 @@ static int hostapd_ctrl_iface_chan_switch(struct hostapd_iface *iface,
+@@ -2825,6 +2843,38 @@ static int hostapd_ctrl_iface_chan_switch(struct hostapd_iface *iface,
+ 			return ret;
  		}
  	}
- 
++	/* Clear the CAC flag once all BSSes are switched to the new channel */
++	iface->cac_started = 0;
++
 +	if (background_radar) {
 +		u8 seg0, seg1;
 +
@@ -138,10 +142,9 @@
 +		iface->radar_background.centr_freq_seg0_idx = seg0;
 +		iface->radar_background.centr_freq_seg1_idx = seg1;
 +	}
-+
+ 
  	return 0;
  #else /* NEED_AP_MLME */
- 	return -1;
 diff --git a/src/ap/ctrl_iface_ap.c b/src/ap/ctrl_iface_ap.c
 index 86e8729..005c9fa 100644
 --- a/src/ap/ctrl_iface_ap.c
@@ -166,7 +169,7 @@
  		return -1;
  	}
 diff --git a/src/ap/dfs.c b/src/ap/dfs.c
-index 012050c..5108e0a 100644
+index d490032..26ce229 100644
 --- a/src/ap/dfs.c
 +++ b/src/ap/dfs.c
 @@ -248,14 +248,15 @@ static int is_in_chanlist(struct hostapd_iface *iface,
@@ -215,7 +218,7 @@
  			if (chan2 && abs(chan2->chan - chan->chan) > 12) {
  				/* two channels are not adjacent */
  				sec_chan_idx_80p80 = chan2->chan;
-@@ -1302,6 +1303,9 @@ int hostapd_dfs_pre_cac_expired(struct hostapd_iface *iface, int freq,
+@@ -1304,6 +1305,9 @@ int hostapd_dfs_pre_cac_expired(struct hostapd_iface *iface, int freq,
  	set_dfs_state(iface, freq, ht_enabled, chan_offset, chan_width,
  		      cf1, cf2, HOSTAPD_CHAN_DFS_USABLE);
  
@@ -225,7 +228,7 @@
  	return 0;
  }
  
-@@ -1715,14 +1719,15 @@ int hostapd_handle_dfs_offload(struct hostapd_iface *iface)
+@@ -1717,14 +1721,15 @@ int hostapd_handle_dfs_offload(struct hostapd_iface *iface)
  }
  
  
@@ -245,7 +248,7 @@
  
  	if (!iface->conf->ieee80211h || !mode ||
  	    mode->mode != HOSTAPD_MODE_IEEE80211A)
-@@ -1755,18 +1760,129 @@ int hostapd_is_dfs_overlap(struct hostapd_iface *iface, enum chan_width width,
+@@ -1757,18 +1762,129 @@ int hostapd_is_dfs_overlap(struct hostapd_iface *iface, enum chan_width width,
  		if (!(chan->flag & HOSTAPD_CHAN_RADAR))
  			continue;
  
@@ -404,6 +407,25 @@
 +
  
  #endif /* DFS_H */
+diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c
+index 250c168..d983902 100644
+--- a/src/ap/hostapd.c
++++ b/src/ap/hostapd.c
+@@ -3708,7 +3708,13 @@ static int hostapd_fill_csa_settings(struct hostapd_data *hapd,
+ 	u8 chan, bandwidth;
+ 
+ 	os_memset(&old_freq, 0, sizeof(old_freq));
+-	if (!iface || !iface->freq || hapd->csa_in_progress)
++	if (!iface || !iface->freq)
++		return -1;
++
++	/* Allow another channel switch if the previous
++	 * channel switch is waiting for post-CSA radar detection
++	 */
++	if (hapd->csa_in_progress && !iface->cac_started)
+ 		return -1;
+ 
+ 	switch (settings->freq_params.bandwidth) {
 -- 
 2.18.0
 
diff --git a/recipes-wifi/hostapd/files/patches/mtk-0054-hostapd-mtk-Add-support-for-gtk-rekeying-in-hostapd-.patch b/recipes-wifi/hostapd/files/patches/mtk-0054-hostapd-mtk-Add-support-for-gtk-rekeying-in-hostapd-.patch
new file mode 100644
index 0000000..3e9214a
--- /dev/null
+++ b/recipes-wifi/hostapd/files/patches/mtk-0054-hostapd-mtk-Add-support-for-gtk-rekeying-in-hostapd-.patch
@@ -0,0 +1,44 @@
+From 69271a55f60c797513cb9f925416aac13422ad7b Mon Sep 17 00:00:00 2001
+From: mtk23510 <rudra.shahi@mediatek.com>
+Date: Fri, 26 May 2023 14:52:35 +0800
+Subject: [PATCH] mtk: hostapd: Add support for gtk rekeying in hostapd cli
+
+Signed-off-by: mtk23510 <rudra.shahi@mediatek.com>
+---
+ hostapd/hostapd_cli.c | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/hostapd/hostapd_cli.c b/hostapd/hostapd_cli.c
+index a99df88..1b8a071 100644
+--- a/hostapd/hostapd_cli.c
++++ b/hostapd/hostapd_cli.c
+@@ -1250,6 +1250,15 @@ static int hostapd_cli_cmd_update_beacon(struct wpa_ctrl *ctrl, int argc,
+ }
+ 
+ 
++#ifdef CONFIG_TESTING_OPTIONS
++static int hostapd_cli_cmd_rekey_gtk(struct wpa_ctrl *ctrl, int argc,
++				      char *argv[])
++{
++	return wpa_ctrl_command(ctrl, "REKEY_GTK");
++}
++#endif
++
++
+ static int hostapd_cli_cmd_vendor(struct wpa_ctrl *ctrl, int argc, char *argv[])
+ {
+ 	char cmd[256];
+@@ -1760,6 +1769,10 @@ static const struct hostapd_cli_cmd hostapd_cli_commands[] = {
+ 	  "= disable hostapd on current BSS" },
+ 	{ "update_beacon", hostapd_cli_cmd_update_beacon, NULL,
+ 	  "= update Beacon frame contents\n"},
++#ifdef CONFIG_TESTING_OPTIONS
++	{ "rekey_gtk", hostapd_cli_cmd_rekey_gtk, NULL,
++	  "= rekey gtk\n"},
++#endif
+ 	{ "erp_flush", hostapd_cli_cmd_erp_flush, NULL,
+ 	  "= drop all ERP keys"},
+ 	{ "log_level", hostapd_cli_cmd_log_level, NULL,
+-- 
+2.25.1
+
diff --git a/recipes-wifi/hostapd/files/patches/patches.inc b/recipes-wifi/hostapd/files/patches/patches.inc
index ad63af1..2809a0f 100644
--- a/recipes-wifi/hostapd/files/patches/patches.inc
+++ b/recipes-wifi/hostapd/files/patches/patches.inc
@@ -122,4 +122,5 @@
     file://mtk-0051-hostapd-mtk-add-support-for-enable-disable-single-BS.patch \
     file://mtk-0052-hostapd-mtk-ACS-remove-chan-freq-list-check-when-sca.patch \
     file://mtk-0053-hostapd-mtk-add-no_beacon-vendor-command-for-cert.patch \
+    file://mtk-0054-hostapd-mtk-Add-support-for-gtk-rekeying-in-hostapd-.patch \
     "
diff --git a/recipes-wifi/linux-mac80211/files/patches/subsys/mtk-0024-mac80211-mtk-add-DFS-CAC-countdown-in-CSA-flow.patch b/recipes-wifi/linux-mac80211/files/patches/subsys/mtk-0024-mac80211-mtk-add-DFS-CAC-countdown-in-CSA-flow.patch
index f2fde36..beead44 100644
--- a/recipes-wifi/linux-mac80211/files/patches/subsys/mtk-0024-mac80211-mtk-add-DFS-CAC-countdown-in-CSA-flow.patch
+++ b/recipes-wifi/linux-mac80211/files/patches/subsys/mtk-0024-mac80211-mtk-add-DFS-CAC-countdown-in-CSA-flow.patch
@@ -1,20 +1,20 @@
-From d10310d3eb842ebc449271b45ad2f47634149385 Mon Sep 17 00:00:00 2001
+From bb918e40dcc7d082f898234cf29cd545de78621e Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Wed, 15 Nov 2023 15:05:17 +0800
 Subject: [PATCH] mac80211: mtk: add DFS CAC countdown in CSA flow
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 ---
- include/net/cfg80211.h     | 32 +++++++++++++++++
- net/mac80211/cfg.c         | 45 +++++++++++++++++++++++-
- net/mac80211/ieee80211_i.h |  2 ++
- net/mac80211/iface.c       |  2 ++
- net/mac80211/mlme.c        |  6 +++-
- net/mac80211/util.c        | 11 +++++-
- net/wireless/chan.c        | 71 ++++++++++++++++++++++++++++++++++++++
- net/wireless/nl80211.c     |  5 +--
- net/wireless/rdev-ops.h    | 17 +++++++++
- 9 files changed, 186 insertions(+), 5 deletions(-)
+ include/net/cfg80211.h     | 32 +++++++++++++++
+ net/mac80211/cfg.c         | 84 +++++++++++++++++++++++++++++++++++---
+ net/mac80211/ieee80211_i.h |  2 +
+ net/mac80211/iface.c       |  2 +
+ net/mac80211/mlme.c        |  6 ++-
+ net/mac80211/util.c        | 11 ++++-
+ net/wireless/chan.c        | 72 ++++++++++++++++++++++++++++++++
+ net/wireless/nl80211.c     |  5 ++-
+ net/wireless/rdev-ops.h    | 17 ++++++++
+ 9 files changed, 221 insertions(+), 10 deletions(-)
 
 diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
 index 03f072f..a443b0d 100644
@@ -67,7 +67,7 @@
   * cfg80211_ch_switch_notify - update wdev channel and notify userspace
   * @dev: the device which switched channels
 diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
-index 56381f8..3e6e903 100644
+index 56381f8..7a30ca6 100644
 --- a/net/mac80211/cfg.c
 +++ b/net/mac80211/cfg.c
 @@ -3328,6 +3328,39 @@ static int ieee80211_set_after_csa_beacon(struct ieee80211_sub_if_data *sdata,
@@ -122,7 +122,78 @@
  	sdata->vif.csa_active = false;
  
  	err = ieee80211_set_after_csa_beacon(sdata, &changed);
-@@ -4538,7 +4576,11 @@ ieee80211_skip_cac(struct wireless_dev *wdev)
+@@ -3428,6 +3466,11 @@ static int ieee80211_set_csa_beacon(struct ieee80211_sub_if_data *sdata,
+ 
+ 	switch (sdata->vif.type) {
+ 	case NL80211_IFTYPE_AP:
++		if (sdata->u.ap.next_beacon) {
++			kfree(sdata->u.ap.next_beacon->mbssid_ies);
++			kfree(sdata->u.ap.next_beacon);
++			sdata->u.ap.next_beacon = NULL;
++		}
+ 		sdata->u.ap.next_beacon =
+ 			cfg80211_beacon_dup(&params->beacon_after);
+ 		if (!sdata->u.ap.next_beacon)
+@@ -3586,15 +3629,14 @@ __ieee80211_channel_switch(struct wiphy *wiphy, struct net_device *dev,
+ 	if (!list_empty(&local->roc_list) || local->scanning)
+ 		return -EBUSY;
+ 
+-	if (sdata->wdev.cac_started)
+-		return -EBUSY;
+-
+ 	if (cfg80211_chandef_identical(&params->chandef,
+ 				       &sdata->vif.bss_conf.chandef))
+ 		return -EINVAL;
+ 
+-	/* don't allow another channel switch if one is already active. */
+-	if (sdata->vif.csa_active)
++	/* don't allow another channel switch if one is already active
++	 * unless its during post CSA radar detection.
++	 */
++	if (sdata->vif.csa_active && !sdata->wdev.cac_started)
+ 		return -EBUSY;
+ 
+ 	mutex_lock(&local->chanctx_mtx);
+@@ -3646,6 +3688,14 @@ __ieee80211_channel_switch(struct wiphy *wiphy, struct net_device *dev,
+ 		goto out;
+ 	}
+ 
++	/* Finalize CSA immediately if CAC is started during last channel switch */
++	if (sdata->wdev.cac_started) {
++		ieee80211_wake_vif_queues(local, sdata, IEEE80211_QUEUE_STOP_REASON_CSA);
++		cancel_delayed_work(&sdata->dfs_cac_timer_work);
++		sdata->wdev.cac_started = false;
++		changed = 0;
++	}
++
+ 	sdata->csa_chandef = params->chandef;
+ 	sdata->csa_block_tx = params->block_tx;
+ 	sdata->vif.csa_active = true;
+@@ -3661,6 +3711,23 @@ __ieee80211_channel_switch(struct wiphy *wiphy, struct net_device *dev,
+ 		ieee80211_bss_info_change_notify(sdata, changed);
+ 		drv_channel_switch_beacon(sdata, &params->chandef);
+ 	} else {
++		struct ieee80211_sub_if_data *tmp;
++		int n_assigned = 0, n_reserved = 0;
++
++		list_for_each_entry(tmp, &chanctx->assigned_vifs,
++				    assigned_chanctx_list) {
++			n_assigned++;
++			if (tmp->reserved_chanctx)
++				n_reserved++;
++		}
++
++		/* Wait for all interfaces to be ready */
++		if (n_assigned != n_reserved) {
++			sdata->reserved_ready = true;
++			err = 0;
++			goto out;
++		}
++
+ 		/* if the beacon didn't change, we can finalize immediately */
+ 		ieee80211_csa_finalize(sdata);
+ 	}
+@@ -4538,7 +4605,11 @@ ieee80211_skip_cac(struct wireless_dev *wdev)
  
  	cancel_delayed_work(&sdata->dfs_cac_timer_work);
  	if (wdev->cac_started) {
@@ -135,7 +206,7 @@
  		cac_time_ms = wdev->cac_time_ms;
  		wdev->cac_start_time = jiffies -
  				       msecs_to_jiffies(cac_time_ms + 1);
-@@ -4630,6 +4672,7 @@ const struct cfg80211_ops mac80211_config_ops = {
+@@ -4630,6 +4701,7 @@ const struct cfg80211_ops mac80211_config_ops = {
  #endif
  	.get_channel = ieee80211_cfg_get_channel,
  	.start_radar_detection = ieee80211_start_radar_detection,
@@ -184,7 +255,7 @@
  	INIT_LIST_HEAD(&sdata->assigned_chanctx_list);
  	INIT_LIST_HEAD(&sdata->reserved_chanctx_list);
 diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
-index 48053e4..e9ec32d 100644
+index 2dbc18c..ed81ebf 100644
 --- a/net/mac80211/mlme.c
 +++ b/net/mac80211/mlme.c
 @@ -1870,7 +1870,11 @@ void ieee80211_dfs_cac_timer_work(struct work_struct *work)
@@ -223,10 +294,10 @@
  					   &chandef,
  					   NL80211_RADAR_CAC_ABORTED,
 diff --git a/net/wireless/chan.c b/net/wireless/chan.c
-index 9f651f9..88dd69e 100644
+index 9f651f9..f02598b 100644
 --- a/net/wireless/chan.c
 +++ b/net/wireless/chan.c
-@@ -1262,6 +1262,77 @@ bool cfg80211_reg_can_beacon_relax(struct wiphy *wiphy,
+@@ -1262,6 +1262,78 @@ bool cfg80211_reg_can_beacon_relax(struct wiphy *wiphy,
  }
  EXPORT_SYMBOL(cfg80211_reg_can_beacon_relax);
  
@@ -267,11 +338,12 @@
 +	enum nl80211_dfs_regions dfs_region;
 +	int ret = 0;
 +
++	/* Update DFS channel state especially when original channel include DFS channel */
++	cfg80211_sched_dfs_chan_update(rdev);
++
 +	if (cfg80211_chandef_dfs_available(wiphy, chandef))
 +		goto out;
 +
-+	flush_delayed_work(&rdev->dfs_update_channels_wk);
-+
 +	dfs_region = reg_get_dfs_region(wiphy);
 +	if (dfs_region == NL80211_DFS_UNSET)
 +		goto out;
diff --git a/recipes-wifi/linux-mac80211/files/patches/subsys/mtk-0029-mac80211-mtk-send-4-addr-nullfunc-after-drv_event_ca.patch b/recipes-wifi/linux-mac80211/files/patches/subsys/mtk-0029-mac80211-mtk-send-4-addr-nullfunc-after-drv_event_ca.patch
new file mode 100644
index 0000000..981a532
--- /dev/null
+++ b/recipes-wifi/linux-mac80211/files/patches/subsys/mtk-0029-mac80211-mtk-send-4-addr-nullfunc-after-drv_event_ca.patch
@@ -0,0 +1,46 @@
+From 8cb06d601dff5b2728684f230ffe46d42e98cab3 Mon Sep 17 00:00:00 2001
+From: Peter Chiu <chui-hao.chiu@mediatek.com>
+Date: Fri, 29 Mar 2024 14:55:41 +0800
+Subject: [PATCH] mac80211: mtk: send 4 addr nullfunc after drv_event_callback
+
+mt76 set channel in drv_event_callback and the 4 addr nullfunc may
+be dropped. Send 4 addr nullfunc after drv_event_callback to avoid
+this issue.
+
+Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
+
+diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
+index ed81ebf..0f3d8cc 100644
+--- a/net/mac80211/mlme.c
++++ b/net/mac80211/mlme.c
+@@ -3671,13 +3671,6 @@ static bool ieee80211_assoc_success(struct ieee80211_sub_if_data *sdata,
+ 	bss_conf->assoc_capability = capab_info;
+ 	ieee80211_set_associated(sdata, cbss, changed);
+ 
+-	/*
+-	 * If we're using 4-addr mode, let the AP know that we're
+-	 * doing so, so that it can create the STA VLAN on its side
+-	 */
+-	if (ifmgd->use_4addr)
+-		ieee80211_send_4addr_nullfunc(local, sdata);
+-
+ 	/*
+ 	 * Start timer to probe the connection to the AP now.
+ 	 * Also start the timer that will detect beacon loss.
+@@ -3798,6 +3791,13 @@ static void ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata,
+ 		drv_event_callback(sdata->local, sdata, &event);
+ 		sdata_info(sdata, "associated\n");
+ 
++		/*
++		* If we're using 4-addr mode, let the AP know that we're
++		* doing so, so that it can create the STA VLAN on its side
++		*/
++		if (ifmgd->use_4addr)
++			ieee80211_send_4addr_nullfunc(sdata->local, sdata);
++
+ 		/*
+ 		 * destroy assoc_data afterwards, as otherwise an idle
+ 		 * recalc after assoc_data is NULL but before associated
+-- 
+2.18.0
+
diff --git a/recipes-wifi/linux-mac80211/files/patches/subsys/subsys.inc b/recipes-wifi/linux-mac80211/files/patches/subsys/subsys.inc
index 6751662..0dcdec8 100644
--- a/recipes-wifi/linux-mac80211/files/patches/subsys/subsys.inc
+++ b/recipes-wifi/linux-mac80211/files/patches/subsys/subsys.inc
@@ -86,6 +86,7 @@
     file://mtk-0026-mac80211-mtk-add-support-for-scan-dwell-time-customi.patch \
     file://mtk-0027-mac80211-mtk-fix-AP-mgmt-not-encrypted-in-WDS-mode-w.patch \
     file://mtk-0028-mac80211-mtk-backport-refactor-STA-CSA-paring-flow.patch \
+    file://mtk-0029-mac80211-mtk-send-4-addr-nullfunc-after-drv_event_ca.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/0001-wifi-mt76-fix-incorrect-HE-TX-GI-report.patch b/recipes-wifi/linux-mt76/files/patches/0001-wifi-mt76-fix-incorrect-HE-TX-GI-report.patch
index 044cc34..1c9624e 100644
--- a/recipes-wifi/linux-mt76/files/patches/0001-wifi-mt76-fix-incorrect-HE-TX-GI-report.patch
+++ b/recipes-wifi/linux-mt76/files/patches/0001-wifi-mt76-fix-incorrect-HE-TX-GI-report.patch
@@ -1,4 +1,4 @@
-From 48ae9fbcbbe56203f050344916ca04ee85c07de4 Mon Sep 17 00:00:00 2001
+From e9f5961a07a895d18b6158a94d74633c07eab50f Mon Sep 17 00:00:00 2001
 From: Evelyn Tsai <evelyn.tsai@mediatek.com>
 Date: Thu, 18 May 2023 18:11:37 +0800
 Subject: [PATCH 01/14] wifi: mt76: fix incorrect HE TX GI report
@@ -17,10 +17,10 @@
  7 files changed, 282 insertions(+), 22 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
-index 294e379a..619d50df 100644
+index 2cbea73..92acba9 100644
 --- a/mt76.h
 +++ b/mt76.h
-@@ -277,12 +277,16 @@ struct mt76_queue_ops {
+@@ -282,12 +282,16 @@ struct mt76_queue_ops {
  	void (*reset_q)(struct mt76_dev *dev, struct mt76_queue *q);
  };
  
@@ -38,7 +38,7 @@
  	MT_PHY_TYPE_HE_EXT_SU,
  	MT_PHY_TYPE_HE_TB,
 diff --git a/mt7915/init.c b/mt7915/init.c
-index 7b6168cf..541b8032 100644
+index eee1879..edf83c4 100644
 --- a/mt7915/init.c
 +++ b/mt7915/init.c
 @@ -673,6 +673,8 @@ mt7915_register_ext_phy(struct mt7915_dev *dev, struct mt7915_phy *phy)
@@ -60,7 +60,7 @@
  	INIT_DELAYED_WORK(&dev->mphy.mac_work, mt7915_mac_work);
  	INIT_LIST_HEAD(&dev->sta_rc_list);
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index 8008ce3f..b9152018 100644
+index 8008ce3..b915201 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -180,15 +180,7 @@ static void mt7915_mac_sta_poll(struct mt7915_dev *dev)
@@ -188,7 +188,7 @@
  
  	mt76_tx_status_check(mphy->dev, false);
 diff --git a/mt7915/main.c b/mt7915/main.c
-index b16a6336..e61041d0 100644
+index b16a633..e61041d 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -752,6 +752,7 @@ int mt7915_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
@@ -220,7 +220,7 @@
  
  static void mt7915_tx(struct ieee80211_hw *hw,
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index fe54a2f4..7df21621 100644
+index fe54a2f..7df2162 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -3793,6 +3793,167 @@ out:
@@ -392,7 +392,7 @@
  				struct cfg80211_he_bss_color *he_bss_color)
  {
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index b41ac4aa..8f365461 100644
+index b41ac4a..8f36546 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -152,6 +152,61 @@ struct mt7915_mcu_eeprom_info {
@@ -466,7 +466,7 @@
 +};
  #endif
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index a30d08eb..aee30c73 100644
+index a30d08e..aee30c7 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -137,6 +137,7 @@ struct mt7915_sta {
diff --git a/recipes-wifi/linux-mt76/files/patches/0002-wifi-mt76-mt7915-add-pc-stack-dump-for-WM-s-coredump.patch b/recipes-wifi/linux-mt76/files/patches/0002-wifi-mt76-mt7915-add-pc-stack-dump-for-WM-s-coredump.patch
index bbb456e..651281c 100644
--- a/recipes-wifi/linux-mt76/files/patches/0002-wifi-mt76-mt7915-add-pc-stack-dump-for-WM-s-coredump.patch
+++ b/recipes-wifi/linux-mt76/files/patches/0002-wifi-mt76-mt7915-add-pc-stack-dump-for-WM-s-coredump.patch
@@ -1,4 +1,4 @@
-From 5767bce45ee5ea588072389762af8b5aab9227a5 Mon Sep 17 00:00:00 2001
+From c7b5350668962272203b878cfc1ae2754c807d56 Mon Sep 17 00:00:00 2001
 From: Bo Jiao <Bo.Jiao@mediatek.com>
 Date: Mon, 22 May 2023 13:49:37 +0800
 Subject: [PATCH 02/14] wifi: mt76: mt7915: add pc stack dump for WM's
@@ -16,10 +16,10 @@
  7 files changed, 207 insertions(+), 71 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
-index 619d50df..52a20868 100644
+index 92acba9..ee14425 100644
 --- a/mt76.h
 +++ b/mt76.h
-@@ -27,6 +27,8 @@
+@@ -32,6 +32,8 @@
  
  #define MT76_TOKEN_FREE_THR	64
  
@@ -28,7 +28,7 @@
  #define MT_QFLAG_WED_RING	GENMASK(1, 0)
  #define MT_QFLAG_WED_TYPE	GENMASK(4, 2)
  #define MT_QFLAG_WED		BIT(5)
-@@ -61,6 +63,12 @@ enum mt76_bus_type {
+@@ -66,6 +68,12 @@ enum mt76_bus_type {
  	MT76_BUS_SDIO,
  };
  
@@ -41,7 +41,7 @@
  enum mt76_wed_type {
  	MT76_WED_Q_TX,
  	MT76_WED_Q_TXFREE,
-@@ -833,6 +841,9 @@ struct mt76_dev {
+@@ -838,6 +846,9 @@ struct mt76_dev {
  	struct device *dma_dev;
  
  	struct mt76_mcu mcu;
@@ -52,10 +52,10 @@
  	struct net_device napi_dev;
  	struct net_device tx_napi_dev;
 diff --git a/mt76_connac_mcu.c b/mt76_connac_mcu.c
-index 368c5f46..4be806e2 100644
+index b35acf8..1ea9798 100644
 --- a/mt76_connac_mcu.c
 +++ b/mt76_connac_mcu.c
-@@ -2933,6 +2933,9 @@ int mt76_connac2_load_ram(struct mt76_dev *dev, const char *fw_wm,
+@@ -2941,6 +2941,9 @@ int mt76_connac2_load_ram(struct mt76_dev *dev, const char *fw_wm,
  		goto out;
  	}
  
@@ -65,7 +65,7 @@
  	snprintf(dev->hw->wiphy->fw_version,
  		 sizeof(dev->hw->wiphy->fw_version),
  		 "%.10s-%.15s", hdr->fw_ver, hdr->build_date);
-@@ -2962,6 +2965,9 @@ int mt76_connac2_load_ram(struct mt76_dev *dev, const char *fw_wm,
+@@ -2970,6 +2973,9 @@ int mt76_connac2_load_ram(struct mt76_dev *dev, const char *fw_wm,
  		goto out;
  	}
  
@@ -75,7 +75,7 @@
  	snprintf(dev->hw->wiphy->fw_version,
  		 sizeof(dev->hw->wiphy->fw_version),
  		 "%.10s-%.15s", hdr->fw_ver, hdr->build_date);
-@@ -3032,6 +3038,9 @@ int mt76_connac2_load_patch(struct mt76_dev *dev, const char *fw_name)
+@@ -3040,6 +3046,9 @@ int mt76_connac2_load_patch(struct mt76_dev *dev, const char *fw_name)
  	dev_info(dev->dev, "HW/SW Version: 0x%x, Build Time: %.16s\n",
  		 be32_to_cpu(hdr->hw_sw_ver), hdr->build_date);
  
@@ -86,7 +86,7 @@
  		struct mt76_connac2_patch_sec *sec;
  		u32 len, addr, mode;
 diff --git a/mt7915/coredump.c b/mt7915/coredump.c
-index 5daf2258..298c1cad 100644
+index 5daf225..298c1ca 100644
 --- a/mt7915/coredump.c
 +++ b/mt7915/coredump.c
 @@ -7,7 +7,7 @@
@@ -414,7 +414,7 @@
  }
  
 diff --git a/mt7915/coredump.h b/mt7915/coredump.h
-index 709f8e9c..809ccbdf 100644
+index 709f8e9..809ccbd 100644
 --- a/mt7915/coredump.h
 +++ b/mt7915/coredump.h
 @@ -4,6 +4,7 @@
@@ -514,7 +514,7 @@
  	return NULL;
  }
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index b9152018..0f6b8067 100644
+index b915201..0f6b806 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -1597,28 +1597,31 @@ void mt7915_mac_reset_work(struct work_struct *work)
@@ -595,7 +595,7 @@
  }
  
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index aee30c73..5cd2b334 100644
+index aee30c7..5cd2b33 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -286,7 +286,7 @@ struct mt7915_dev {
@@ -608,7 +608,7 @@
  #endif
  
 diff --git a/mt7915/regs.h b/mt7915/regs.h
-index 89ac8e67..7515b23f 100644
+index 89ac8e6..7515b23 100644
 --- a/mt7915/regs.h
 +++ b/mt7915/regs.h
 @@ -1219,4 +1219,24 @@ enum offs_rev {
diff --git a/recipes-wifi/linux-mt76/files/patches/0003-wifi-mt76-mt7915-move-temperature-margin-check-to-mt.patch b/recipes-wifi/linux-mt76/files/patches/0003-wifi-mt76-mt7915-move-temperature-margin-check-to-mt.patch
index 3fbcee8..2e4c7d0 100644
--- a/recipes-wifi/linux-mt76/files/patches/0003-wifi-mt76-mt7915-move-temperature-margin-check-to-mt.patch
+++ b/recipes-wifi/linux-mt76/files/patches/0003-wifi-mt76-mt7915-move-temperature-margin-check-to-mt.patch
@@ -1,4 +1,4 @@
-From 22f2beb4947794299cbb9b726303d087dc42c13f Mon Sep 17 00:00:00 2001
+From 5201efd8c8527bf4f7f60c8be5d558f847b8c4e4 Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Thu, 13 Jul 2023 15:50:00 +0800
 Subject: [PATCH 03/14] wifi: mt76: mt7915: move temperature margin check to
@@ -17,7 +17,7 @@
  2 files changed, 5 insertions(+), 5 deletions(-)
 
 diff --git a/mt7915/init.c b/mt7915/init.c
-index 541b8032..911ecdd3 100644
+index edf83c4..9fe0524 100644
 --- a/mt7915/init.c
 +++ b/mt7915/init.c
 @@ -83,12 +83,13 @@ static ssize_t mt7915_thermal_temp_store(struct device *dev,
@@ -38,7 +38,7 @@
  		return -EINVAL;
  	}
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 7df21621..6e9970c3 100644
+index 7df2162..6e9970c 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -3226,8 +3226,7 @@ int mt7915_mcu_set_thermal_protect(struct mt7915_phy *phy)
diff --git a/recipes-wifi/linux-mt76/files/patches/0004-wifi-mt76-mt7915-fix-txpower-issues.patch b/recipes-wifi/linux-mt76/files/patches/0004-wifi-mt76-mt7915-fix-txpower-issues.patch
index 8c79361..06dbcd8 100644
--- a/recipes-wifi/linux-mt76/files/patches/0004-wifi-mt76-mt7915-fix-txpower-issues.patch
+++ b/recipes-wifi/linux-mt76/files/patches/0004-wifi-mt76-mt7915-fix-txpower-issues.patch
@@ -1,4 +1,4 @@
-From 723c1353c7d50c962285c22579770b6aeb37b3ca Mon Sep 17 00:00:00 2001
+From 81f7cb7c452f3e3cce7818bfd0547fc57c280dce Mon Sep 17 00:00:00 2001
 From: Evelyn Tsai <evelyn.tsai@mediatek.com>
 Date: Sat, 29 Jul 2023 04:53:47 +0800
 Subject: [PATCH 04/14] wifi: mt76: mt7915: fix txpower issues
@@ -10,7 +10,7 @@
  3 files changed, 28 insertions(+), 23 deletions(-)
 
 diff --git a/eeprom.c b/eeprom.c
-index 0bc66cc1..ecd09c03 100644
+index 0bc66cc..ecd09c0 100644
 --- a/eeprom.c
 +++ b/eeprom.c
 @@ -343,7 +343,7 @@ s8 mt76_get_rate_power_limits(struct mt76_phy *phy,
@@ -23,10 +23,10 @@
  
  	if (!mcs_rates)
 diff --git a/mt7915/debugfs.c b/mt7915/debugfs.c
-index 6c3696c8..93e549c3 100644
+index 5780138..894e2cd 100644
 --- a/mt7915/debugfs.c
 +++ b/mt7915/debugfs.c
-@@ -950,9 +950,9 @@ mt7915_xmit_queues_show(struct seq_file *file, void *data)
+@@ -951,9 +951,9 @@ mt7915_xmit_queues_show(struct seq_file *file, void *data)
  
  DEFINE_SHOW_ATTRIBUTE(mt7915_xmit_queues);
  
@@ -38,7 +38,7 @@
  	for (i = 0; i < mt7915_sku_group_len[SKU_##rate]; i++, offs++)		\
  		len += scnprintf(buf + len, sz - len, " %6d", txpwr[offs]);	\
  	len += scnprintf(buf + len, sz - len, "\n");				\
-@@ -994,43 +994,47 @@ mt7915_rate_txpower_get(struct file *file, char __user *user_buf,
+@@ -995,43 +995,47 @@ mt7915_rate_txpower_get(struct file *file, char __user *user_buf,
  	len += scnprintf(buf + len, sz - len,
  			 "\nPhy%d Tx power table (channel %d)\n",
  			 phy != &dev->phy, phy->mt76->chandef.chan->hw_value);
@@ -107,7 +107,7 @@
  	reg = is_mt7915(&dev->mt76) ? MT_WF_PHY_TPC_CTRL_STAT(band) :
  	      MT_WF_PHY_TPC_CTRL_STAT_MT7916(band);
 diff --git a/mt7915/main.c b/mt7915/main.c
-index e61041d0..1903db4f 100644
+index e61041d..1903db4 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -1080,6 +1080,7 @@ mt7915_set_antenna(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant)
diff --git a/recipes-wifi/linux-mt76/files/patches/0005-wifi-mt76-mt7915-Fixed-null-pointer-dereference-issu.patch b/recipes-wifi/linux-mt76/files/patches/0005-wifi-mt76-mt7915-Fixed-null-pointer-dereference-issu.patch
index 435e1b4..a30ec46 100644
--- a/recipes-wifi/linux-mt76/files/patches/0005-wifi-mt76-mt7915-Fixed-null-pointer-dereference-issu.patch
+++ b/recipes-wifi/linux-mt76/files/patches/0005-wifi-mt76-mt7915-Fixed-null-pointer-dereference-issu.patch
@@ -1,4 +1,4 @@
-From f5553a51be55e84e4920327a7a47fd0459079f19 Mon Sep 17 00:00:00 2001
+From d4b6226c74988932d9df8f1a6b5afbcea7effc38 Mon Sep 17 00:00:00 2001
 From: MeiChia Chiu <meichia.chiu@mediatek.com>
 Date: Thu, 26 Oct 2023 21:11:05 +0800
 Subject: [PATCH 05/14] wifi: mt76: mt7915: Fixed null pointer dereference
@@ -17,7 +17,7 @@
  1 file changed, 7 insertions(+)
 
 diff --git a/mt7915/main.c b/mt7915/main.c
-index 1903db4f..61a1dbb0 100644
+index 1903db4..61a1dbb 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -1170,9 +1170,16 @@ static void mt7915_sta_rc_update(struct ieee80211_hw *hw,
diff --git a/recipes-wifi/linux-mt76/files/patches/0006-wifi-mt76-ACS-channel-time-too-long-on-duty-channel.patch b/recipes-wifi/linux-mt76/files/patches/0006-wifi-mt76-ACS-channel-time-too-long-on-duty-channel.patch
index 4763769..114ee03 100644
--- a/recipes-wifi/linux-mt76/files/patches/0006-wifi-mt76-ACS-channel-time-too-long-on-duty-channel.patch
+++ b/recipes-wifi/linux-mt76/files/patches/0006-wifi-mt76-ACS-channel-time-too-long-on-duty-channel.patch
@@ -1,4 +1,4 @@
-From d1b51bf135c41c3773bd4cae5be59a4a9f6f9c67 Mon Sep 17 00:00:00 2001
+From dbc2448c773d6c2e8a36513a0c855ff0775f5ec4 Mon Sep 17 00:00:00 2001
 From: Evelyn Tsai <evelyn.tsai@mediatek.com>
 Date: Sat, 18 Nov 2023 07:36:45 +0800
 Subject: [PATCH 06/14] wifi: mt76: ACS channel time too long on duty channel
@@ -26,10 +26,10 @@
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/mac80211.c b/mac80211.c
-index b603d40c..6e8ac6f4 100644
+index e7b763b..bc20f60 100644
 --- a/mac80211.c
 +++ b/mac80211.c
-@@ -928,6 +928,7 @@ void mt76_set_channel(struct mt76_phy *phy)
+@@ -927,6 +927,7 @@ void mt76_set_channel(struct mt76_phy *phy)
  	struct cfg80211_chan_def *chandef = &hw->conf.chandef;
  	bool offchannel = hw->conf.flags & IEEE80211_CONF_OFFCHANNEL;
  	int timeout = HZ / 5;
@@ -37,7 +37,7 @@
  
  	wait_event_timeout(dev->tx_wait, !mt76_has_tx_pending(phy), timeout);
  	mt76_update_survey(phy);
-@@ -942,7 +943,7 @@ void mt76_set_channel(struct mt76_phy *phy)
+@@ -941,7 +942,7 @@ void mt76_set_channel(struct mt76_phy *phy)
  	if (!offchannel)
  		phy->main_chan = chandef->chan;
  
diff --git a/recipes-wifi/linux-mt76/files/patches/0007-wifi-mt76-mt7915-add-post-channel-switch-for-DFS-cha.patch b/recipes-wifi/linux-mt76/files/patches/0007-wifi-mt76-mt7915-add-post-channel-switch-for-DFS-cha.patch
index 593e1b6..1151bef 100644
--- a/recipes-wifi/linux-mt76/files/patches/0007-wifi-mt76-mt7915-add-post-channel-switch-for-DFS-cha.patch
+++ b/recipes-wifi/linux-mt76/files/patches/0007-wifi-mt76-mt7915-add-post-channel-switch-for-DFS-cha.patch
@@ -1,4 +1,4 @@
-From b77ddf219b289e76985dd4cd7795e75eda12c195 Mon Sep 17 00:00:00 2001
+From 72e729e50f4b162db845e988275b91db2d558ef1 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Thu, 16 Nov 2023 14:41:54 +0800
 Subject: [PATCH 07/14] wifi: mt76: mt7915: add post channel switch for DFS
@@ -10,7 +10,7 @@
  1 file changed, 22 insertions(+)
 
 diff --git a/mt7915/main.c b/mt7915/main.c
-index 61a1dbb0..71e0d55f 100644
+index 61a1dbb..71e0d55 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -736,6 +736,27 @@ mt7915_channel_switch_beacon(struct ieee80211_hw *hw,
diff --git a/recipes-wifi/linux-mt76/files/patches/0008-wifi-mt76-mt7915-add-support-for-realtime-Rx-rate-up.patch b/recipes-wifi/linux-mt76/files/patches/0008-wifi-mt76-mt7915-add-support-for-realtime-Rx-rate-up.patch
index 24c059b..c17f0f4 100644
--- a/recipes-wifi/linux-mt76/files/patches/0008-wifi-mt76-mt7915-add-support-for-realtime-Rx-rate-up.patch
+++ b/recipes-wifi/linux-mt76/files/patches/0008-wifi-mt76-mt7915-add-support-for-realtime-Rx-rate-up.patch
@@ -1,4 +1,4 @@
-From fa1147593b9426ed989e9b3db5275ea815feda4f Mon Sep 17 00:00:00 2001
+From 0e87f52e13e654b144c12e3aad968fbc3da5ac1b Mon Sep 17 00:00:00 2001
 From: "Henry.Yen" <henry.yen@mediatek.com>
 Date: Mon, 8 Jan 2024 17:19:01 +0800
 Subject: [PATCH 08/14] wifi: mt76: mt7915: add support for realtime Rx rate
@@ -19,10 +19,10 @@
  2 files changed, 7 insertions(+), 1 deletion(-)
 
 diff --git a/mt76_connac.h b/mt76_connac.h
-index 98d64d3d..1be41d66 100644
+index 91987bd..4871857 100644
 --- a/mt76_connac.h
 +++ b/mt76_connac.h
-@@ -255,6 +255,12 @@ static inline bool is_connac_v1(struct mt76_dev *dev)
+@@ -260,6 +260,12 @@ static inline bool is_connac_v1(struct mt76_dev *dev)
  	return is_mt7615(dev) || is_mt7663(dev) || is_mt7622(dev);
  }
  
@@ -36,7 +36,7 @@
  {
  	switch (mt76_chip(dev)) {
 diff --git a/mt7915/main.c b/mt7915/main.c
-index 71e0d55f..5d31f5af 100644
+index 71e0d55..5d31f5a 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -1118,7 +1118,7 @@ static void mt7915_sta_statistics(struct ieee80211_hw *hw,
diff --git a/recipes-wifi/linux-mt76/files/patches/0009-wifi-mt76-mt7915-remove-redundant-argument-in-add_be.patch b/recipes-wifi/linux-mt76/files/patches/0009-wifi-mt76-mt7915-remove-redundant-argument-in-add_be.patch
index c3b8086..2d608c6 100644
--- a/recipes-wifi/linux-mt76/files/patches/0009-wifi-mt76-mt7915-remove-redundant-argument-in-add_be.patch
+++ b/recipes-wifi/linux-mt76/files/patches/0009-wifi-mt76-mt7915-remove-redundant-argument-in-add_be.patch
@@ -1,4 +1,4 @@
-From 3209719d17e76d3e8c76e4cd5e44d1ad099b9b1a Mon Sep 17 00:00:00 2001
+From 995dd81673e89e6b387d256e26a0cf07e2ccb0e5 Mon Sep 17 00:00:00 2001
 From: MeiChia Chiu <MeiChia.Chiu@mediatek.com>
 Date: Wed, 24 Jan 2024 15:04:33 +0800
 Subject: [PATCH 09/14] wifi: mt76: mt7915: remove redundant argument in
@@ -15,7 +15,7 @@
  4 files changed, 5 insertions(+), 7 deletions(-)
 
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index 0f6b8067..ada3a7f4 100644
+index 0f6b806..ada3a7f 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -1285,8 +1285,7 @@ mt7915_update_vif_beacon(void *priv, u8 *mac, struct ieee80211_vif *vif)
@@ -29,7 +29,7 @@
  	default:
  		break;
 diff --git a/mt7915/main.c b/mt7915/main.c
-index 5d31f5af..9eeca394 100644
+index 5d31f5a..9eeca39 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -659,7 +659,7 @@ static void mt7915_bss_info_changed(struct ieee80211_hw *hw,
@@ -51,7 +51,7 @@
  }
  
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 6e9970c3..84ffe07c 100644
+index 6e9970c..84ffe07 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -1970,8 +1970,7 @@ mt7915_mcu_add_inband_discov(struct mt7915_dev *dev, struct ieee80211_vif *vif,
@@ -65,7 +65,7 @@
  	struct mt7915_dev *dev = mt7915_hw_dev(hw);
  	struct mt7915_phy *phy = mt7915_hw_phy(hw);
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 5cd2b334..e1801d5b 100644
+index 5cd2b33..e1801d5 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -461,7 +461,7 @@ int mt7915_mcu_update_bss_color(struct mt7915_dev *dev, struct ieee80211_vif *vi
diff --git a/recipes-wifi/linux-mt76/files/patches/0010-wifi-mt76-mt7915-add-support-for-WMM-PBC-configurati.patch b/recipes-wifi/linux-mt76/files/patches/0010-wifi-mt76-mt7915-add-support-for-WMM-PBC-configurati.patch
index 29d36da..b4c6179 100644
--- a/recipes-wifi/linux-mt76/files/patches/0010-wifi-mt76-mt7915-add-support-for-WMM-PBC-configurati.patch
+++ b/recipes-wifi/linux-mt76/files/patches/0010-wifi-mt76-mt7915-add-support-for-WMM-PBC-configurati.patch
@@ -1,4 +1,4 @@
-From 7742ed6bdf7ee5aa8c3b9a57a346f2c4b0e51f2d Mon Sep 17 00:00:00 2001
+From 9c7177584089b98089142568514af4b23e0d4e72 Mon Sep 17 00:00:00 2001
 From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
 Date: Mon, 29 Jan 2024 11:28:41 +0800
 Subject: [PATCH 10/14] wifi: mt76: mt7915: add support for WMM PBC
@@ -14,10 +14,10 @@
  6 files changed, 127 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 2a4aa796..8d516e40 100644
+index 67be14d..1dd8244 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1018,6 +1018,7 @@ enum {
+@@ -1025,6 +1025,7 @@ enum {
  	MCU_EXT_EVENT_ASSERT_DUMP = 0x23,
  	MCU_EXT_EVENT_RDD_REPORT = 0x3a,
  	MCU_EXT_EVENT_CSA_NOTIFY = 0x4f,
@@ -25,16 +25,16 @@
  	MCU_EXT_EVENT_WA_TX_STAT = 0x74,
  	MCU_EXT_EVENT_BCC_NOTIFY = 0x75,
  	MCU_EXT_EVENT_MURU_CTRL = 0x9f,
-@@ -1213,6 +1214,7 @@ enum {
+@@ -1220,6 +1221,7 @@ enum {
  	MCU_EXT_CMD_TXDPD_CAL = 0x60,
  	MCU_EXT_CMD_CAL_CACHE = 0x67,
  	MCU_EXT_CMD_RED_ENABLE = 0x68,
 +	MCU_EXT_CMD_PKT_BUDGET_CTRL = 0x6c,
+ 	MCU_EXT_CMD_CP_SUPPORT = 0x75,
  	MCU_EXT_CMD_SET_RADAR_TH = 0x7c,
  	MCU_EXT_CMD_SET_RDD_PATTERN = 0x7d,
- 	MCU_EXT_CMD_MWDS_SUPPORT = 0x80,
 diff --git a/mt7915/init.c b/mt7915/init.c
-index 911ecdd3..4f1e6e71 100644
+index 9fe0524..f81a2f2 100644
 --- a/mt7915/init.c
 +++ b/mt7915/init.c
 @@ -1221,6 +1221,8 @@ int mt7915_register_device(struct mt7915_dev *dev)
@@ -47,7 +47,7 @@
  
  	phy2 = mt7915_alloc_ext_phy(dev);
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index ada3a7f4..e167e7b6 100644
+index ada3a7f..e167e7b 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -2032,6 +2032,8 @@ void mt7915_mac_work(struct work_struct *work)
@@ -79,7 +79,7 @@
  
  	if (++phy->stats_work_count == 10) {
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 84ffe07c..446c512b 100644
+index 84ffe07..446c512 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -354,6 +354,93 @@ mt7915_mcu_rx_bcc_notify(struct mt7915_dev *dev, struct sk_buff *skb)
@@ -187,7 +187,7 @@
  		break;
  	}
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index 8f365461..fa0847d5 100644
+index 8f36546..fa0847d 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -329,10 +329,25 @@ enum {
@@ -217,7 +217,7 @@
  };
  
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index e1801d5b..89156f35 100644
+index e1801d5..89156f3 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -326,6 +326,9 @@ struct mt7915_dev {
diff --git a/recipes-wifi/linux-mt76/files/patches/0011-wifi-mt76-fix-tx-statistics-about-tx-retry-and-tx-fa.patch b/recipes-wifi/linux-mt76/files/patches/0011-wifi-mt76-fix-tx-statistics-about-tx-retry-and-tx-fa.patch
index 77c82fb..04b3332 100644
--- a/recipes-wifi/linux-mt76/files/patches/0011-wifi-mt76-fix-tx-statistics-about-tx-retry-and-tx-fa.patch
+++ b/recipes-wifi/linux-mt76/files/patches/0011-wifi-mt76-fix-tx-statistics-about-tx-retry-and-tx-fa.patch
@@ -1,4 +1,4 @@
-From 9c9741829ac9bbf43e11b3c033ce9bf82b7ed1ad Mon Sep 17 00:00:00 2001
+From 3bbf19ff34cd0d7ef3371b49101bbcaf9d068668 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Mon, 29 Jan 2024 11:02:06 +0800
 Subject: [PATCH 11/14] wifi: mt76: fix tx statistics about tx retry and tx
@@ -13,7 +13,7 @@
  2 files changed, 1 insertion(+), 4 deletions(-)
 
 diff --git a/mt76_connac_mac.c b/mt76_connac_mac.c
-index b841bf62..630c6402 100644
+index b841bf6..630c640 100644
 --- a/mt76_connac_mac.c
 +++ b/mt76_connac_mac.c
 @@ -716,9 +716,6 @@ bool mt76_connac2_mac_add_txs_skb(struct mt76_dev *dev, struct mt76_wcid *wcid,
@@ -27,7 +27,7 @@
  	skb = mt76_tx_status_skb_get(dev, wcid, pid, &list);
  	if (skb) {
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index e167e7b6..a5d0b096 100644
+index e167e7b..a5d0b09 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -1021,7 +1021,7 @@ static void mt7915_mac_add_txs(struct mt7915_dev *dev, void *data)
diff --git a/recipes-wifi/linux-mt76/files/patches/0012-wifi-mt76-add-sanity-check-to-prevent-kernel-crash.patch b/recipes-wifi/linux-mt76/files/patches/0012-wifi-mt76-add-sanity-check-to-prevent-kernel-crash.patch
index cebcb18..034e354 100644
--- a/recipes-wifi/linux-mt76/files/patches/0012-wifi-mt76-add-sanity-check-to-prevent-kernel-crash.patch
+++ b/recipes-wifi/linux-mt76/files/patches/0012-wifi-mt76-add-sanity-check-to-prevent-kernel-crash.patch
@@ -1,4 +1,4 @@
-From 8c5ba6c32357e4de7183db027141167555856996 Mon Sep 17 00:00:00 2001
+From fa15f886fd427e2de3e09ef5c93743e611483adf Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Mon, 29 Jan 2024 15:33:24 +0800
 Subject: [PATCH 12/14] wifi: mt76: add sanity check to prevent kernel crash
@@ -12,7 +12,7 @@
  1 file changed, 8 insertions(+)
 
 diff --git a/tx.c b/tx.c
-index 5cf6edee..ab42f69b 100644
+index 5cf6ede..ab42f69 100644
 --- a/tx.c
 +++ b/tx.c
 @@ -345,6 +345,14 @@ mt76_tx(struct mt76_phy *phy, struct ieee80211_sta *sta,
diff --git a/recipes-wifi/linux-mt76/files/patches/0013-wifi-mt76-mt7915-limit-per-band-token-count.patch b/recipes-wifi/linux-mt76/files/patches/0013-wifi-mt76-mt7915-limit-per-band-token-count.patch
index 64dcad9..04f4bae 100644
--- a/recipes-wifi/linux-mt76/files/patches/0013-wifi-mt76-mt7915-limit-per-band-token-count.patch
+++ b/recipes-wifi/linux-mt76/files/patches/0013-wifi-mt76-mt7915-limit-per-band-token-count.patch
@@ -1,4 +1,4 @@
-From 0c5bff805c1692b90a8f5935876b76dff903f8c4 Mon Sep 17 00:00:00 2001
+From 6c1136f7cdafe9cd4a6517afa60227f5ffa86b0a Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Mon, 29 Jan 2024 15:33:24 +0800
 Subject: [PATCH 13/14] wifi: mt76: mt7915: limit per-band token count
@@ -19,10 +19,10 @@
  8 files changed, 39 insertions(+), 7 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
-index 52a20868..9ad4f8e1 100644
+index ee14425..b83456b 100644
 --- a/mt76.h
 +++ b/mt76.h
-@@ -402,6 +402,8 @@ struct mt76_txwi_cache {
+@@ -407,6 +407,8 @@ struct mt76_txwi_cache {
  	struct list_head list;
  	dma_addr_t dma_addr;
  
@@ -31,7 +31,7 @@
  	union {
  		struct sk_buff *skb;
  		void *ptr;
-@@ -814,6 +816,7 @@ struct mt76_phy {
+@@ -819,6 +821,7 @@ struct mt76_phy {
  		bool al;
  		u8 pin;
  	} leds;
@@ -39,7 +39,7 @@
  };
  
  struct mt76_dev {
-@@ -867,6 +870,8 @@ struct mt76_dev {
+@@ -872,6 +875,8 @@ struct mt76_dev {
  	u16 wed_token_count;
  	u16 token_count;
  	u16 token_size;
@@ -48,7 +48,7 @@
  
  	spinlock_t rx_token_lock;
  	struct idr rx_token;
-@@ -1657,7 +1662,8 @@ static inline bool mt76_queue_is_wed_rx(struct mt76_queue *q)
+@@ -1662,7 +1667,8 @@ static inline bool mt76_queue_is_wed_rx(struct mt76_queue *q)
  
  struct mt76_txwi_cache *
  mt76_token_release(struct mt76_dev *dev, int token, bool *wake);
@@ -59,7 +59,7 @@
  struct mt76_txwi_cache *mt76_rx_token_release(struct mt76_dev *dev, int token);
  int mt76_rx_token_consume(struct mt76_dev *dev, void *ptr,
 diff --git a/mt7915/init.c b/mt7915/init.c
-index 4f1e6e71..d6bcc6f5 100644
+index f81a2f2..3ec9eab 100644
 --- a/mt7915/init.c
 +++ b/mt7915/init.c
 @@ -1225,6 +1225,8 @@ int mt7915_register_device(struct mt7915_dev *dev)
@@ -80,7 +80,7 @@
  	ret = mt7915_init_debugfs(&dev->phy);
  	if (ret)
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index a5d0b096..4604a682 100644
+index a5d0b09..4604a68 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -738,6 +738,7 @@ int mt7915_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
@@ -101,7 +101,7 @@
  		return id;
  
 diff --git a/mt7921/pci_mac.c b/mt7921/pci_mac.c
-index c866144f..3282507a 100644
+index 031ba9a..4c69c55 100644
 --- a/mt7921/pci_mac.c
 +++ b/mt7921/pci_mac.c
 @@ -27,7 +27,7 @@ int mt7921e_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
@@ -114,7 +114,7 @@
  		return id;
  
 diff --git a/mt7925/pci_mac.c b/mt7925/pci_mac.c
-index 9fca8879..f1d615c0 100644
+index 9fca887..f1d615c 100644
 --- a/mt7925/pci_mac.c
 +++ b/mt7925/pci_mac.c
 @@ -27,7 +27,7 @@ int mt7925e_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
@@ -127,7 +127,7 @@
  		return id;
  
 diff --git a/mt7996/init.c b/mt7996/init.c
-index 9aa97e4a..7549a108 100644
+index 9aa97e4..7549a10 100644
 --- a/mt7996/init.c
 +++ b/mt7996/init.c
 @@ -634,6 +634,8 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
@@ -157,7 +157,7 @@
  	if (ret)
  		goto error;
 diff --git a/mt7996/mac.c b/mt7996/mac.c
-index bc7111a7..aa19120b 100644
+index bc7111a..aa19120 100644
 --- a/mt7996/mac.c
 +++ b/mt7996/mac.c
 @@ -922,6 +922,7 @@ int mt7996_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
@@ -178,7 +178,7 @@
  		return id;
  
 diff --git a/tx.c b/tx.c
-index ab42f69b..0fdf7d83 100644
+index ab42f69..0fdf7d8 100644
 --- a/tx.c
 +++ b/tx.c
 @@ -825,16 +825,30 @@ void __mt76_set_tx_blocked(struct mt76_dev *dev, bool blocked)
diff --git a/recipes-wifi/linux-mt76/files/patches/0014-wifi-mt76-mt7915-update-power-on-sequence.patch b/recipes-wifi/linux-mt76/files/patches/0014-wifi-mt76-mt7915-update-power-on-sequence.patch
index 6aecbc3..4c2f703 100644
--- a/recipes-wifi/linux-mt76/files/patches/0014-wifi-mt76-mt7915-update-power-on-sequence.patch
+++ b/recipes-wifi/linux-mt76/files/patches/0014-wifi-mt76-mt7915-update-power-on-sequence.patch
@@ -1,4 +1,4 @@
-From 824415d99868fb03533e0575555c4b4a7a41bd76 Mon Sep 17 00:00:00 2001
+From c3b0d9d6116df31a11d18e42e7227bf516c104f9 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Thu, 14 Mar 2024 17:55:12 +0800
 Subject: [PATCH 14/14] wifi: mt76: mt7915: update power on sequence
@@ -13,7 +13,7 @@
  3 files changed, 48 insertions(+), 2 deletions(-)
 
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 89156f35..74cd8caf 100644
+index 89156f3..74cd8ca 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -329,6 +329,7 @@ struct mt7915_dev {
@@ -25,7 +25,7 @@
  
  enum {
 diff --git a/mt7915/regs.h b/mt7915/regs.h
-index 7515b23f..3452a7e9 100644
+index 7515b23..3452a7e 100644
 --- a/mt7915/regs.h
 +++ b/mt7915/regs.h
 @@ -775,6 +775,7 @@ enum offs_rev {
@@ -45,10 +45,10 @@
  /* ADIE */
  #define MT_ADIE_CHIP_ID			0x02c
 diff --git a/mt7915/soc.c b/mt7915/soc.c
-index b2916b02..210b4f16 100644
+index 92d8d71..bb3468a 100644
 --- a/mt7915/soc.c
 +++ b/mt7915/soc.c
-@@ -261,6 +261,7 @@ static int mt7986_wmac_consys_lockup(struct mt7915_dev *dev, bool enable)
+@@ -260,6 +260,7 @@ static int mt7986_wmac_consys_lockup(struct mt7915_dev *dev, bool enable)
  		      MT_INFRACFG_TX_EN_MASK,
  		      FIELD_PREP(MT_INFRACFG_TX_EN_MASK, enable));
  
@@ -56,7 +56,7 @@
  	return 0;
  }
  
-@@ -845,6 +846,10 @@ static void mt7986_wmac_subsys_setting(struct mt7915_dev *dev)
+@@ -844,6 +845,10 @@ static void mt7986_wmac_subsys_setting(struct mt7915_dev *dev)
  		 MT_CONN_INFRA_OSC_STB_TIME_MASK, 0x80706);
  
  	/* prevent subsys from power on/of in a short time interval */
@@ -67,7 +67,7 @@
  	mt76_rmw(dev, MT_TOP_WFSYS_PWR,
  		 MT_TOP_PWR_ACK_MASK | MT_TOP_PWR_KEY_MASK,
  		 MT_TOP_PWR_KEY);
-@@ -915,7 +920,7 @@ static void mt7986_wmac_clock_enable(struct mt7915_dev *dev, u32 adie_type)
+@@ -914,7 +919,7 @@ static void mt7986_wmac_clock_enable(struct mt7915_dev *dev, u32 adie_type)
  
  		read_poll_timeout(mt76_rr, cur, !(cur & MT_SLP_CTRL_BSY_MASK),
  				  USEC_PER_MSEC, 50 * USEC_PER_MSEC, false,
@@ -76,7 +76,7 @@
  	}
  	mt76_wmac_spi_unlock(dev);
  
-@@ -1155,12 +1160,14 @@ int mt7986_wmac_enable(struct mt7915_dev *dev)
+@@ -1154,12 +1159,14 @@ int mt7986_wmac_enable(struct mt7915_dev *dev)
  	if (ret)
  		return ret;
  
@@ -92,7 +92,7 @@
  
  	mt7986_wmac_top_wfsys_wakeup(dev, true);
  
-@@ -1179,6 +1186,20 @@ void mt7986_wmac_disable(struct mt7915_dev *dev)
+@@ -1178,6 +1185,20 @@ void mt7986_wmac_disable(struct mt7915_dev *dev)
  	mt76_rmw_field(dev, MT_AFE_DIG_EN_02(0), MT_AFE_MCU_BPLL_CFG_MASK, 0x2);
  	mt76_rmw_field(dev, MT_AFE_DIG_EN_02(0), MT_AFE_WPLL_CFG_MASK, 0x2);
  
@@ -113,7 +113,7 @@
  	/* Reset EMI */
  	mt76_rmw_field(dev, MT_CONN_INFRA_EMI_REQ,
  		       MT_CONN_INFRA_EMI_REQ_MASK, 0x1);
-@@ -1190,6 +1211,28 @@ void mt7986_wmac_disable(struct mt7915_dev *dev)
+@@ -1189,6 +1210,28 @@ void mt7986_wmac_disable(struct mt7915_dev *dev)
  		       MT_CONN_INFRA_INFRA_REQ_MASK, 0x0);
  
  	mt7986_wmac_top_wfsys_wakeup(dev, false);
diff --git a/recipes-wifi/linux-mt76/files/patches/0999-wifi-mt76-mt7915-build-pass-for-Linux-Kernel-5.4-fix.patch b/recipes-wifi/linux-mt76/files/patches/0999-wifi-mt76-mt7915-build-pass-for-Linux-Kernel-5.4-fix.patch
index 848c547..60b0e2d 100644
--- a/recipes-wifi/linux-mt76/files/patches/0999-wifi-mt76-mt7915-build-pass-for-Linux-Kernel-5.4-fix.patch
+++ b/recipes-wifi/linux-mt76/files/patches/0999-wifi-mt76-mt7915-build-pass-for-Linux-Kernel-5.4-fix.patch
@@ -1,7 +1,7 @@
-From f78b88037989c5a1d41e26c1d966166554dd605e Mon Sep 17 00:00:00 2001
+From 4300f1a6eb91cc3291d73e415ae32cbd120f6bc6 Mon Sep 17 00:00:00 2001
 From: Evelyn Tsai <evelyn.tsai@mediatek.com>
 Date: Sat, 1 Apr 2023 08:18:17 +0800
-Subject: [PATCH 0999/1051] wifi: mt76: mt7915: build pass for Linux Kernel 5.4
+Subject: [PATCH 0999/1053] wifi: mt76: mt7915: build pass for Linux Kernel 5.4
  fixes
 
 ---
@@ -9,9 +9,9 @@
  dma.c             | 73 ++++++++++++++++++++++++-----------------------
  dma.h             |  3 +-
  eeprom.c          |  8 +++++-
- mac80211.c        | 57 ------------------------------------
+ mac80211.c        | 56 ------------------------------------
  mcu.c             |  1 +
- mt76.h            | 22 +-------------
+ mt76.h            | 27 +-----------------
  mt7615/mcu.c      |  1 +
  mt76_connac.h     |  2 --
  mt76_connac_mcu.c | 47 +-----------------------------
@@ -20,10 +20,10 @@
  mt7915/mcu.c      |  1 +
  usb.c             | 43 ++++++++++++++--------------
  wed.c             | 62 +++++++++++++++++++++++++---------------
- 15 files changed, 123 insertions(+), 228 deletions(-)
+ 15 files changed, 123 insertions(+), 232 deletions(-)
 
 diff --git a/debugfs.c b/debugfs.c
-index c4649ba0..1c8328d5 100644
+index c4649ba..1c8328d 100644
 --- a/debugfs.c
 +++ b/debugfs.c
 @@ -33,8 +33,10 @@ mt76_napi_threaded_set(void *data, u64 val)
@@ -38,7 +38,7 @@
  	return 0;
  }
 diff --git a/dma.c b/dma.c
-index f4f88c44..ccdd5646 100644
+index f4f88c4..ccdd564 100644
 --- a/dma.c
 +++ b/dma.c
 @@ -178,7 +178,7 @@ mt76_free_pending_rxwi(struct mt76_dev *dev)
@@ -240,7 +240,7 @@
  
  	if (mtk_wed_device_active(&dev->mmio.wed))
 diff --git a/dma.h b/dma.h
-index 1de5a2b2..619dc0fe 100644
+index 1de5a2b..619dc0f 100644
 --- a/dma.h
 +++ b/dma.h
 @@ -79,8 +79,7 @@ enum mt76_dma_wed_ind_reason {
@@ -254,7 +254,7 @@
  			    bool reset_idx);
  void mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q);
 diff --git a/eeprom.c b/eeprom.c
-index ecd09c03..a2673978 100644
+index ecd09c0..a267397 100644
 --- a/eeprom.c
 +++ b/eeprom.c
 @@ -163,9 +163,15 @@ void
@@ -275,18 +275,10 @@
  	if (!is_valid_ether_addr(phy->macaddr)) {
  		eth_random_addr(phy->macaddr);
 diff --git a/mac80211.c b/mac80211.c
-index 6e8ac6f4..b30a74e8 100644
+index bc20f60..b30a74e 100644
 --- a/mac80211.c
 +++ b/mac80211.c
-@@ -4,7 +4,6 @@
-  */
- #include <linux/sched.h>
- #include <linux/of.h>
--#include <net/page_pool.h>
- #include "mt76.h"
- 
- #define CHAN2G(_idx, _freq) {			\
-@@ -578,47 +577,6 @@ void mt76_unregister_phy(struct mt76_phy *phy)
+@@ -577,47 +577,6 @@ void mt76_unregister_phy(struct mt76_phy *phy)
  }
  EXPORT_SYMBOL_GPL(mt76_unregister_phy);
  
@@ -334,7 +326,7 @@
  struct mt76_dev *
  mt76_alloc_device(struct device *pdev, unsigned int size,
  		  const struct ieee80211_ops *ops,
-@@ -1818,21 +1776,6 @@ void mt76_ethtool_worker(struct mt76_ethtool_worker_info *wi,
+@@ -1817,21 +1776,6 @@ void mt76_ethtool_worker(struct mt76_ethtool_worker_info *wi,
  }
  EXPORT_SYMBOL_GPL(mt76_ethtool_worker);
  
@@ -357,7 +349,7 @@
  {
  	struct ieee80211_hw *hw = phy->hw;
 diff --git a/mcu.c b/mcu.c
-index a8cafa39..fa4b0544 100644
+index a8cafa3..fa4b054 100644
 --- a/mcu.c
 +++ b/mcu.c
 @@ -4,6 +4,7 @@
@@ -369,10 +361,22 @@
  struct sk_buff *
  __mt76_mcu_msg_alloc(struct mt76_dev *dev, const void *data,
 diff --git a/mt76.h b/mt76.h
-index 9ad4f8e1..a07c7df9 100644
+index b83456b..a07c7df 100644
 --- a/mt76.h
 +++ b/mt76.h
-@@ -233,7 +233,7 @@ struct mt76_queue {
+@@ -15,11 +15,6 @@
+ #include <linux/average.h>
+ #include <linux/soc/mediatek/mtk_wed.h>
+ #include <net/mac80211.h>
+-#if LINUX_VERSION_CODE < KERNEL_VERSION(6,6,0)
+-#include <net/page_pool.h>
+-#else
+-#include <net/page_pool/helpers.h>
+-#endif
+ #include "util.h"
+ #include "testmode.h"
+ 
+@@ -238,7 +233,7 @@ struct mt76_queue {
  
  	dma_addr_t desc_dma;
  	struct sk_buff *rx_head;
@@ -381,7 +385,7 @@
  };
  
  struct mt76_mcu_ops {
-@@ -1522,7 +1522,6 @@ mt76u_bulk_msg(struct mt76_dev *dev, void *data, int len, int *actual_len,
+@@ -1527,7 +1522,6 @@ mt76u_bulk_msg(struct mt76_dev *dev, void *data, int len, int *actual_len,
  	return usb_bulk_msg(udev, pipe, data, len, actual_len, timeout);
  }
  
@@ -389,7 +393,7 @@
  void mt76_ethtool_worker(struct mt76_ethtool_worker_info *wi,
  			 struct mt76_sta_stats *stats, bool eht);
  int mt76_skb_adjust_pad(struct sk_buff *skb, int pad);
-@@ -1668,25 +1667,6 @@ void __mt76_set_tx_blocked(struct mt76_dev *dev, bool blocked);
+@@ -1673,25 +1667,6 @@ void __mt76_set_tx_blocked(struct mt76_dev *dev, bool blocked);
  struct mt76_txwi_cache *mt76_rx_token_release(struct mt76_dev *dev, int token);
  int mt76_rx_token_consume(struct mt76_dev *dev, void *ptr,
  			  struct mt76_txwi_cache *r, dma_addr_t phys);
@@ -416,7 +420,7 @@
  static inline void mt76_set_tx_blocked(struct mt76_dev *dev, bool blocked)
  {
 diff --git a/mt7615/mcu.c b/mt7615/mcu.c
-index ae34d019..c9444c6d 100644
+index ae34d01..c9444c6 100644
 --- a/mt7615/mcu.c
 +++ b/mt7615/mcu.c
 @@ -10,6 +10,7 @@
@@ -428,7 +432,7 @@
  static bool prefer_offload_fw = true;
  module_param(prefer_offload_fw, bool, 0644);
 diff --git a/mt76_connac.h b/mt76_connac.h
-index 1be41d66..e23a41cb 100644
+index 4871857..8e7068c 100644
 --- a/mt76_connac.h
 +++ b/mt76_connac.h
 @@ -56,7 +56,6 @@ enum {
@@ -439,7 +443,7 @@
  
  	CMD_HE_MCS_BW80 = 0,
  	CMD_HE_MCS_BW160,
-@@ -286,7 +285,6 @@ static inline u8 mt76_connac_chan_bw(struct cfg80211_chan_def *chandef)
+@@ -292,7 +291,6 @@ static inline u8 mt76_connac_chan_bw(struct cfg80211_chan_def *chandef)
  		[NL80211_CHAN_WIDTH_10] = CMD_CBW_10MHZ,
  		[NL80211_CHAN_WIDTH_20] = CMD_CBW_20MHZ,
  		[NL80211_CHAN_WIDTH_20_NOHT] = CMD_CBW_20MHZ,
@@ -448,7 +452,7 @@
  
  	if (chandef->width >= ARRAY_SIZE(width_to_bw))
 diff --git a/mt76_connac_mcu.c b/mt76_connac_mcu.c
-index 4be806e2..3433adb2 100644
+index 1ea9798..a8f097d 100644
 --- a/mt76_connac_mcu.c
 +++ b/mt76_connac_mcu.c
 @@ -4,6 +4,7 @@
@@ -459,7 +463,7 @@
  
  int mt76_connac_mcu_start_firmware(struct mt76_dev *dev, u32 addr, u32 option)
  {
-@@ -1350,40 +1351,6 @@ u8 mt76_connac_get_phy_mode(struct mt76_phy *phy, struct ieee80211_vif *vif,
+@@ -1357,40 +1358,6 @@ u8 mt76_connac_get_phy_mode(struct mt76_phy *phy, struct ieee80211_vif *vif,
  }
  EXPORT_SYMBOL_GPL(mt76_connac_get_phy_mode);
  
@@ -500,7 +504,7 @@
  const struct ieee80211_sta_he_cap *
  mt76_connac_get_he_phy_cap(struct mt76_phy *phy, struct ieee80211_vif *vif)
  {
-@@ -1399,18 +1366,6 @@ mt76_connac_get_he_phy_cap(struct mt76_phy *phy, struct ieee80211_vif *vif)
+@@ -1406,18 +1373,6 @@ mt76_connac_get_he_phy_cap(struct mt76_phy *phy, struct ieee80211_vif *vif)
  }
  EXPORT_SYMBOL_GPL(mt76_connac_get_he_phy_cap);
  
@@ -520,10 +524,10 @@
  #define DEFAULT_HE_DURATION_RTS_THRES	1023
  static void
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 8d516e40..ea71d533 100644
+index 1dd8244..61ca241 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1976,12 +1976,8 @@ void mt76_connac_mcu_reg_wr(struct mt76_dev *dev, u32 offset, u32 val);
+@@ -1984,12 +1984,8 @@ void mt76_connac_mcu_reg_wr(struct mt76_dev *dev, u32 offset, u32 val);
  
  const struct ieee80211_sta_he_cap *
  mt76_connac_get_he_phy_cap(struct mt76_phy *phy, struct ieee80211_vif *vif);
@@ -537,7 +541,7 @@
  int mt76_connac_mcu_add_key(struct mt76_dev *dev, struct ieee80211_vif *vif,
  			    struct mt76_connac_sta_key_conf *sta_key_conf,
 diff --git a/mt7915/main.c b/mt7915/main.c
-index 9eeca394..407da078 100644
+index 9eeca39..407da07 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -1438,22 +1438,20 @@ void mt7915_get_et_strings(struct ieee80211_hw *hw,
@@ -595,7 +599,7 @@
  
  static void
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 446c512b..8f6bc6e6 100644
+index 446c512..8f6bc6e 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -6,6 +6,7 @@
@@ -607,7 +611,7 @@
  #define fw_name(_dev, name, ...)	({			\
  	char *_fw;						\
 diff --git a/usb.c b/usb.c
-index dc690d1c..058f2d12 100644
+index dc690d1..058f2d1 100644
 --- a/usb.c
 +++ b/usb.c
 @@ -319,27 +319,29 @@ mt76u_set_endpoints(struct usb_interface *intf,
@@ -741,7 +745,7 @@
  
  static void mt76u_free_rx(struct mt76_dev *dev)
 diff --git a/wed.c b/wed.c
-index f89e4537..f7a3f1b3 100644
+index f89e453..f7a3f1b 100644
 --- a/wed.c
 +++ b/wed.c
 @@ -9,8 +9,12 @@
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 fed3103..22f88f4 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,7 +1,7 @@
-From b131fb83dc9f08152409560dd44fbaf0ad444341 Mon Sep 17 00:00:00 2001
+From 9cbf64d8b75c4d6f988ac10f8654b640bec98320 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 1000/1051] wifi: mt76: mt7915: add mtk internal debug tools
+Subject: [PATCH 1000/1053] wifi: mt76: mt7915: add mtk internal debug tools
  for mt76
 
 ---
@@ -24,10 +24,10 @@
  create mode 100644 mt7915/mtk_mcu.c
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index ea71d533..ae5bbc03 100644
+index 61ca241..ac524fe 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1188,6 +1188,7 @@ enum {
+@@ -1195,6 +1195,7 @@ enum {
  	MCU_EXT_CMD_SET_TX_POWER_CTRL = 0x11,
  	MCU_EXT_CMD_FW_LOG_2_HOST = 0x13,
  	MCU_EXT_CMD_TXBF_ACTION = 0x1e,
@@ -35,7 +35,7 @@
  	MCU_EXT_CMD_EFUSE_BUFFER_MODE = 0x21,
  	MCU_EXT_CMD_THERMAL_PROT = 0x23,
  	MCU_EXT_CMD_STA_REC_UPDATE = 0x25,
-@@ -1211,6 +1212,11 @@ enum {
+@@ -1218,6 +1219,11 @@ enum {
  	MCU_EXT_CMD_TX_POWER_FEATURE_CTRL = 0x58,
  	MCU_EXT_CMD_RXDCOC_CAL = 0x59,
  	MCU_EXT_CMD_GET_MIB_INFO = 0x5a,
@@ -48,7 +48,7 @@
  	MCU_EXT_CMD_CAL_CACHE = 0x67,
  	MCU_EXT_CMD_RED_ENABLE = 0x68,
 diff --git a/mt7915/Makefile b/mt7915/Makefile
-index c4dca9c1..fd711416 100644
+index c4dca9c..fd71141 100644
 --- a/mt7915/Makefile
 +++ b/mt7915/Makefile
 @@ -4,7 +4,7 @@ EXTRA_CFLAGS += -DCONFIG_MT76_LEDS
@@ -61,7 +61,7 @@
  mt7915e-$(CONFIG_NL80211_TESTMODE) += testmode.o
  mt7915e-$(CONFIG_MT798X_WMAC) += soc.o
 diff --git a/mt7915/debugfs.c b/mt7915/debugfs.c
-index 93e549c3..f1813776 100644
+index 894e2cd..2661386 100644
 --- a/mt7915/debugfs.c
 +++ b/mt7915/debugfs.c
 @@ -8,6 +8,9 @@
@@ -94,7 +94,7 @@
  
  	/* WM CPU info record control */
  	mt76_clear(dev, MT_CPU_UTIL_CTRL, BIT(0));
-@@ -527,6 +536,12 @@ mt7915_fw_debug_wm_set(void *data, u64 val)
+@@ -528,6 +537,12 @@ mt7915_fw_debug_wm_set(void *data, u64 val)
  	mt76_wr(dev, MT_MCU_WM_CIRQ_IRQ_MASK_CLR_ADDR, BIT(5));
  	mt76_wr(dev, MT_MCU_WM_CIRQ_IRQ_SOFT_ADDR, BIT(5));
  
@@ -107,7 +107,7 @@
  out:
  	if (ret)
  		dev->fw.debug_wm = 0;
-@@ -539,7 +554,11 @@ mt7915_fw_debug_wm_get(void *data, u64 *val)
+@@ -540,7 +555,11 @@ mt7915_fw_debug_wm_get(void *data, u64 *val)
  {
  	struct mt7915_dev *dev = data;
  
@@ -120,7 +120,7 @@
  
  	return 0;
  }
-@@ -614,16 +633,30 @@ mt7915_fw_debug_bin_set(void *data, u64 val)
+@@ -615,16 +634,30 @@ mt7915_fw_debug_bin_set(void *data, u64 val)
  	};
  	struct mt7915_dev *dev = data;
  
@@ -154,7 +154,7 @@
  	return mt7915_fw_debug_wm_set(dev, dev->fw.debug_wm);
  }
  
-@@ -1253,6 +1286,11 @@ int mt7915_init_debugfs(struct mt7915_phy *phy)
+@@ -1254,6 +1287,11 @@ int mt7915_init_debugfs(struct mt7915_phy *phy)
  	if (!ext_phy)
  		dev->debugfs_dir = dir;
  
@@ -166,7 +166,7 @@
  	return 0;
  }
  
-@@ -1265,6 +1303,12 @@ mt7915_debugfs_write_fwlog(struct mt7915_dev *dev, const void *hdr, int hdrlen,
+@@ -1266,6 +1304,12 @@ mt7915_debugfs_write_fwlog(struct mt7915_dev *dev, const void *hdr, int hdrlen,
  	void *dest;
  
  	spin_lock_irqsave(&lock, flags);
@@ -179,7 +179,7 @@
  	dest = relay_reserve(dev->relay_fwlog, hdrlen + len + 4);
  	if (dest) {
  		*(u32 *)dest = hdrlen + len;
-@@ -1293,17 +1337,50 @@ void mt7915_debugfs_rx_fw_monitor(struct mt7915_dev *dev, const void *data, int
+@@ -1294,17 +1338,50 @@ void mt7915_debugfs_rx_fw_monitor(struct mt7915_dev *dev, const void *data, int
  		.msg_type = cpu_to_le16(PKT_TYPE_RX_FW_MONITOR),
  	};
  
@@ -233,7 +233,7 @@
  
  	if (dev->relay_fwlog)
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index 4604a682..d99864f0 100644
+index 4604a68..d99864f 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 +272,7 @@
  }
  
 diff --git a/mt7915/main.c b/mt7915/main.c
-index 407da078..e7166c6c 100644
+index 407da07..e7166c6 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -73,7 +73,11 @@ int mt7915_run(struct ieee80211_hw *hw)
@@ -296,7 +296,7 @@
  	mt7915_mac_wtbl_update(dev, idx,
  			       MT_WTBL_UPDATE_ADM_COUNT_CLEAR);
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 8f6bc6e6..321a839b 100644
+index 8f6bc6e..321a839 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 +380,7 @@
 +}
 +#endif
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index fa0847d5..9ae0f07a 100644
+index fa0847d..9ae0f07 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -347,6 +347,10 @@ enum {
@@ -395,7 +395,7 @@
  	MCU_WA_PARAM_RED_SETTING = 0x40,
  };
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 74cd8caf..58c0bf99 100644
+index 74cd8ca..58c0bf9 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -9,6 +9,7 @@
@@ -482,7 +482,7 @@
  #endif
 diff --git a/mt7915/mt7915_debug.h b/mt7915/mt7915_debug.h
 new file mode 100644
-index 00000000..1ec8de99
+index 0000000..1ec8de9
 --- /dev/null
 +++ b/mt7915/mt7915_debug.h
 @@ -0,0 +1,1442 @@
@@ -1930,7 +1930,7 @@
 +#endif
 diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
 new file mode 100644
-index 00000000..6f71dede
+index 0000000..d2b5b7d
 --- /dev/null
 +++ b/mt7915/mtk_debugfs.c
 @@ -0,0 +1,3750 @@
@@ -4860,7 +4860,7 @@
 +	struct mt76_dev *mdev = NULL;
 +	int i;
 +
-+	seq_printf(s, "Version: 2.2.24.2\n");
++	seq_printf(s, "Version: 2.2.24.3\n");
 +
 +	if (!test_bit(MT76_STATE_MCU_RUNNING, &dev->mphy.state))
 +		return 0;
@@ -5686,7 +5686,7 @@
 +#endif
 diff --git a/mt7915/mtk_mcu.c b/mt7915/mtk_mcu.c
 new file mode 100644
-index 00000000..143dae26
+index 0000000..143dae2
 --- /dev/null
 +++ b/mt7915/mtk_mcu.c
 @@ -0,0 +1,51 @@
@@ -5742,10 +5742,10 @@
 +				 sizeof(req), true);
 +}
 diff --git a/mt7915/soc.c b/mt7915/soc.c
-index 210b4f16..a73db659 100644
+index bb3468a..b941a49 100644
 --- a/mt7915/soc.c
 +++ b/mt7915/soc.c
-@@ -361,6 +361,13 @@ static int mt798x_wmac_sku_setup(struct mt7915_dev *dev, u32 *adie_type)
+@@ -360,6 +360,13 @@ static int mt798x_wmac_sku_setup(struct mt7915_dev *dev, u32 *adie_type)
  	*adie_type = FIELD_GET(MT_ADIE_CHIP_ID_MASK, adie_main) |
  		     (MT_ADIE_CHIP_ID_MASK & adie_ext);
  
@@ -5760,7 +5760,7 @@
  	mt76_wmac_spi_unlock(dev);
  
 diff --git a/tools/fwlog.c b/tools/fwlog.c
-index e5d4a105..3d51d9ec 100644
+index e5d4a10..3d51d9e 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 0afca69..2601a42 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 44b667aae311f9f099a3d28dd511381ca1a46e78 Mon Sep 17 00:00:00 2001
+From cc11be422d2f3fe469a756754def0b54b23289b2 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/1051] wifi: mt76: mt7915: csi: implement csi support
+Subject: [PATCH 1001/1053] wifi: mt76: mt7915: csi: implement csi support
 
 ---
  mt76_connac_mcu.h |   2 +
@@ -18,10 +18,10 @@
  create mode 100644 mt7915/vendor.h
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index ae5bbc03..81af8709 100644
+index ac524fe..2ffe1c9 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1022,6 +1022,7 @@ enum {
+@@ -1029,6 +1029,7 @@ enum {
  	MCU_EXT_EVENT_WA_TX_STAT = 0x74,
  	MCU_EXT_EVENT_BCC_NOTIFY = 0x75,
  	MCU_EXT_EVENT_MURU_CTRL = 0x9f,
@@ -29,7 +29,7 @@
  };
  
  /* unified event table */
-@@ -1234,6 +1235,7 @@ enum {
+@@ -1242,6 +1243,7 @@ enum {
  	MCU_EXT_CMD_GROUP_PRE_CAL_INFO = 0xab,
  	MCU_EXT_CMD_DPD_PRE_CAL_INFO = 0xac,
  	MCU_EXT_CMD_PHY_STAT_INFO = 0xad,
@@ -38,7 +38,7 @@
  
  enum {
 diff --git a/mt7915/Makefile b/mt7915/Makefile
-index fd711416..65129b4f 100644
+index fd71141..65129b4 100644
 --- a/mt7915/Makefile
 +++ b/mt7915/Makefile
 @@ -1,10 +1,10 @@
@@ -55,7 +55,7 @@
  mt7915e-$(CONFIG_NL80211_TESTMODE) += testmode.o
  mt7915e-$(CONFIG_MT798X_WMAC) += soc.o
 diff --git a/mt7915/init.c b/mt7915/init.c
-index d6bcc6f5..dfca8ae7 100644
+index 3ec9eab..6d23dfd 100644
 --- a/mt7915/init.c
 +++ b/mt7915/init.c
 @@ -696,6 +696,12 @@ mt7915_register_ext_phy(struct mt7915_dev *dev, struct mt7915_phy *phy)
@@ -132,7 +132,7 @@
  				   ARRAY_SIZE(mt76_rates));
  	if (ret)
 diff --git a/mt7915/main.c b/mt7915/main.c
-index e7166c6c..4aa1b6d4 100644
+index e7166c6..4aa1b6d 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -809,6 +809,10 @@ void mt7915_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
@@ -147,7 +147,7 @@
  
  	mt7915_mac_wtbl_update(dev, msta->wcid.idx,
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 321a839b..9baf52b4 100644
+index 321a839..9baf52b 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -40,6 +40,10 @@ static bool sr_scene_detect = true;
@@ -375,7 +375,7 @@
  int mt7915_dbg_mcu_wa_cmd(struct mt7915_dev *dev, int cmd, u32 a1, u32 a2, u32 a3, bool wait_resp)
  {
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index 9ae0f07a..f32d5256 100644
+index 9ae0f07..f32d525 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -604,4 +604,78 @@ mt7915_get_power_bound(struct mt7915_phy *phy, s8 txpower)
@@ -458,7 +458,7 @@
 +
  #endif
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 58c0bf99..4617c59a 100644
+index 58c0bf9..4617c59 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -195,6 +195,45 @@ struct mt7915_hif {
@@ -544,7 +544,7 @@
  int mt7915_dbg_mcu_wa_cmd(struct mt7915_dev *dev, int cmd, u32 a1, u32 a2, u32 a3, bool wait_resp);
 diff --git a/mt7915/vendor.c b/mt7915/vendor.c
 new file mode 100644
-index 00000000..55da60a1
+index 0000000..55da60a
 --- /dev/null
 +++ b/mt7915/vendor.c
 @@ -0,0 +1,470 @@
@@ -1020,7 +1020,7 @@
 +}
 diff --git a/mt7915/vendor.h b/mt7915/vendor.h
 new file mode 100644
-index 00000000..e1f5fd36
+index 0000000..e1f5fd3
 --- /dev/null
 +++ b/mt7915/vendor.h
 @@ -0,0 +1,63 @@
diff --git a/recipes-wifi/linux-mt76/files/patches/1002-wifi-mt76-mt7915-air-monitor-support.patch b/recipes-wifi/linux-mt76/files/patches/1002-wifi-mt76-mt7915-air-monitor-support.patch
index 56239d1..baa3a93 100644
--- a/recipes-wifi/linux-mt76/files/patches/1002-wifi-mt76-mt7915-air-monitor-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1002-wifi-mt76-mt7915-air-monitor-support.patch
@@ -1,7 +1,7 @@
-From 55b1554b868da2e8d5385bbad655dc746ce64384 Mon Sep 17 00:00:00 2001
+From c77d92fc916236853e030c21b0a89da7b226609f Mon Sep 17 00:00:00 2001
 From: Bo Jiao <Bo.Jiao@mediatek.com>
 Date: Tue, 11 Jan 2022 12:03:23 +0800
-Subject: [PATCH 1002/1051] wifi: mt76: mt7915: air monitor support
+Subject: [PATCH 1002/1053] wifi: mt76: mt7915: air monitor support
 
 ---
  mt76_connac_mcu.h |   2 +
@@ -13,10 +13,10 @@
  6 files changed, 440 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 81af8709..4569113a 100644
+index 2ffe1c9..4172946 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1235,6 +1235,8 @@ enum {
+@@ -1243,6 +1243,8 @@ enum {
  	MCU_EXT_CMD_GROUP_PRE_CAL_INFO = 0xab,
  	MCU_EXT_CMD_DPD_PRE_CAL_INFO = 0xac,
  	MCU_EXT_CMD_PHY_STAT_INFO = 0xad,
@@ -26,7 +26,7 @@
  };
  
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index d99864f0..e38905aa 100644
+index d99864f..e38905a 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -531,6 +531,10 @@ mt7915_mac_fill_rx(struct mt7915_dev *dev, struct sk_buff *skb,
@@ -41,7 +41,7 @@
  		status->flag |= RX_FLAG_8023;
  		mt7915_wed_check_ppe(dev, &dev->mt76.q_rx[q], msta, skb,
 diff --git a/mt7915/main.c b/mt7915/main.c
-index 4aa1b6d4..19719b3f 100644
+index 4aa1b6d..19719b3 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -798,6 +798,9 @@ int mt7915_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
@@ -55,7 +55,7 @@
  }
  
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 4617c59a..35ccfa37 100644
+index 4617c59..35ccfa3 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -232,6 +232,33 @@ struct csi_data {
@@ -112,7 +112,7 @@
  
  #ifdef MTK_DEBUG
 diff --git a/mt7915/vendor.c b/mt7915/vendor.c
-index 55da60a1..c964b143 100644
+index 55da60a..c964b14 100644
 --- a/mt7915/vendor.c
 +++ b/mt7915/vendor.c
 @@ -448,6 +448,355 @@ out:
@@ -491,7 +491,7 @@
  };
  
 diff --git a/mt7915/vendor.h b/mt7915/vendor.h
-index e1f5fd36..1863eee5 100644
+index e1f5fd3..1863eee 100644
 --- a/mt7915/vendor.h
 +++ b/mt7915/vendor.h
 @@ -5,6 +5,7 @@
diff --git a/recipes-wifi/linux-mt76/files/patches/1003-wifi-mt76-mt7915-add-support-for-muru_onoff-via.patch b/recipes-wifi/linux-mt76/files/patches/1003-wifi-mt76-mt7915-add-support-for-muru_onoff-via.patch
index 5a51c15..d7b9f55 100644
--- a/recipes-wifi/linux-mt76/files/patches/1003-wifi-mt76-mt7915-add-support-for-muru_onoff-via.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1003-wifi-mt76-mt7915-add-support-for-muru_onoff-via.patch
@@ -1,7 +1,7 @@
-From 5d90eb67164818be692bbd995a7576e5ef8d5a1c Mon Sep 17 00:00:00 2001
+From a0249520b2ff800bcff8ed1f8531dddccc97d29b Mon Sep 17 00:00:00 2001
 From: Evelyn Tsai <evelyn.tsai@mediatek.com>
 Date: Tue, 4 Apr 2023 02:23:57 +0800
-Subject: [PATCH 1003/1051] wifi: mt76: mt7915: add support for muru_onoff via
+Subject: [PATCH 1003/1053] wifi: mt76: mt7915: add support for muru_onoff via
 
 ---
  mt7915/init.c        |  1 +
@@ -12,7 +12,7 @@
  5 files changed, 50 insertions(+), 2 deletions(-)
 
 diff --git a/mt7915/init.c b/mt7915/init.c
-index dfca8ae7..2ef1bb02 100644
+index 6d23dfd..fc42974 100644
 --- a/mt7915/init.c
 +++ b/mt7915/init.c
 @@ -363,6 +363,7 @@ mt7915_init_wiphy(struct mt7915_phy *phy)
@@ -24,7 +24,7 @@
  	hw->sta_data_size = sizeof(struct mt7915_sta);
  	hw->vif_data_size = sizeof(struct mt7915_vif);
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 9baf52b4..6f73a7b4 100644
+index 9baf52b..6f73a7b 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -965,6 +965,7 @@ mt7915_mcu_sta_muru_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
@@ -57,7 +57,7 @@
  		muru->mimo_dl.vht_mu_bfee =
  			!!(sta->deflink.vht_cap.cap & IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE);
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index f32d5256..f44146ed 100644
+index f32d525..f44146e 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -678,4 +678,10 @@ enum CSI_CHAIN_TYPE {
@@ -72,7 +72,7 @@
 +
  #endif
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 35ccfa37..e21a101c 100644
+index 35ccfa3..e21a101 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -289,6 +289,8 @@ struct mt7915_phy {
@@ -85,7 +85,7 @@
  	struct mt76_channel_state state_ts;
  
 diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
-index 6f71dede..5d4a3b42 100644
+index d2b5b7d..f521740 100644
 --- a/mt7915/mtk_debugfs.c
 +++ b/mt7915/mtk_debugfs.c
 @@ -2554,6 +2554,38 @@ static int mt7915_token_txd_read(struct seq_file *s, void *data)
diff --git a/recipes-wifi/linux-mt76/files/patches/1004-wifi-mt76-mt7915-certification-patches.patch b/recipes-wifi/linux-mt76/files/patches/1004-wifi-mt76-mt7915-certification-patches.patch
index 9a7ba64..710b973 100644
--- a/recipes-wifi/linux-mt76/files/patches/1004-wifi-mt76-mt7915-certification-patches.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1004-wifi-mt76-mt7915-certification-patches.patch
@@ -1,7 +1,7 @@
-From 8e5b09c4ac15591b5153d33a1d5ca0d33bb9ae91 Mon Sep 17 00:00:00 2001
+From 8d5f43f16dd3b85a455edd54e440555a96668183 Mon Sep 17 00:00:00 2001
 From: MeiChia Chiu <meichia.chiu@mediatek.com>
 Date: Mon, 6 Jun 2022 20:15:51 +0800
-Subject: [PATCH 1004/1051] wifi: mt76: mt7915: certification patches
+Subject: [PATCH 1004/1053] wifi: mt76: mt7915: certification patches
 
 ---
  mt76_connac_mcu.h    |   1 +
@@ -16,10 +16,10 @@
  9 files changed, 955 insertions(+), 5 deletions(-)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 4569113a..36054bd9 100644
+index 4172946..53262ce 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1237,6 +1237,7 @@ enum {
+@@ -1245,6 +1245,7 @@ enum {
  	MCU_EXT_CMD_PHY_STAT_INFO = 0xad,
  	/* for vendor csi and air monitor */
  	MCU_EXT_CMD_SMESH_CTRL = 0xae,
@@ -28,7 +28,7 @@
  };
  
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index e38905aa..43cff275 100644
+index e38905a..43cff27 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -8,6 +8,7 @@
@@ -76,7 +76,7 @@
  			       IEEE80211_RC_NSS_CHANGED |
  			       IEEE80211_RC_BW_CHANGED))
 diff --git a/mt7915/main.c b/mt7915/main.c
-index 19719b3f..f698b240 100644
+index 19719b3..f698b24 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -769,6 +769,9 @@ int mt7915_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
@@ -107,7 +107,7 @@
  
  void mt7915_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 6f73a7b4..cd533aef 100644
+index 6f73a7b..cd533ae 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -4402,6 +4402,472 @@ mt7915_mcu_report_csi(struct mt7915_dev *dev, struct sk_buff *skb)
@@ -584,7 +584,7 @@
  
  #ifdef MTK_DEBUG
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index f44146ed..eef2fc00 100644
+index f44146e..eef2fc0 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -486,10 +486,14 @@ enum {
@@ -818,7 +818,7 @@
  
  #endif
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index e21a101c..0eca0403 100644
+index e21a101..0eca040 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -732,6 +732,19 @@ int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr,
@@ -842,7 +842,7 @@
  int mt7915_mcu_set_csi(struct mt7915_phy *phy, u8 mode,
  		       u8 cfg, u8 v1, u32 v2, u8 *mac_addr, u32 sta_interval);
 diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
-index 5d4a3b42..2298c0c6 100644
+index f521740..1ed40ba 100644
 --- a/mt7915/mtk_debugfs.c
 +++ b/mt7915/mtk_debugfs.c
 @@ -2560,7 +2560,8 @@ static int mt7915_muru_onoff_get(void *data, u64 *val)
@@ -867,7 +867,7 @@
  	}
  
 diff --git a/mt7915/vendor.c b/mt7915/vendor.c
-index c964b143..7a718944 100644
+index c964b14..7a71894 100644
 --- a/mt7915/vendor.c
 +++ b/mt7915/vendor.c
 @@ -23,6 +23,29 @@ csi_ctrl_policy[NUM_MTK_VENDOR_ATTRS_CSI_CTRL] = {
@@ -1080,7 +1080,7 @@
  };
  
 diff --git a/mt7915/vendor.h b/mt7915/vendor.h
-index 1863eee5..1a18cae7 100644
+index 1863eee..1a18cae 100644
 --- a/mt7915/vendor.h
 +++ b/mt7915/vendor.h
 @@ -7,6 +7,48 @@
diff --git a/recipes-wifi/linux-mt76/files/patches/1005-wifi-mt76-mt7915-add-mt76-vendor-muru-onoff-command.patch b/recipes-wifi/linux-mt76/files/patches/1005-wifi-mt76-mt7915-add-mt76-vendor-muru-onoff-command.patch
index 01c3aa9..137028b 100644
--- a/recipes-wifi/linux-mt76/files/patches/1005-wifi-mt76-mt7915-add-mt76-vendor-muru-onoff-command.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1005-wifi-mt76-mt7915-add-mt76-vendor-muru-onoff-command.patch
@@ -1,7 +1,7 @@
-From 9a66d0f9e8b5b04ddab7b485ff968c8c9129fb38 Mon Sep 17 00:00:00 2001
+From 7f14adae86830929258aad73e8290a7fd2b4e03e Mon Sep 17 00:00:00 2001
 From: Evelyn Tsai <evelyn.tsai@mediatek.com>
 Date: Tue, 4 Apr 2023 02:27:44 +0800
-Subject: [PATCH 1005/1051] wifi: mt76: mt7915: add mt76 vendor muru onoff
+Subject: [PATCH 1005/1053] wifi: mt76: mt7915: add mt76 vendor muru onoff
  command
 
 ---
@@ -12,7 +12,7 @@
  4 files changed, 63 insertions(+)
 
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index cd533aef..63fb8269 100644
+index cd533ae..63fb826 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -4422,6 +4422,13 @@ void mt7915_set_wireless_vif(void *data, u8 *mac, struct ieee80211_vif *vif)
@@ -30,7 +30,7 @@
  }
  
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index eef2fc00..86500536 100644
+index eef2fc0..8650053 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -493,6 +493,7 @@ enum {
@@ -42,7 +42,7 @@
  };
  
 diff --git a/mt7915/vendor.c b/mt7915/vendor.c
-index 7a718944..a8b1fa84 100644
+index 7a71894..a8b1fa8 100644
 --- a/mt7915/vendor.c
 +++ b/mt7915/vendor.c
 @@ -35,6 +35,11 @@ wireless_ctrl_policy[NUM_MTK_VENDOR_ATTRS_WIRELESS_CTRL] = {
@@ -110,7 +110,7 @@
  };
  
 diff --git a/mt7915/vendor.h b/mt7915/vendor.h
-index 1a18cae7..a4a91804 100644
+index 1a18cae..a4a9180 100644
 --- a/mt7915/vendor.h
 +++ b/mt7915/vendor.h
 @@ -9,6 +9,7 @@ enum mtk_nl80211_vendor_subcmds {
diff --git a/recipes-wifi/linux-mt76/files/patches/1006-wifi-mt76-mt7915-drop-undefined-action-frame.patch b/recipes-wifi/linux-mt76/files/patches/1006-wifi-mt76-mt7915-drop-undefined-action-frame.patch
index a923e65..71d9c03 100644
--- a/recipes-wifi/linux-mt76/files/patches/1006-wifi-mt76-mt7915-drop-undefined-action-frame.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1006-wifi-mt76-mt7915-drop-undefined-action-frame.patch
@@ -1,14 +1,14 @@
-From 2cdc3cd08f1333a4d39187b1de67ce496b411d19 Mon Sep 17 00:00:00 2001
+From 3b76edcb079437bf742c4442c4db4609cf10d6b6 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Thu, 14 Apr 2022 15:18:02 +0800
-Subject: [PATCH 1006/1051] wifi: mt76: mt7915: drop undefined action frame
+Subject: [PATCH 1006/1053] wifi: mt76: mt7915: drop undefined action frame
 
 ---
  mt7915/mac.c | 6 ++++++
  1 file changed, 6 insertions(+)
 
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index 43cff275..6b994379 100644
+index 43cff27..6b99437 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -744,6 +744,8 @@ int mt7915_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
diff --git a/recipes-wifi/linux-mt76/files/patches/1007-wifi-mt76-testmode-rework-testmode-init-registers.patch b/recipes-wifi/linux-mt76/files/patches/1007-wifi-mt76-testmode-rework-testmode-init-registers.patch
index fba82f4..8f2d841 100644
--- a/recipes-wifi/linux-mt76/files/patches/1007-wifi-mt76-testmode-rework-testmode-init-registers.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1007-wifi-mt76-testmode-rework-testmode-init-registers.patch
@@ -1,7 +1,7 @@
-From 34d198b481815a46cff3e5634f59906c3f59923d Mon Sep 17 00:00:00 2001
+From 6668ef935f03e166732511ed063f706b9139cd19 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Mon, 6 Jun 2022 19:46:26 +0800
-Subject: [PATCH 1007/1051] wifi: mt76: testmode: rework testmode init
+Subject: [PATCH 1007/1053] wifi: mt76: testmode: rework testmode init
  registers
 
 ---
@@ -18,7 +18,7 @@
  10 files changed, 164 insertions(+), 35 deletions(-)
 
 diff --git a/mac80211.c b/mac80211.c
-index b30a74e8..3f5c2ed5 100644
+index b30a74e..3f5c2ed 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -804,7 +804,8 @@ void mt76_rx(struct mt76_dev *dev, enum mt76_rxq_id q, struct sk_buff *skb)
@@ -32,7 +32,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 a07c7df9..fe5b136f 100644
+index a07c7df..fe5b136 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -709,6 +709,8 @@ struct mt76_testmode_ops {
@@ -62,10 +62,10 @@
  };
  
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 36054bd9..edc9e124 100644
+index 53262ce..75cb4e9 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1231,6 +1231,7 @@ enum {
+@@ -1239,6 +1239,7 @@ enum {
  	MCU_EXT_CMD_OFFCH_SCAN_CTRL = 0x9a,
  	MCU_EXT_CMD_SET_RDD_TH = 0x9d,
  	MCU_EXT_CMD_MURU_CTRL = 0x9f,
@@ -74,7 +74,7 @@
  	MCU_EXT_CMD_GROUP_PRE_CAL_INFO = 0xab,
  	MCU_EXT_CMD_DPD_PRE_CAL_INFO = 0xac,
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index 86500536..7653b5e2 100644
+index 8650053..7653b5e 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -9,6 +9,7 @@
@@ -86,7 +86,7 @@
  	MCU_ATE_CLEAN_TXQUEUE = 0x1c,
  };
 diff --git a/mt7915/mmio.c b/mt7915/mmio.c
-index 6004d64f..694fc1bc 100644
+index 6004d64..694fc1b 100644
 --- a/mt7915/mmio.c
 +++ b/mt7915/mmio.c
 @@ -120,6 +120,7 @@ static const u32 mt7986_reg[] = {
@@ -106,7 +106,7 @@
  	[TMAC_ODTR]		= 0x0cc,
  	[TMAC_ATCR]		= 0x00c,
 diff --git a/mt7915/regs.h b/mt7915/regs.h
-index 3452a7e9..8bb6a9f2 100644
+index 3452a7e..8bb6a9f 100644
 --- a/mt7915/regs.h
 +++ b/mt7915/regs.h
 @@ -48,6 +48,7 @@ enum reg_rev {
@@ -154,7 +154,7 @@
  #define MT_AGG_ACR0(_band)		MT_WF_AGG(_band, __OFFS(AGG_ACR0))
  #define MT_AGG_ACR_CFEND_RATE		GENMASK(13, 0)
 diff --git a/mt7915/testmode.c b/mt7915/testmode.c
-index 0d76ae31..46939191 100644
+index 0d76ae3..4693919 100644
 --- a/mt7915/testmode.c
 +++ b/mt7915/testmode.c
 @@ -30,7 +30,7 @@ struct reg_band {
@@ -379,7 +379,7 @@
  
  const struct mt76_testmode_ops mt7915_testmode_ops = {
 diff --git a/mt7915/testmode.h b/mt7915/testmode.h
-index 5573ac30..a1c54c89 100644
+index 5573ac3..a1c54c8 100644
 --- a/mt7915/testmode.h
 +++ b/mt7915/testmode.h
 @@ -33,6 +33,12 @@ struct mt7915_tm_clean_txq {
@@ -430,7 +430,7 @@
 +
  #endif
 diff --git a/testmode.c b/testmode.c
-index ca4feccf..9e05b862 100644
+index ca4fecc..9e05b86 100644
 --- a/testmode.c
 +++ b/testmode.c
 @@ -448,8 +448,7 @@ int mt76_testmode_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
@@ -454,7 +454,7 @@
  		return -EMSGSIZE;
  
 diff --git a/testmode.h b/testmode.h
-index 5e2792d8..89613266 100644
+index 5e2792d..8961326 100644
 --- a/testmode.h
 +++ b/testmode.h
 @@ -101,6 +101,8 @@ enum mt76_testmode_attr {
diff --git a/recipes-wifi/linux-mt76/files/patches/1008-wifi-mt76-testmode-additional-supports.patch b/recipes-wifi/linux-mt76/files/patches/1008-wifi-mt76-testmode-additional-supports.patch
index ed6c26e..cb4e57b 100644
--- a/recipes-wifi/linux-mt76/files/patches/1008-wifi-mt76-testmode-additional-supports.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1008-wifi-mt76-testmode-additional-supports.patch
@@ -1,7 +1,7 @@
-From 1cebca515b82e405e37ac420f97a78d59d0fa3d4 Mon Sep 17 00:00:00 2001
+From 4f2e94943abd5d7e9d70cd54a265d6031a0a7f98 Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Thu, 21 Apr 2022 15:43:19 +0800
-Subject: [PATCH 1008/1051] wifi: mt76: testmode: additional supports
+Subject: [PATCH 1008/1053] wifi: mt76: testmode: additional supports
 
 Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
@@ -29,7 +29,7 @@
  20 files changed, 2064 insertions(+), 169 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index ccdd5646..bc8afcff 100644
+index ccdd564..bc8afcf 100644
 --- a/dma.c
 +++ b/dma.c
 @@ -614,8 +614,7 @@ free:
@@ -43,7 +43,7 @@
  #endif
  
 diff --git a/mac80211.c b/mac80211.c
-index 3f5c2ed5..305cae78 100644
+index 3f5c2ed..305cae7 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -55,6 +55,13 @@ static const struct ieee80211_channel mt76_channels_5ghz[] = {
@@ -73,7 +73,7 @@
  
  static const struct ieee80211_channel mt76_channels_6ghz[] = {
 diff --git a/mt76.h b/mt76.h
-index fe5b136f..3fe18cd1 100644
+index fe5b136..3fe18cd 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -707,6 +707,21 @@ struct mt76_testmode_ops {
@@ -237,10 +237,10 @@
  static inline void mt76_testmode_reset(struct mt76_phy *phy, bool disable)
  {
 diff --git a/mt76_connac_mcu.c b/mt76_connac_mcu.c
-index 3433adb2..d449f4a6 100644
+index a8f097d..44cd646 100644
 --- a/mt76_connac_mcu.c
 +++ b/mt76_connac_mcu.c
-@@ -400,6 +400,7 @@ void mt76_connac_mcu_sta_basic_tlv(struct mt76_dev *dev, struct sk_buff *skb,
+@@ -407,6 +407,7 @@ void mt76_connac_mcu_sta_basic_tlv(struct mt76_dev *dev, struct sk_buff *skb,
  	switch (vif->type) {
  	case NL80211_IFTYPE_MESH_POINT:
  	case NL80211_IFTYPE_AP:
@@ -248,7 +248,7 @@
  		if (vif->p2p && !is_mt7921(dev))
  			conn_type = CONNECTION_P2P_GC;
  		else
-@@ -581,6 +582,9 @@ void mt76_connac_mcu_wtbl_generic_tlv(struct mt76_dev *dev,
+@@ -588,6 +589,9 @@ void mt76_connac_mcu_wtbl_generic_tlv(struct mt76_dev *dev,
  	rx->rca2 = 1;
  	rx->rv = 1;
  
@@ -259,10 +259,10 @@
  		return;
  
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index edc9e124..49a3406d 100644
+index 75cb4e9..0972010 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1016,6 +1016,7 @@ enum {
+@@ -1023,6 +1023,7 @@ enum {
  	MCU_EXT_EVENT_FW_LOG_2_HOST = 0x13,
  	MCU_EXT_EVENT_THERMAL_PROTECT = 0x22,
  	MCU_EXT_EVENT_ASSERT_DUMP = 0x23,
@@ -270,7 +270,7 @@
  	MCU_EXT_EVENT_RDD_REPORT = 0x3a,
  	MCU_EXT_EVENT_CSA_NOTIFY = 0x4f,
  	MCU_EXT_EVENT_BSS_ACQ_PKT_CNT = 0x52,
-@@ -1238,6 +1239,7 @@ enum {
+@@ -1246,6 +1247,7 @@ enum {
  	MCU_EXT_CMD_PHY_STAT_INFO = 0xad,
  	/* for vendor csi and air monitor */
  	MCU_EXT_CMD_SMESH_CTRL = 0xae,
@@ -279,7 +279,7 @@
  	MCU_EXT_CMD_CSI_CTRL = 0xc2,
  };
 diff --git a/mt7915/eeprom.c b/mt7915/eeprom.c
-index bfdbc15a..f4876fe9 100644
+index bfdbc15..f4876fe 100644
 --- a/mt7915/eeprom.c
 +++ b/mt7915/eeprom.c
 @@ -142,7 +142,7 @@ static int mt7915_eeprom_load(struct mt7915_dev *dev)
@@ -292,7 +292,7 @@
  				return ret;
  		}
 diff --git a/mt7915/init.c b/mt7915/init.c
-index 2ef1bb02..83748da6 100644
+index fc42974..439403f 100644
 --- a/mt7915/init.c
 +++ b/mt7915/init.c
 @@ -726,7 +726,7 @@ static void mt7915_init_work(struct work_struct *work)
@@ -305,7 +305,7 @@
  	mt7915_txbf_init(dev);
  }
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index 6b994379..7d3397e2 100644
+index 6b99437..7d3397e 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -586,6 +586,7 @@ mt7915_mac_fill_rx_vector(struct mt7915_dev *dev, struct sk_buff *skb)
@@ -395,7 +395,7 @@
  		goto out;
  
 diff --git a/mt7915/main.c b/mt7915/main.c
-index f698b240..6415e844 100644
+index f698b24..6415e84 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -238,7 +238,7 @@ static int mt7915_add_interface(struct ieee80211_hw *hw,
@@ -408,7 +408,7 @@
  		mvif->mt76.wmm_idx += 2;
  
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 63fb8269..233411ca 100644
+index 63fb826..233411c 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -478,6 +478,11 @@ mt7915_mcu_rx_ext_event(struct mt7915_dev *dev, struct sk_buff *skb)
@@ -489,7 +489,7 @@
  
  	return 0;
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index 7653b5e2..c791c7fa 100644
+index 7653b5e..c791c7f 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -8,10 +8,15 @@
@@ -547,7 +547,7 @@
  
  enum {
 diff --git a/mt7915/mmio.c b/mt7915/mmio.c
-index 694fc1bc..222e2cfd 100644
+index 694fc1b..222e2cf 100644
 --- a/mt7915/mmio.c
 +++ b/mt7915/mmio.c
 @@ -134,6 +134,7 @@ static const u32 mt7915_offs[] = {
@@ -567,7 +567,7 @@
  	[AGG_PCR0]		= 0x040,
  	[AGG_ACR0]		= 0x054,
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 0eca0403..1846e2f9 100644
+index 0eca040..1846e2f 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -304,11 +304,15 @@ struct mt7915_phy {
@@ -621,7 +621,7 @@
  
  static inline u16 mt7915_wtbl_size(struct mt7915_dev *dev)
 diff --git a/mt7915/regs.h b/mt7915/regs.h
-index 8bb6a9f2..1236da91 100644
+index 8bb6a9f..1236da9 100644
 --- a/mt7915/regs.h
 +++ b/mt7915/regs.h
 @@ -62,6 +62,7 @@ enum offs_rev {
@@ -642,7 +642,7 @@
  							  (_n) * 4))
  #define MT_AGG_PCR0(_band, _n)		MT_WF_AGG(_band, (__OFFS(AGG_PCR0) +	\
 diff --git a/mt7915/testmode.c b/mt7915/testmode.c
-index 46939191..32dc85cd 100644
+index 4693919..32dc85c 100644
 --- a/mt7915/testmode.c
 +++ b/mt7915/testmode.c
 @@ -9,6 +9,10 @@
@@ -2102,7 +2102,7 @@
 +	.set_eeprom = mt7915_tm_set_eeprom,
  };
 diff --git a/mt7915/testmode.h b/mt7915/testmode.h
-index a1c54c89..eb0e0432 100644
+index a1c54c8..eb0e043 100644
 --- a/mt7915/testmode.h
 +++ b/mt7915/testmode.h
 @@ -4,6 +4,8 @@
@@ -2417,7 +2417,7 @@
 +
  #endif
 diff --git a/testmode.c b/testmode.c
-index 9e05b862..75870478 100644
+index 9e05b86..7587047 100644
 --- a/testmode.c
 +++ b/testmode.c
 @@ -8,6 +8,7 @@ const struct nla_policy mt76_tm_policy[NUM_MT76_TM_ATTRS] = {
@@ -2910,7 +2910,7 @@
  
  	if (mt76_testmode_param_present(td, MT76_TM_ATTR_TX_POWER)) {
 diff --git a/testmode.h b/testmode.h
-index 89613266..7a686250 100644
+index 8961326..7a68625 100644
 --- a/testmode.h
 +++ b/testmode.h
 @@ -6,6 +6,8 @@
@@ -3047,7 +3047,7 @@
 +
  #endif
 diff --git a/tools/fields.c b/tools/fields.c
-index e3f69089..406ba77c 100644
+index e3f6908..406ba77 100644
 --- a/tools/fields.c
 +++ b/tools/fields.c
 @@ -10,6 +10,7 @@ static const char * const testmode_state[] = {
@@ -3226,7 +3226,7 @@
  };
  
 diff --git a/tx.c b/tx.c
-index 0fdf7d83..db0d4df5 100644
+index 0fdf7d8..db0d4df 100644
 --- a/tx.c
 +++ b/tx.c
 @@ -259,8 +259,7 @@ void __mt76_tx_complete_skb(struct mt76_dev *dev, u16 wcid_idx, struct sk_buff *
diff --git a/recipes-wifi/linux-mt76/files/patches/1009-wifi-mt76-testmode-add-pre-cal-support.patch b/recipes-wifi/linux-mt76/files/patches/1009-wifi-mt76-testmode-add-pre-cal-support.patch
index 811d441..3ccce52 100644
--- a/recipes-wifi/linux-mt76/files/patches/1009-wifi-mt76-testmode-add-pre-cal-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1009-wifi-mt76-testmode-add-pre-cal-support.patch
@@ -1,7 +1,7 @@
-From 4ce9209f811922ef634475db68a446803d822ab0 Mon Sep 17 00:00:00 2001
+From 2d9fc3393a175ec0b132e6186df69baaad77e428 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Wed, 31 Aug 2022 20:06:52 +0800
-Subject: [PATCH 1009/1051] wifi: mt76: testmode: add pre-cal support
+Subject: [PATCH 1009/1053] wifi: mt76: testmode: add pre-cal support
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 ---
@@ -18,7 +18,7 @@
  10 files changed, 506 insertions(+), 7 deletions(-)
 
 diff --git a/eeprom.c b/eeprom.c
-index a2673978..3625b169 100644
+index a267397..3625b16 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
@@ -35,7 +35,7 @@
  
  out_put_node:
 diff --git a/mt76.h b/mt76.h
-index 3fe18cd1..22d76bb1 100644
+index 3fe18cd..22d76bb 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -708,6 +708,7 @@ struct mt76_testmode_ops {
@@ -47,10 +47,10 @@
  
  struct mt76_testmode_entry_data {
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 49a3406d..1a32268b 100644
+index 0972010..b75d340 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1012,6 +1012,7 @@ enum {
+@@ -1019,6 +1019,7 @@ enum {
  
  /* ext event table */
  enum {
@@ -59,7 +59,7 @@
  	MCU_EXT_EVENT_FW_LOG_2_HOST = 0x13,
  	MCU_EXT_EVENT_THERMAL_PROTECT = 0x22,
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 233411ca..ad58e3b6 100644
+index 233411c..ad58e3b 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -482,6 +482,9 @@ mt7915_mcu_rx_ext_event(struct mt7915_dev *dev, struct sk_buff *skb)
@@ -73,7 +73,7 @@
  	case MCU_EXT_EVENT_BSS_ACQ_PKT_CNT:
  		mt7915_mcu_rx_bss_acq_pkt_cnt(dev, skb);
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 1846e2f9..dd2e80b8 100644
+index 1846e2f..dd2e80b 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -654,6 +654,7 @@ int mt7915_mcu_fw_dbg_ctrl(struct mt7915_dev *dev, u32 module, u8 level);
@@ -85,7 +85,7 @@
  
  static inline u16 mt7915_wtbl_size(struct mt7915_dev *dev)
 diff --git a/mt7915/testmode.c b/mt7915/testmode.c
-index 32dc85cd..4b344303 100644
+index 32dc85c..4b34430 100644
 --- a/mt7915/testmode.c
 +++ b/mt7915/testmode.c
 @@ -5,6 +5,7 @@
@@ -560,7 +560,7 @@
 +	.dump_precal = mt7915_tm_dump_precal,
  };
 diff --git a/mt7915/testmode.h b/mt7915/testmode.h
-index eb0e0432..75698261 100644
+index eb0e043..7569826 100644
 --- a/mt7915/testmode.h
 +++ b/mt7915/testmode.h
 @@ -81,6 +81,11 @@ struct tm_tx_cont {
@@ -628,7 +628,7 @@
  	TAM_ARB_OP_MODE_NORMAL = 1,
  	TAM_ARB_OP_MODE_TEST,
 diff --git a/testmode.c b/testmode.c
-index 75870478..070b296d 100644
+index 7587047..070b296 100644
 --- a/testmode.c
 +++ b/testmode.c
 @@ -771,6 +771,18 @@ int mt76_testmode_dump(struct ieee80211_hw *hw, struct sk_buff *msg,
@@ -661,7 +661,7 @@
  
  	if (nla_put_u32(msg, MT76_TM_ATTR_TX_COUNT, td->tx_count) ||
 diff --git a/testmode.h b/testmode.h
-index 7a686250..e4c1b521 100644
+index 7a68625..e4c1b52 100644
 --- a/testmode.h
 +++ b/testmode.h
 @@ -19,6 +19,7 @@
@@ -717,7 +717,7 @@
  
  	/* keep last */
 diff --git a/tools/fields.c b/tools/fields.c
-index 406ba77c..27801dbe 100644
+index 406ba77..27801db 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/1010-wifi-mt76-testmode-add-iBF-command-mode-support.patch b/recipes-wifi/linux-mt76/files/patches/1010-wifi-mt76-testmode-add-iBF-command-mode-support.patch
index ffd31a4..c4d423e 100644
--- a/recipes-wifi/linux-mt76/files/patches/1010-wifi-mt76-testmode-add-iBF-command-mode-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1010-wifi-mt76-testmode-add-iBF-command-mode-support.patch
@@ -1,7 +1,7 @@
-From 234318953b36685074c9a3b435ff7295ef005a58 Mon Sep 17 00:00:00 2001
+From be62cd03caedf8de9f3d6f2ef8883f85be51b9c7 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Mon, 12 Sep 2022 18:16:54 +0800
-Subject: [PATCH 1010/1051] wifi: mt76: testmode: add iBF command mode support
+Subject: [PATCH 1010/1053] wifi: mt76: testmode: add iBF command mode support
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 ---
@@ -12,7 +12,7 @@
  4 files changed, 85 insertions(+), 7 deletions(-)
 
 diff --git a/mt7915/testmode.c b/mt7915/testmode.c
-index 4b344303..453319e1 100644
+index 4b34430..453319e 100644
 --- a/mt7915/testmode.c
 +++ b/mt7915/testmode.c
 @@ -722,6 +722,7 @@ mt7915_tm_txbf_profile_update(struct mt7915_phy *phy, u16 *val, bool ebf)
@@ -104,7 +104,7 @@
  		mt7915_tm_set_tx_len(phy, tx_time);
  
 diff --git a/testmode.c b/testmode.c
-index 070b296d..b1986ad6 100644
+index 070b296..b1986ad 100644
 --- a/testmode.c
 +++ b/testmode.c
 @@ -535,6 +535,42 @@ out:
@@ -163,7 +163,7 @@
  		nla_for_each_nested(cur, tb[MT76_TM_ATTR_TXBF_PARAM], rem) {
  			if (nla_len(cur) != 2 ||
 diff --git a/testmode.h b/testmode.h
-index e4c1b521..1d7aef86 100644
+index e4c1b52..1d7aef8 100644
 --- a/testmode.h
 +++ b/testmode.h
 @@ -285,8 +285,10 @@ enum mt76_testmode_txbf_act {
@@ -178,7 +178,7 @@
  
  	/* keep last */
 diff --git a/tools/fields.c b/tools/fields.c
-index 27801dbe..b0ee84d2 100644
+index 27801db..b0ee84d 100644
 --- a/tools/fields.c
 +++ b/tools/fields.c
 @@ -32,6 +32,20 @@ static const char * const testmode_tx_mode[] = {
diff --git a/recipes-wifi/linux-mt76/files/patches/1011-wifi-mt76-testmode-add-ZWDFS-test-mode-support.patch b/recipes-wifi/linux-mt76/files/patches/1011-wifi-mt76-testmode-add-ZWDFS-test-mode-support.patch
index 6e69604..d80efec 100644
--- a/recipes-wifi/linux-mt76/files/patches/1011-wifi-mt76-testmode-add-ZWDFS-test-mode-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1011-wifi-mt76-testmode-add-ZWDFS-test-mode-support.patch
@@ -1,7 +1,7 @@
-From e7ff04400a7f5ef553332c4513fd0164bf31c5a6 Mon Sep 17 00:00:00 2001
+From b80b70aa0c7d3c1ecd2a1f7151c16660233464b2 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Thu, 27 Oct 2022 17:42:07 +0800
-Subject: [PATCH 1011/1051] wifi: mt76: testmode: add ZWDFS test mode support
+Subject: [PATCH 1011/1053] wifi: mt76: testmode: add ZWDFS test mode support
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 ---
@@ -18,7 +18,7 @@
  10 files changed, 508 insertions(+), 1 deletion(-)
 
 diff --git a/mt76.h b/mt76.h
-index 22d76bb1..9320c526 100644
+index 22d76bb..9320c52 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -793,6 +793,15 @@ struct mt76_testmode_data {
@@ -38,10 +38,10 @@
  
  struct mt76_vif {
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 1a32268b..4d85d323 100644
+index b75d340..69ca57a 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1233,6 +1233,7 @@ enum {
+@@ -1241,6 +1241,7 @@ enum {
  	MCU_EXT_CMD_OFFCH_SCAN_CTRL = 0x9a,
  	MCU_EXT_CMD_SET_RDD_TH = 0x9d,
  	MCU_EXT_CMD_MURU_CTRL = 0x9f,
@@ -49,7 +49,7 @@
  	MCU_EXT_CMD_RX_STAT = 0xa4,
  	MCU_EXT_CMD_SET_SPR = 0xa8,
  	MCU_EXT_CMD_GROUP_PRE_CAL_INFO = 0xab,
-@@ -1243,6 +1244,7 @@ enum {
+@@ -1251,6 +1252,7 @@ enum {
  	MCU_EXT_CMD_RX_STAT_USER_CTRL = 0xb3,
  	MCU_EXT_CMD_CERT_CFG = 0xb7,
  	MCU_EXT_CMD_CSI_CTRL = 0xc2,
@@ -58,7 +58,7 @@
  
  enum {
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index ad58e3b6..573f1e88 100644
+index ad58e3b..573f1e8 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -2759,6 +2759,7 @@ mt7915_mcu_background_chain_ctrl(struct mt7915_phy *phy,
@@ -139,7 +139,7 @@
 +	return 0;
 +}
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index c791c7fa..066246bb 100644
+index c791c7f..066246b 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -698,6 +698,52 @@ enum CSI_CHAIN_TYPE {
@@ -196,7 +196,7 @@
  #define OFDMA_DL                       BIT(0)
  #define OFDMA_UL                       BIT(1)
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index dd2e80b8..1644a467 100644
+index dd2e80b..1644a46 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -293,6 +293,7 @@ struct mt7915_phy {
@@ -218,7 +218,7 @@
  int mt7915_mtk_init_debugfs(struct mt7915_phy *phy, struct dentry *dir);
  int mt7915_dbg_mcu_wa_cmd(struct mt7915_dev *dev, int cmd, u32 a1, u32 a2, u32 a3, bool wait_resp);
 diff --git a/mt7915/regs.h b/mt7915/regs.h
-index 1236da91..7e9b76b0 100644
+index 1236da9..7e9b76b 100644
 --- a/mt7915/regs.h
 +++ b/mt7915/regs.h
 @@ -1211,6 +1211,8 @@ enum offs_rev {
@@ -231,7 +231,7 @@
  #define MT_WF_PHY_BASE			0x83080000
  #define MT_WF_PHY(ofs)			(MT_WF_PHY_BASE + (ofs))
 diff --git a/mt7915/testmode.c b/mt7915/testmode.c
-index 453319e1..caa35906 100644
+index 453319e..caa3590 100644
 --- a/mt7915/testmode.c
 +++ b/mt7915/testmode.c
 @@ -14,6 +14,12 @@ enum {
@@ -558,7 +558,7 @@
  
  static int
 diff --git a/testmode.c b/testmode.c
-index b1986ad6..b369826e 100644
+index b1986ad..b369826 100644
 --- a/testmode.c
 +++ b/testmode.c
 @@ -26,6 +26,13 @@ const struct nla_policy mt76_tm_policy[NUM_MT76_TM_ATTRS] = {
@@ -622,7 +622,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/testmode.h b/testmode.h
-index 1d7aef86..b39cf511 100644
+index 1d7aef8..b39cf51 100644
 --- a/testmode.h
 +++ b/testmode.h
 @@ -64,6 +64,20 @@
@@ -690,7 +690,7 @@
 +
  #endif
 diff --git a/tools/fields.c b/tools/fields.c
-index b0ee84d2..e2cf4b92 100644
+index b0ee84d..e2cf4b9 100644
 --- a/tools/fields.c
 +++ b/tools/fields.c
 @@ -46,6 +46,14 @@ static const char * const testmode_txbf_act[] = {
diff --git a/recipes-wifi/linux-mt76/files/patches/1012-wifi-mt76-testmode-add-iBF-eBF-cal-and-cert-commands.patch b/recipes-wifi/linux-mt76/files/patches/1012-wifi-mt76-testmode-add-iBF-eBF-cal-and-cert-commands.patch
index 76c585a..e7fe869 100644
--- a/recipes-wifi/linux-mt76/files/patches/1012-wifi-mt76-testmode-add-iBF-eBF-cal-and-cert-commands.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1012-wifi-mt76-testmode-add-iBF-eBF-cal-and-cert-commands.patch
@@ -1,7 +1,7 @@
-From b52a453b4c3e2dd8399575e2091e1d63306ea2c5 Mon Sep 17 00:00:00 2001
+From 4c178c7d253c546ed19f99e8de51423df9fed9de Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Thu, 15 Dec 2022 19:45:18 +0800
-Subject: [PATCH 1012/1051] wifi: mt76: testmode: add iBF/eBF cal and cert
+Subject: [PATCH 1012/1053] wifi: mt76: testmode: add iBF/eBF cal and cert
  commands with golden
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
@@ -25,7 +25,7 @@
  16 files changed, 859 insertions(+), 325 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
-index 9320c526..8025e043 100644
+index 9320c52..8025e04 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -755,6 +755,7 @@ struct mt76_testmode_data {
@@ -47,10 +47,10 @@
  	u32 tx_pending;
  	u32 tx_queued;
 diff --git a/mt76_connac_mcu.c b/mt76_connac_mcu.c
-index d449f4a6..774f5754 100644
+index 44cd646..15e61c9 100644
 --- a/mt76_connac_mcu.c
 +++ b/mt76_connac_mcu.c
-@@ -2680,6 +2680,7 @@ int mt76_connac_mcu_bss_basic_tlv(struct sk_buff *skb,
+@@ -2688,6 +2688,7 @@ int mt76_connac_mcu_bss_basic_tlv(struct sk_buff *skb,
  	u32 type = vif->p2p ? NETWORK_P2P : NETWORK_INFRA;
  	struct bss_info_basic *bss;
  	struct tlv *tlv;
@@ -58,7 +58,7 @@
  
  	tlv = mt76_connac_mcu_add_tlv(skb, BSS_INFO_BASIC, sizeof(*bss));
  	bss = (struct bss_info_basic *)tlv;
-@@ -2739,6 +2740,8 @@ int mt76_connac_mcu_bss_basic_tlv(struct sk_buff *skb,
+@@ -2747,6 +2748,8 @@ int mt76_connac_mcu_bss_basic_tlv(struct sk_buff *skb,
  		bss->dtim_period = vif->bss_conf.dtim_period;
  		bss->phy_mode = mt76_connac_get_phy_mode(phy, vif,
  							 chandef->chan->band, NULL);
@@ -68,7 +68,7 @@
  		memcpy(bss->bssid, phy->macaddr, ETH_ALEN);
  	}
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index 7d3397e2..d94a0d55 100644
+index 7d3397e..d94a0d5 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -737,8 +737,10 @@ mt7915_mac_write_txwi_tm(struct mt7915_phy *phy, __le32 *txwi,
@@ -84,7 +84,7 @@
  	txwi[6] |= cpu_to_le32(val);
  #endif
 diff --git a/mt7915/main.c b/mt7915/main.c
-index 6415e844..c6eca6fe 100644
+index 6415e84..c6eca6f 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -205,46 +205,37 @@ static void mt7915_init_bitrate_mask(struct ieee80211_vif *vif)
@@ -175,7 +175,7 @@
  
  	return ret;
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 573f1e88..9dd4b775 100644
+index 573f1e8..9dd4b77 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -199,6 +199,7 @@ mt7915_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb,
@@ -254,7 +254,7 @@
  		return -EINVAL;
  	}
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index 066246bb..de17c579 100644
+index 066246b..de17c57 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -546,10 +546,12 @@ enum {
@@ -448,7 +448,7 @@
  	MURU_SET_ARB_OP_MODE = 14,
  	MURU_SET_PLATFORM_TYPE = 25,
 diff --git a/mt7915/mmio.c b/mt7915/mmio.c
-index 222e2cfd..ddf1b72a 100644
+index 222e2cf..ddf1b72 100644
 --- a/mt7915/mmio.c
 +++ b/mt7915/mmio.c
 @@ -133,6 +133,7 @@ static const u32 mt7915_offs[] = {
@@ -468,7 +468,7 @@
  	[AGG_AALCR0]		= 0x028,
  	[AGG_AWSCR0]		= 0x030,
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 1644a467..b06e5ca9 100644
+index 1644a46..b06e5ca 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -312,7 +312,6 @@ struct mt7915_phy {
@@ -523,7 +523,7 @@
 +
  #endif
 diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
-index 2298c0c6..717c7763 100644
+index 1ed40ba..30c5f68 100644
 --- a/mt7915/mtk_debugfs.c
 +++ b/mt7915/mtk_debugfs.c
 @@ -2888,6 +2888,36 @@ mt7915_txpower_level_set(void *data, u64 val)
@@ -576,7 +576,7 @@
  
  	return 0;
 diff --git a/mt7915/mtk_mcu.c b/mt7915/mtk_mcu.c
-index 143dae26..7a2d28c7 100644
+index 143dae2..7a2d28c 100644
 --- a/mt7915/mtk_mcu.c
 +++ b/mt7915/mtk_mcu.c
 @@ -1,9 +1,10 @@
@@ -840,7 +840,7 @@
 +}
 +#endif
 diff --git a/mt7915/regs.h b/mt7915/regs.h
-index 7e9b76b0..4d05e391 100644
+index 7e9b76b..4d05e39 100644
 --- a/mt7915/regs.h
 +++ b/mt7915/regs.h
 @@ -61,6 +61,7 @@ enum offs_rev {
@@ -862,7 +862,7 @@
  #define MT_WF_RMAC_BASE(_band)		((_band) ? 0x820f5000 : 0x820e5000)
  #define MT_WF_RMAC(_band, ofs)		(MT_WF_RMAC_BASE(_band) + (ofs))
 diff --git a/mt7915/testmode.c b/mt7915/testmode.c
-index caa35906..faf60146 100644
+index caa3590..faf6014 100644
 --- a/mt7915/testmode.c
 +++ b/mt7915/testmode.c
 @@ -55,6 +55,8 @@ struct reg_band {
@@ -1706,7 +1706,7 @@
  	rateval =  mode << 6 | rate_idx;
  	tx_cont->rateval = cpu_to_le16(rateval);
 diff --git a/mt7915/testmode.h b/mt7915/testmode.h
-index 75698261..5aba13cf 100644
+index 7569826..5aba13c 100644
 --- a/mt7915/testmode.h
 +++ b/mt7915/testmode.h
 @@ -311,137 +311,7 @@ struct mt7915_tm_muru {
@@ -1850,7 +1850,7 @@
  
  #endif
 diff --git a/testmode.c b/testmode.c
-index b369826e..a3e6d4ad 100644
+index b369826..a3e6d4a 100644
 --- a/testmode.c
 +++ b/testmode.c
 @@ -196,6 +196,7 @@ mt76_testmode_alloc_skb(struct mt76_phy *phy, u32 len,
@@ -1862,7 +1862,7 @@
  	memcpy(hdr->addr2, addr[1], ETH_ALEN);
  	memcpy(hdr->addr3, addr[2], ETH_ALEN);
 diff --git a/testmode.h b/testmode.h
-index b39cf511..20fab3ec 100644
+index b39cf51..20fab3e 100644
 --- a/testmode.h
 +++ b/testmode.h
 @@ -303,7 +303,10 @@ enum mt76_testmode_cfg {
@@ -1890,7 +1890,7 @@
  	/* keep last */
  	NUM_MT76_TM_TXBF_ACT,
 diff --git a/tools/fields.c b/tools/fields.c
-index e2cf4b92..027b8cdb 100644
+index e2cf4b9..027b8cd 100644
 --- a/tools/fields.c
 +++ b/tools/fields.c
 @@ -33,7 +33,10 @@ static const char * const testmode_tx_mode[] = {
diff --git a/recipes-wifi/linux-mt76/files/patches/1013-wifi-mt76-connac-airtime-fairness-feature-off-in-mac.patch b/recipes-wifi/linux-mt76/files/patches/1013-wifi-mt76-connac-airtime-fairness-feature-off-in-mac.patch
index 5e0fc98..cea0e5b 100644
--- a/recipes-wifi/linux-mt76/files/patches/1013-wifi-mt76-connac-airtime-fairness-feature-off-in-mac.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1013-wifi-mt76-connac-airtime-fairness-feature-off-in-mac.patch
@@ -1,7 +1,7 @@
-From cef4899673f363b224e3c1b8cc74d4a2c9e63ddd Mon Sep 17 00:00:00 2001
+From b19594cf12b01dede83a984ca717e26be37bbfdd Mon Sep 17 00:00:00 2001
 From: Evelyn Tsai <evelyn.tsai@mediatek.com>
 Date: Fri, 6 May 2022 15:58:42 +0800
-Subject: [PATCH 1013/1051] wifi: mt76: connac: airtime fairness feature off in
+Subject: [PATCH 1013/1053] wifi: mt76: connac: airtime fairness feature off in
  mac80211
 
 ---
@@ -9,7 +9,7 @@
  1 file changed, 1 deletion(-)
 
 diff --git a/mac80211.c b/mac80211.c
-index 305cae78..f9dfdf8c 100644
+index 305cae7..f9dfdf8 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -451,7 +451,6 @@ mt76_phy_init(struct mt76_phy *phy, struct ieee80211_hw *hw)
diff --git a/recipes-wifi/linux-mt76/files/patches/1014-wifi-mt76-mt7915-add-phy-capability-vendor-command.patch b/recipes-wifi/linux-mt76/files/patches/1014-wifi-mt76-mt7915-add-phy-capability-vendor-command.patch
index c8fcc07..7f75d00 100644
--- a/recipes-wifi/linux-mt76/files/patches/1014-wifi-mt76-mt7915-add-phy-capability-vendor-command.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1014-wifi-mt76-mt7915-add-phy-capability-vendor-command.patch
@@ -1,7 +1,7 @@
-From 20455d572c06be4ac08bc38e0b07aeb4a9e16029 Mon Sep 17 00:00:00 2001
+From 34cb90df1cfbbe69bb96a4eabd249e190d821e03 Mon Sep 17 00:00:00 2001
 From: Yi-Chia Hsieh <Yi-Chia.Hsieh@mediatek.com>
 Date: Tue, 12 Jul 2022 10:04:35 -0700
-Subject: [PATCH 1014/1051] wifi: mt76: mt7915: add phy capability vendor
+Subject: [PATCH 1014/1053] wifi: mt76: mt7915: add phy capability vendor
  command
 
 ---
@@ -11,7 +11,7 @@
  3 files changed, 78 insertions(+)
 
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index b06e5ca9..d21b843e 100644
+index b06e5ca..d21b843 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -11,6 +11,7 @@
@@ -23,7 +23,7 @@
  #define MT7916_WTBL_SIZE		544
  #define MT7915_WTBL_RESERVED		(mt7915_wtbl_size(dev) - 1)
 diff --git a/mt7915/vendor.c b/mt7915/vendor.c
-index a8b1fa84..757aecb6 100644
+index a8b1fa8..757aecb 100644
 --- a/mt7915/vendor.c
 +++ b/mt7915/vendor.c
 @@ -51,6 +51,18 @@ rfeature_ctrl_policy[NUM_MTK_VENDOR_ATTRS_RFEATURE_CTRL] = {
@@ -100,7 +100,7 @@
  };
  
 diff --git a/mt7915/vendor.h b/mt7915/vendor.h
-index a4a91804..34dd7d02 100644
+index a4a9180..34dd7d0 100644
 --- a/mt7915/vendor.h
 +++ b/mt7915/vendor.h
 @@ -10,6 +10,7 @@ enum mtk_nl80211_vendor_subcmds {
diff --git a/recipes-wifi/linux-mt76/files/patches/1015-wifi-mt76-mt7915-add-vendor-subcmd-EDCCA-ctrl-enable.patch b/recipes-wifi/linux-mt76/files/patches/1015-wifi-mt76-mt7915-add-vendor-subcmd-EDCCA-ctrl-enable.patch
index 9b30104..91e392f 100644
--- a/recipes-wifi/linux-mt76/files/patches/1015-wifi-mt76-mt7915-add-vendor-subcmd-EDCCA-ctrl-enable.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1015-wifi-mt76-mt7915-add-vendor-subcmd-EDCCA-ctrl-enable.patch
@@ -1,7 +1,7 @@
-From 112f472d3c2b14437899d42e26bb844fbc7ff020 Mon Sep 17 00:00:00 2001
+From ef07367ab6f484383d0616953254276b31719a21 Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Fri, 24 Jun 2022 11:15:45 +0800
-Subject: [PATCH 1015/1051] wifi: mt76: mt7915: add vendor subcmd EDCCA ctrl
+Subject: [PATCH 1015/1053] wifi: mt76: mt7915: add vendor subcmd EDCCA ctrl
  enable/threshold/compensation
 
 ---
@@ -15,10 +15,10 @@
  7 files changed, 265 insertions(+), 1 deletion(-)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 4d85d323..8dba184d 100644
+index 69ca57a..b2b7095 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1243,6 +1243,7 @@ enum {
+@@ -1251,6 +1251,7 @@ enum {
  	MCU_EXT_CMD_SMESH_CTRL = 0xae,
  	MCU_EXT_CMD_RX_STAT_USER_CTRL = 0xb3,
  	MCU_EXT_CMD_CERT_CFG = 0xb7,
@@ -27,7 +27,7 @@
  	MCU_EXT_CMD_IPI_HIST_SCAN = 0xc5,
  };
 diff --git a/mt7915/main.c b/mt7915/main.c
-index c6eca6fe..9fafa162 100644
+index c6eca6f..9fafa16 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -479,6 +479,9 @@ static int mt7915_config(struct ieee80211_hw *hw, u32 changed)
@@ -41,7 +41,7 @@
  		ret = mt7915_set_channel(phy);
  		if (ret)
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 9dd4b775..1e84236d 100644
+index 9dd4b77..1e84236 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -5037,3 +5037,76 @@ int mt7915_mcu_ipi_hist_scan(struct mt7915_phy *phy, void *data, u8 mode, bool w
@@ -122,7 +122,7 @@
 +	return 0;
 +}
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index de17c579..1682c117 100644
+index de17c57..1682c11 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -1128,6 +1128,27 @@ enum {
@@ -154,7 +154,7 @@
  
  #endif
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index d21b843e..000751bd 100644
+index d21b843..000751b 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -770,7 +770,8 @@ void mt7915_vendor_amnt_fill_rx(struct mt7915_phy *phy, struct sk_buff *skb);
@@ -168,7 +168,7 @@
  int mt7915_mcu_ipi_hist_scan(struct mt7915_phy *phy, void *data, u8 mode, bool wait_resp);
  
 diff --git a/mt7915/vendor.c b/mt7915/vendor.c
-index 757aecb6..3a586846 100644
+index 757aecb..3a58684 100644
 --- a/mt7915/vendor.c
 +++ b/mt7915/vendor.c
 @@ -63,6 +63,24 @@ phy_capa_dump_policy[NUM_MTK_VENDOR_ATTRS_PHY_CAPA_DUMP] = {
@@ -325,7 +325,7 @@
  };
  
 diff --git a/mt7915/vendor.h b/mt7915/vendor.h
-index 34dd7d02..284994a2 100644
+index 34dd7d0..284994a 100644
 --- a/mt7915/vendor.h
 +++ b/mt7915/vendor.h
 @@ -3,6 +3,7 @@
diff --git a/recipes-wifi/linux-mt76/files/patches/1016-wifi-mt76-mt7915-implement-bin-file-mode.patch b/recipes-wifi/linux-mt76/files/patches/1016-wifi-mt76-mt7915-implement-bin-file-mode.patch
index 90a7319..792580c 100644
--- a/recipes-wifi/linux-mt76/files/patches/1016-wifi-mt76-mt7915-implement-bin-file-mode.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1016-wifi-mt76-mt7915-implement-bin-file-mode.patch
@@ -1,7 +1,7 @@
-From 94c84707ae8140a4a9bda8d86d24e43bc299147a Mon Sep 17 00:00:00 2001
+From 9291fdb4f324728e5f4e233a08282f828cc04b80 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Thu, 7 Jul 2022 11:09:59 +0800
-Subject: [PATCH 1016/1051] wifi: mt76: mt7915: implement bin file mode
+Subject: [PATCH 1016/1053] wifi: mt76: mt7915: implement bin file mode
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
@@ -16,7 +16,7 @@
  7 files changed, 144 insertions(+), 4 deletions(-)
 
 diff --git a/eeprom.c b/eeprom.c
-index 3625b169..9d029c04 100644
+index 3625b16..9d029c0 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)
@@ -52,7 +52,7 @@
  mt76_eeprom_override(struct mt76_phy *phy)
  {
 diff --git a/mt76.h b/mt76.h
-index 8025e043..48e98a3a 100644
+index 8025e04..48e98a3 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -983,6 +983,9 @@ struct mt76_dev {
@@ -74,7 +74,7 @@
  struct mt76_queue *
  mt76_init_queue(struct mt76_dev *dev, int qid, int idx, int n_desc,
 diff --git a/mt7915/eeprom.c b/mt7915/eeprom.c
-index f4876fe9..c8b1c18e 100644
+index f4876fe..c8b1c18 100644
 --- a/mt7915/eeprom.c
 +++ b/mt7915/eeprom.c
 @@ -5,6 +5,30 @@
@@ -196,7 +196,7 @@
  		if (ret)
  			return ret;
 diff --git a/mt7915/eeprom.h b/mt7915/eeprom.h
-index 509fb43d..99101f91 100644
+index 509fb43..99101f9 100644
 --- a/mt7915/eeprom.h
 +++ b/mt7915/eeprom.h
 @@ -109,6 +109,13 @@ enum mt7915_sku_rate_group {
@@ -214,7 +214,7 @@
  mt7915_get_channel_group_5g(int channel, bool is_7976)
  {
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 000751bd..a06a46e0 100644
+index 000751b..a06a46e 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -397,6 +397,8 @@ struct mt7915_dev {
@@ -235,7 +235,7 @@
  #define PKT_BIN_DEBUG_MAGIC	0xc8763123
  enum {
 diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
-index 717c7763..9270a5e5 100644
+index 30c5f68..02e0db3 100644
 --- a/mt7915/mtk_debugfs.c
 +++ b/mt7915/mtk_debugfs.c
 @@ -3,6 +3,7 @@
@@ -304,7 +304,7 @@
  }
  #endif
 diff --git a/testmode.h b/testmode.h
-index 20fab3ec..91d1e867 100644
+index 20fab3e..91d1e86 100644
 --- a/testmode.h
 +++ b/testmode.h
 @@ -17,7 +17,7 @@
diff --git a/recipes-wifi/linux-mt76/files/patches/1017-wifi-mt76-mt7915-Add-mu-dump-support.patch b/recipes-wifi/linux-mt76/files/patches/1017-wifi-mt76-mt7915-Add-mu-dump-support.patch
index e08d9e8..a8a9084 100644
--- a/recipes-wifi/linux-mt76/files/patches/1017-wifi-mt76-mt7915-Add-mu-dump-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1017-wifi-mt76-mt7915-Add-mu-dump-support.patch
@@ -1,7 +1,7 @@
-From d49a9821782e9301cb60400fd0a1fe0126cae897 Mon Sep 17 00:00:00 2001
+From 7a381293087e8d94349e5488936e53f884730787 Mon Sep 17 00:00:00 2001
 From: TomLiu <tomml.liu@mediatek.com>
 Date: Thu, 11 Aug 2022 18:09:45 -0700
-Subject: [PATCH 1017/1051] wifi: mt76: mt7915: Add mu dump support
+Subject: [PATCH 1017/1053] wifi: mt76: mt7915: Add mu dump support
 
 ---
  mt7915/vendor.c | 24 ++++++++++++++++++++++++
@@ -9,7 +9,7 @@
  2 files changed, 25 insertions(+)
 
 diff --git a/mt7915/vendor.c b/mt7915/vendor.c
-index 3a586846..ac6f6371 100644
+index 3a58684..ac6f637 100644
 --- a/mt7915/vendor.c
 +++ b/mt7915/vendor.c
 @@ -38,6 +38,7 @@ wireless_ctrl_policy[NUM_MTK_VENDOR_ATTRS_WIRELESS_CTRL] = {
@@ -58,7 +58,7 @@
  		.maxattr = MTK_VENDOR_ATTR_MU_CTRL_MAX,
  	},
 diff --git a/mt7915/vendor.h b/mt7915/vendor.h
-index 284994a2..8c2a996d 100644
+index 284994a..8c2a996 100644
 --- a/mt7915/vendor.h
 +++ b/mt7915/vendor.h
 @@ -73,6 +73,7 @@ enum mtk_vendor_attr_mu_ctrl {
diff --git a/recipes-wifi/linux-mt76/files/patches/1018-wifi-mt76-mt7915-add-vendor-subcmd-three-wire-PTA-ct.patch b/recipes-wifi/linux-mt76/files/patches/1018-wifi-mt76-mt7915-add-vendor-subcmd-three-wire-PTA-ct.patch
index f4a190b..14378c2 100644
--- a/recipes-wifi/linux-mt76/files/patches/1018-wifi-mt76-mt7915-add-vendor-subcmd-three-wire-PTA-ct.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1018-wifi-mt76-mt7915-add-vendor-subcmd-three-wire-PTA-ct.patch
@@ -1,7 +1,7 @@
-From 3a63048fa0c3dd8e0f00a0ba36cd644cbcc8592d Mon Sep 17 00:00:00 2001
+From 385b5303f5e3142d87bdb6a2e5c55ccb7f2fdd9c Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Fri, 28 Oct 2022 10:15:56 +0800
-Subject: [PATCH 1018/1051] wifi: mt76: mt7915: add vendor subcmd three wire
+Subject: [PATCH 1018/1053] wifi: mt76: mt7915: add vendor subcmd three wire
  (PTA) ctrl
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
@@ -15,10 +15,10 @@
  6 files changed, 111 insertions(+), 29 deletions(-)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 8dba184d..6f6a889b 100644
+index b2b7095..109462a 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1242,7 +1242,7 @@ enum {
+@@ -1250,7 +1250,7 @@ enum {
  	/* for vendor csi and air monitor */
  	MCU_EXT_CMD_SMESH_CTRL = 0xae,
  	MCU_EXT_CMD_RX_STAT_USER_CTRL = 0xb3,
@@ -28,7 +28,7 @@
  	MCU_EXT_CMD_CSI_CTRL = 0xc2,
  	MCU_EXT_CMD_IPI_HIST_SCAN = 0xc5,
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 1e84236d..072185fd 100644
+index 1e84236..072185f 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -4736,37 +4736,33 @@ void mt7915_mcu_set_dynalgo(struct mt7915_phy *phy, u8 enable)
@@ -93,7 +93,7 @@
  
  void mt7915_mcu_set_bypass_smthint(struct mt7915_phy *phy, u8 val)
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index 1682c117..1b0bd06b 100644
+index 1682c11..1b0bd06 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -916,6 +916,35 @@ struct mt7915_mcu_rdd_ipi_scan {
@@ -133,7 +133,7 @@
  #define OFDMA_DL                       BIT(0)
  #define OFDMA_UL                       BIT(1)
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index a06a46e0..00d2b356 100644
+index a06a46e..00d2b35 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -764,6 +764,7 @@ void mt7915_mcu_set_mimo(struct mt7915_phy *phy, u8 direction);
@@ -145,7 +145,7 @@
  void mt7915_vendor_register(struct mt7915_phy *phy);
  int mt7915_mcu_set_csi(struct mt7915_phy *phy, u8 mode,
 diff --git a/mt7915/vendor.c b/mt7915/vendor.c
-index ac6f6371..eeac18d2 100644
+index ac6f637..eeac18d 100644
 --- a/mt7915/vendor.c
 +++ b/mt7915/vendor.c
 @@ -41,6 +41,11 @@ mu_ctrl_policy[NUM_MTK_VENDOR_ATTRS_MU_CTRL] = {
@@ -228,7 +228,7 @@
  };
  
 diff --git a/mt7915/vendor.h b/mt7915/vendor.h
-index 8c2a996d..e61a6aaa 100644
+index 8c2a996..e61a6aa 100644
 --- a/mt7915/vendor.h
 +++ b/mt7915/vendor.h
 @@ -13,6 +13,7 @@ enum mtk_nl80211_vendor_subcmds {
diff --git a/recipes-wifi/linux-mt76/files/patches/1019-wifi-mt76-mt7915-add-ibf-control-vendor-cmd.patch b/recipes-wifi/linux-mt76/files/patches/1019-wifi-mt76-mt7915-add-ibf-control-vendor-cmd.patch
index 17293e0..e0e3ce7 100644
--- a/recipes-wifi/linux-mt76/files/patches/1019-wifi-mt76-mt7915-add-ibf-control-vendor-cmd.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1019-wifi-mt76-mt7915-add-ibf-control-vendor-cmd.patch
@@ -1,7 +1,7 @@
-From f8e4daf72450f62353b72b6229a15bc9a7a28d9e Mon Sep 17 00:00:00 2001
+From 090c1e87976b841379871abfa75879dc115e4224 Mon Sep 17 00:00:00 2001
 From: mtk27835 <shurong.wen@mediatek.com>
 Date: Wed, 7 Sep 2022 14:01:29 -0700
-Subject: [PATCH 1019/1051] wifi: mt76: mt7915: add ibf control vendor cmd
+Subject: [PATCH 1019/1053] wifi: mt76: mt7915: add ibf control vendor cmd
 
 Signed-off-by: mtk27835 <shurong.wen@mediatek.com>
 ---
@@ -10,7 +10,7 @@
  2 files changed, 89 insertions(+), 1 deletion(-)
 
 diff --git a/mt7915/vendor.c b/mt7915/vendor.c
-index eeac18d2..a21cbce2 100644
+index eeac18d..a21cbce 100644
 --- a/mt7915/vendor.c
 +++ b/mt7915/vendor.c
 @@ -87,6 +87,11 @@ edcca_dump_policy[NUM_MTK_VENDOR_ATTRS_EDCCA_DUMP] = {
@@ -100,7 +100,7 @@
  };
  
 diff --git a/mt7915/vendor.h b/mt7915/vendor.h
-index e61a6aaa..876edf34 100644
+index e61a6aa..876edf3 100644
 --- a/mt7915/vendor.h
 +++ b/mt7915/vendor.h
 @@ -13,7 +13,8 @@ enum mtk_nl80211_vendor_subcmds {
diff --git a/recipes-wifi/linux-mt76/files/patches/1020-wifi-mt76-mt7915-add-cal-free-data-merge-support.patch b/recipes-wifi/linux-mt76/files/patches/1020-wifi-mt76-mt7915-add-cal-free-data-merge-support.patch
index 449f8f8..dd8f1dd 100644
--- a/recipes-wifi/linux-mt76/files/patches/1020-wifi-mt76-mt7915-add-cal-free-data-merge-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1020-wifi-mt76-mt7915-add-cal-free-data-merge-support.patch
@@ -1,7 +1,7 @@
-From 30844a3ca673f10b487d7c2e373a91004126727b Mon Sep 17 00:00:00 2001
+From 0d530532bcd6795ff333eb7dafee44872c35c64b Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Thu, 30 Mar 2023 15:12:37 +0800
-Subject: [PATCH 1020/1051] wifi: mt76: mt7915: add cal free data merge support
+Subject: [PATCH 1020/1053] wifi: mt76: mt7915: add cal free data merge support
 
 1. add basic cal free data support
 2. add E3 low yield rate workaround for panther E3 with 7976 adie
@@ -19,10 +19,10 @@
  5 files changed, 250 insertions(+), 6 deletions(-)
 
 diff --git a/mt7915/debugfs.c b/mt7915/debugfs.c
-index f1813776..40a126fa 100644
+index 2661386..5c08910 100644
 --- a/mt7915/debugfs.c
 +++ b/mt7915/debugfs.c
-@@ -1240,6 +1240,46 @@ mt7915_rf_regval_set(void *data, u64 val)
+@@ -1241,6 +1241,46 @@ mt7915_rf_regval_set(void *data, u64 val)
  DEFINE_DEBUGFS_ATTRIBUTE(fops_rf_regval, mt7915_rf_regval_get,
  			 mt7915_rf_regval_set, "0x%08llx\n");
  
@@ -69,7 +69,7 @@
  int mt7915_init_debugfs(struct mt7915_phy *phy)
  {
  	struct mt7915_dev *dev = phy->dev;
-@@ -1282,6 +1322,7 @@ int mt7915_init_debugfs(struct mt7915_phy *phy)
+@@ -1283,6 +1323,7 @@ int mt7915_init_debugfs(struct mt7915_phy *phy)
  		debugfs_create_devm_seqfile(dev->mt76.dev, "rdd_monitor", dir,
  					    mt7915_rdd_monitor);
  	}
@@ -78,7 +78,7 @@
  	if (!ext_phy)
  		dev->debugfs_dir = dir;
 diff --git a/mt7915/eeprom.c b/mt7915/eeprom.c
-index c8b1c18e..6133c200 100644
+index c8b1c18..6133c20 100644
 --- a/mt7915/eeprom.c
 +++ b/mt7915/eeprom.c
 @@ -48,8 +48,13 @@ static int mt7915_eeprom_load_precal(struct mt7915_dev *dev)
@@ -309,7 +309,7 @@
  	memcpy(dev->mphy.macaddr, dev->mt76.eeprom.data + MT_EE_MAC_ADDR,
  	       ETH_ALEN);
 diff --git a/mt7915/eeprom.h b/mt7915/eeprom.h
-index 99101f91..70fca0b3 100644
+index 99101f9..70fca0b 100644
 --- a/mt7915/eeprom.h
 +++ b/mt7915/eeprom.h
 @@ -68,6 +68,8 @@ enum mt7915_eeprom_field {
@@ -322,7 +322,7 @@
  	MT7976_ONE_ADIE_DBDC = 0x7,
  	MT7975_ONE_ADIE	= 0x8,
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 072185fd..12622068 100644
+index 072185f..1262206 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -2968,6 +2968,7 @@ int mt7915_mcu_get_eeprom(struct mt7915_dev *dev, u32 offset, u8 *read_buf)
@@ -353,7 +353,7 @@
  	dev_kfree_skb(skb);
  
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 00d2b356..1e5cd941 100644
+index 00d2b35..1e5cd94 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -562,6 +562,7 @@ u32 mt7915_wed_init_buf(void *ptr, dma_addr_t phys, int token_id);
diff --git a/recipes-wifi/linux-mt76/files/patches/1021-wifi-mt76-mt7915-support-on-off-SW-ACI-through-debug.patch b/recipes-wifi/linux-mt76/files/patches/1021-wifi-mt76-mt7915-support-on-off-SW-ACI-through-debug.patch
index 3d5a3e7..59e2690 100644
--- a/recipes-wifi/linux-mt76/files/patches/1021-wifi-mt76-mt7915-support-on-off-SW-ACI-through-debug.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1021-wifi-mt76-mt7915-support-on-off-SW-ACI-through-debug.patch
@@ -1,7 +1,7 @@
-From e769bcee5b7268643d5be9fab858ec46c8bc7584 Mon Sep 17 00:00:00 2001
+From 43d77d4dd7c55898fea4df333be72e77b5571eab Mon Sep 17 00:00:00 2001
 From: Evelyn Tsai <evelyn.tsai@mediatek.com>
 Date: Fri, 14 Oct 2022 11:15:13 +0800
-Subject: [PATCH 1021/1051] wifi: mt76: mt7915: support on off SW ACI through
+Subject: [PATCH 1021/1053] wifi: mt76: mt7915: support on off SW ACI through
  debugfs
 
 Signed-off-by: Evelyn Tsai <evelyn.tsai@mediatek.com>
@@ -11,10 +11,10 @@
  2 files changed, 22 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 6f6a889b..12654017 100644
+index 109462a..c6a43dd 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1244,6 +1244,7 @@ enum {
+@@ -1252,6 +1252,7 @@ enum {
  	MCU_EXT_CMD_RX_STAT_USER_CTRL = 0xb3,
  	MCU_EXT_CMD_SET_CFG = 0xb7,
  	MCU_EXT_CMD_EDCCA = 0xba,
@@ -23,7 +23,7 @@
  	MCU_EXT_CMD_IPI_HIST_SCAN = 0xc5,
  };
 diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
-index 9270a5e5..e8296476 100644
+index 02e0db3..a433e67 100644
 --- a/mt7915/mtk_debugfs.c
 +++ b/mt7915/mtk_debugfs.c
 @@ -3770,6 +3770,25 @@ static int mt7915_show_eeprom_mode(struct seq_file *s, void *data)
diff --git a/recipes-wifi/linux-mt76/files/patches/1022-wifi-mt76-mt7915-add-bf-backoff-limit-table-support.patch b/recipes-wifi/linux-mt76/files/patches/1022-wifi-mt76-mt7915-add-bf-backoff-limit-table-support.patch
index 7130ba5..a5e4621 100644
--- a/recipes-wifi/linux-mt76/files/patches/1022-wifi-mt76-mt7915-add-bf-backoff-limit-table-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1022-wifi-mt76-mt7915-add-bf-backoff-limit-table-support.patch
@@ -1,7 +1,7 @@
-From e5b0035623fe1ae0e770dcff3c0c97fc6379249e Mon Sep 17 00:00:00 2001
+From 5f739478e44b2cb080b0ece69b06dd18280e8d3e Mon Sep 17 00:00:00 2001
 From: Shayne Chen <shayne.chen@mediatek.com>
 Date: Mon, 5 Dec 2022 18:21:51 +0800
-Subject: [PATCH 1022/1051] wifi: mt76: mt7915: add bf backoff limit table
+Subject: [PATCH 1022/1053] wifi: mt76: mt7915: add bf backoff limit table
  support
 
 Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
@@ -18,7 +18,7 @@
  9 files changed, 279 insertions(+), 55 deletions(-)
 
 diff --git a/debugfs.c b/debugfs.c
-index 1c8328d5..a626f7cf 100644
+index 1c8328d..a626f7c 100644
 --- a/debugfs.c
 +++ b/debugfs.c
 @@ -95,9 +95,9 @@ void mt76_seq_puts_array(struct seq_file *file, const char *str,
@@ -34,7 +34,7 @@
  }
  EXPORT_SYMBOL_GPL(mt76_seq_puts_array);
 diff --git a/eeprom.c b/eeprom.c
-index 9d029c04..4213e444 100644
+index 9d029c0..4213e44 100644
 --- a/eeprom.c
 +++ b/eeprom.c
 @@ -336,9 +336,10 @@ mt76_apply_array_limit(s8 *pwr, size_t pwr_len, const __be32 *data,
@@ -121,7 +121,7 @@
  EXPORT_SYMBOL_GPL(mt76_get_rate_power_limits);
  
 diff --git a/mt76.h b/mt76.h
-index 48e98a3a..5c267154 100644
+index 48e98a3..5c26715 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -1089,6 +1089,14 @@ struct mt76_power_limits {
@@ -140,10 +140,10 @@
  
  struct mt76_ethtool_worker_info {
 diff --git a/mt7915/debugfs.c b/mt7915/debugfs.c
-index 40a126fa..c7002ee0 100644
+index 5c08910..fa1d2ac 100644
 --- a/mt7915/debugfs.c
 +++ b/mt7915/debugfs.c
-@@ -1019,7 +1019,7 @@ mt7915_rate_txpower_get(struct file *file, char __user *user_buf,
+@@ -1020,7 +1020,7 @@ mt7915_rate_txpower_get(struct file *file, char __user *user_buf,
  	if (!buf)
  		return -ENOMEM;
  
@@ -152,7 +152,7 @@
  	if (ret)
  		goto out;
  
-@@ -1133,7 +1133,7 @@ mt7915_rate_txpower_set(struct file *file, const char __user *user_buf,
+@@ -1134,7 +1134,7 @@ mt7915_rate_txpower_set(struct file *file, const char __user *user_buf,
  
  	mutex_lock(&dev->mt76.mutex);
  	ret = mt7915_mcu_get_txpower_sku(phy, req.txpower_sku,
@@ -161,7 +161,7 @@
  	if (ret)
  		goto out;
  
-@@ -1175,7 +1175,7 @@ out:
+@@ -1176,7 +1176,7 @@ out:
  	return ret ? ret : count;
  }
  
@@ -170,7 +170,7 @@
  	.write = mt7915_rate_txpower_set,
  	.read = mt7915_rate_txpower_get,
  	.open = simple_open,
-@@ -1183,6 +1183,69 @@ static const struct file_operations mt7915_rate_txpower_fops = {
+@@ -1184,6 +1184,69 @@ static const struct file_operations mt7915_rate_txpower_fops = {
  	.llseek = default_llseek,
  };
  
@@ -240,7 +240,7 @@
  static int
  mt7915_twt_stats(struct seq_file *s, void *data)
  {
-@@ -1309,7 +1372,9 @@ int mt7915_init_debugfs(struct mt7915_phy *phy)
+@@ -1310,7 +1373,9 @@ int mt7915_init_debugfs(struct mt7915_phy *phy)
  	debugfs_create_file("implicit_txbf", 0600, dir, dev,
  			    &fops_implicit_txbf);
  	debugfs_create_file("txpower_sku", 0400, dir, phy,
@@ -252,7 +252,7 @@
  				    mt7915_twt_stats);
  	debugfs_create_file("rf_regval", 0600, dir, dev, &fops_rf_regval);
 diff --git a/mt7915/init.c b/mt7915/init.c
-index 83748da6..33e030f5 100644
+index 439403f..b32e213 100644
 --- a/mt7915/init.c
 +++ b/mt7915/init.c
 @@ -284,6 +284,8 @@ static void __mt7915_init_txpower(struct mt7915_phy *phy,
@@ -277,7 +277,7 @@
  		target_power = DIV_ROUND_UP(target_power, 2);
  		chan->max_power = min_t(int, chan->max_reg_power,
 diff --git a/mt7915/main.c b/mt7915/main.c
-index 9fafa162..da7a87bf 100644
+index 9fafa16..da7a87b 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -73,11 +73,7 @@ int mt7915_run(struct ieee80211_hw *hw)
@@ -294,7 +294,7 @@
  		goto out;
  
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 12622068..eb7638b5 100644
+index 1262206..eb7638b 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -3422,7 +3422,8 @@ int mt7915_mcu_set_txpower_frame(struct mt7915_phy *phy,
@@ -542,7 +542,7 @@
  	return mt76_mcu_send_msg(&dev->mt76,
  				 MCU_EXT_CMD(TX_POWER_FEATURE_CTRL), &req,
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index 1b0bd06b..94eff268 100644
+index 1b0bd06..94eff26 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -517,12 +517,18 @@ enum {
@@ -565,7 +565,7 @@
  	SPR_ENABLE = 0x1,
  	SPR_ENABLE_SD = 0x3,
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 1e5cd941..826682be 100644
+index 1e5cd94..826682b 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -72,6 +72,7 @@
diff --git a/recipes-wifi/linux-mt76/files/patches/1023-wifi-mt76-mt7915-amsdu-set-and-get-control.patch b/recipes-wifi/linux-mt76/files/patches/1023-wifi-mt76-mt7915-amsdu-set-and-get-control.patch
index ec91527..3bad259 100644
--- a/recipes-wifi/linux-mt76/files/patches/1023-wifi-mt76-mt7915-amsdu-set-and-get-control.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1023-wifi-mt76-mt7915-amsdu-set-and-get-control.patch
@@ -1,7 +1,7 @@
-From 976d5b10d0ce0c450117994c27d8aa17cf4b8e61 Mon Sep 17 00:00:00 2001
+From 568ebf749e43bade66a39a223a53918db8d71edf Mon Sep 17 00:00:00 2001
 From: TomLiu <tomml.liu@mediatek.com>
 Date: Wed, 14 Dec 2022 00:44:07 -0800
-Subject: [PATCH 1023/1051] wifi: mt76: mt7915: amsdu set and get control
+Subject: [PATCH 1023/1053] wifi: mt76: mt7915: amsdu set and get control
 
 ---
  mt7915/mac.c    |  7 +++++++
@@ -11,7 +11,7 @@
  4 files changed, 50 insertions(+)
 
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index d94a0d55..1e39ad25 100644
+index d94a0d5..1e39ad2 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -2035,6 +2035,13 @@ static void mt7915_mac_sta_stats_work(struct mt7915_phy *phy)
@@ -29,7 +29,7 @@
  void mt7915_capi_sta_rc_work(void *data, struct ieee80211_sta *sta)
  {
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 826682be..fe7c2114 100644
+index 826682b..fe7c211 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -758,6 +758,7 @@ int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr,
@@ -41,7 +41,7 @@
  void mt7915_set_wireless_vif(void *data, u8 *mac, struct ieee80211_vif *vif);
  void mt7915_mcu_set_rfeature_starec(void *data, struct mt7915_dev *dev,
 diff --git a/mt7915/vendor.c b/mt7915/vendor.c
-index a21cbce2..e25a0ce4 100644
+index a21cbce..e25a0ce 100644
 --- a/mt7915/vendor.c
 +++ b/mt7915/vendor.c
 @@ -31,10 +31,16 @@ wireless_ctrl_policy[NUM_MTK_VENDOR_ATTRS_WIRELESS_CTRL] = {
@@ -105,7 +105,7 @@
  		.maxattr = MTK_VENDOR_ATTR_WIRELESS_CTRL_MAX,
  	},
 diff --git a/mt7915/vendor.h b/mt7915/vendor.h
-index 876edf34..7c4e9148 100644
+index 876edf3..7c4e914 100644
 --- a/mt7915/vendor.h
 +++ b/mt7915/vendor.h
 @@ -75,6 +75,7 @@ enum mtk_vendor_attr_wireless_ctrl {
diff --git a/recipes-wifi/linux-mt76/files/patches/1024-wifi-mt76-mt7915-Add-vendor-command-attribute-for-RT.patch b/recipes-wifi/linux-mt76/files/patches/1024-wifi-mt76-mt7915-Add-vendor-command-attribute-for-RT.patch
index e17d6d0..94d7b0e 100644
--- a/recipes-wifi/linux-mt76/files/patches/1024-wifi-mt76-mt7915-Add-vendor-command-attribute-for-RT.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1024-wifi-mt76-mt7915-Add-vendor-command-attribute-for-RT.patch
@@ -1,7 +1,7 @@
-From 5f1ee41ad1ddfd6077d53031c8fa2705b403045a Mon Sep 17 00:00:00 2001
+From b6063c3c2566911919194c88cb9b68e68596d994 Mon Sep 17 00:00:00 2001
 From: "himanshu.goyal" <himanshu.goyal@mediatek.com>
 Date: Tue, 24 Jan 2023 14:32:08 +0800
-Subject: [PATCH 1024/1051] wifi: mt76: mt7915: Add vendor command attribute
+Subject: [PATCH 1024/1053] wifi: mt76: mt7915: Add vendor command attribute
  for RTS BW signaling.
 
 Signed-off-by: himanshu.goyal <himanshu.goyal@mediatek.com>
@@ -13,7 +13,7 @@
  4 files changed, 20 insertions(+)
 
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index eb7638b5..8e9b801d 100644
+index eb7638b..8e9b801 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -4863,6 +4863,12 @@ int mt7915_mcu_set_cfg(struct mt7915_phy *phy, u8 cfg_info, u8 type)
@@ -30,7 +30,7 @@
  		tlv_len = sizeof(struct three_wire_cfg);
  		req.three_wire.tag = cpu_to_le16(cfg_info);
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index 94eff268..6ebcce0d 100644
+index 94eff26..6ebcce0 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -936,6 +936,13 @@ struct three_wire_cfg {
@@ -62,7 +62,7 @@
  };
  
 diff --git a/mt7915/vendor.c b/mt7915/vendor.c
-index e25a0ce4..8370216f 100644
+index e25a0ce..8370216 100644
 --- a/mt7915/vendor.c
 +++ b/mt7915/vendor.c
 @@ -34,6 +34,7 @@ wireless_ctrl_policy[NUM_MTK_VENDOR_ATTRS_WIRELESS_CTRL] = {
@@ -84,7 +84,7 @@
  
  	return 0;
 diff --git a/mt7915/vendor.h b/mt7915/vendor.h
-index 7c4e9148..3672420c 100644
+index 7c4e914..3672420 100644
 --- a/mt7915/vendor.h
 +++ b/mt7915/vendor.h
 @@ -77,6 +77,7 @@ enum mtk_vendor_attr_wireless_ctrl {
diff --git a/recipes-wifi/linux-mt76/files/patches/1025-wifi-mt76-mt7915-add-vendor-cmd-to-get-available-col.patch b/recipes-wifi/linux-mt76/files/patches/1025-wifi-mt76-mt7915-add-vendor-cmd-to-get-available-col.patch
index 867f9e9..df92c1a 100644
--- a/recipes-wifi/linux-mt76/files/patches/1025-wifi-mt76-mt7915-add-vendor-cmd-to-get-available-col.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1025-wifi-mt76-mt7915-add-vendor-cmd-to-get-available-col.patch
@@ -1,7 +1,7 @@
-From 31c27f15252ce23f0c1ce1e258b42e9eaf6fb245 Mon Sep 17 00:00:00 2001
+From 9981c906450cc4758d975b98f89ff62a64529be6 Mon Sep 17 00:00:00 2001
 From: Yi-Chia Hsieh <yi-chia.hsieh@mediatek.com>
 Date: Thu, 26 Jan 2023 08:50:47 +0800
-Subject: [PATCH 1025/1051] wifi: mt76: mt7915: add vendor cmd to get available
+Subject: [PATCH 1025/1053] wifi: mt76: mt7915: add vendor cmd to get available
  color bitmap
 
 Add a vendor cmd to notify user space available color bitmap.
@@ -14,7 +14,7 @@
  2 files changed, 48 insertions(+)
 
 diff --git a/mt7915/vendor.c b/mt7915/vendor.c
-index 8370216f..9a26f7f4 100644
+index 8370216..9a26f7f 100644
 --- a/mt7915/vendor.c
 +++ b/mt7915/vendor.c
 @@ -99,6 +99,11 @@ ibf_ctrl_policy[NUM_MTK_VENDOR_ATTRS_IBF_CTRL] = {
@@ -76,7 +76,7 @@
  };
  
 diff --git a/mt7915/vendor.h b/mt7915/vendor.h
-index 3672420c..bd1c6170 100644
+index 3672420..bd1c617 100644
 --- a/mt7915/vendor.h
 +++ b/mt7915/vendor.h
 @@ -15,6 +15,7 @@ enum mtk_nl80211_vendor_subcmds {
diff --git a/recipes-wifi/linux-mt76/files/patches/1026-wifi-mt76-mt7915-disable-SW-ACI-by-default.patch b/recipes-wifi/linux-mt76/files/patches/1026-wifi-mt76-mt7915-disable-SW-ACI-by-default.patch
index 8883b56..402eab4 100644
--- a/recipes-wifi/linux-mt76/files/patches/1026-wifi-mt76-mt7915-disable-SW-ACI-by-default.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1026-wifi-mt76-mt7915-disable-SW-ACI-by-default.patch
@@ -1,7 +1,7 @@
-From 145642daca06798b99e849ae6c8781b95bbb7bde Mon Sep 17 00:00:00 2001
+From 4d3d3743e0e97b65c132cda36b4af0532a102607 Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Fri, 24 Feb 2023 16:29:42 +0800
-Subject: [PATCH 1026/1051] wifi: mt76: mt7915: disable SW-ACI by default
+Subject: [PATCH 1026/1053] wifi: mt76: mt7915: disable SW-ACI by default
 
 Support to enable/disable SW-ACI by module parameter "sw_aci_enable".
 SW-ACI feature is disable by default.
@@ -13,7 +13,7 @@
  4 files changed, 29 insertions(+), 9 deletions(-)
 
 diff --git a/mt7915/main.c b/mt7915/main.c
-index da7a87bf..69c4a41d 100644
+index da7a87b..69c4a41 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -8,6 +8,10 @@
@@ -39,7 +39,7 @@
  
  	if (phy != &dev->phy) {
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 8e9b801d..45b09072 100644
+index 8e9b801..45b0907 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -5223,3 +5223,18 @@ int mt7915_mcu_get_edcca(struct mt7915_phy *phy, u8 mode, s8 *value)
@@ -62,7 +62,7 @@
 +				 sizeof(req), NULL);
 +}
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index fe7c2114..44dd0f41 100644
+index fe7c211..44dd0f4 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -782,6 +782,7 @@ int mt7915_vendor_amnt_sta_remove(struct mt7915_phy *phy,
@@ -74,7 +74,7 @@
  int mt7915_mcu_ipi_hist_scan(struct mt7915_phy *phy, void *data, u8 mode, bool wait_resp);
  
 diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
-index e8296476..2953eb58 100644
+index a433e67..f00ac10 100644
 --- a/mt7915/mtk_debugfs.c
 +++ b/mt7915/mtk_debugfs.c
 @@ -3773,16 +3773,12 @@ static int mt7915_show_eeprom_mode(struct seq_file *s, void *data)
diff --git a/recipes-wifi/linux-mt76/files/patches/1027-wifi-mt76-mt7915-add-muru-user-number-debug-command.patch b/recipes-wifi/linux-mt76/files/patches/1027-wifi-mt76-mt7915-add-muru-user-number-debug-command.patch
index 3e07882..85afdcb 100644
--- a/recipes-wifi/linux-mt76/files/patches/1027-wifi-mt76-mt7915-add-muru-user-number-debug-command.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1027-wifi-mt76-mt7915-add-muru-user-number-debug-command.patch
@@ -1,7 +1,7 @@
-From c0062791f1191e1f1772d85fb2accd3fc13ea4fd Mon Sep 17 00:00:00 2001
+From ed2035d25794352ca10f4cdc04dd931b1ebfac50 Mon Sep 17 00:00:00 2001
 From: MeiChia Chiu <meichia.chiu@mediatek.com>
 Date: Thu, 27 Apr 2023 15:37:33 +0800
-Subject: [PATCH 1027/1051] wifi: mt76: mt7915: add muru user number debug
+Subject: [PATCH 1027/1053] wifi: mt76: mt7915: add muru user number debug
  command
 
 ---
@@ -11,7 +11,7 @@
  3 files changed, 17 insertions(+), 1 deletion(-)
 
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 44dd0f41..e5a201c9 100644
+index 44dd0f4..e5a201c 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -645,6 +645,7 @@ int mt7915_mcu_set_pulse_th(struct mt7915_dev *dev,
@@ -23,7 +23,7 @@
  int mt7915_mcu_apply_tx_dpd(struct mt7915_phy *phy);
  int mt7915_mcu_get_chan_mib_info(struct mt7915_phy *phy, bool chan_switch);
 diff --git a/mt7915/vendor.c b/mt7915/vendor.c
-index 9a26f7f4..432d7506 100644
+index 9a26f7f..432d750 100644
 --- a/mt7915/vendor.c
 +++ b/mt7915/vendor.c
 @@ -46,6 +46,8 @@ static const struct nla_policy
@@ -65,7 +65,7 @@
  
  	return 0;
 diff --git a/mt7915/vendor.h b/mt7915/vendor.h
-index bd1c6170..03d1660c 100644
+index bd1c617..03d1660 100644
 --- a/mt7915/vendor.h
 +++ b/mt7915/vendor.h
 @@ -103,6 +103,8 @@ enum mtk_vendor_attr_mu_ctrl {
diff --git a/recipes-wifi/linux-mt76/files/patches/1028-wifi-mt76-mt7915-add-debugfs-for-fw-coredump.patch b/recipes-wifi/linux-mt76/files/patches/1028-wifi-mt76-mt7915-add-debugfs-for-fw-coredump.patch
index 17a9df6..480d7c6 100644
--- a/recipes-wifi/linux-mt76/files/patches/1028-wifi-mt76-mt7915-add-debugfs-for-fw-coredump.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1028-wifi-mt76-mt7915-add-debugfs-for-fw-coredump.patch
@@ -1,7 +1,7 @@
-From 85b74a49351465649530d874aacbd851c8a43a79 Mon Sep 17 00:00:00 2001
+From 1eedf84cfc86e9b6e9de78509e85789025b1b3ac Mon Sep 17 00:00:00 2001
 From: Bo Jiao <Bo.Jiao@mediatek.com>
 Date: Mon, 22 May 2023 15:30:21 +0800
-Subject: [PATCH 1028/1051] wifi: mt76: mt7915: add debugfs for fw coredump.
+Subject: [PATCH 1028/1053] wifi: mt76: mt7915: add debugfs for fw coredump.
 
 Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com>
 ---
@@ -12,7 +12,7 @@
  4 files changed, 58 insertions(+), 9 deletions(-)
 
 diff --git a/mt7915/debugfs.c b/mt7915/debugfs.c
-index c7002ee0..4c48b197 100644
+index fa1d2ac..3044557 100644
 --- a/mt7915/debugfs.c
 +++ b/mt7915/debugfs.c
 @@ -82,8 +82,10 @@ mt7915_sys_recovery_set(struct file *file, const char __user *user_buf,
@@ -67,7 +67,7 @@
  	/* SER statistics */
  	desc += scnprintf(buff + desc, bufsz - desc,
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index 1e39ad25..14367fd7 100644
+index 1e39ad2..14367fd 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -1728,10 +1728,34 @@ void mt7915_mac_dump_work(struct work_struct *work)
@@ -117,7 +117,7 @@
  	}
  
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index 6ebcce0d..035ad97d 100644
+index 6ebcce0..035ad97 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -760,8 +760,12 @@ enum {
@@ -135,7 +135,7 @@
  	SER_ENABLE = 2,
  	SER_RECOVER
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index e5a201c9..ea91611d 100644
+index e5a201c..ea91611 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -91,6 +91,13 @@ struct mt7915_sta;
diff --git a/recipes-wifi/linux-mt76/files/patches/1029-wifi-mt76-mt7915-remove-BW160-support.patch b/recipes-wifi/linux-mt76/files/patches/1029-wifi-mt76-mt7915-remove-BW160-support.patch
index 2f38f7b..12435fb 100644
--- a/recipes-wifi/linux-mt76/files/patches/1029-wifi-mt76-mt7915-remove-BW160-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1029-wifi-mt76-mt7915-remove-BW160-support.patch
@@ -1,7 +1,7 @@
-From 80138d89e617eefcd40c22fc9cc47c35e65409b5 Mon Sep 17 00:00:00 2001
+From 42cbeac3362b0d1ca2c513b4bcb850a73afafb94 Mon Sep 17 00:00:00 2001
 From: MeiChia Chiu <meichia.chiu@mediatek.com>
 Date: Wed, 24 May 2023 22:35:54 +0800
-Subject: [PATCH 1029/1051] wifi: mt76: mt7915: remove BW160 support
+Subject: [PATCH 1029/1053] wifi: mt76: mt7915: remove BW160 support
 
 Remove BW160 capability in mt7915.
 ---
@@ -9,7 +9,7 @@
  1 file changed, 6 insertions(+), 20 deletions(-)
 
 diff --git a/mt7915/init.c b/mt7915/init.c
-index 33e030f5..5764e0c0 100644
+index b32e213..decccc0 100644
 --- a/mt7915/init.c
 +++ b/mt7915/init.c
 @@ -439,11 +439,6 @@ mt7915_init_wiphy(struct mt7915_phy *phy)
diff --git a/recipes-wifi/linux-mt76/files/patches/1030-wifi-mt76-mt7915-add-txpower-info-dump-support.patch b/recipes-wifi/linux-mt76/files/patches/1030-wifi-mt76-mt7915-add-txpower-info-dump-support.patch
index 8c716f1..20c8bd3 100644
--- a/recipes-wifi/linux-mt76/files/patches/1030-wifi-mt76-mt7915-add-txpower-info-dump-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1030-wifi-mt76-mt7915-add-txpower-info-dump-support.patch
@@ -1,7 +1,7 @@
-From 270d9e1edd8d2627612d3deaf59c6a630592fb46 Mon Sep 17 00:00:00 2001
+From cc213fc945f430c8767ee6984741c3cf9a030d9c Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Tue, 11 Jul 2023 17:06:04 +0800
-Subject: [PATCH 1030/1051] wifi: mt76: mt7915: add txpower info dump support
+Subject: [PATCH 1030/1053] wifi: mt76: mt7915: add txpower info dump support
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 ---
@@ -11,10 +11,10 @@
  3 files changed, 91 insertions(+), 1 deletion(-)
 
 diff --git a/mt7915/debugfs.c b/mt7915/debugfs.c
-index 4c48b197..86cbef33 100644
+index 3044557..24e88f7 100644
 --- a/mt7915/debugfs.c
 +++ b/mt7915/debugfs.c
-@@ -1258,6 +1258,91 @@ mt7915_txpower_path_show(struct seq_file *file, void *data)
+@@ -1259,6 +1259,91 @@ mt7915_txpower_path_show(struct seq_file *file, void *data)
  
  DEFINE_SHOW_ATTRIBUTE(mt7915_txpower_path);
  
@@ -106,7 +106,7 @@
  static int
  mt7915_twt_stats(struct seq_file *s, void *data)
  {
-@@ -1387,6 +1472,8 @@ int mt7915_init_debugfs(struct mt7915_phy *phy)
+@@ -1388,6 +1473,8 @@ int mt7915_init_debugfs(struct mt7915_phy *phy)
  			    &mt7915_txpower_fops);
  	debugfs_create_file("txpower_path", 0400, dir, phy,
  			    &mt7915_txpower_path_fops);
@@ -116,7 +116,7 @@
  				    mt7915_twt_stats);
  	debugfs_create_file("rf_regval", 0600, dir, dev, &fops_rf_regval);
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 45b09072..b9beb4f6 100644
+index 45b0907..b9beb4f 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -3624,6 +3624,8 @@ int mt7915_mcu_get_txpower_sku(struct mt7915_phy *phy, s8 *txpower, int len,
@@ -129,7 +129,7 @@
  
  	dev_kfree_skb(skb);
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index 035ad97d..3089fb64 100644
+index 035ad97..3089fb6 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -525,7 +525,8 @@ enum {
diff --git a/recipes-wifi/linux-mt76/files/patches/1031-wifi-mt76-mt7915-report-tx-and-rx-byte-to-tpt_led-wh.patch b/recipes-wifi/linux-mt76/files/patches/1031-wifi-mt76-mt7915-report-tx-and-rx-byte-to-tpt_led-wh.patch
index 39a7cdf..4c42bbd 100644
--- a/recipes-wifi/linux-mt76/files/patches/1031-wifi-mt76-mt7915-report-tx-and-rx-byte-to-tpt_led-wh.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1031-wifi-mt76-mt7915-report-tx-and-rx-byte-to-tpt_led-wh.patch
@@ -1,7 +1,7 @@
-From 517ac9b79c668a68109f1c3d861a6506dd59b3c7 Mon Sep 17 00:00:00 2001
+From 539de29220ad63d73fdb1ff86d63014b4e246e3a Mon Sep 17 00:00:00 2001
 From: Yi-Chia Hsieh <yi-chia.hsieh@mediatek.com>
 Date: Fri, 23 Jun 2023 06:06:21 +0800
-Subject: [PATCH 1031/1051] wifi: mt76: mt7915: report tx and rx byte to
+Subject: [PATCH 1031/1053] wifi: mt76: mt7915: report tx and rx byte to
  tpt_led when wed is enabled
 
 Signed-off-by: Yi-Chia Hsieh <yi-chia.hsieh@mediatek.com>
@@ -11,7 +11,7 @@
  2 files changed, 11 insertions(+), 4 deletions(-)
 
 diff --git a/mt76_connac_mac.c b/mt76_connac_mac.c
-index 630c6402..949df63f 100644
+index 630c640..949df63 100644
 --- a/mt76_connac_mac.c
 +++ b/mt76_connac_mac.c
 @@ -597,9 +597,15 @@ bool mt76_connac2_mac_fill_txs(struct mt76_dev *dev, struct mt76_wcid *wcid,
@@ -42,7 +42,7 @@
  			sband = &mphy->sband_5g.sband;
  		else if (mphy->chandef.chan->band == NL80211_BAND_6GHZ)
 diff --git a/mt7915/mmio.c b/mt7915/mmio.c
-index ddf1b72a..437a9b0e 100644
+index ddf1b72..437a9b0 100644
 --- a/mt7915/mmio.c
 +++ b/mt7915/mmio.c
 @@ -588,6 +588,7 @@ static void mt7915_mmio_wed_update_rx_stats(struct mtk_wed_device *wed,
diff --git a/recipes-wifi/linux-mt76/files/patches/1032-wifi-mt76-mt7915-Establish-BA-in-VO-queue.patch b/recipes-wifi/linux-mt76/files/patches/1032-wifi-mt76-mt7915-Establish-BA-in-VO-queue.patch
index 4c5fc6b..3e8500f 100644
--- a/recipes-wifi/linux-mt76/files/patches/1032-wifi-mt76-mt7915-Establish-BA-in-VO-queue.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1032-wifi-mt76-mt7915-Establish-BA-in-VO-queue.patch
@@ -1,14 +1,14 @@
-From 868e63b60b3be248445e53c3301a7de74bfbcf49 Mon Sep 17 00:00:00 2001
+From d588c607b158e13343964b451d1de5b98bba7feb Mon Sep 17 00:00:00 2001
 From: MeiChia Chiu <meichia.chiu@mediatek.com>
 Date: Tue, 8 Aug 2023 11:20:58 +0800
-Subject: [PATCH 1032/1051] wifi: mt76: mt7915: Establish BA in VO queue
+Subject: [PATCH 1032/1053] wifi: mt76: mt7915: Establish BA in VO queue
 
 ---
  mt76_connac_mac.c | 2 --
  1 file changed, 2 deletions(-)
 
 diff --git a/mt76_connac_mac.c b/mt76_connac_mac.c
-index 949df63f..d036047a 100644
+index 949df63..d036047 100644
 --- a/mt76_connac_mac.c
 +++ b/mt76_connac_mac.c
 @@ -1115,8 +1115,6 @@ void mt76_connac2_tx_check_aggr(struct ieee80211_sta *sta, __le32 *txwi)
diff --git a/recipes-wifi/linux-mt76/files/patches/1033-wifi-mt76-mt7915-Disable-RegDB-when-enable-single-sk.patch b/recipes-wifi/linux-mt76/files/patches/1033-wifi-mt76-mt7915-Disable-RegDB-when-enable-single-sk.patch
index 18cea8b..09fda91 100644
--- a/recipes-wifi/linux-mt76/files/patches/1033-wifi-mt76-mt7915-Disable-RegDB-when-enable-single-sk.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1033-wifi-mt76-mt7915-Disable-RegDB-when-enable-single-sk.patch
@@ -1,7 +1,7 @@
-From 9eefd073f680ff53160851a22e2ed4b9551bd60b Mon Sep 17 00:00:00 2001
+From ee3f33638400dfe0306ed5d12f1e2c1840632cea Mon Sep 17 00:00:00 2001
 From: "Allen.Ye" <allen.ye@mediatek.com>
 Date: Fri, 11 Aug 2023 16:46:53 +0800
-Subject: [PATCH 1033/1051] wifi: mt76: mt7915: Disable RegDB when enable
+Subject: [PATCH 1033/1053] wifi: mt76: mt7915: Disable RegDB when enable
  single sku
 
 ---
@@ -11,10 +11,10 @@
  3 files changed, 57 insertions(+), 11 deletions(-)
 
 diff --git a/mt7915/debugfs.c b/mt7915/debugfs.c
-index 86cbef33..ead0f985 100644
+index 24e88f7..502b493 100644
 --- a/mt7915/debugfs.c
 +++ b/mt7915/debugfs.c
-@@ -1019,10 +1019,16 @@ mt7915_rate_txpower_get(struct file *file, char __user *user_buf,
+@@ -1020,10 +1020,16 @@ mt7915_rate_txpower_get(struct file *file, char __user *user_buf,
  {
  	struct mt7915_phy *phy = file->private_data;
  	struct mt7915_dev *dev = phy->dev;
@@ -32,7 +32,7 @@
  	ssize_t ret;
  	char *buf;
  	u32 reg;
-@@ -1081,11 +1087,38 @@ mt7915_rate_txpower_get(struct file *file, char __user *user_buf,
+@@ -1082,11 +1088,38 @@ mt7915_rate_txpower_get(struct file *file, char __user *user_buf,
  	len += scnprintf(buf + len, sz - len, "BW160/");
  	mt7915_txpower_puts(HE_RU2x996, 17);
  
@@ -75,7 +75,7 @@
  
  	ret = simple_read_from_buffer(user_buf, count, ppos, buf, len);
  
-@@ -1262,6 +1295,8 @@ static int
+@@ -1263,6 +1296,8 @@ static int
  mt7915_txpower_info_show(struct seq_file *file, void *data)
  {
  	struct mt7915_phy *phy = file->private;
@@ -84,7 +84,7 @@
  	struct {
  		u8 category;
  		u8 rsv1;
-@@ -1303,6 +1338,7 @@ mt7915_txpower_info_show(struct seq_file *file, void *data)
+@@ -1304,6 +1339,7 @@ mt7915_txpower_info_show(struct seq_file *file, void *data)
  		s8 mu_tx_power_manual;
  		u8 rsv3;
  	} __packed basic_info = {};
@@ -92,7 +92,7 @@
  	int ret;
  
  	ret = mt7915_mcu_get_txpower_sku(phy, (s8 *)&basic_info, sizeof(basic_info),
-@@ -1337,6 +1373,9 @@ mt7915_txpower_info_show(struct seq_file *file, void *data)
+@@ -1338,6 +1374,9 @@ mt7915_txpower_info_show(struct seq_file *file, void *data)
  	seq_printf(file, "    Theraml Compensation Value: %d\n",
  		   basic_info.thermal_compensate_value);
  
@@ -103,7 +103,7 @@
  	return ret;
  }
 diff --git a/mt7915/init.c b/mt7915/init.c
-index 5764e0c0..e90e8d8c 100644
+index decccc0..a5b38c8 100644
 --- a/mt7915/init.c
 +++ b/mt7915/init.c
 @@ -283,9 +283,11 @@ static void __mt7915_init_txpower(struct mt7915_phy *phy,
@@ -135,7 +135,7 @@
  	}
  }
 diff --git a/mt7915/regs.h b/mt7915/regs.h
-index 4d05e391..ca355d14 100644
+index 4d05e39..ca355d1 100644
 --- a/mt7915/regs.h
 +++ b/mt7915/regs.h
 @@ -1215,6 +1215,10 @@ enum offs_rev {
diff --git a/recipes-wifi/linux-mt76/files/patches/1034-wifi-mt76-mt7915-enable-the-mac80211-hw-bmc-ps-buffe.patch b/recipes-wifi/linux-mt76/files/patches/1034-wifi-mt76-mt7915-enable-the-mac80211-hw-bmc-ps-buffe.patch
index 6ffdcf1..c33652c 100644
--- a/recipes-wifi/linux-mt76/files/patches/1034-wifi-mt76-mt7915-enable-the-mac80211-hw-bmc-ps-buffe.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1034-wifi-mt76-mt7915-enable-the-mac80211-hw-bmc-ps-buffe.patch
@@ -1,7 +1,7 @@
-From 933737c44366ec6ffc39e6dabe5da2057b6a9e78 Mon Sep 17 00:00:00 2001
+From 5476b7efd643f968654047541d718a3c07b1a389 Mon Sep 17 00:00:00 2001
 From: Evelyn Tsai <evelyn.tsai@mediatek.com>
 Date: Thu, 24 Aug 2023 03:01:27 +0800
-Subject: [PATCH 1034/1051] wifi: mt76: mt7915: enable the mac80211 hw bmc ps
+Subject: [PATCH 1034/1053] wifi: mt76: mt7915: enable the mac80211 hw bmc ps
  buffer function.
 
 ---
@@ -9,7 +9,7 @@
  1 file changed, 1 insertion(+)
 
 diff --git a/mt7915/init.c b/mt7915/init.c
-index e90e8d8c..88b914e4 100644
+index a5b38c8..b2e613c 100644
 --- a/mt7915/init.c
 +++ b/mt7915/init.c
 @@ -413,6 +413,7 @@ mt7915_init_wiphy(struct mt7915_phy *phy)
diff --git a/recipes-wifi/linux-mt76/files/patches/1035-wifi-mt76-update-debugfs-knob-for-tx-tokens.patch b/recipes-wifi/linux-mt76/files/patches/1035-wifi-mt76-update-debugfs-knob-for-tx-tokens.patch
index 8f37b00..5c46d29 100644
--- a/recipes-wifi/linux-mt76/files/patches/1035-wifi-mt76-update-debugfs-knob-for-tx-tokens.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1035-wifi-mt76-update-debugfs-knob-for-tx-tokens.patch
@@ -1,7 +1,7 @@
-From cd98785cf20f1cd99ae5bcb84915171fd8323f64 Mon Sep 17 00:00:00 2001
+From e9cf08519595e2d8c5c227486948d8cb00db626a Mon Sep 17 00:00:00 2001
 From: Evelyn Tsai <evelyn.tsai@mediatek.com>
 Date: Thu, 24 Aug 2023 03:01:27 +0800
-Subject: [PATCH 1035/1051] wifi: mt76: update debugfs knob for tx tokens
+Subject: [PATCH 1035/1053] wifi: mt76: update debugfs knob for tx tokens
 
 1. dump token pending time
 2. dump per-band token counts
@@ -14,7 +14,7 @@
  3 files changed, 22 insertions(+), 5 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
-index 5c267154..6f78c07c 100644
+index 5c26715..6f78c07 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -403,6 +403,7 @@ struct mt76_txwi_cache {
@@ -26,7 +26,7 @@
  	union {
  		struct sk_buff *skb;
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index 14367fd7..71b4e2d7 100644
+index 14367fd..71b4e2d 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -811,6 +811,8 @@ int mt7915_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
@@ -39,7 +39,7 @@
  	mt7915_mac_write_txwi(mdev, txwi_ptr, tx_info->skb, wcid, pid, key,
  			      qid, 0);
 diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
-index 2953eb58..e7be3d6c 100644
+index f00ac10..3c248ee 100644
 --- a/mt7915/mtk_debugfs.c
 +++ b/mt7915/mtk_debugfs.c
 @@ -2203,17 +2203,31 @@ static int mt7915_mibinfo_band1(struct seq_file *s, void *data)
diff --git a/recipes-wifi/linux-mt76/files/patches/1036-wifi-mt76-mt7915-support-enable-disable-spatial-reus.patch b/recipes-wifi/linux-mt76/files/patches/1036-wifi-mt76-mt7915-support-enable-disable-spatial-reus.patch
index df8255f..4306c68 100644
--- a/recipes-wifi/linux-mt76/files/patches/1036-wifi-mt76-mt7915-support-enable-disable-spatial-reus.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1036-wifi-mt76-mt7915-support-enable-disable-spatial-reus.patch
@@ -1,7 +1,7 @@
-From b27e931f19dd74515c6082b494d263becc852377 Mon Sep 17 00:00:00 2001
+From e81df1a68b96bc91891c9c097db376a1890450ae Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Tue, 5 Sep 2023 20:17:19 +0800
-Subject: [PATCH 1036/1051] wifi: mt76: mt7915: support enable/disable spatial
+Subject: [PATCH 1036/1053] wifi: mt76: mt7915: support enable/disable spatial
  reuse through debugfs
 
 Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com>
@@ -12,7 +12,7 @@
  3 files changed, 14 insertions(+), 2 deletions(-)
 
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index b9beb4f6..4b5fb53a 100644
+index b9beb4f..4b5fb53 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -3756,8 +3756,7 @@ int mt7915_mcu_set_txbf(struct mt7915_dev *dev, u8 action)
@@ -26,7 +26,7 @@
  	struct mt7915_dev *dev = phy->dev;
  	struct mt7915_mcu_sr_ctrl req = {
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index ea91611d..bfd87bc3 100644
+index ea91611..bfd87bc 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -795,6 +795,7 @@ int mt7915_mcu_get_edcca(struct mt7915_phy *phy, u8 mode, s8 *value);
@@ -38,7 +38,7 @@
  #ifdef MTK_DEBUG
  int mt7915_mtk_init_debugfs(struct mt7915_phy *phy, struct dentry *dir);
 diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
-index e7be3d6c..6405aa32 100644
+index 3c248ee..9bbe50d 100644
 --- a/mt7915/mtk_debugfs.c
 +++ b/mt7915/mtk_debugfs.c
 @@ -3799,6 +3799,17 @@ mt7915_sw_aci_set(void *data, u64 val)
diff --git a/recipes-wifi/linux-mt76/files/patches/1037-wifi-mt76-mt7915-add-debug-log-for-SER-flow.patch b/recipes-wifi/linux-mt76/files/patches/1037-wifi-mt76-mt7915-add-debug-log-for-SER-flow.patch
index 01c2d7b..d61c1fb 100644
--- a/recipes-wifi/linux-mt76/files/patches/1037-wifi-mt76-mt7915-add-debug-log-for-SER-flow.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1037-wifi-mt76-mt7915-add-debug-log-for-SER-flow.patch
@@ -1,7 +1,7 @@
-From 0e186daaf7fef0650ca64a7d8e58498cae5c929b Mon Sep 17 00:00:00 2001
+From b8b4b5abf0dce8bedfca44e1a7871c119f2b92e6 Mon Sep 17 00:00:00 2001
 From: Bo Jiao <Bo.Jiao@mediatek.com>
 Date: Mon, 11 Sep 2023 17:11:24 +0800
-Subject: [PATCH 1037/1051] wifi: mt76: mt7915: add debug log for SER flow.
+Subject: [PATCH 1037/1053] wifi: mt76: mt7915: add debug log for SER flow.
 
 Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com>
 ---
@@ -9,7 +9,7 @@
  1 file changed, 9 insertions(+)
 
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index 71b4e2d7..b0ddb106 100644
+index 71b4e2d..b0ddb10 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -1572,6 +1572,9 @@ void mt7915_mac_reset_work(struct work_struct *work)
diff --git a/recipes-wifi/linux-mt76/files/patches/1038-wifi-mt76-mt7915-add-additional-chain-signal-info-to.patch b/recipes-wifi/linux-mt76/files/patches/1038-wifi-mt76-mt7915-add-additional-chain-signal-info-to.patch
index 54b094e..0113d37 100644
--- a/recipes-wifi/linux-mt76/files/patches/1038-wifi-mt76-mt7915-add-additional-chain-signal-info-to.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1038-wifi-mt76-mt7915-add-additional-chain-signal-info-to.patch
@@ -1,7 +1,7 @@
-From 84313ebde8920d6c6f2e2ecce133acd8b7b13805 Mon Sep 17 00:00:00 2001
+From eaa1c8b40685b56c6298c85cb0a44c7b97c62e8c Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Wed, 20 Sep 2023 11:10:57 +0800
-Subject: [PATCH 1038/1051] wifi: mt76: mt7915: add additional chain signal
+Subject: [PATCH 1038/1053] wifi: mt76: mt7915: add additional chain signal
  info to station dump
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
@@ -10,7 +10,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index b0ddb106..9a49375c 100644
+index b0ddb10..9a49375 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -442,7 +442,7 @@ mt7915_mac_fill_rx(struct mt7915_dev *dev, struct sk_buff *skb,
diff --git a/recipes-wifi/linux-mt76/files/patches/1039-wifi-mt76-mt7915-add-debuffs-knob-for-protect-thresh.patch b/recipes-wifi/linux-mt76/files/patches/1039-wifi-mt76-mt7915-add-debuffs-knob-for-protect-thresh.patch
index fa84a97..4225825 100644
--- a/recipes-wifi/linux-mt76/files/patches/1039-wifi-mt76-mt7915-add-debuffs-knob-for-protect-thresh.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1039-wifi-mt76-mt7915-add-debuffs-knob-for-protect-thresh.patch
@@ -1,7 +1,7 @@
-From aaa3ac581bed0ed0cca6b6e219a4f75125de563b Mon Sep 17 00:00:00 2001
+From 2674288ca511860d73b068f73c14d864de13653f Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Mon, 2 Oct 2023 14:00:13 +0800
-Subject: [PATCH 1039/1051] wifi: mt76: mt7915: add debuffs knob for protect
+Subject: [PATCH 1039/1053] wifi: mt76: mt7915: add debuffs knob for protect
  threshold
 
 ---
@@ -10,7 +10,7 @@
  2 files changed, 12 insertions(+)
 
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index bfd87bc3..1b43c548 100644
+index bfd87bc..1b43c54 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -775,6 +775,7 @@ void mt7915_mcu_set_rfeature_starec(void *data, struct mt7915_dev *dev,
@@ -22,7 +22,7 @@
  void mt7915_mcu_set_nusers_ofdma(struct mt7915_phy *phy, u8 type, u8 ofdma_user_cnt);
  void mt7915_mcu_set_mimo(struct mt7915_phy *phy, u8 direction);
 diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
-index 6405aa32..59d89b60 100644
+index 9bbe50d..2b59e35 100644
 --- a/mt7915/mtk_debugfs.c
 +++ b/mt7915/mtk_debugfs.c
 @@ -2852,6 +2852,16 @@ static int mt7915_sta_tx_amsdu_set(void *data, u64 tx_amsdu)
diff --git a/recipes-wifi/linux-mt76/files/patches/1040-wifi-mt76-mt7915-add-mt7981-efuse-variants-support.patch b/recipes-wifi/linux-mt76/files/patches/1040-wifi-mt76-mt7915-add-mt7981-efuse-variants-support.patch
index ca81739..b1594a1 100644
--- a/recipes-wifi/linux-mt76/files/patches/1040-wifi-mt76-mt7915-add-mt7981-efuse-variants-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1040-wifi-mt76-mt7915-add-mt7981-efuse-variants-support.patch
@@ -1,7 +1,7 @@
-From c13b516a10be9e859fb5335324f3792020a5cc23 Mon Sep 17 00:00:00 2001
+From 45752d6719ee863fe80d2821f9ff6176e6a2497d Mon Sep 17 00:00:00 2001
 From: "Henry.Yen" <henry.yen@mediatek.com>
 Date: Mon, 11 Dec 2023 16:01:55 +0800
-Subject: [PATCH 1040/1051] wifi: mt76: mt7915 add mt7981 efuse variants
+Subject: [PATCH 1040/1053] wifi: mt76: mt7915 add mt7981 efuse variants
  support
 
 ---
@@ -10,7 +10,7 @@
  2 files changed, 28 insertions(+), 1 deletion(-)
 
 diff --git a/mt7915/eeprom.c b/mt7915/eeprom.c
-index 6133c200..df5e396c 100644
+index 6133c20..df5e396 100644
 --- a/mt7915/eeprom.c
 +++ b/mt7915/eeprom.c
 @@ -193,6 +193,21 @@ static int mt7915_eeprom_load(struct mt7915_dev *dev)
@@ -50,7 +50,7 @@
  	mt7915_eeprom_parse_band_config(phy);
  
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 1b43c548..c6150c8a 100644
+index 1b43c54..c6150c8 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -407,6 +407,7 @@ struct mt7915_dev {
diff --git a/recipes-wifi/linux-mt76/files/patches/1041-wifi-mt76-mt7915-support-scs-feature.patch b/recipes-wifi/linux-mt76/files/patches/1041-wifi-mt76-mt7915-support-scs-feature.patch
index f446132..263dbd8 100644
--- a/recipes-wifi/linux-mt76/files/patches/1041-wifi-mt76-mt7915-support-scs-feature.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1041-wifi-mt76-mt7915-support-scs-feature.patch
@@ -1,7 +1,7 @@
-From 08084eaccb5811f27a979c8c44cd3321c69f1829 Mon Sep 17 00:00:00 2001
+From d1b12ab78d487e08945ec6a92b744af342505fd2 Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Wed, 6 Dec 2023 08:53:03 +0800
-Subject: [PATCH 1041/1051] wifi: mt76: mt7915: support scs feature
+Subject: [PATCH 1041/1053] wifi: mt76: mt7915: support scs feature
 
 Add support scs feature for connac2 codebase. This commit includes three
 parts.
@@ -29,7 +29,7 @@
  9 files changed, 188 insertions(+)
 
 diff --git a/mt76.h b/mt76.h
-index 6f78c07c..c011812e 100644
+index 6f78c07..c011812 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -311,6 +311,7 @@ struct mt76_sta_stats {
@@ -49,10 +49,10 @@
  
  enum mt76_wcid_flags {
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 12654017..5be93f6a 100644
+index c6a43dd..1bc32da 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1228,6 +1228,7 @@ enum {
+@@ -1236,6 +1236,7 @@ enum {
  	MCU_EXT_CMD_SET_RDD_PATTERN = 0x7d,
  	MCU_EXT_CMD_MWDS_SUPPORT = 0x80,
  	MCU_EXT_CMD_SET_SER_TRIGGER = 0x81,
@@ -61,7 +61,7 @@
  	MCU_EXT_CMD_FW_DBG_CTRL = 0x95,
  	MCU_EXT_CMD_OFFCH_SCAN_CTRL = 0x9a,
 diff --git a/mt7915/init.c b/mt7915/init.c
-index 88b914e4..84b183f7 100644
+index b2e613c..373f4f5 100644
 --- a/mt7915/init.c
 +++ b/mt7915/init.c
 @@ -1247,6 +1247,7 @@ int mt7915_register_device(struct mt7915_dev *dev)
@@ -73,7 +73,7 @@
  	INIT_LIST_HEAD(&dev->twt_list);
  
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index 9a49375c..2e4a8f84 100644
+index 9a49375..2e4a8f8 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -1504,6 +1504,8 @@ mt7915_mac_full_reset(struct mt7915_dev *dev)
@@ -116,7 +116,7 @@
  		 wiphy_name(dev->mt76.hw->wiphy));
  }
 diff --git a/mt7915/main.c b/mt7915/main.c
-index 69c4a41d..69fcf4c0 100644
+index 69c4a41..69fcf4c 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -89,12 +89,24 @@ int mt7915_run(struct ieee80211_hw *hw)
@@ -153,7 +153,7 @@
  		mt7915_mcu_set_mac(dev, dev->phy.mt76->band_idx, false, false);
  	}
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 4b5fb53a..5e1fd3be 100644
+index 4b5fb53..5e1fd3b 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -5239,3 +5239,121 @@ int mt7915_mcu_sw_aci_set(struct mt7915_dev *dev, bool val)
@@ -279,7 +279,7 @@
 +		ieee80211_queue_delayed_work(mt76_hw(dev), &dev->scs_work, HZ);
 +}
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index 3089fb64..742a7855 100644
+index 3089fb6..742a785 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -1200,4 +1200,8 @@ struct mt7915_mcu_edcca_info {
@@ -292,7 +292,7 @@
 +};
  #endif
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index c6150c8a..3c049364 100644
+index c6150c8..3c04936 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -270,6 +270,15 @@ struct mt7915_air_monitor_ctrl {
@@ -338,7 +338,7 @@
  #ifdef MTK_DEBUG
  int mt7915_mtk_init_debugfs(struct mt7915_phy *phy, struct dentry *dir);
 diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
-index 59d89b60..4210ecb8 100644
+index 2b59e35..081cf46 100644
 --- a/mt7915/mtk_debugfs.c
 +++ b/mt7915/mtk_debugfs.c
 @@ -3820,6 +3820,29 @@ mt7915_sr_enable_set(void *data, u64 val)
diff --git a/recipes-wifi/linux-mt76/files/patches/1042-wifi-mt76-mt7915-support-thermal-recal-debug-commnad.patch b/recipes-wifi/linux-mt76/files/patches/1042-wifi-mt76-mt7915-support-thermal-recal-debug-commnad.patch
index c28e05f..2a5892a 100644
--- a/recipes-wifi/linux-mt76/files/patches/1042-wifi-mt76-mt7915-support-thermal-recal-debug-commnad.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1042-wifi-mt76-mt7915-support-thermal-recal-debug-commnad.patch
@@ -1,7 +1,7 @@
-From 9ce78c0a20ff2448496bc7a670df617c7441c011 Mon Sep 17 00:00:00 2001
+From 4cd1771d44ebb238474b85c09d0ef7a8f77c477f Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Thu, 21 Dec 2023 20:35:36 +0800
-Subject: [PATCH 1042/1051] wifi: mt76: mt7915: support thermal recal debug
+Subject: [PATCH 1042/1053] wifi: mt76: mt7915: support thermal recal debug
  commnad
 
 Add thermal recal debug command:
@@ -21,19 +21,19 @@
  4 files changed, 35 insertions(+)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 5be93f6a..4e1006db 100644
+index 1bc32da..cbe8da5 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1224,6 +1224,7 @@ enum {
- 	MCU_EXT_CMD_CAL_CACHE = 0x67,
+@@ -1232,6 +1232,7 @@ enum {
  	MCU_EXT_CMD_RED_ENABLE = 0x68,
  	MCU_EXT_CMD_PKT_BUDGET_CTRL = 0x6c,
+ 	MCU_EXT_CMD_CP_SUPPORT = 0x75,
 +	MCU_EXT_CMD_THERMAL_DEBUG = 0x79,
  	MCU_EXT_CMD_SET_RADAR_TH = 0x7c,
  	MCU_EXT_CMD_SET_RDD_PATTERN = 0x7d,
  	MCU_EXT_CMD_MWDS_SUPPORT = 0x80,
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 5e1fd3be..c5f60c07 100644
+index 5e1fd3b..c5f60c0 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -5357,3 +5357,18 @@ void mt7915_mcu_scs_sta_poll(struct work_struct *work)
@@ -56,7 +56,7 @@
 +				 sizeof(req), true);
 +}
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 3c049364..1b2f584f 100644
+index 3c04936..1b2f584 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -816,6 +816,7 @@ int mt7915_mcu_ipi_hist_scan(struct mt7915_phy *phy, void *data, u8 mode, bool w
@@ -68,7 +68,7 @@
  #ifdef MTK_DEBUG
  int mt7915_mtk_init_debugfs(struct mt7915_phy *phy, struct dentry *dir);
 diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
-index 4210ecb8..677266ee 100644
+index 081cf46..2d6e166 100644
 --- a/mt7915/mtk_debugfs.c
 +++ b/mt7915/mtk_debugfs.c
 @@ -3843,6 +3843,22 @@ mt7915_scs_enable_set(void *data, u64 val)
diff --git a/recipes-wifi/linux-mt76/files/patches/1043-wifi-mt76-mt7915-Add-support-for-lpi-and-duplicate-m.patch b/recipes-wifi/linux-mt76/files/patches/1043-wifi-mt76-mt7915-Add-support-for-lpi-and-duplicate-m.patch
index f6d5d7f..82b5848 100644
--- a/recipes-wifi/linux-mt76/files/patches/1043-wifi-mt76-mt7915-Add-support-for-lpi-and-duplicate-m.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1043-wifi-mt76-mt7915-Add-support-for-lpi-and-duplicate-m.patch
@@ -1,7 +1,7 @@
-From 8025cf5bac9a977fc49c10896c8a8ab0daa83bec Mon Sep 17 00:00:00 2001
+From 7b2e5eede2267e4135d683ee71bd52dcdcfdea4c Mon Sep 17 00:00:00 2001
 From: Allen Ye <allen.ye@mediatek.com>
 Date: Fri, 15 Dec 2023 14:03:11 +0800
-Subject: [PATCH 1043/1051] wifi: mt76: mt7915: Add support for lpi and
+Subject: [PATCH 1043/1053] wifi: mt76: mt7915: Add support for lpi and
  duplicate mode
 
 Add support lpi and duplicate mode.
@@ -31,7 +31,7 @@
  12 files changed, 210 insertions(+), 17 deletions(-)
 
 diff --git a/eeprom.c b/eeprom.c
-index 4213e444..2ee262a0 100644
+index 4213e44..2ee262a 100644
 --- a/eeprom.c
 +++ b/eeprom.c
 @@ -224,8 +224,9 @@ static bool mt76_string_prop_find(struct property *prop, const char *str)
@@ -95,7 +95,7 @@
  		return target_power;
  
 diff --git a/mt76.h b/mt76.h
-index c011812e..b023f38d 100644
+index c011812..b023f38 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -853,6 +853,9 @@ struct mt76_phy {
@@ -118,7 +118,7 @@
  mt76_find_channel_node(struct device_node *np, struct ieee80211_channel *chan);
  
 diff --git a/mt76_connac2_mac.h b/mt76_connac2_mac.h
-index 5f132115..c49a3300 100644
+index 5f13211..c49a330 100644
 --- a/mt76_connac2_mac.h
 +++ b/mt76_connac2_mac.h
 @@ -355,4 +355,11 @@ enum tx_port_idx {
@@ -134,7 +134,7 @@
 +
  #endif /* __MT76_CONNAC2_MAC_H */
 diff --git a/mt76_connac_mac.c b/mt76_connac_mac.c
-index d036047a..d41f0040 100644
+index d036047..d41f004 100644
 --- a/mt76_connac_mac.c
 +++ b/mt76_connac_mac.c
 @@ -564,7 +564,8 @@ void mt76_connac2_mac_write_txwi(struct mt76_dev *dev, __le32 *txwi,
@@ -159,10 +159,10 @@
  
  		txwi[7] &= ~cpu_to_le32(MT_TXD7_HW_AMSDU);
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 4e1006db..e581084e 100644
+index cbe8da5..c96621f 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1249,6 +1249,7 @@ enum {
+@@ -1257,6 +1257,7 @@ enum {
  	MCU_EXT_CMD_SWLNA_ACI_CTRL = 0xc0,
  	MCU_EXT_CMD_CSI_CTRL = 0xc2,
  	MCU_EXT_CMD_IPI_HIST_SCAN = 0xc5,
@@ -171,10 +171,10 @@
  
  enum {
 diff --git a/mt7915/debugfs.c b/mt7915/debugfs.c
-index ead0f985..017d43d7 100644
+index 502b493..b2a4ff4 100644
 --- a/mt7915/debugfs.c
 +++ b/mt7915/debugfs.c
-@@ -1296,7 +1296,6 @@ mt7915_txpower_info_show(struct seq_file *file, void *data)
+@@ -1297,7 +1297,6 @@ mt7915_txpower_info_show(struct seq_file *file, void *data)
  {
  	struct mt7915_phy *phy = file->private;
  	struct mt76_phy *mphy = phy->mt76;
@@ -182,7 +182,7 @@
  	struct {
  		u8 category;
  		u8 rsv1;
-@@ -1373,7 +1372,7 @@ mt7915_txpower_info_show(struct seq_file *file, void *data)
+@@ -1374,7 +1373,7 @@ mt7915_txpower_info_show(struct seq_file *file, void *data)
  	seq_printf(file, "    Theraml Compensation Value: %d\n",
  		   basic_info.thermal_compensate_value);
  
@@ -192,7 +192,7 @@
  
  out:
 diff --git a/mt7915/init.c b/mt7915/init.c
-index 84b183f7..c052b927 100644
+index 373f4f5..b53075b 100644
 --- a/mt7915/init.c
 +++ b/mt7915/init.c
 @@ -287,7 +287,7 @@ static void __mt7915_init_txpower(struct mt7915_phy *phy,
@@ -217,7 +217,7 @@
  
  static void
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index c5f60c07..e17c61d5 100644
+index c5f60c0..e17c61d 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -1522,7 +1522,8 @@ mt7915_mcu_set_spe_idx(struct mt7915_dev *dev, struct ieee80211_vif *vif,
@@ -353,7 +353,7 @@
  			      u8 en)
  {
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 1b2f584f..ff08d252 100644
+index 1b2f584..ff08d25 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -807,6 +807,7 @@ int mt7915_mcu_set_csi(struct mt7915_phy *phy, u8 mode,
@@ -365,7 +365,7 @@
  int mt7915_mcu_set_edcca(struct mt7915_phy *phy, int mode, u8 *value, s8 compensation);
  int mt7915_mcu_get_edcca(struct mt7915_phy *phy, u8 mode, s8 *value);
 diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
-index 677266ee..e7588434 100644
+index 2d6e166..d3d3b17 100644
 --- a/mt7915/mtk_debugfs.c
 +++ b/mt7915/mtk_debugfs.c
 @@ -3945,6 +3945,7 @@ int mt7915_mtk_init_debugfs(struct mt7915_phy *phy, struct dentry *dir)
@@ -377,7 +377,7 @@
  	debugfs_create_devm_seqfile(dev->mt76.dev, "eeprom_mode", dir,
  				    mt7915_show_eeprom_mode);
 diff --git a/mt7915/vendor.c b/mt7915/vendor.c
-index 432d7506..566fec01 100644
+index 432d750..566fec0 100644
 --- a/mt7915/vendor.c
 +++ b/mt7915/vendor.c
 @@ -106,6 +106,13 @@ bss_color_ctrl_policy[NUM_MTK_VENDOR_ATTRS_BSS_COLOR_CTRL] = {
@@ -477,7 +477,7 @@
  };
  
 diff --git a/mt7915/vendor.h b/mt7915/vendor.h
-index 03d1660c..5b8a1fb3 100644
+index 03d1660..5b8a1fb 100644
 --- a/mt7915/vendor.h
 +++ b/mt7915/vendor.h
 @@ -16,6 +16,7 @@ enum mtk_nl80211_vendor_subcmds {
diff --git a/recipes-wifi/linux-mt76/files/patches/1044-wifi-mt76-testmode-add-cheetah-support.patch b/recipes-wifi/linux-mt76/files/patches/1044-wifi-mt76-testmode-add-cheetah-support.patch
index d1ef4f9..fa23d7d 100644
--- a/recipes-wifi/linux-mt76/files/patches/1044-wifi-mt76-testmode-add-cheetah-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1044-wifi-mt76-testmode-add-cheetah-support.patch
@@ -1,7 +1,7 @@
-From e7e65b6c3742760ff15770e525e0a4e9438ac7a2 Mon Sep 17 00:00:00 2001
+From e9b737f036595d84f680ff9ee15cfffe5cd08efc Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Tue, 31 Oct 2023 16:29:13 +0800
-Subject: [PATCH 1044/1051] wifi: mt76: testmode: add cheetah support
+Subject: [PATCH 1044/1053] wifi: mt76: testmode: add cheetah support
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 ---
@@ -9,7 +9,7 @@
  1 file changed, 5 insertions(+), 4 deletions(-)
 
 diff --git a/mt7915/testmode.c b/mt7915/testmode.c
-index faf60146..ecd62712 100644
+index faf6014..ecd6271 100644
 --- a/mt7915/testmode.c
 +++ b/mt7915/testmode.c
 @@ -2151,7 +2151,7 @@ mt7915_tm_group_prek(struct mt7915_phy *phy, enum mt76_testmode_state state)
diff --git a/recipes-wifi/linux-mt76/files/patches/1045-wifi-mt76-mt7915-add-no_beacon-vendor-command-for-ce.patch b/recipes-wifi/linux-mt76/files/patches/1045-wifi-mt76-mt7915-add-no_beacon-vendor-command-for-ce.patch
index aa7dba8..d0fd257 100644
--- a/recipes-wifi/linux-mt76/files/patches/1045-wifi-mt76-mt7915-add-no_beacon-vendor-command-for-ce.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1045-wifi-mt76-mt7915-add-no_beacon-vendor-command-for-ce.patch
@@ -1,7 +1,7 @@
-From 9fab447128e7da7a0732c66b8f3922a6f30625de Mon Sep 17 00:00:00 2001
+From 966bba87073d983aa136f1f762d1b787a81ec767 Mon Sep 17 00:00:00 2001
 From: MeiChia Chiu <MeiChia.Chiu@mediatek.com>
 Date: Wed, 24 Jan 2024 14:39:14 +0800
-Subject: [PATCH 1045/1051] wifi: mt76: mt7915: add no_beacon vendor command
+Subject: [PATCH 1045/1053] wifi: mt76: mt7915: add no_beacon vendor command
  for cert
 
 Add the vendor command to disable/enable beacon
@@ -21,7 +21,7 @@
  4 files changed, 65 insertions(+), 1 deletion(-)
 
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index e17c61d5..ddb738cf 100644
+index e17c61d..ddb738c 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -5101,6 +5101,17 @@ int mt7915_mcu_set_rfeature_trig_type(struct mt7915_phy *phy, u8 enable, u8 trig
@@ -43,7 +43,7 @@
  
  #ifdef MTK_DEBUG
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index ff08d252..34f1a358 100644
+index ff08d25..34f1a35 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -808,6 +808,7 @@ void mt7915_vendor_amnt_fill_rx(struct mt7915_phy *phy, struct sk_buff *skb);
@@ -55,7 +55,7 @@
  int mt7915_mcu_set_edcca(struct mt7915_phy *phy, int mode, u8 *value, s8 compensation);
  int mt7915_mcu_get_edcca(struct mt7915_phy *phy, u8 mode, s8 *value);
 diff --git a/mt7915/vendor.c b/mt7915/vendor.c
-index 566fec01..6154d1a0 100644
+index 566fec0..6154d1a 100644
 --- a/mt7915/vendor.c
 +++ b/mt7915/vendor.c
 @@ -113,6 +113,11 @@ txpower_ctrl_policy[NUM_MTK_VENDOR_ATTRS_TXPOWER_CTRL] = {
@@ -122,7 +122,7 @@
  
  void mt7915_vendor_register(struct mt7915_phy *phy)
 diff --git a/mt7915/vendor.h b/mt7915/vendor.h
-index 5b8a1fb3..661d636f 100644
+index 5b8a1fb..661d636 100644
 --- a/mt7915/vendor.h
 +++ b/mt7915/vendor.h
 @@ -16,6 +16,7 @@ enum mtk_nl80211_vendor_subcmds {
diff --git a/recipes-wifi/linux-mt76/files/patches/1046-wifi-mt76-mt7915-support-spatial-reuse-debug-command.patch b/recipes-wifi/linux-mt76/files/patches/1046-wifi-mt76-mt7915-support-spatial-reuse-debug-command.patch
index 61c67c3..6588277 100644
--- a/recipes-wifi/linux-mt76/files/patches/1046-wifi-mt76-mt7915-support-spatial-reuse-debug-command.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1046-wifi-mt76-mt7915-support-spatial-reuse-debug-command.patch
@@ -1,7 +1,7 @@
-From 22c29063354694a3f0626be8cc3a8b83f35aa1ea Mon Sep 17 00:00:00 2001
+From 3a8ffe4b10bd9949dcd689406d5378a1b93c201d Mon Sep 17 00:00:00 2001
 From: Howard Hsu <howard-yh.hsu@mediatek.com>
 Date: Thu, 15 Feb 2024 11:16:16 +0800
-Subject: [PATCH 1046/1051] wifi: mt76: mt7915: support spatial reuse debug
+Subject: [PATCH 1046/1053] wifi: mt76: mt7915: support spatial reuse debug
  commands
 
 Support 3 spatial reuse debug commands:
@@ -12,17 +12,17 @@
 Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com>
 ---
  mt76_connac_mcu.h    |  1 +
- mt7915/mcu.c         | 94 ++++++++++++++++++++++++++++++++++++++++++++
+ mt7915/mcu.c         | 95 ++++++++++++++++++++++++++++++++++++++++++++
  mt7915/mcu.h         | 48 ++++++++++++++++++++++
  mt7915/mt7915.h      |  3 ++
  mt7915/mtk_debugfs.c | 48 ++++++++++++++++++++--
- 5 files changed, 190 insertions(+), 4 deletions(-)
+ 5 files changed, 191 insertions(+), 4 deletions(-)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index e581084e..791dc1d4 100644
+index c96621f..dc60e35 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1024,6 +1024,7 @@ enum {
+@@ -1031,6 +1031,7 @@ enum {
  	MCU_EXT_EVENT_WA_TX_STAT = 0x74,
  	MCU_EXT_EVENT_BCC_NOTIFY = 0x75,
  	MCU_EXT_EVENT_MURU_CTRL = 0x9f,
@@ -31,10 +31,10 @@
  };
  
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index ddb738cf..c099c1d3 100644
+index ddb738c..b3faf77 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
-@@ -452,6 +452,90 @@ mt7915_mcu_rx_bss_acq_pkt_cnt(struct mt7915_dev *dev, struct sk_buff * skb)
+@@ -452,6 +452,91 @@ mt7915_mcu_rx_bss_acq_pkt_cnt(struct mt7915_dev *dev, struct sk_buff * skb)
  	}
  }
  
@@ -44,7 +44,8 @@
 +#define SR_SCENE_DETECTION_TIMER_PERIOD_MS 500
 +	struct mt7915_mcu_sr_swsd_event *event;
 +	static const char * const rules[] = {"NO CONNECTED", "NO CONGESTION",
-+					     "NO INTERFERENCE", "SR ON"};
++					     "NO INTERFERENCE", "MESH ILLEGAL APCLI",
++					     "SR ON"};
 +	u8 idx;
 +
 +	event = (struct mt7915_mcu_sr_swsd_event *)skb->data;
@@ -125,7 +126,7 @@
  static void
  mt7915_mcu_rx_ext_event(struct mt7915_dev *dev, struct sk_buff *skb)
  {
-@@ -479,6 +563,11 @@ mt7915_mcu_rx_ext_event(struct mt7915_dev *dev, struct sk_buff *skb)
+@@ -479,6 +564,11 @@ mt7915_mcu_rx_ext_event(struct mt7915_dev *dev, struct sk_buff *skb)
  	case MCU_EXT_EVENT_BCC_NOTIFY:
  		mt7915_mcu_rx_bcc_notify(dev, skb);
  		break;
@@ -137,7 +138,7 @@
  #if defined CONFIG_NL80211_TESTMODE || defined MTK_DEBUG
  	case MCU_EXT_EVENT_BF_STATUS_READ:
  		mt7915_mcu_txbf_status_read(dev, skb);
-@@ -524,6 +613,7 @@ void mt7915_mcu_rx_event(struct mt7915_dev *dev, struct sk_buff *skb)
+@@ -524,6 +614,7 @@ void mt7915_mcu_rx_event(struct mt7915_dev *dev, struct sk_buff *skb)
  	     rxd->ext_eid == MCU_EXT_EVENT_PS_SYNC ||
  	     rxd->ext_eid == MCU_EXT_EVENT_BCC_NOTIFY ||
  	     rxd->ext_eid == MCU_EXT_EVENT_BF_STATUS_READ ||
@@ -145,7 +146,7 @@
  	     !rxd->seq) &&
  	     !(rxd->eid == MCU_CMD_EXT_CID &&
  	       rxd->ext_eid == MCU_EXT_EVENT_WA_TX_STAT))
-@@ -4002,6 +4092,10 @@ int mt7915_mcu_add_obss_spr(struct mt7915_phy *phy, struct ieee80211_vif *vif,
+@@ -4002,6 +4093,10 @@ int mt7915_mcu_add_obss_spr(struct mt7915_phy *phy, struct ieee80211_vif *vif,
  	if (ret)
  		return ret;
  
@@ -157,7 +158,7 @@
  		return 0;
  
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index 742a7855..f4767671 100644
+index 742a785..f476767 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -42,6 +42,45 @@ struct mt7915_mcu_thermal_notify {
@@ -232,7 +233,7 @@
  	THERMAL_PROTECT_PARAMETER_CTRL,
  	THERMAL_PROTECT_BASIC_INFO,
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 34f1a358..47f7d163 100644
+index 34f1a35..47f7d16 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -354,6 +354,9 @@ struct mt7915_phy {
@@ -246,7 +247,7 @@
  
  #ifdef MTK_DEBUG
 diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
-index e7588434..bf419265 100644
+index d3d3b17..78ac4e5 100644
 --- a/mt7915/mtk_debugfs.c
 +++ b/mt7915/mtk_debugfs.c
 @@ -3809,16 +3809,34 @@ mt7915_sw_aci_set(void *data, u64 val)
diff --git a/recipes-wifi/linux-mt76/files/patches/1047-wifi-mt76-try-more-times-when-send-message-timeout.patch b/recipes-wifi/linux-mt76/files/patches/1047-wifi-mt76-try-more-times-when-send-message-timeout.patch
index 1891c20..ed1ac98 100644
--- a/recipes-wifi/linux-mt76/files/patches/1047-wifi-mt76-try-more-times-when-send-message-timeout.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1047-wifi-mt76-try-more-times-when-send-message-timeout.patch
@@ -1,7 +1,7 @@
-From cdaf90d85058a2383225ad657be6fe7c331088b4 Mon Sep 17 00:00:00 2001
+From b0e4d25607d3a52f93139919c85482f87087f145 Mon Sep 17 00:00:00 2001
 From: Bo Jiao <Bo.Jiao@mediatek.com>
 Date: Thu, 7 Mar 2024 11:13:45 +0800
-Subject: [PATCH 1047/1051] wifi: mt76: try more times when send message
+Subject: [PATCH 1047/1053] wifi: mt76: try more times when send message
  timeout.
 
 CR-Id: WCNCR00334773
@@ -13,7 +13,7 @@
  3 files changed, 64 insertions(+), 52 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index bc8afcff..133a50dc 100644
+index bc8afcf..133a50d 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 fa4b0544..de185cc9 100644
+index fa4b054..de185cc 100644
 --- a/mcu.c
 +++ b/mcu.c
 @@ -4,6 +4,7 @@
@@ -133,7 +133,7 @@
  
  	return ret;
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index 2e4a8f84..dbc1095c 100644
+index 2e4a8f8..dbc1095 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -1389,12 +1389,6 @@ mt7915_mac_restart(struct mt7915_dev *dev)
diff --git a/recipes-wifi/linux-mt76/files/patches/1048-wifi-mt76-mt7915-add-SER-overlap-handle.patch b/recipes-wifi/linux-mt76/files/patches/1048-wifi-mt76-mt7915-add-SER-overlap-handle.patch
index 0e84232..28a07af 100644
--- a/recipes-wifi/linux-mt76/files/patches/1048-wifi-mt76-mt7915-add-SER-overlap-handle.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1048-wifi-mt76-mt7915-add-SER-overlap-handle.patch
@@ -1,7 +1,7 @@
-From 37da0074c6570badb26e2fd527b55621bc571aca Mon Sep 17 00:00:00 2001
+From 6b84e5955fac1b324c5ad7bf2ea585e6531697a7 Mon Sep 17 00:00:00 2001
 From: Bo Jiao <Bo.Jiao@mediatek.com>
 Date: Tue, 6 Feb 2024 14:46:59 +0800
-Subject: [PATCH 1048/1051] wifi: mt76: mt7915: add SER overlap handle
+Subject: [PATCH 1048/1053] wifi: mt76: mt7915: add SER overlap handle
 
 CR-ID: WCNCR00355921
 Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com>
@@ -14,7 +14,7 @@
  5 files changed, 34 insertions(+), 3 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index 133a50dc..100d2aff 100644
+index 133a50d..100d2af 100644
 --- a/dma.c
 +++ b/dma.c
 @@ -506,7 +506,8 @@ mt76_dma_tx_queue_skb_raw(struct mt76_dev *dev, struct mt76_queue *q,
@@ -28,7 +28,7 @@
  		goto error;
  	}
 diff --git a/mcu.c b/mcu.c
-index de185cc9..1bc94e85 100644
+index de185cc..1bc94e8 100644
 --- a/mcu.c
 +++ b/mcu.c
 @@ -42,7 +42,9 @@ struct sk_buff *mt76_mcu_get_response(struct mt76_dev *dev,
@@ -53,7 +53,7 @@
  			dev_err(dev->dev, "send message %08x timeout, try again(%d).\n",
  				cmd, (MT76_MSG_MAX_RETRY_CNT - retry_cnt));
 diff --git a/mt76.h b/mt76.h
-index b023f38d..fb50d88b 100644
+index b023f38..fb50d88 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -478,6 +478,14 @@ enum {
@@ -80,7 +80,7 @@
  	u32 wcid_mask[DIV_ROUND_UP(MT76_N_WCIDS, 32)];
  	u32 wcid_phy_mask[DIV_ROUND_UP(MT76_N_WCIDS, 32)];
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index dbc1095c..e9f50a38 100644
+index dbc1095..e9f50a3 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -1579,6 +1579,7 @@ void mt7915_mac_reset_work(struct work_struct *work)
@@ -116,7 +116,7 @@
  	wake_up(&dev->reset_wait);
  }
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index c099c1d3..e6c2c3dc 100644
+index b3faf77..f71688e 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -198,6 +198,13 @@ mt7915_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb,
diff --git a/recipes-wifi/linux-mt76/files/patches/1049-wifi-mt76-mt7915-add-background-radar-hw-cap-check.patch b/recipes-wifi/linux-mt76/files/patches/1049-wifi-mt76-mt7915-add-background-radar-hw-cap-check.patch
index 6c348a4..bfd88aa 100644
--- a/recipes-wifi/linux-mt76/files/patches/1049-wifi-mt76-mt7915-add-background-radar-hw-cap-check.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1049-wifi-mt76-mt7915-add-background-radar-hw-cap-check.patch
@@ -1,7 +1,7 @@
-From fcad28acd81313d08e6c187a5cfe689345e40c2e Mon Sep 17 00:00:00 2001
+From 016069539c9436262f37516462e9396e6f63b550 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Mon, 4 Mar 2024 11:29:06 +0800
-Subject: [PATCH 1049/1051] wifi: mt76: mt7915: add background radar hw cap
+Subject: [PATCH 1049/1053] wifi: mt76: mt7915: add background radar hw cap
  check
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
@@ -12,7 +12,7 @@
  3 files changed, 39 insertions(+), 3 deletions(-)
 
 diff --git a/mt7915/debugfs.c b/mt7915/debugfs.c
-index 017d43d7..599a794c 100644
+index b2a4ff4..03daf44 100644
 --- a/mt7915/debugfs.c
 +++ b/mt7915/debugfs.c
 @@ -459,6 +459,11 @@ mt7915_rdd_monitor(struct seq_file *s, void *data)
@@ -28,7 +28,7 @@
  		ret = -EINVAL;
  		goto out;
 diff --git a/mt7915/eeprom.h b/mt7915/eeprom.h
-index 70fca0b3..adeee104 100644
+index 70fca0b..adeee10 100644
 --- a/mt7915/eeprom.h
 +++ b/mt7915/eeprom.h
 @@ -55,6 +55,7 @@ enum mt7915_eeprom_field {
@@ -76,7 +76,7 @@
  
  #endif
 diff --git a/mt7915/init.c b/mt7915/init.c
-index c052b927..f5daf024 100644
+index b53075b..26ae63f 100644
 --- a/mt7915/init.c
 +++ b/mt7915/init.c
 @@ -404,9 +404,10 @@ mt7915_init_wiphy(struct mt7915_phy *phy)
diff --git a/recipes-wifi/linux-mt76/files/patches/1050-wifi-mt76-mt7915-remove-unnecessary-register-setting.patch b/recipes-wifi/linux-mt76/files/patches/1050-wifi-mt76-mt7915-remove-unnecessary-register-setting.patch
index db12d30..840d787 100644
--- a/recipes-wifi/linux-mt76/files/patches/1050-wifi-mt76-mt7915-remove-unnecessary-register-setting.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1050-wifi-mt76-mt7915-remove-unnecessary-register-setting.patch
@@ -1,7 +1,7 @@
-From bd6543b475fd9b98c45a486d242c6915a846aef2 Mon Sep 17 00:00:00 2001
+From 1e641bcbd21de95f4719063eecde6df206e2cf55 Mon Sep 17 00:00:00 2001
 From: Henry Yen <henry.yen@mediatek.com>
 Date: Wed, 6 Mar 2024 12:42:06 +0800
-Subject: [PATCH 1050/1051] wifi: mt76: mt7915: remove unnecessary register
+Subject: [PATCH 1050/1053] wifi: mt76: mt7915: remove unnecessary register
  settings
 
 Remove unnecessary register settings from the driver layer,
@@ -14,7 +14,7 @@
  2 files changed, 1 insertion(+), 77 deletions(-)
 
 diff --git a/mt7915/init.c b/mt7915/init.c
-index f5daf024..b299eccc 100644
+index 26ae63f..9ffeca5 100644
 --- a/mt7915/init.c
 +++ b/mt7915/init.c
 @@ -488,30 +488,6 @@ mt7915_mac_init_band(struct mt7915_dev *dev, u8 band)
@@ -73,7 +73,7 @@
  		mt7915_mac_wtbl_update(dev, i,
  				       MT_WTBL_UPDATE_ADM_COUNT_CLEAR);
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index e9f50a38..c84b9573 100644
+index e9f50a3..c84b957 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -1202,61 +1202,20 @@ void mt7915_mac_reset_counters(struct mt7915_phy *phy)
diff --git a/recipes-wifi/linux-mt76/files/patches/1051-wifi-mt76-mt7915-add-foolproof-mechanism-for-ZWDFS-d.patch b/recipes-wifi/linux-mt76/files/patches/1051-wifi-mt76-mt7915-add-foolproof-mechanism-for-ZWDFS-d.patch
index 5257b0d..5c966ec 100644
--- a/recipes-wifi/linux-mt76/files/patches/1051-wifi-mt76-mt7915-add-foolproof-mechanism-for-ZWDFS-d.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1051-wifi-mt76-mt7915-add-foolproof-mechanism-for-ZWDFS-d.patch
@@ -1,7 +1,7 @@
-From e3c3d9829b27c167bb9a502e2e532d1cf349ec7b Mon Sep 17 00:00:00 2001
+From 25eef0359cbdfb1a1e7730da256ac35a943242ea Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Wed, 6 Mar 2024 11:30:34 +0800
-Subject: [PATCH 1051/1051] wifi: mt76: mt7915: add foolproof mechanism for
+Subject: [PATCH 1051/1053] wifi: mt76: mt7915: add foolproof mechanism for
  ZWDFS during radar detected & triggered
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
@@ -11,7 +11,7 @@
  2 files changed, 8 insertions(+)
 
 diff --git a/mt7915/debugfs.c b/mt7915/debugfs.c
-index 599a794c..e43bcabb 100644
+index 03daf44..d8ca90a 100644
 --- a/mt7915/debugfs.c
 +++ b/mt7915/debugfs.c
 @@ -231,6 +231,11 @@ mt7915_radar_trigger(void *data, u64 val)
@@ -27,7 +27,7 @@
  				       val, 0, 0);
  }
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index e6c2c3dc..2f57b1d8 100644
+index f71688e..d857658 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -302,6 +302,9 @@ mt7915_mcu_rx_radar_detected(struct mt7915_dev *dev, struct sk_buff *skb)
diff --git a/recipes-wifi/linux-mt76/files/patches/1054-wifi-mt76-mt7915-assign-DEAUTH-to-ALTX-queue-for.patch b/recipes-wifi/linux-mt76/files/patches/1052-mtk-wifi-mt76-mt7915-assign-DEAUTH-to-ALTX-queue-for.patch
similarity index 87%
rename from recipes-wifi/linux-mt76/files/patches/1054-wifi-mt76-mt7915-assign-DEAUTH-to-ALTX-queue-for.patch
rename to recipes-wifi/linux-mt76/files/patches/1052-mtk-wifi-mt76-mt7915-assign-DEAUTH-to-ALTX-queue-for.patch
index 83c76c0..8f766d0 100644
--- a/recipes-wifi/linux-mt76/files/patches/1054-wifi-mt76-mt7915-assign-DEAUTH-to-ALTX-queue-for.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1052-mtk-wifi-mt76-mt7915-assign-DEAUTH-to-ALTX-queue-for.patch
@@ -1,7 +1,8 @@
-From a8a291acfb296d02ea780e466e080d789f70af21 Mon Sep 17 00:00:00 2001
+From 93810a9bad2fd59c8e4742195a3b5c53878116ef Mon Sep 17 00:00:00 2001
 From: Michael-CY Lee <michael-cy.lee@mediatek.com>
 Date: Tue, 19 Mar 2024 08:35:26 +0800
-Subject: [PATCH] mtk: wifi: mt76: mt7915: assign DEAUTH to ALTX queue for CERT
+Subject: [PATCH 1052/1053] mtk: wifi: mt76: mt7915: assign DEAUTH to ALTX
+ queue for CERT
 
 Signed-off-by: Michael-CY Lee <michael-cy.lee@mediatek.com>
 ---
@@ -9,7 +10,7 @@
  1 file changed, 10 insertions(+)
 
 diff --git a/mt76_connac_mac.c b/mt76_connac_mac.c
-index abb95b3..edeb618 100644
+index d41f004..0510296 100644
 --- a/mt76_connac_mac.c
 +++ b/mt76_connac_mac.c
 @@ -385,6 +385,8 @@ mt76_connac2_mac_write_txwi_80211(struct mt76_dev *dev, __le32 *txwi,
@@ -37,5 +38,5 @@
  	    mgmt->u.action.category == WLAN_CATEGORY_BACK &&
  	    mgmt->u.action.u.addba_req.action_code == WLAN_ACTION_ADDBA_REQ) {
 -- 
-2.25.1
+2.18.0
 
diff --git a/recipes-wifi/linux-mt76/files/patches/1055-wifi-mt76-mt7915-set-channel-after-sta-is-associated.patch b/recipes-wifi/linux-mt76/files/patches/1053-wifi-mt76-mt7915-set-channel-after-sta-is-associated.patch
similarity index 90%
rename from recipes-wifi/linux-mt76/files/patches/1055-wifi-mt76-mt7915-set-channel-after-sta-is-associated.patch
rename to recipes-wifi/linux-mt76/files/patches/1053-wifi-mt76-mt7915-set-channel-after-sta-is-associated.patch
index 6153cdf..e9c88e1 100644
--- a/recipes-wifi/linux-mt76/files/patches/1055-wifi-mt76-mt7915-set-channel-after-sta-is-associated.patch
+++ b/recipes-wifi/linux-mt76/files/patches/1053-wifi-mt76-mt7915-set-channel-after-sta-is-associated.patch
@@ -1,8 +1,8 @@
-From be32df6be97cc2ffdbaa304d37c2a1f169c756e0 Mon Sep 17 00:00:00 2001
+From 124ffa4206375bcbcb8bfaa0032045e3063ad286 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Thu, 21 Mar 2024 16:52:34 +0800
-Subject: [PATCH] wifi: mt76: mt7915: set channel after sta is associated to
- adjust switch reason
+Subject: [PATCH 1053/1053] wifi: mt76: mt7915: set channel after sta is
+ associated to adjust switch reason
 
 when sta is associated to AP operating in DFS channel, a channel
 setting operation is required to change the channel switch reason
diff --git a/recipes-wifi/linux-mt76/files/patches/2000-wifi-mt76-mt7915-wed-add-wed-tx-support.patch b/recipes-wifi/linux-mt76/files/patches/2000-wifi-mt76-mt7915-wed-add-wed-tx-support.patch
index bd9c692..8d6705e 100644
--- a/recipes-wifi/linux-mt76/files/patches/2000-wifi-mt76-mt7915-wed-add-wed-tx-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches/2000-wifi-mt76-mt7915-wed-add-wed-tx-support.patch
@@ -1,7 +1,7 @@
-From 284cc70f0a5bda348744d7288b0dd3b6c3fd18eb Mon Sep 17 00:00:00 2001
+From 86f4aafcab8e833c7009e453e97adc254628d4d1 Mon Sep 17 00:00:00 2001
 From: Sujuan Chen <sujuan.chen@mediatek.com>
 Date: Fri, 25 Nov 2022 10:38:53 +0800
-Subject: [PATCH 2000/2012] wifi: mt76: mt7915: wed: add wed tx support
+Subject: [PATCH 2000/2014] wifi: mt76: mt7915: wed: add wed tx support
 
 Signed-off-by: Sujuan Chen <sujuan.chen@mediatek.com>
 ---
@@ -14,7 +14,7 @@
  6 files changed, 14 insertions(+), 8 deletions(-)
 
 diff --git a/mt76_connac.h b/mt76_connac.h
-index e23a41cb..58421e51 100644
+index 8e7068c..e1d6ca2 100644
 --- a/mt76_connac.h
 +++ b/mt76_connac.h
 @@ -130,6 +130,7 @@ struct mt76_connac_sta_key_conf {
@@ -26,7 +26,7 @@
  struct mt76_connac_fw_txp {
  	__le16 flags;
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index c84b9573..1c8b8732 100644
+index c84b957..1c8b873 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -878,9 +878,9 @@ u32 mt7915_wed_init_buf(void *ptr, dma_addr_t phys, int token_id)
@@ -67,10 +67,10 @@
  
  static void
 diff --git a/mt7915/main.c b/mt7915/main.c
-index 69fcf4c0..2ad95f43 100644
+index 41fa450..332b087 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
-@@ -1728,14 +1728,14 @@ mt7915_net_fill_forward_path(struct ieee80211_hw *hw,
+@@ -1753,14 +1753,14 @@ mt7915_net_fill_forward_path(struct ieee80211_hw *hw,
  	if (!mtk_wed_device_active(wed))
  		return -ENODEV;
  
@@ -88,7 +88,7 @@
  
  	ctx->dev = NULL;
 diff --git a/mt7915/mmio.c b/mt7915/mmio.c
-index 437a9b0e..91100f15 100644
+index 437a9b0..91100f1 100644
 --- a/mt7915/mmio.c
 +++ b/mt7915/mmio.c
 @@ -13,7 +13,7 @@
@@ -109,7 +109,7 @@
  	ret = dma_set_mask(wed->dev, DMA_BIT_MASK(32));
  	if (ret)
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 47f7d163..1d0188d1 100644
+index 47f7d16..1d0188d 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -62,7 +62,7 @@
@@ -122,7 +122,7 @@
  
  #define MT7915_CFEND_RATE_DEFAULT	0x49	/* OFDM 24M */
 diff --git a/wed.c b/wed.c
-index f7a3f1b3..47c81a28 100644
+index f7a3f1b..47c81a2 100644
 --- a/wed.c
 +++ b/wed.c
 @@ -187,7 +187,7 @@ void mt76_wed_offload_disable(struct mtk_wed_device *wed)
diff --git a/recipes-wifi/linux-mt76/files/patches/2001-wifi-mt76-mt7915-wed-add-wds-support-when-wed-is-ena.patch b/recipes-wifi/linux-mt76/files/patches/2001-wifi-mt76-mt7915-wed-add-wds-support-when-wed-is-ena.patch
index 97d6e3e..9ddec3e 100644
--- a/recipes-wifi/linux-mt76/files/patches/2001-wifi-mt76-mt7915-wed-add-wds-support-when-wed-is-ena.patch
+++ b/recipes-wifi/linux-mt76/files/patches/2001-wifi-mt76-mt7915-wed-add-wds-support-when-wed-is-ena.patch
@@ -1,7 +1,7 @@
-From a6b57c4e7197d09fb0e546e057e96c0a94634d2d Mon Sep 17 00:00:00 2001
+From ab7172fb880f05bc6005a78982278c5b365055b4 Mon Sep 17 00:00:00 2001
 From: Sujuan Chen <sujuan.chen@mediatek.com>
 Date: Tue, 13 Dec 2022 17:51:26 +0800
-Subject: [PATCH 2001/2012] wifi: mt76: mt7915: wed: add wds support when wed
+Subject: [PATCH 2001/2014] wifi: mt76: mt7915: wed: add wds support when wed
  is enabled
 
 Signed-off-by: Sujuan Chen <sujuan.chen@mediatek.com>
@@ -15,7 +15,7 @@
  6 files changed, 82 insertions(+), 10 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
-index fb50d88b..d3c6ac0f 100644
+index fb50d88..d3c6ac0 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -78,6 +78,12 @@ enum mt76_wed_type {
@@ -32,10 +32,10 @@
  	u32 (*rr)(struct mt76_dev *dev, u32 offset);
  	void (*wr)(struct mt76_dev *dev, u32 offset, u32 val);
 diff --git a/mt7915/main.c b/mt7915/main.c
-index 2ad95f43..1a259bd0 100644
+index 332b087..ab60159 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
-@@ -804,8 +804,15 @@ int mt7915_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -829,8 +829,15 @@ int mt7915_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
  #endif
  	int ret, idx;
  	u32 addr;
@@ -52,7 +52,7 @@
  	if (idx < 0)
  		return -ENOSPC;
  
-@@ -1296,6 +1303,13 @@ static void mt7915_sta_set_4addr(struct ieee80211_hw *hw,
+@@ -1321,6 +1328,13 @@ static void mt7915_sta_set_4addr(struct ieee80211_hw *hw,
  	else
  		clear_bit(MT_WCID_FLAG_4ADDR, &msta->wcid.flags);
  
@@ -66,7 +66,7 @@
  	mt76_connac_mcu_wtbl_update_hdr_trans(&dev->mt76, vif, sta);
  }
  
-@@ -1735,8 +1749,12 @@ mt7915_net_fill_forward_path(struct ieee80211_hw *hw,
+@@ -1760,8 +1774,12 @@ mt7915_net_fill_forward_path(struct ieee80211_hw *hw,
  	path->dev = ctx->dev;
  	path->mtk_wdma.wdma_idx = wed->wdma_idx;
  	path->mtk_wdma.bss = mvif->mt76.idx;
@@ -81,10 +81,10 @@
  	ctx->dev = NULL;
  
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 2f57b1d8..c92d6d9c 100644
+index d857658..b42afe8 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
-@@ -2587,10 +2587,18 @@ int mt7915_mcu_init_firmware(struct mt7915_dev *dev)
+@@ -2588,10 +2588,18 @@ int mt7915_mcu_init_firmware(struct mt7915_dev *dev)
  	if (ret)
  		return ret;
  
@@ -108,7 +108,7 @@
  	ret = mt7915_mcu_set_mwds(dev, 1);
  	if (ret)
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index f4767671..52baaa73 100644
+index f476767..52baaa7 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -392,6 +392,7 @@ enum {
@@ -120,7 +120,7 @@
  	MCU_WA_PARAM_RED_SHOW_STA = 0xf,
  	MCU_WA_PARAM_RED_TARGET_DELAY = 0x10,
 diff --git a/util.c b/util.c
-index fc76c66f..61b2d30a 100644
+index fc76c66..61b2d30 100644
 --- a/util.c
 +++ b/util.c
 @@ -42,9 +42,14 @@ bool ____mt76_poll_msec(struct mt76_dev *dev, u32 offset, u32 mask, u32 val,
@@ -188,7 +188,7 @@
  int mt76_get_min_avg_rssi(struct mt76_dev *dev, bool ext_phy)
  {
 diff --git a/util.h b/util.h
-index 260965dd..99b7263c 100644
+index 260965d..99b7263 100644
 --- a/util.h
 +++ b/util.h
 @@ -27,7 +27,12 @@ enum {
diff --git a/recipes-wifi/linux-mt76/files/patches/2002-wifi-mt76-mt7915-wed-add-fill-receive-path-to-report.patch b/recipes-wifi/linux-mt76/files/patches/2002-wifi-mt76-mt7915-wed-add-fill-receive-path-to-report.patch
index e8e12ca..98ec448 100644
--- a/recipes-wifi/linux-mt76/files/patches/2002-wifi-mt76-mt7915-wed-add-fill-receive-path-to-report.patch
+++ b/recipes-wifi/linux-mt76/files/patches/2002-wifi-mt76-mt7915-wed-add-fill-receive-path-to-report.patch
@@ -1,7 +1,7 @@
-From b1ad8583eead42f3784f1bf718f6ebb2c1d01d32 Mon Sep 17 00:00:00 2001
+From 6fa429e617e59379bd82c8dbef851e99954676ed Mon Sep 17 00:00:00 2001
 From: Evelyn Tsai <evelyn.tsai@mediatek.com>
 Date: Fri, 19 May 2023 07:05:22 +0800
-Subject: [PATCH 2002/2012] wifi: mt76: mt7915: wed: add fill receive path to
+Subject: [PATCH 2002/2014] wifi: mt76: mt7915: wed: add fill receive path to
  report wed idx
 
 Signed-off-by: Sujuan Chen <sujuan.chen@mediatek.com>
@@ -10,10 +10,10 @@
  1 file changed, 18 insertions(+)
 
 diff --git a/mt7915/main.c b/mt7915/main.c
-index 1a259bd0..c1dcda11 100644
+index ab60159..b3e06aa 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
-@@ -1760,6 +1760,23 @@ mt7915_net_fill_forward_path(struct ieee80211_hw *hw,
+@@ -1785,6 +1785,23 @@ mt7915_net_fill_forward_path(struct ieee80211_hw *hw,
  
  	return 0;
  }
@@ -37,7 +37,7 @@
  #endif
  
  const struct ieee80211_ops mt7915_ops = {
-@@ -1815,6 +1832,7 @@ const struct ieee80211_ops mt7915_ops = {
+@@ -1841,6 +1858,7 @@ const struct ieee80211_ops mt7915_ops = {
  	.set_radar_background = mt7915_set_radar_background,
  #ifdef CONFIG_NET_MEDIATEK_SOC_WED
  	.net_fill_forward_path = mt7915_net_fill_forward_path,
diff --git a/recipes-wifi/linux-mt76/files/patches/2003-wifi-mt76-mt7915-wed-find-rx-token-by-physical-addre.patch b/recipes-wifi/linux-mt76/files/patches/2003-wifi-mt76-mt7915-wed-find-rx-token-by-physical-addre.patch
index 035119b..54c520e 100644
--- a/recipes-wifi/linux-mt76/files/patches/2003-wifi-mt76-mt7915-wed-find-rx-token-by-physical-addre.patch
+++ b/recipes-wifi/linux-mt76/files/patches/2003-wifi-mt76-mt7915-wed-find-rx-token-by-physical-addre.patch
@@ -1,7 +1,7 @@
-From d3d5ab6d6989272f28ebd5f5958371dc15c2864d Mon Sep 17 00:00:00 2001
+From 79d00e5e7ff7653dc6839551f33a5b36d6291169 Mon Sep 17 00:00:00 2001
 From: Sujuan Chen <sujuan.chen@mediatek.com>
 Date: Fri, 25 Nov 2022 14:32:35 +0800
-Subject: [PATCH 2003/2012] wifi: mt76: mt7915: wed: find rx token by physical
+Subject: [PATCH 2003/2014] wifi: mt76: mt7915: wed: find rx token by physical
  address
 
 The token id in RxDMAD may be incorrect when it is not the last frame due to
@@ -13,7 +13,7 @@
  1 file changed, 24 insertions(+), 1 deletion(-)
 
 diff --git a/dma.c b/dma.c
-index 100d2aff..185c6f12 100644
+index 100d2af..185c6f1 100644
 --- a/dma.c
 +++ b/dma.c
 @@ -444,9 +444,32 @@ mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx,
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 874394d..936d19d 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 26be0e657475d78affd162e5fffd29a12f41d197 Mon Sep 17 00:00:00 2001
+From f4c4eda21841dae1229e6f7942d4a74f385d87a5 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/2012] wifi: mt76: mt7915: wed: HW ATF support for mt7986
+Subject: [PATCH 2004/2014] 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>
@@ -16,10 +16,10 @@
  7 files changed, 796 insertions(+), 3 deletions(-)
 
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 791dc1d4..f8f4eed6 100644
+index dc60e35..03d6a2b 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1202,6 +1202,7 @@ enum {
+@@ -1209,6 +1209,7 @@ enum {
  	MCU_EXT_CMD_THERMAL_CTRL = 0x2c,
  	MCU_EXT_CMD_WTBL_UPDATE = 0x32,
  	MCU_EXT_CMD_SET_DRR_CTRL = 0x36,
@@ -27,7 +27,7 @@
  	MCU_EXT_CMD_SET_RDD_CTRL = 0x3a,
  	MCU_EXT_CMD_ATE_CTRL = 0x3d,
  	MCU_EXT_CMD_PROTECT_CTRL = 0x3e,
-@@ -1211,6 +1212,7 @@ enum {
+@@ -1218,6 +1219,7 @@ enum {
  	MCU_EXT_CMD_MUAR_UPDATE = 0x48,
  	MCU_EXT_CMD_BCN_OFFLOAD = 0x49,
  	MCU_EXT_CMD_RX_AIRTIME_CTRL = 0x4a,
@@ -36,7 +36,7 @@
  	MCU_EXT_CMD_EFUSE_FREE_BLOCK = 0x4f,
  	MCU_EXT_CMD_TX_POWER_FEATURE_CTRL = 0x58,
 diff --git a/mt7915/debugfs.c b/mt7915/debugfs.c
-index e43bcabb..6dc07ff5 100644
+index d8ca90a..3ae4aca 100644
 --- a/mt7915/debugfs.c
 +++ b/mt7915/debugfs.c
 @@ -12,6 +12,10 @@
@@ -409,7 +409,7 @@
  static int
  mt7915_radar_trigger(void *data, u64 val)
  {
-@@ -1525,6 +1881,7 @@ int mt7915_init_debugfs(struct mt7915_phy *phy)
+@@ -1526,6 +1882,7 @@ int mt7915_init_debugfs(struct mt7915_phy *phy)
  	debugfs_create_devm_seqfile(dev->mt76.dev, "twt_stats", dir,
  				    mt7915_twt_stats);
  	debugfs_create_file("rf_regval", 0600, dir, dev, &fops_rf_regval);
@@ -418,7 +418,7 @@
  	if (!dev->dbdc_support || phy->mt76->band_idx) {
  		debugfs_create_u32("dfs_hw_pattern", 0400, dir,
 diff --git a/mt7915/init.c b/mt7915/init.c
-index b299eccc..bf6b8631 100644
+index 9ffeca5..16c3632 100644
 --- a/mt7915/init.c
 +++ b/mt7915/init.c
 @@ -587,9 +587,64 @@ mt7915_init_led_mux(struct mt7915_dev *dev)
@@ -497,7 +497,7 @@
  
  int mt7915_txbf_init(struct mt7915_dev *dev)
 diff --git a/mt7915/main.c b/mt7915/main.c
-index c1dcda11..4bbced00 100644
+index b3e06aa..199ce82 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
@@ -518,7 +518,7 @@
  	return ret;
  }
  
-@@ -799,6 +803,7 @@ int mt7915_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -824,6 +828,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
-@@ -849,6 +854,15 @@ int mt7915_mac_sta_add(struct mt76_dev *mdev, struct ieee80211_vif *vif,
+@@ -874,6 +879,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 c92d6d9c..484d9869 100644
+index b42afe8..a153585 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
-@@ -1865,7 +1865,7 @@ mt7915_mcu_add_group(struct mt7915_dev *dev, struct ieee80211_vif *vif,
+@@ -1866,7 +1866,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;
-@@ -1876,10 +1876,9 @@ mt7915_mcu_add_group(struct mt7915_dev *dev, struct ieee80211_vif *vif,
+@@ -1877,10 +1877,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);
  
-@@ -1937,6 +1936,7 @@ int mt7915_mcu_add_sta(struct mt7915_dev *dev, struct ieee80211_vif *vif,
+@@ -1938,6 +1937,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);
-@@ -3896,6 +3896,169 @@ int mt7915_mcu_set_ser(struct mt7915_dev *dev, u8 action, u8 set, u8 band)
+@@ -3897,6 +3897,169 @@ int mt7915_mcu_set_ser(struct mt7915_dev *dev, u8 action, u8 set, u8 band)
  				 &req, sizeof(req), false);
  }
  
@@ -746,7 +746,7 @@
  {
  #define MT_BF_PROCESSING	4
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 1d0188d1..d779488a 100644
+index 1d0188d..d779488 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -141,6 +141,58 @@ struct mt7915_twt_flow {
@@ -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 bf419265..1d2699de 100644
+index 78ac4e5..ead8970 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)
diff --git a/recipes-wifi/linux-mt76/files/patches/2005-wifi-mt76-mt7915-wed-add-rxwi-for-further-in-chip-rr.patch b/recipes-wifi/linux-mt76/files/patches/2005-wifi-mt76-mt7915-wed-add-rxwi-for-further-in-chip-rr.patch
index fa18615..a5d3349 100644
--- a/recipes-wifi/linux-mt76/files/patches/2005-wifi-mt76-mt7915-wed-add-rxwi-for-further-in-chip-rr.patch
+++ b/recipes-wifi/linux-mt76/files/patches/2005-wifi-mt76-mt7915-wed-add-rxwi-for-further-in-chip-rr.patch
@@ -1,7 +1,7 @@
-From b5642050026168aa74a868186c1ef5d8d1e45f1a Mon Sep 17 00:00:00 2001
+From 1cb052dfd4d21367e1c6623721d58a05648c9b2a Mon Sep 17 00:00:00 2001
 From: Sujuan Chen <sujuan.chen@mediatek.com>
 Date: Fri, 6 Jan 2023 18:18:50 +0800
-Subject: [PATCH 2005/2012] wifi: mt76: mt7915: wed: add rxwi for further in
+Subject: [PATCH 2005/2014] wifi: mt76: mt7915: wed: add rxwi for further in
  chip rro
 
 Signed-off-by: Sujuan Chen <sujuan.chen@mediatek.com>
@@ -17,7 +17,7 @@
  8 files changed, 87 insertions(+), 80 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index 185c6f12..9cd97d24 100644
+index 185c6f1..9cd97d2 100644
 --- a/dma.c
 +++ b/dma.c
 @@ -64,17 +64,17 @@ mt76_alloc_txwi(struct mt76_dev *dev)
@@ -245,7 +245,7 @@
  unmap:
  	for (n--; n > 0; n--)
 diff --git a/mac80211.c b/mac80211.c
-index f9dfdf8c..225b290c 100644
+index f9dfdf8..225b290 100644
 --- a/mac80211.c
 +++ b/mac80211.c
 @@ -618,7 +618,6 @@ mt76_alloc_device(struct device *pdev, unsigned int size,
@@ -265,7 +265,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 d3c6ac0f..2e7585a8 100644
+index d3c6ac0..2e7585a 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -193,6 +193,7 @@ struct mt76_queue_entry {
@@ -336,7 +336,7 @@
  static inline void mt76_set_tx_blocked(struct mt76_dev *dev, bool blocked)
  {
 diff --git a/mt7915/dma.c b/mt7915/dma.c
-index 0baa82c8..552410aa 100644
+index 0baa82c..552410a 100644
 --- a/mt7915/dma.c
 +++ b/mt7915/dma.c
 @@ -512,7 +512,6 @@ int mt7915_dma_init(struct mt7915_dev *dev, struct mt7915_phy *phy2)
@@ -356,7 +356,7 @@
  		}
  
 diff --git a/mt7915/mmio.c b/mt7915/mmio.c
-index 91100f15..3391a949 100644
+index 91100f1..3391a94 100644
 --- a/mt7915/mmio.c
 +++ b/mt7915/mmio.c
 @@ -725,7 +725,7 @@ int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr,
@@ -377,7 +377,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 d779488a..e41c7ad2 100644
+index d779488..e41c7ad 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -64,6 +64,7 @@
@@ -389,7 +389,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 db0d4df5..92afbf5d 100644
+index db0d4df..92afbf5 100644
 --- a/tx.c
 +++ b/tx.c
 @@ -864,16 +864,16 @@ int mt76_token_consume(struct mt76_dev *dev, struct mt76_txwi_cache **ptxwi,
@@ -434,7 +434,7 @@
  }
  EXPORT_SYMBOL_GPL(mt76_rx_token_release);
 diff --git a/wed.c b/wed.c
-index 47c81a28..c03b52f9 100644
+index 47c81a2..c03b52f 100644
 --- a/wed.c
 +++ b/wed.c
 @@ -16,18 +16,18 @@ void mt76_wed_release_rx_buf(struct mtk_wed_device *wed)
diff --git a/recipes-wifi/linux-mt76/files/patches/2006-wifi-mt76-add-debugfs-knob-to-show-packet-error-rate.patch b/recipes-wifi/linux-mt76/files/patches/2006-wifi-mt76-add-debugfs-knob-to-show-packet-error-rate.patch
index 298c46f..afee625 100644
--- a/recipes-wifi/linux-mt76/files/patches/2006-wifi-mt76-add-debugfs-knob-to-show-packet-error-rate.patch
+++ b/recipes-wifi/linux-mt76/files/patches/2006-wifi-mt76-add-debugfs-knob-to-show-packet-error-rate.patch
@@ -1,7 +1,7 @@
-From 1c795d48bb53932a89eb0b26bca07c5e2116c5a8 Mon Sep 17 00:00:00 2001
+From 94195c0022e50d9a3e28dc184bbaaa4505648611 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Wed, 11 Jan 2023 10:56:27 +0800
-Subject: [PATCH 2006/2012] wifi: mt76: add debugfs knob to show packet error
+Subject: [PATCH 2006/2014] wifi: mt76: add debugfs knob to show packet error
  rate
 
 Get tx count and tx failed from mcu command
@@ -15,7 +15,7 @@
  6 files changed, 194 insertions(+), 1 deletion(-)
 
 diff --git a/mt76.h b/mt76.h
-index 2e7585a8..29e0b19d 100644
+index 2e7585a..29e0b19 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -321,8 +321,10 @@ struct mt76_sta_stats {
@@ -30,10 +30,10 @@
  	u64 rx_bytes;
  	u32 rx_packets;
 diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index f8f4eed6..438e87fe 100644
+index 03d6a2b..b0d3fe8 100644
 --- a/mt76_connac_mcu.h
 +++ b/mt76_connac_mcu.h
-@@ -1200,6 +1200,7 @@ enum {
+@@ -1207,6 +1207,7 @@ enum {
  	MCU_EXT_CMD_EDCA_UPDATE = 0x27,
  	MCU_EXT_CMD_DEV_INFO_UPDATE = 0x2A,
  	MCU_EXT_CMD_THERMAL_CTRL = 0x2c,
@@ -42,10 +42,10 @@
  	MCU_EXT_CMD_SET_DRR_CTRL = 0x36,
  	MCU_EXT_CMD_SET_FEATURE_CTRL = 0x38,
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 484d9869..74d78559 100644
+index a153585..c75db44 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
-@@ -4564,6 +4564,114 @@ int mt7915_mcu_get_tx_rate(struct mt7915_phy *phy, u16 wcidx)
+@@ -4565,6 +4565,114 @@ int mt7915_mcu_get_tx_rate(struct mt7915_phy *phy, u16 wcidx)
  		return mt7915_mcu_get_tx_rate_v2(phy, wcidx);
  }
  
@@ -161,7 +161,7 @@
  				struct cfg80211_he_bss_color *he_bss_color)
  {
 diff --git a/mt7915/mcu.h b/mt7915/mcu.h
-index 52baaa73..ec7ad7db 100644
+index 52baaa7..ec7ad7d 100644
 --- a/mt7915/mcu.h
 +++ b/mt7915/mcu.h
 @@ -854,7 +854,8 @@ mt7915_get_power_bound(struct mt7915_phy *phy, s8 txpower)
@@ -200,7 +200,7 @@
     CAPI_SU,
     CAPI_MU,
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index e41c7ad2..38d39c82 100644
+index e41c7ad..38d39c8 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -753,6 +753,7 @@ int mt7915_mcu_get_rx_rate(struct mt7915_phy *phy, struct ieee80211_vif *vif,
@@ -212,7 +212,7 @@
  int mt7915_mcu_wa_cmd(struct mt7915_dev *dev, int cmd, u32 a1, u32 a2, u32 a3);
  int mt7915_mcu_fw_log_2_host(struct mt7915_dev *dev, u8 type, u8 ctrl);
 diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
-index 1d2699de..e6130460 100644
+index ead8970..a80ddeb 100644
 --- a/mt7915/mtk_debugfs.c
 +++ b/mt7915/mtk_debugfs.c
 @@ -4027,6 +4027,66 @@ mt7915_sr_scene_cond_show(struct seq_file *file, void *data)
@@ -286,7 +286,7 @@
  	debugfs_create_file("thermal_recal", 0200, dir, dev, &fops_thermal_recal);
  	debugfs_create_file("sr_stats", 0400, dir, phy, &mt7915_sr_stats_fops);
  	debugfs_create_file("sr_scene_cond", 0400, dir, phy, &mt7915_sr_scene_cond_fops);
-+	debugfs_create_file("reset_counter", 0200, dir, dev, &fops_reset_counter);
++	debugfs_create_file("reset_counter", 0200, dir, phy, &fops_reset_counter);
 +	debugfs_create_devm_seqfile(dev->mt76.dev, "per", dir, mt7915_per_read);
  
  	return 0;
diff --git a/recipes-wifi/linux-mt76/files/patches/2007-wifi-mt76-mt7915-add-ctxd-support-for-mt7916.patch b/recipes-wifi/linux-mt76/files/patches/2007-wifi-mt76-mt7915-add-ctxd-support-for-mt7916.patch
index 3715058..39b4704 100644
--- a/recipes-wifi/linux-mt76/files/patches/2007-wifi-mt76-mt7915-add-ctxd-support-for-mt7916.patch
+++ b/recipes-wifi/linux-mt76/files/patches/2007-wifi-mt76-mt7915-add-ctxd-support-for-mt7916.patch
@@ -1,7 +1,7 @@
-From 282185fa26949dced4c6bd06a6d6f729170d0348 Mon Sep 17 00:00:00 2001
+From 1509b89e35f93f8e8bf7b1343cee162377b18305 Mon Sep 17 00:00:00 2001
 From: "sujuan.chen" <sujuan.chen@mediatek.com>
 Date: Thu, 6 Apr 2023 17:50:52 +0800
-Subject: [PATCH 2007/2012] wifi: mt76: mt7915: add ctxd support for mt7916
+Subject: [PATCH 2007/2014] wifi: mt76: mt7915: add ctxd support for mt7916
 
 Signed-off-by: sujuan.chen <sujuan.chen@mediatek.com>
 ---
@@ -10,7 +10,7 @@
  2 files changed, 35 insertions(+)
 
 diff --git a/mt7915/dma.c b/mt7915/dma.c
-index 552410aa..4f9f5a38 100644
+index 552410a..4f9f5a3 100644
 --- a/mt7915/dma.c
 +++ b/mt7915/dma.c
 @@ -435,6 +435,26 @@ int mt7915_dma_init(struct mt7915_dev *dev, struct mt7915_phy *phy2)
@@ -41,7 +41,7 @@
  	} else {
  		mt76_clear(dev, MT_WFDMA_HOST_CONFIG, MT_WFDMA_HOST_CONFIG_WED);
 diff --git a/mt7915/regs.h b/mt7915/regs.h
-index ca355d14..d4acefca 100644
+index ca355d1..d4acefc 100644
 --- a/mt7915/regs.h
 +++ b/mt7915/regs.h
 @@ -607,6 +607,7 @@ enum offs_rev {
diff --git a/recipes-wifi/linux-mt76/files/patches/2008-wifi-mt76-connac-wed-add-wed-rx-copy-skb.patch b/recipes-wifi/linux-mt76/files/patches/2008-wifi-mt76-connac-wed-add-wed-rx-copy-skb.patch
index 44d5b83..133e01b 100644
--- a/recipes-wifi/linux-mt76/files/patches/2008-wifi-mt76-connac-wed-add-wed-rx-copy-skb.patch
+++ b/recipes-wifi/linux-mt76/files/patches/2008-wifi-mt76-connac-wed-add-wed-rx-copy-skb.patch
@@ -1,7 +1,7 @@
-From 8db2652823341170081e41f0fc118e92d39cc918 Mon Sep 17 00:00:00 2001
+From 6f0a79be1206d1d8b656e7388d47ecebfa5c786f Mon Sep 17 00:00:00 2001
 From: Evelyn Tsai <evelyn.tsai@mediatek.com>
 Date: Sun, 4 Feb 2024 17:52:44 +0800
-Subject: [PATCH 2008/2012] wifi: mt76: connac: wed: add wed rx copy skb
+Subject: [PATCH 2008/2014] wifi: mt76: connac: wed: add wed rx copy skb
 
 Signed-off-by: Sujuan Chen <sujuan.chen@mediatek.com>
 ---
@@ -10,7 +10,7 @@
  2 files changed, 80 insertions(+), 28 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index 9cd97d24..d17fc88c 100644
+index 9cd97d2..d17fc88 100644
 --- a/dma.c
 +++ b/dma.c
 @@ -225,10 +225,10 @@ void mt76_dma_queue_reset(struct mt76_dev *dev, struct mt76_queue *q)
@@ -138,7 +138,7 @@
  
  static void
 diff --git a/wed.c b/wed.c
-index c03b52f9..70e40575 100644
+index c03b52f..70e4057 100644
 --- a/wed.c
 +++ b/wed.c
 @@ -9,12 +9,9 @@
diff --git a/recipes-wifi/linux-mt76/files/patches/2009-wifi-mt76-mt7915-enable-wa-log-to-uart.patch b/recipes-wifi/linux-mt76/files/patches/2009-wifi-mt76-mt7915-enable-wa-log-to-uart.patch
index c197e0a..23447e3 100644
--- a/recipes-wifi/linux-mt76/files/patches/2009-wifi-mt76-mt7915-enable-wa-log-to-uart.patch
+++ b/recipes-wifi/linux-mt76/files/patches/2009-wifi-mt76-mt7915-enable-wa-log-to-uart.patch
@@ -1,7 +1,7 @@
-From 882d2d7237ee8da3198774b4dd794eec13709e48 Mon Sep 17 00:00:00 2001
+From 0d4fe8030a80350c0b5b66a45467f4f53a49b526 Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Fri, 8 Sep 2023 18:26:21 +0800
-Subject: [PATCH 2009/2012] wifi: mt76: mt7915: enable wa log to uart
+Subject: [PATCH 2009/2014] wifi: mt76: mt7915: enable wa log to uart
 
 Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
 ---
@@ -9,10 +9,10 @@
  1 file changed, 5 insertions(+), 1 deletion(-)
 
 diff --git a/mt7915/debugfs.c b/mt7915/debugfs.c
-index 6dc07ff5..05e9f60f 100644
+index 3ae4aca..76d1951 100644
 --- a/mt7915/debugfs.c
 +++ b/mt7915/debugfs.c
-@@ -950,7 +950,11 @@ mt7915_fw_debug_wa_set(void *data, u64 val)
+@@ -951,7 +951,11 @@ mt7915_fw_debug_wa_set(void *data, u64 val)
  	struct mt7915_dev *dev = data;
  	int ret;
  
diff --git a/recipes-wifi/linux-mt76/files/patches/2010-wifi-mt76-mt7915-add-error-message-when-driver-recei.patch b/recipes-wifi/linux-mt76/files/patches/2010-wifi-mt76-mt7915-add-error-message-when-driver-recei.patch
index cd76ab3..7a3eaaa 100644
--- a/recipes-wifi/linux-mt76/files/patches/2010-wifi-mt76-mt7915-add-error-message-when-driver-recei.patch
+++ b/recipes-wifi/linux-mt76/files/patches/2010-wifi-mt76-mt7915-add-error-message-when-driver-recei.patch
@@ -1,7 +1,7 @@
-From 0bb284eee7e9fc01d534c2222f8c5263f64d57ff Mon Sep 17 00:00:00 2001
+From bc7b628c2a3ec331489bff0a1c940743db7b5f1e Mon Sep 17 00:00:00 2001
 From: Peter Chiu <chui-hao.chiu@mediatek.com>
 Date: Fri, 8 Sep 2023 18:29:32 +0800
-Subject: [PATCH 2010/2012] wifi: mt76: mt7915: add error message when driver
+Subject: [PATCH 2010/2014] wifi: mt76: mt7915: add error message when driver
  receive invalid token id
 
 Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
@@ -10,7 +10,7 @@
  1 file changed, 6 insertions(+)
 
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index 1c8b8732..3f907e61 100644
+index 1c8b873..3f907e6 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -1007,6 +1007,12 @@ mt7915_mac_tx_free(struct mt7915_dev *dev, void *data, int len)
diff --git a/recipes-wifi/linux-mt76/files/patches/2011-wifi-mt76-mt7915-wed-change-wed-token-init-size-to-a.patch b/recipes-wifi/linux-mt76/files/patches/2011-wifi-mt76-mt7915-wed-change-wed-token-init-size-to-a.patch
index ff56aba..6ac0b97 100644
--- a/recipes-wifi/linux-mt76/files/patches/2011-wifi-mt76-mt7915-wed-change-wed-token-init-size-to-a.patch
+++ b/recipes-wifi/linux-mt76/files/patches/2011-wifi-mt76-mt7915-wed-change-wed-token-init-size-to-a.patch
@@ -1,7 +1,7 @@
-From 8cdf0951f353ce7d4c5b67e3d4cab4694334c612 Mon Sep 17 00:00:00 2001
+From 27111a53eab45e86c00c1f5cf8e2d8fd76b65424 Mon Sep 17 00:00:00 2001
 From: "sujuan.chen" <sujuan.chen@mediatek.com>
 Date: Mon, 11 Sep 2023 17:57:32 +0800
-Subject: [PATCH 2011/2012] wifi: mt76: mt7915: wed: change wed token init size
+Subject: [PATCH 2011/2014] wifi: mt76: mt7915: wed: change wed token init size
  to adapt wed version
 
 Signed-off-by: sujuan.chen <sujuan.chen@mediatek.com>
@@ -16,7 +16,7 @@
  7 files changed, 33 insertions(+), 26 deletions(-)
 
 diff --git a/mt76.h b/mt76.h
-index 29e0b19d..b6292e37 100644
+index 29e0b19..b6292e3 100644
 --- a/mt76.h
 +++ b/mt76.h
 @@ -29,6 +29,8 @@
@@ -29,7 +29,7 @@
  #define MT_QFLAG_WED_TYPE	GENMASK(4, 2)
  #define MT_QFLAG_WED		BIT(5)
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index 3f907e61..02f794d4 100644
+index 3f907e6..02f794d 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -940,7 +940,7 @@ mt7915_mac_tx_free(struct mt7915_dev *dev, void *data, int len)
@@ -64,10 +64,10 @@
  					msdu);
  
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 74d78559..6a119ba3 100644
+index c75db44..d9d4fea 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
-@@ -2508,6 +2508,9 @@ mt7915_mcu_init_rx_airtime(struct mt7915_dev *dev)
+@@ -2509,6 +2509,9 @@ mt7915_mcu_init_rx_airtime(struct mt7915_dev *dev)
  static int mt7915_red_set_watermark(struct mt7915_dev *dev)
  {
  #define RED_GLOBAL_TOKEN_WATERMARK 2
@@ -77,7 +77,7 @@
  	struct {
  		__le32 args[3];
  		u8 cmd;
-@@ -2521,8 +2524,8 @@ static int mt7915_red_set_watermark(struct mt7915_dev *dev)
+@@ -2522,8 +2525,8 @@ static int mt7915_red_set_watermark(struct mt7915_dev *dev)
  		.args[0] = cpu_to_le32(MCU_WA_PARAM_RED_SETTING),
  		.cmd = RED_GLOBAL_TOKEN_WATERMARK,
  		.len = cpu_to_le16(sizeof(req) - sizeof(req.args)),
@@ -89,7 +89,7 @@
  
  	return mt76_mcu_send_msg(&dev->mt76, MCU_WA_PARAM_CMD(SET), &req,
 diff --git a/mt7915/mmio.c b/mt7915/mmio.c
-index 3391a949..6309dd91 100644
+index 3391a94..6309dd9 100644
 --- a/mt7915/mmio.c
 +++ b/mt7915/mmio.c
 @@ -695,11 +695,14 @@ int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr,
@@ -119,7 +119,7 @@
  	ret = dma_set_mask(wed->dev, DMA_BIT_MASK(32));
  	if (ret)
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 38d39c82..c5bacf8b 100644
+index 38d39c8..c5bacf8 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -62,7 +62,9 @@
@@ -134,7 +134,7 @@
  #define MT7915_RX_TOKEN_SIZE		4096
  
 diff --git a/tx.c b/tx.c
-index 92afbf5d..df2bb07d 100644
+index 92afbf5..df2bb07 100644
 --- a/tx.c
 +++ b/tx.c
 @@ -828,7 +828,7 @@ int mt76_token_consume(struct mt76_dev *dev, struct mt76_txwi_cache **ptxwi,
@@ -189,7 +189,7 @@
  
  	if (dev->token_count < dev->token_size - MT76_TOKEN_FREE_THR &&
 diff --git a/wed.c b/wed.c
-index 70e40575..5ed681ed 100644
+index 70e4057..5ed681e 100644
 --- a/wed.c
 +++ b/wed.c
 @@ -118,7 +118,7 @@ int mt76_wed_offload_enable(struct mtk_wed_device *wed)
diff --git a/recipes-wifi/linux-mt76/files/patches/2012-wifi-mt76-mt7915-wed-add-per-bss-statistic-info.patch b/recipes-wifi/linux-mt76/files/patches/2012-wifi-mt76-mt7915-wed-add-per-bss-statistic-info.patch
index 3a38056..e8fd2b1 100644
--- a/recipes-wifi/linux-mt76/files/patches/2012-wifi-mt76-mt7915-wed-add-per-bss-statistic-info.patch
+++ b/recipes-wifi/linux-mt76/files/patches/2012-wifi-mt76-mt7915-wed-add-per-bss-statistic-info.patch
@@ -1,7 +1,7 @@
-From ca35a66efa9c8b98343afd5036453a0e33488d87 Mon Sep 17 00:00:00 2001
+From ba04dd5323962bbed89405ceb8d7fd9c6796f09a Mon Sep 17 00:00:00 2001
 From: Evelyn Tsai <evelyn.tsai@mediatek.com>
 Date: Wed, 1 Nov 2023 07:50:08 +0800
-Subject: [PATCH 2012/2012] wifi: mt76: mt7915: wed: add per bss statistic info
+Subject: [PATCH 2012/2014] wifi: mt76: mt7915: wed: add per bss statistic info
 
 ---
  mt7915/init.c        |  1 +
@@ -14,7 +14,7 @@
  7 files changed, 78 insertions(+), 7 deletions(-)
 
 diff --git a/mt7915/init.c b/mt7915/init.c
-index bf6b8631..b463de8d 100644
+index 16c3632..e5327be 100644
 --- a/mt7915/init.c
 +++ b/mt7915/init.c
 @@ -400,6 +400,7 @@ mt7915_init_wiphy(struct mt7915_phy *phy)
@@ -26,7 +26,7 @@
  	if (!is_mt7915(&dev->mt76))
  		wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_STA_TX_PWR);
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index 02f794d4..0c121700 100644
+index 02f794d..0c12170 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -1071,6 +1071,7 @@ static void mt7915_mac_add_txs(struct mt7915_dev *dev, void *data)
@@ -79,10 +79,10 @@
  		spin_lock_bh(&phy->stats_lock);
  	}
 diff --git a/mt7915/main.c b/mt7915/main.c
-index 4bbced00..70771ee5 100644
+index 199ce82..17a380b 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
-@@ -1220,7 +1220,7 @@ static void mt7915_sta_statistics(struct ieee80211_hw *hw,
+@@ -1245,7 +1245,7 @@ static void mt7915_sta_statistics(struct ieee80211_hw *hw,
  		sinfo->tx_bytes = msta->wcid.stats.tx_bytes;
  		sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_BYTES64);
  
@@ -92,10 +92,10 @@
  			sinfo->filled |= BIT_ULL(NL80211_STA_INFO_TX_PACKETS);
  		}
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 6a119ba3..d852f4a1 100644
+index d9d4fea..f0273fe 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
-@@ -4749,7 +4749,8 @@ int mt7915_mcu_twt_agrt_update(struct mt7915_dev *dev,
+@@ -4750,7 +4750,8 @@ int mt7915_mcu_twt_agrt_update(struct mt7915_dev *dev,
  				 &req, sizeof(req), true);
  }
  
@@ -105,7 +105,7 @@
  {
  	struct {
  		__le32 cmd;
-@@ -4805,11 +4806,34 @@ int mt7915_mcu_wed_wa_tx_stats(struct mt7915_dev *dev, u16 wlan_idx)
+@@ -4806,11 +4807,34 @@ int mt7915_mcu_wed_wa_tx_stats(struct mt7915_dev *dev, u16 wlan_idx)
  	rcu_read_lock();
  
  	wcid = rcu_dereference(dev->mt76.wcid[wlan_idx]);
@@ -143,7 +143,7 @@
  out:
  	dev_kfree_skb(skb);
 diff --git a/mt7915/mmio.c b/mt7915/mmio.c
-index 6309dd91..142f3085 100644
+index 6309dd9..142f308 100644
 --- a/mt7915/mmio.c
 +++ b/mt7915/mmio.c
 @@ -592,7 +592,7 @@ static void mt7915_mmio_wed_update_rx_stats(struct mtk_wed_device *wed,
@@ -189,7 +189,7 @@
  }
  
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index c5bacf8b..696b64e7 100644
+index c5bacf8..696b64e 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -754,7 +754,8 @@ int mt7915_mcu_get_rx_rate(struct mt7915_phy *phy, struct ieee80211_vif *vif,
@@ -203,7 +203,7 @@
  int mt7915_mcu_rf_regval(struct mt7915_dev *dev, u32 regidx, u32 *val, bool set);
  int mt7915_mcu_wa_cmd(struct mt7915_dev *dev, int cmd, u32 a1, u32 a2, u32 a3);
 diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
-index e6130460..692ad153 100644
+index a80ddeb..129a4dd 100644
 --- a/mt7915/mtk_debugfs.c
 +++ b/mt7915/mtk_debugfs.c
 @@ -4034,7 +4034,7 @@ static int mt7915_reset_counter(void *data, u64 val)
diff --git a/recipes-wifi/linux-mt76/files/patches/2013-wifi-mt76-add-debugfs-for-tx-drop-counters.patch b/recipes-wifi/linux-mt76/files/patches/2013-wifi-mt76-add-debugfs-for-tx-drop-counters.patch
new file mode 100644
index 0000000..c958da6
--- /dev/null
+++ b/recipes-wifi/linux-mt76/files/patches/2013-wifi-mt76-add-debugfs-for-tx-drop-counters.patch
@@ -0,0 +1,283 @@
+From 2472b924a409ae452065cd5726c5020cfa442698 Mon Sep 17 00:00:00 2001
+From: Peter Chiu <chui-hao.chiu@mediatek.com>
+Date: Mon, 18 Mar 2024 14:16:34 +0800
+Subject: [PATCH 2013/2014] wifi: mt76: add debugfs for tx drop counters
+
+Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
+---
+ dma.c                | 26 +++++++++++++++++++++-----
+ mt76.h               | 22 ++++++++++++++++++++++
+ mt7915/mac.c         | 16 +++++++++++++---
+ mt7915/mtk_debugfs.c | 37 +++++++++++++++++++++++++++++++++++++
+ tx.c                 |  6 ++++++
+ 5 files changed, 99 insertions(+), 8 deletions(-)
+
+diff --git a/dma.c b/dma.c
+index d17fc88..da3e8bc 100644
+--- a/dma.c
++++ b/dma.c
+@@ -612,13 +612,18 @@ mt76_dma_tx_queue_skb(struct mt76_phy *phy, struct mt76_queue *q,
+ 	struct sk_buff *iter;
+ 	dma_addr_t addr;
+ 	u8 *txwi;
++	int reason = -1;
+ 
+-	if (test_bit(MT76_RESET, &phy->state))
++	if (test_bit(MT76_RESET, &phy->state)) {
++		reason = MT_TX_DROP_RESET_STATE;
+ 		goto free_skb;
++	}
+ 
+ 	t = mt76_get_txwi(dev);
+-	if (!t)
++	if (!t) {
++		reason = MT_TX_DROP_GET_TXWI_FAIL;
+ 		goto free_skb;
++	}
+ 
+ 	txwi = mt76_get_txwi_ptr(dev, t);
+ 
+@@ -628,8 +633,10 @@ mt76_dma_tx_queue_skb(struct mt76_phy *phy, struct mt76_queue *q,
+ 
+ 	len = skb_headlen(skb);
+ 	addr = dma_map_single(dev->dma_dev, skb->data, len, DMA_TO_DEVICE);
+-	if (unlikely(dma_mapping_error(dev->dma_dev, addr)))
++	if (unlikely(dma_mapping_error(dev->dma_dev, addr))) {
++		reason = MT_TX_DROP_DMA_FAIL;
+ 		goto free;
++	}
+ 
+ 	tx_info.buf[n].addr = t->dma_addr;
+ 	tx_info.buf[n++].len = dev->drv->txwi_size;
+@@ -637,13 +644,17 @@ mt76_dma_tx_queue_skb(struct mt76_phy *phy, struct mt76_queue *q,
+ 	tx_info.buf[n++].len = len;
+ 
+ 	skb_walk_frags(skb, iter) {
+-		if (n == ARRAY_SIZE(tx_info.buf))
++		if (n == ARRAY_SIZE(tx_info.buf)) {
++			reason = MT_TX_DROP_AGG_EXCEEDED;
+ 			goto unmap;
++		}
+ 
+ 		addr = dma_map_single(dev->dma_dev, iter->data, iter->len,
+ 				      DMA_TO_DEVICE);
+-		if (unlikely(dma_mapping_error(dev->dma_dev, addr)))
++		if (unlikely(dma_mapping_error(dev->dma_dev, addr))) {
++			reason = MT_TX_DROP_DMA_FAIL;
+ 			goto unmap;
++		}
+ 
+ 		tx_info.buf[n].addr = addr;
+ 		tx_info.buf[n++].len = iter->len;
+@@ -652,6 +663,7 @@ mt76_dma_tx_queue_skb(struct mt76_phy *phy, struct mt76_queue *q,
+ 
+ 	if (q->queued + (tx_info.nbuf + 1) / 2 >= q->ndesc - 1) {
+ 		ret = -ENOMEM;
++		reason = MT_TX_DROP_RING_FULL;
+ 		goto unmap;
+ 	}
+ 
+@@ -663,6 +675,7 @@ mt76_dma_tx_queue_skb(struct mt76_phy *phy, struct mt76_queue *q,
+ 	if (ret < 0)
+ 		goto unmap;
+ 
++	phy->tx_dbg_stats.tx_to_hw++;
+ 	return mt76_dma_add_buf(dev, q, tx_info.buf, tx_info.nbuf,
+ 				tx_info.info, tx_info.skb, t, NULL);
+ 
+@@ -690,6 +703,9 @@ free_skb:
+ 	ieee80211_tx_status_ext(hw, &status);
+ 	spin_unlock_bh(&dev->rx_lock);
+ 
++	if (reason >= 0)
++		phy->tx_dbg_stats.tx_drop[reason]++;
++
+ 	return ret;
+ }
+ 
+diff --git a/mt76.h b/mt76.h
+index b6292e3..c1128d1 100644
+--- a/mt76.h
++++ b/mt76.h
+@@ -849,6 +849,27 @@ struct mt76_vif {
+ 	struct ieee80211_chanctx_conf *ctx;
+ };
+ 
++enum {
++	MT_TX_DROP_IN_TESTMODE,
++	MT_TX_DROP_WCID_NOT_INIT,
++	MT_TX_DROP_STOPPED_QUEUE,
++	MT_TX_DROP_RESET_STATE,
++	MT_TX_DROP_GET_TXWI_FAIL,
++	MT_TX_DROP_DMA_FAIL,
++	MT_TX_DROP_AGG_EXCEEDED,
++	MT_TX_DROP_RING_FULL,
++	MT_TX_DROP_INVALID_SKB,
++	MT_TX_DROP_GET_TOKEN_FAIL,
++	MT_TX_DROP_MAX,
++};
++
++struct mt76_tx_debug {
++	u32 tx_from_mac80211;
++	u32 tx_to_hw;
++
++	u32 tx_drop[MT_TX_DROP_MAX];
++};
++
+ struct mt76_phy {
+ 	struct ieee80211_hw *hw;
+ 	struct mt76_dev *dev;
+@@ -906,6 +927,7 @@ struct mt76_phy {
+ 		u8 pin;
+ 	} leds;
+ 	int tokens;
++	struct mt76_tx_debug tx_dbg_stats;
+ };
+ 
+ struct mt76_dev {
+diff --git a/mt7915/mac.c b/mt7915/mac.c
+index 0c12170..1e2ef8c 100644
+--- a/mt7915/mac.c
++++ b/mt7915/mac.c
+@@ -782,9 +782,15 @@ int mt7915_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
+ 	u8 phy_idx = (info->hw_queue & MT_TX_HW_QUEUE_PHY) >> 2;
+ 	u8 *txwi = (u8 *)txwi_ptr;
+ 	int pid;
++	struct mt76_phy *mphy = &mdev->phy;
+ 
+-	if (unlikely(tx_info->skb->len <= ETH_HLEN))
++	if (phy_idx && mdev->phys[MT_BAND1])
++		mphy = mdev->phys[MT_BAND1];
++
++	if (unlikely(tx_info->skb->len <= ETH_HLEN)) {
++		mphy->tx_dbg_stats.tx_drop[MT_TX_DROP_INVALID_SKB]++;
+ 		return -EINVAL;
++	}
+ 
+ 	if (!wcid)
+ 		wcid = &dev->mt76.global_wcid;
+@@ -804,12 +810,16 @@ int mt7915_tx_prepare_skb(struct mt76_dev *mdev, void *txwi_ptr,
+ 	t->skb = tx_info->skb;
+ 
+ 	if (ieee80211_is_action(fc) &&
+-	    mgmt->u.action.category == 0xff)
++	    mgmt->u.action.category == 0xff) {
++		mphy->tx_dbg_stats.tx_drop[MT_TX_DROP_INVALID_SKB]++;
+ 		return -1;
++	}
+ 
+ 	id = mt76_token_consume(mdev, &t, phy_idx);
+-	if (id < 0)
++	if (id < 0) {
++		mphy->tx_dbg_stats.tx_drop[MT_TX_DROP_GET_TOKEN_FAIL]++;
+ 		return id;
++	}
+ 
+ 	t->jiffies = jiffies;
+ 
+diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
+index 129a4dd..568ecff 100644
+--- a/mt7915/mtk_debugfs.c
++++ b/mt7915/mtk_debugfs.c
+@@ -4033,6 +4033,12 @@ static int mt7915_reset_counter(void *data, u64 val)
+ 	struct mt7915_dev *dev = phy->dev;
+ 	struct mt76_wcid *wcid;
+ 
++	if (!dev->wlan_idx) {
++		memset(&phy->mt76->tx_dbg_stats, 0, sizeof(struct mt76_tx_debug));
++
++		return 0;
++	}
++
+ 	/* Clear the firmware counters */
+ 	mt7915_mcu_wed_wa_tx_stats(dev, dev->wlan_idx, NULL);
+ 	mt7915_get_tx_stat(phy, dev->wlan_idx);
+@@ -4087,6 +4093,35 @@ mt7915_per_read(struct seq_file *s, void *data)
+ 	return 0;
+ }
+ 
++static int
++mt7915_tx_drop_show(struct seq_file *s, void *data)
++{
++	struct mt7915_phy *phy = s->private;
++	struct mt76_tx_debug *stats = &phy->mt76->tx_dbg_stats;
++
++	seq_printf(s, "Receive from mac80211: %d\n", stats->tx_from_mac80211);
++	seq_printf(s, "Send to hw: %d\n", stats->tx_to_hw);
++
++#define __pr(t) seq_printf(s, "Drop due to %s: %d\n", \
++			   #t, stats->tx_drop[MT_TX_DROP_##t])
++	__pr(IN_TESTMODE);
++	__pr(WCID_NOT_INIT);
++	__pr(STOPPED_QUEUE);
++	__pr(RESET_STATE);
++	__pr(GET_TXWI_FAIL);
++	__pr(DMA_FAIL);
++	__pr(AGG_EXCEEDED);
++	__pr(RING_FULL);
++	__pr(INVALID_SKB);
++	__pr(GET_TOKEN_FAIL);
++
++#undef __pr
++
++	return 0;
++}
++
++DEFINE_SHOW_ATTRIBUTE(mt7915_tx_drop);
++
+ int mt7915_mtk_init_debugfs(struct mt7915_phy *phy, struct dentry *dir)
+ {
+ 	struct mt7915_dev *dev = phy->dev;
+@@ -4186,7 +4221,9 @@ int mt7915_mtk_init_debugfs(struct mt7915_phy *phy, struct dentry *dir)
+ 	debugfs_create_file("sr_scene_cond", 0400, dir, phy, &mt7915_sr_scene_cond_fops);
+ 	debugfs_create_file("reset_counter", 0200, dir, phy, &fops_reset_counter);
+ 	debugfs_create_devm_seqfile(dev->mt76.dev, "per", dir, mt7915_per_read);
++	debugfs_create_file("tx_drop_stats", 0400, dir, phy, &mt7915_tx_drop_fops);
+ 
+ 	return 0;
+ }
++
+ #endif
+diff --git a/tx.c b/tx.c
+index df2bb07..e4eb74b 100644
+--- a/tx.c
++++ b/tx.c
+@@ -330,8 +330,10 @@ mt76_tx(struct mt76_phy *phy, struct ieee80211_sta *sta,
+ {
+ 	struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
+ 
++	phy->tx_dbg_stats.tx_from_mac80211++;
+ 	if (mt76_testmode_enabled(phy)) {
+ 		ieee80211_free_txskb(phy->hw, skb);
++		phy->tx_dbg_stats.tx_drop[MT_TX_DROP_IN_TESTMODE]++;
+ 		return;
+ 	}
+ 
+@@ -348,6 +350,7 @@ mt76_tx(struct mt76_phy *phy, struct ieee80211_sta *sta,
+ 		dev_warn(phy->dev->dev, "Un-initialized STA %pM wcid %d in mt76_tx\n",
+ 			 sta->addr, wcid->idx);
+ 
++		phy->tx_dbg_stats.tx_drop[MT_TX_DROP_WCID_NOT_INIT]++;
+ 		ieee80211_free_txskb(phy->hw, skb);
+ 		return;
+ 	}
+@@ -379,6 +382,8 @@ mt76_txq_dequeue(struct mt76_phy *phy, struct mt76_txq *mtxq)
+ 	info = IEEE80211_SKB_CB(skb);
+ 	info->hw_queue |= FIELD_PREP(MT_TX_HW_QUEUE_PHY, phy->band_idx);
+ 
++	phy->tx_dbg_stats.tx_from_mac80211++;
++
+ 	return skb;
+ }
+ 
+@@ -616,6 +621,7 @@ mt76_txq_schedule_pending_wcid(struct mt76_phy *phy, struct mt76_wcid *wcid)
+ 		q = phy->q_tx[qid];
+ 		if (mt76_txq_stopped(q)) {
+ 			ret = -1;
++			phy->tx_dbg_stats.tx_drop[MT_TX_DROP_STOPPED_QUEUE]++;
+ 			break;
+ 		}
+ 
+-- 
+2.18.0
+
diff --git a/recipes-wifi/linux-mt76/files/patches/2014-wifi-mt76-add-debugfs-for-rx-drop-counters.patch b/recipes-wifi/linux-mt76/files/patches/2014-wifi-mt76-add-debugfs-for-rx-drop-counters.patch
new file mode 100644
index 0000000..276e889
--- /dev/null
+++ b/recipes-wifi/linux-mt76/files/patches/2014-wifi-mt76-add-debugfs-for-rx-drop-counters.patch
@@ -0,0 +1,423 @@
+From 26fb1344b791a77c86f15a3f2f96aa07d68efea3 Mon Sep 17 00:00:00 2001
+From: Peter Chiu <chui-hao.chiu@mediatek.com>
+Date: Wed, 20 Mar 2024 15:14:20 +0800
+Subject: [PATCH 2014/2014] wifi: mt76: add debugfs for rx drop counters
+
+Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
+---
+ agg-rx.c             |  5 +++++
+ dma.c                | 32 ++++++++++++++++++++++-------
+ dma.h                | 14 +++++++------
+ mac80211.c           |  6 ++++++
+ mt76.h               | 37 +++++++++++++++++++++++++++++++++
+ mt7915/mac.c         | 10 +++++++++
+ mt7915/mtk_debugfs.c | 49 ++++++++++++++++++++++++++++++++++++++++++++
+ 7 files changed, 140 insertions(+), 13 deletions(-)
+
+diff --git a/agg-rx.c b/agg-rx.c
+index 07c386c..97a963a 100644
+--- a/agg-rx.c
++++ b/agg-rx.c
+@@ -151,6 +151,7 @@ void mt76_rx_aggr_reorder(struct sk_buff *skb, struct sk_buff_head *frames)
+ 	struct mt76_wcid *wcid = status->wcid;
+ 	struct ieee80211_sta *sta;
+ 	struct mt76_rx_tid *tid;
++	struct mt76_phy *phy;
+ 	bool sn_less;
+ 	u16 seqno, head, size, idx;
+ 	u8 tidno = status->qos_ctl & IEEE80211_QOS_CTL_TID_MASK;
+@@ -177,6 +178,8 @@ void mt76_rx_aggr_reorder(struct sk_buff *skb, struct sk_buff_head *frames)
+ 	if (!tid)
+ 		return;
+ 
++	phy = mt76_dev_phy(tid->dev, wcid->phy_idx);
++
+ 	status->flag |= RX_FLAG_DUP_VALIDATED;
+ 	spin_lock_bh(&tid->lock);
+ 
+@@ -198,6 +201,7 @@ void mt76_rx_aggr_reorder(struct sk_buff *skb, struct sk_buff_head *frames)
+ 	if (sn_less) {
+ 		__skb_unlink(skb, frames);
+ 		dev_kfree_skb(skb);
++		phy->rx_dbg_stats.rx_drop[MT_RX_DROP_AGG_SN_LESS]++;
+ 		goto out;
+ 	}
+ 
+@@ -224,6 +228,7 @@ void mt76_rx_aggr_reorder(struct sk_buff *skb, struct sk_buff_head *frames)
+ 	/* Discard if the current slot is already in use */
+ 	if (tid->reorder_buf[idx]) {
+ 		dev_kfree_skb(skb);
++		phy->rx_dbg_stats.rx_drop[MT_RX_DROP_AGG_DUP]++;
+ 		goto out;
+ 	}
+ 
+diff --git a/dma.c b/dma.c
+index da3e8bc..782463f 100644
+--- a/dma.c
++++ b/dma.c
+@@ -251,13 +251,16 @@ mt76_dma_add_rx_buf(struct mt76_dev *dev, struct mt76_queue *q,
+ 	if (mt76_queue_is_wed_rx(q)) {
+ 		if (!rxwi) {
+ 			rxwi = mt76_get_rxwi(dev);
+-			if (!rxwi)
++			if (!rxwi) {
++				q->rx_drop[MT_RX_DROP_DMAD_GET_RXWI_FAIL]++;
+ 				return -ENOMEM;
++			}
+ 		}
+ 
+ 		rx_token = mt76_rx_token_consume(dev, data, rxwi, buf->addr);
+ 		if (rx_token < 0) {
+ 			mt76_put_rxwi(dev, rxwi);
++			q->rx_drop[MT_RX_DROP_DMAD_GET_TOKEN_FAIL]++;
+ 			return -ENOMEM;
+ 		}
+ 
+@@ -429,6 +432,7 @@ mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx,
+ 	struct mt76_desc *desc = &q->desc[idx];
+ 	u32 ctrl, desc_info, buf1;
+ 	void *buf = e->buf;
++	int reason;
+ 
+ 	if (mt76_queue_is_wed_rro_ind(q))
+ 		goto done;
+@@ -444,7 +448,9 @@ mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx,
+ 		*info = desc_info;
+ 
+ 	buf1 = le32_to_cpu(desc->buf1);
+-	mt76_dma_should_drop_buf(drop, ctrl, buf1, desc_info);
++	reason = mt76_dma_should_drop_buf(drop, ctrl, buf1, desc_info);
++	if (drop && *drop && reason >= 0)
++		q->rx_drop[reason]++;
+ 
+ 	if (mt76_queue_is_wed_rx(q)) {
+ 		u32 id, find = 0;
+@@ -468,13 +474,17 @@ mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx,
+ 			}
+ 
+ 			spin_unlock_bh(&dev->rx_token_lock);
+-			if (!find)
++			if (!find) {
++				q->rx_drop[MT_RX_DROP_DMAD_ADDR_NOT_FOUND]++;
+ 				return NULL;
++			}
+ 		}
+ 
+ 		r = mt76_rx_token_release(dev, token);
+-		if (!r)
++		if (!r) {
++			q->rx_drop[MT_RX_DROP_DMAD_TOKEN_NOT_FOUND]++;
+ 			return NULL;
++		}
+ 
+ 		dma_unmap_single(dev->dma_dev, r->dma_addr,
+ 				 SKB_WITH_OVERHEAD(q->buf_size),
+@@ -490,8 +500,10 @@ mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx,
+ 			struct mt76_queue_buf qbuf;
+ 
+ 			buf = page_frag_alloc(&q->rx_page, q->buf_size, GFP_ATOMIC | GFP_DMA32);
+-			if (!buf)
++			if (!buf) {
++				q->rx_drop[MT_RX_DROP_DMAD_NOMEM]++;
+ 				return NULL;
++			}
+ 
+ 			memcpy(buf, r->ptr, SKB_WITH_OVERHEAD(q->buf_size));
+ 
+@@ -501,6 +513,7 @@ mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx,
+ 			if (unlikely(dma_mapping_error(dev->dma_dev, r->dma_addr))) {
+ 				skb_free_frag(r->ptr);
+ 				mt76_put_rxwi(dev, r);
++				q->rx_drop[MT_RX_DROP_DMAD_DMA_MAPPING_FAIL]++;
+ 				return NULL;
+ 			}
+ 
+@@ -518,8 +531,11 @@ mt76_dma_get_buf(struct mt76_dev *dev, struct mt76_queue *q, int idx,
+ 			}
+ 		}
+ 
+-		if (drop)
++		if (drop) {
+ 			*drop |= !!(buf1 & MT_DMA_CTL_WO_DROP);
++			if (buf1 & MT_DMA_CTL_WO_DROP)
++				q->rx_drop[MT_RX_DROP_DMAD_WO_FRAG]++;
++		}
+ 	} else {
+ 		dma_unmap_single(dev->dma_dev, e->dma_addr[0],
+ 				 SKB_WITH_OVERHEAD(q->buf_size),
+@@ -968,8 +984,10 @@ mt76_dma_rx_process(struct mt76_dev *dev, struct mt76_queue *q, int budget)
+ 			goto free_frag;
+ 
+ 		skb = build_skb(data, q->buf_size);
+-		if (!skb)
++		if (!skb) {
++			q->rx_drop[MT_RX_DROP_BUILD_SKB_FAIL]++;
+ 			goto free_frag;
++		}
+ 
+ 		skb_reserve(skb, q->buf_offset);
+ 
+diff --git a/dma.h b/dma.h
+index 619dc0f..6b2ee7e 100644
+--- a/dma.h
++++ b/dma.h
+@@ -92,27 +92,29 @@ mt76_dma_reset_tx_queue(struct mt76_dev *dev, struct mt76_queue *q)
+ 		mt76_wed_dma_setup(dev, q, true);
+ }
+ 
+-static inline void
++static inline int
+ mt76_dma_should_drop_buf(bool *drop, u32 ctrl, u32 buf1, u32 info)
+ {
+ 	if (!drop)
+-		return;
++		return -1;
+ 
+ 	*drop = !!(ctrl & (MT_DMA_CTL_TO_HOST_A | MT_DMA_CTL_DROP));
+ 	if (!(ctrl & MT_DMA_CTL_VER_MASK))
+-		return;
++		return MT_RX_DROP_DMAD_WO_DROP;
+ 
+ 	switch (FIELD_GET(MT_DMA_WED_IND_REASON, buf1)) {
+ 	case MT_DMA_WED_IND_REASON_REPEAT:
+ 		*drop = true;
+-		break;
++		return MT_RX_DROP_DMAD_RRO_REPEAT;
+ 	case MT_DMA_WED_IND_REASON_OLDPKT:
+ 		*drop = !(info & MT_DMA_INFO_DMA_FRAG);
+-		break;
++		return MT_RX_DROP_DMAD_RRO_OLDPKT;
+ 	default:
+ 		*drop = !!(ctrl & MT_DMA_CTL_PN_CHK_FAIL);
+-		break;
++		return MT_RX_DROP_DMAD_RRO_PN_CHK_FAIL;
+ 	}
++
++	return -1;
+ }
+ 
+ #endif
+diff --git a/mac80211.c b/mac80211.c
+index 225b290..0360172 100644
+--- a/mac80211.c
++++ b/mac80211.c
+@@ -774,6 +774,7 @@ static void mt76_rx_release_amsdu(struct mt76_phy *phy, enum mt76_rxq_id q)
+ 		}
+ 
+ 		if (ether_addr_equal(skb->data + offset, rfc1042_header)) {
++			phy->rx_dbg_stats.rx_drop[MT_RX_DROP_RFC_PKT]++;
+ 			dev_kfree_skb(skb);
+ 			return;
+ 		}
+@@ -811,6 +812,7 @@ void mt76_rx(struct mt76_dev *dev, enum mt76_rxq_id q, struct sk_buff *skb)
+ 
+ 	if (!test_bit(MT76_STATE_RUNNING, &phy->state)) {
+ 		dev_kfree_skb(skb);
++		phy->rx_dbg_stats.rx_drop[MT_RX_DROP_STATE_ERR]++;
+ 		return;
+ 	}
+ 
+@@ -1048,6 +1050,7 @@ mt76_rx_convert(struct mt76_dev *dev, struct sk_buff *skb,
+ {
+ 	struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb);
+ 	struct ieee80211_hdr *hdr = mt76_skb_get_hdr(skb);
++	struct mt76_phy *phy;
+ 	struct mt76_rx_status mstat;
+ 
+ 	mstat = *((struct mt76_rx_status *)skb->cb);
+@@ -1090,6 +1093,9 @@ mt76_rx_convert(struct mt76_dev *dev, struct sk_buff *skb,
+ 
+ 	*sta = wcid_to_sta(mstat.wcid);
+ 	*hw = mt76_phy_hw(dev, mstat.phy_idx);
++
++	phy = mt76_dev_phy(dev, mstat.phy_idx);
++	phy->rx_dbg_stats.rx_to_mac80211++;
+ }
+ 
+ static void
+diff --git a/mt76.h b/mt76.h
+index c1128d1..9be17b7 100644
+--- a/mt76.h
++++ b/mt76.h
+@@ -175,6 +175,33 @@ enum mt76_dfs_state {
+ 	MT_DFS_STATE_ACTIVE,
+ };
+ 
++enum {
++	/* Per dev counters*/
++	MT_RX_DROP_DMAD_RRO_REPEAT,
++	MT_RX_DROP_DMAD_RRO_OLDPKT,
++	MT_RX_DROP_DMAD_RRO_PN_CHK_FAIL,
++	MT_RX_DROP_DMAD_WO_FRAG,
++	MT_RX_DROP_DMAD_WO_DROP,
++	MT_RX_DROP_DMAD_ADDR_NOT_FOUND,
++	MT_RX_DROP_DMAD_TOKEN_NOT_FOUND,
++	MT_RX_DROP_DMAD_GET_TOKEN_FAIL,
++	MT_RX_DROP_DMAD_GET_RXWI_FAIL,
++	MT_RX_DROP_DMAD_NOMEM,
++	MT_RX_DROP_DMAD_DMA_MAPPING_FAIL,
++	MT_RX_DROP_BUILD_SKB_FAIL,
++
++	MT_RX_DROP_PER_Q_MAX,
++
++	/* Per phy counters */
++	MT_RX_DROP_RXD_ERR = 0,
++	MT_RX_DROP_STATE_ERR,
++	MT_RX_DROP_RFC_PKT,
++	MT_RX_DROP_AGG_SN_LESS,
++	MT_RX_DROP_AGG_DUP,
++
++	MT_RX_DROP_PER_PHY_MAX,
++};
++
+ struct mt76_queue_buf {
+ 	dma_addr_t addr;
+ 	u16 len;
+@@ -243,6 +270,8 @@ struct mt76_queue {
+ 	dma_addr_t desc_dma;
+ 	struct sk_buff *rx_head;
+ 	struct page_frag_cache rx_page;
++
++	u32 rx_drop[MT_RX_DROP_PER_Q_MAX];
+ };
+ 
+ struct mt76_mcu_ops {
+@@ -870,6 +899,13 @@ struct mt76_tx_debug {
+ 	u32 tx_drop[MT_TX_DROP_MAX];
+ };
+ 
++struct mt76_rx_debug {
++	u32 rx_from_hw;
++	u32 rx_to_mac80211;
++
++	u32 rx_drop[MT_RX_DROP_PER_PHY_MAX];
++};
++
+ struct mt76_phy {
+ 	struct ieee80211_hw *hw;
+ 	struct mt76_dev *dev;
+@@ -928,6 +964,7 @@ struct mt76_phy {
+ 	} leds;
+ 	int tokens;
+ 	struct mt76_tx_debug tx_dbg_stats;
++	struct mt76_rx_debug rx_dbg_stats;
+ };
+ 
+ struct mt76_dev {
+diff --git a/mt7915/mac.c b/mt7915/mac.c
+index 1e2ef8c..195b5f6 100644
+--- a/mt7915/mac.c
++++ b/mt7915/mac.c
+@@ -1175,9 +1175,11 @@ void mt7915_queue_rx_skb(struct mt76_dev *mdev, enum mt76_rxq_id q,
+ 			 struct sk_buff *skb, u32 *info)
+ {
+ 	struct mt7915_dev *dev = container_of(mdev, struct mt7915_dev, mt76);
++	struct mt76_phy *phy;
+ 	__le32 *rxd = (__le32 *)skb->data;
+ 	__le32 *end = (__le32 *)&skb->data[skb->len];
+ 	enum rx_pkt_type type;
++	u8 band_idx;
+ 
+ 	type = le32_get_bits(rxd[0], MT_RXD0_PKT_TYPE);
+ 
+@@ -1206,12 +1208,20 @@ void mt7915_queue_rx_skb(struct mt76_dev *mdev, enum mt76_rxq_id q,
+ 		dev_kfree_skb(skb);
+ 		break;
+ 	case PKT_TYPE_NORMAL:
++		band_idx = le32_get_bits(rxd[1], MT_RXD1_NORMAL_BAND_IDX);
++		phy = mt76_dev_phy(mdev, band_idx);
++		phy->rx_dbg_stats.rx_from_hw++;
++
+ 		if (!mt7915_mac_fill_rx(dev, skb, q, info)) {
+ 			mt76_rx(&dev->mt76, q, skb);
+ 			return;
+ 		}
+ 		fallthrough;
+ 	default:
++		band_idx = le32_get_bits(rxd[1], MT_RXD1_NORMAL_BAND_IDX);
++		phy = mt76_dev_phy(mdev, band_idx);
++		phy->rx_dbg_stats.rx_drop[MT_RX_DROP_RXD_ERR]++;
++
+ 		dev_kfree_skb(skb);
+ 		break;
+ 	}
+diff --git a/mt7915/mtk_debugfs.c b/mt7915/mtk_debugfs.c
+index 568ecff..c9b58a2 100644
+--- a/mt7915/mtk_debugfs.c
++++ b/mt7915/mtk_debugfs.c
+@@ -4032,9 +4032,12 @@ static int mt7915_reset_counter(void *data, u64 val)
+ 	struct mt7915_phy *phy = data;
+ 	struct mt7915_dev *dev = phy->dev;
+ 	struct mt76_wcid *wcid;
++	u8 qid = phy->mt76->band_idx ? MT_RXQ_BAND1 : MT_RXQ_MAIN;
+ 
+ 	if (!dev->wlan_idx) {
+ 		memset(&phy->mt76->tx_dbg_stats, 0, sizeof(struct mt76_tx_debug));
++		memset(&phy->mt76->rx_dbg_stats, 0, sizeof(struct mt76_rx_debug));
++		memset(&dev->mt76.q_rx[qid].rx_drop, 0, sizeof(u32) * MT_RX_DROP_PER_Q_MAX);
+ 
+ 		return 0;
+ 	}
+@@ -4122,6 +4125,51 @@ mt7915_tx_drop_show(struct seq_file *s, void *data)
+ 
+ DEFINE_SHOW_ATTRIBUTE(mt7915_tx_drop);
+ 
++static int
++mt7915_rx_drop_show(struct seq_file *s, void *data)
++{
++	struct mt7915_phy *phy = s->private;
++	struct mt7915_dev *dev = phy->dev;
++	struct mt76_rx_debug *stats = &phy->mt76->rx_dbg_stats;
++	struct mt76_queue *q;
++	u8 band_idx = phy->mt76->band_idx;
++	u8 qid = band_idx ? MT_RXQ_BAND1 : MT_RXQ_MAIN;
++
++	q = &dev->mt76.q_rx[qid];
++
++#define __pr(src, t) seq_printf(s, "Drop due to %s: %d\n", \
++				#t, src->rx_drop[MT_RX_DROP_##t])
++	seq_printf(s, "RXQ%d drop:\n", MT_RXQ_ID(qid));
++	__pr(q, DMAD_RRO_REPEAT);
++	__pr(q, DMAD_RRO_OLDPKT);
++	__pr(q, DMAD_RRO_PN_CHK_FAIL);
++	__pr(q, DMAD_WO_FRAG);
++	__pr(q, DMAD_WO_DROP);
++	__pr(q, DMAD_ADDR_NOT_FOUND);
++	__pr(q, DMAD_TOKEN_NOT_FOUND);
++	__pr(q, DMAD_GET_TOKEN_FAIL);
++	__pr(q, DMAD_GET_RXWI_FAIL);
++	__pr(q, DMAD_NOMEM);
++	__pr(q, DMAD_DMA_MAPPING_FAIL);
++	__pr(q, BUILD_SKB_FAIL);
++
++	seq_printf(s, "\nPhy%d receive from hw: %d\n", band_idx, stats->rx_from_hw);
++	seq_printf(s, "Phy%d send to mac80211: %d\n", band_idx, stats->rx_to_mac80211);
++
++	seq_printf(s, "\nPhy%d drop:\n", band_idx);
++	__pr(stats, RXD_ERR);
++	__pr(stats, STATE_ERR);
++	__pr(stats, RFC_PKT);
++	__pr(stats, AGG_SN_LESS);
++	__pr(stats, AGG_DUP);
++
++#undef __pr
++
++	return 0;
++}
++
++DEFINE_SHOW_ATTRIBUTE(mt7915_rx_drop);
++
+ int mt7915_mtk_init_debugfs(struct mt7915_phy *phy, struct dentry *dir)
+ {
+ 	struct mt7915_dev *dev = phy->dev;
+@@ -4222,6 +4270,7 @@ int mt7915_mtk_init_debugfs(struct mt7915_phy *phy, struct dentry *dir)
+ 	debugfs_create_file("reset_counter", 0200, dir, phy, &fops_reset_counter);
+ 	debugfs_create_devm_seqfile(dev->mt76.dev, "per", dir, mt7915_per_read);
+ 	debugfs_create_file("tx_drop_stats", 0400, dir, phy, &mt7915_tx_drop_fops);
++	debugfs_create_file("rx_drop_stats", 0400, dir, phy, &mt7915_rx_drop_fops);
+ 
+ 	return 0;
+ }
+-- 
+2.18.0
+
diff --git a/recipes-wifi/linux-mt76/files/patches/2999-wifi-mt76-mt7915-support-backaward-compatiable.patch b/recipes-wifi/linux-mt76/files/patches/2999-wifi-mt76-mt7915-support-backaward-compatiable.patch
index 7b292e3..0f02b1c 100644
--- a/recipes-wifi/linux-mt76/files/patches/2999-wifi-mt76-mt7915-support-backaward-compatiable.patch
+++ b/recipes-wifi/linux-mt76/files/patches/2999-wifi-mt76-mt7915-support-backaward-compatiable.patch
@@ -1,4 +1,4 @@
-From d84a40f891ab0dd733ab8d4652c81900809ced85 Mon Sep 17 00:00:00 2001
+From e07f14144b386dcaece92fac81054e90e0e4d2a7 Mon Sep 17 00:00:00 2001
 From: Rex Lu <rex.lu@mediatek.com>
 Date: Mon, 11 Dec 2023 19:21:16 +0800
 Subject: [PATCH] wifi: mt76: mt7915: support backaward compatiable
@@ -9,7 +9,7 @@
  2 files changed, 3 insertions(+), 3 deletions(-)
 
 diff --git a/mt7915/mmio.c b/mt7915/mmio.c
-index 142f3085..11db3eda 100644
+index 142f308..11db3ed 100644
 --- a/mt7915/mmio.c
 +++ b/mt7915/mmio.c
 @@ -697,7 +697,7 @@ int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr,
@@ -31,7 +31,7 @@
  
  	wed->wlan.nbuf = is_mt7915(&dev->mt76) ?
 diff --git a/wed.c b/wed.c
-index 5ed681ed..652f59e1 100644
+index 5ed681e..652f59e 100644
 --- a/wed.c
 +++ b/wed.c
 @@ -175,7 +175,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/9999-mt76-revert-for-backports-5.15-wireless-stack.patch b/recipes-wifi/linux-mt76/files/patches/9999-mt76-revert-for-backports-5.15-wireless-stack.patch
index 2fbab67..6b5c0ff 100644
--- a/recipes-wifi/linux-mt76/files/patches/9999-mt76-revert-for-backports-5.15-wireless-stack.patch
+++ b/recipes-wifi/linux-mt76/files/patches/9999-mt76-revert-for-backports-5.15-wireless-stack.patch
@@ -1,4 +1,4 @@
-From b0c3c110928125de65c3386c3d7a600727da6aeb Mon Sep 17 00:00:00 2001
+From 1d5c74a1bf5717880ae08ba8232756a86bd28b5e Mon Sep 17 00:00:00 2001
 From: Evelyn Tsai <evelyn.tsai@mediatek.com>
 Date: Wed, 5 Apr 2023 08:29:19 +0800
 Subject: [PATCH] mt76: revert for backports-5.15 wireless stack
@@ -11,7 +11,7 @@
  mt7615/main.c     |   6 +-
  mt7615/mcu.c      |   8 +-
  mt76_connac_mac.c |   2 +-
- mt76_connac_mcu.c | 117 ++++++++++------------
+ mt76_connac_mcu.c | 119 ++++++++++------------
  mt76x02_mac.c     |   6 +-
  mt7915/debugfs.c  |   4 +-
  mt7915/dma.c      |   4 +-
@@ -21,13 +21,13 @@
  mt7915/testmode.c |   8 +-
  tx.c              |  22 ++---
  wed.c             |   1 +
- 16 files changed, 259 insertions(+), 225 deletions(-)
+ 16 files changed, 260 insertions(+), 226 deletions(-)
 
 diff --git a/dma.c b/dma.c
-index d17fc88c..f838d835 100644
+index 782463f..39fafce 100644
 --- a/dma.c
 +++ b/dma.c
-@@ -1018,7 +1018,7 @@ mt76_dma_init(struct mt76_dev *dev,
+@@ -1052,7 +1052,7 @@ mt76_dma_init(struct mt76_dev *dev,
  	init_completion(&dev->mmio.wed_reset_complete);
  
  	mt76_for_each_q_rx(dev, i) {
@@ -37,10 +37,10 @@
  		napi_enable(&dev->napi[i]);
  	}
 diff --git a/mac80211.c b/mac80211.c
-index 225b290c..54e0c8a4 100644
+index 0360172..2d0e9a8 100644
 --- a/mac80211.c
 +++ b/mac80211.c
-@@ -1058,14 +1058,9 @@ mt76_rx_convert(struct mt76_dev *dev, struct sk_buff *skb,
+@@ -1061,14 +1061,9 @@ mt76_rx_convert(struct mt76_dev *dev, struct sk_buff *skb,
  	status->enc_flags = mstat.enc_flags;
  	status->encoding = mstat.encoding;
  	status->bw = mstat.bw;
@@ -58,7 +58,7 @@
  	status->rate_idx = mstat.rate_idx;
  	status->nss = mstat.nss;
  	status->band = mstat.band;
-@@ -1585,7 +1580,7 @@ EXPORT_SYMBOL_GPL(mt76_get_sar_power);
+@@ -1591,7 +1586,7 @@ EXPORT_SYMBOL_GPL(mt76_get_sar_power);
  static void
  __mt76_csa_finish(void *priv, u8 *mac, struct ieee80211_vif *vif)
  {
@@ -67,7 +67,7 @@
  		ieee80211_csa_finish(vif);
  }
  
-@@ -1607,7 +1602,7 @@ __mt76_csa_check(void *priv, u8 *mac, struct ieee80211_vif *vif)
+@@ -1613,7 +1608,7 @@ __mt76_csa_check(void *priv, u8 *mac, struct ieee80211_vif *vif)
  {
  	struct mt76_dev *dev = priv;
  
@@ -77,7 +77,7 @@
  
  	dev->csa_complete |= ieee80211_beacon_cntdwn_is_complete(vif);
 diff --git a/mt7615/dma.c b/mt7615/dma.c
-index e7135b2f..6767c39d 100644
+index e7135b2..6767c39 100644
 --- a/mt7615/dma.c
 +++ b/mt7615/dma.c
 @@ -282,8 +282,8 @@ int mt7615_dma_init(struct mt7615_dev *dev)
@@ -92,7 +92,7 @@
  
  	mt76_poll(dev, MT_WPDMA_GLO_CFG,
 diff --git a/mt7615/main.c b/mt7615/main.c
-index dab16b5f..d32a7520 100644
+index dab16b5..d32a752 100644
 --- a/mt7615/main.c
 +++ b/mt7615/main.c
 @@ -473,7 +473,7 @@ static int mt7615_config(struct ieee80211_hw *hw, u32 changed)
@@ -123,7 +123,7 @@
  	if (changed & BSS_CHANGED_MU_GROUPS)
  		 mt7615_update_mu_group(hw, vif, info);
 diff --git a/mt7615/mcu.c b/mt7615/mcu.c
-index c9444c6d..466f38e9 100644
+index c9444c6..466f38e 100644
 --- a/mt7615/mcu.c
 +++ b/mt7615/mcu.c
 @@ -353,7 +353,7 @@ out:
@@ -163,10 +163,10 @@
  		.bcn_interval = cpu_to_le16(vif->bss_conf.beacon_int),
  	};
 diff --git a/mt76_connac_mac.c b/mt76_connac_mac.c
-index d41f0040..abb95b38 100644
+index 0510296..edeb618 100644
 --- a/mt76_connac_mac.c
 +++ b/mt76_connac_mac.c
-@@ -1114,7 +1114,7 @@ void mt76_connac2_tx_check_aggr(struct ieee80211_sta *sta, __le32 *txwi)
+@@ -1124,7 +1124,7 @@ void mt76_connac2_tx_check_aggr(struct ieee80211_sta *sta, __le32 *txwi)
  	u32 val;
  
  	if (!sta ||
@@ -176,7 +176,7 @@
  
  	tid = le32_get_bits(txwi[1], MT_TXD1_TID);
 diff --git a/mt76_connac_mcu.c b/mt76_connac_mcu.c
-index 774f5754..98e5ecd9 100644
+index 15e61c9..dd23643 100644
 --- a/mt76_connac_mcu.c
 +++ b/mt76_connac_mcu.c
 @@ -199,7 +199,7 @@ int mt76_connac_mcu_set_vif_ps(struct mt76_dev *dev, struct ieee80211_vif *vif)
@@ -188,7 +188,16 @@
  	};
  
  	if (vif->type != NL80211_IFTYPE_STATION)
-@@ -414,7 +414,7 @@ void mt76_connac_mcu_sta_basic_tlv(struct mt76_dev *dev, struct sk_buff *skb,
+@@ -397,7 +397,7 @@ void mt76_connac_mcu_sta_basic_tlv(struct mt76_dev *dev, struct sk_buff *skb,
+ 		if (vif->type == NL80211_IFTYPE_STATION &&
+ 		    !is_zero_ether_addr(vif->bss_conf.bssid)) {
+ 			memcpy(basic->peer_addr, vif->bss_conf.bssid, ETH_ALEN);
+-			basic->aid = cpu_to_le16(vif->cfg.aid);
++			basic->aid = cpu_to_le16(vif->bss_conf.aid);
+ 		} else {
+ 			eth_broadcast_addr(basic->peer_addr);
+ 		}
+@@ -421,7 +421,7 @@ void mt76_connac_mcu_sta_basic_tlv(struct mt76_dev *dev, struct sk_buff *skb,
  		else
  			conn_type = CONNECTION_INFRA_AP;
  		basic->conn_type = cpu_to_le32(conn_type);
@@ -197,7 +206,7 @@
  		break;
  	case NL80211_IFTYPE_ADHOC:
  		basic->conn_type = cpu_to_le32(CONNECTION_IBSS_ADHOC);
-@@ -558,7 +558,7 @@ void mt76_connac_mcu_wtbl_generic_tlv(struct mt76_dev *dev,
+@@ -565,7 +565,7 @@ void mt76_connac_mcu_wtbl_generic_tlv(struct mt76_dev *dev,
  
  	if (sta) {
  		if (vif->type == NL80211_IFTYPE_STATION)
@@ -206,7 +215,7 @@
  		else
  			generic->partial_aid = cpu_to_le16(sta->aid);
  		memcpy(generic->peer_addr, sta->addr, ETH_ALEN);
-@@ -607,14 +607,14 @@ mt76_connac_mcu_sta_amsdu_tlv(struct sk_buff *skb, struct ieee80211_sta *sta,
+@@ -614,14 +614,14 @@ mt76_connac_mcu_sta_amsdu_tlv(struct sk_buff *skb, struct ieee80211_sta *sta,
  	    vif->type != NL80211_IFTYPE_STATION)
  		return;
  
@@ -223,7 +232,7 @@
  			       IEEE80211_MAX_MPDU_LEN_VHT_7991;
  
  	wcid->amsdu = true;
-@@ -625,7 +625,7 @@ mt76_connac_mcu_sta_amsdu_tlv(struct sk_buff *skb, struct ieee80211_sta *sta,
+@@ -632,7 +632,7 @@ mt76_connac_mcu_sta_amsdu_tlv(struct sk_buff *skb, struct ieee80211_sta *sta,
  static void
  mt76_connac_mcu_sta_he_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
  {
@@ -232,7 +241,7 @@
  	struct ieee80211_he_cap_elem *elem = &he_cap->he_cap_elem;
  	struct sta_rec_he *he;
  	struct tlv *tlv;
-@@ -713,7 +713,7 @@ mt76_connac_mcu_sta_he_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
+@@ -720,7 +720,7 @@ mt76_connac_mcu_sta_he_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
  
  	he->he_cap = cpu_to_le32(cap);
  
@@ -241,7 +250,7 @@
  	case IEEE80211_STA_RX_BW_160:
  		if (elem->phy_cap_info[0] &
  		    IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G)
-@@ -758,7 +758,7 @@ mt76_connac_mcu_sta_he_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
+@@ -765,7 +765,7 @@ mt76_connac_mcu_sta_he_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
  void
  mt76_connac_mcu_sta_he_tlv_v2(struct sk_buff *skb, struct ieee80211_sta *sta)
  {
@@ -250,7 +259,7 @@
  	struct ieee80211_he_cap_elem *elem = &he_cap->he_cap_elem;
  	struct sta_rec_he_v2 *he;
  	struct tlv *tlv;
-@@ -769,7 +769,7 @@ mt76_connac_mcu_sta_he_tlv_v2(struct sk_buff *skb, struct ieee80211_sta *sta)
+@@ -776,7 +776,7 @@ mt76_connac_mcu_sta_he_tlv_v2(struct sk_buff *skb, struct ieee80211_sta *sta)
  	memcpy(he->he_phy_cap, elem->phy_cap_info, sizeof(he->he_phy_cap));
  	memcpy(he->he_mac_cap, elem->mac_cap_info, sizeof(he->he_mac_cap));
  
@@ -259,7 +268,7 @@
  	case IEEE80211_STA_RX_BW_160:
  		if (elem->phy_cap_info[0] &
  		    IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G)
-@@ -785,7 +785,7 @@ mt76_connac_mcu_sta_he_tlv_v2(struct sk_buff *skb, struct ieee80211_sta *sta)
+@@ -792,7 +792,7 @@ mt76_connac_mcu_sta_he_tlv_v2(struct sk_buff *skb, struct ieee80211_sta *sta)
  		break;
  	}
  
@@ -268,7 +277,7 @@
  }
  EXPORT_SYMBOL_GPL(mt76_connac_mcu_sta_he_tlv_v2);
  
-@@ -796,14 +796,12 @@ mt76_connac_get_phy_mode_v2(struct mt76_phy *mphy, struct ieee80211_vif *vif,
+@@ -803,14 +803,12 @@ mt76_connac_get_phy_mode_v2(struct mt76_phy *mphy, struct ieee80211_vif *vif,
  	struct ieee80211_sta_ht_cap *ht_cap;
  	struct ieee80211_sta_vht_cap *vht_cap;
  	const struct ieee80211_sta_he_cap *he_cap;
@@ -286,7 +295,7 @@
  	} else {
  		struct ieee80211_supported_band *sband;
  
-@@ -811,7 +809,6 @@ mt76_connac_get_phy_mode_v2(struct mt76_phy *mphy, struct ieee80211_vif *vif,
+@@ -818,7 +816,6 @@ mt76_connac_get_phy_mode_v2(struct mt76_phy *mphy, struct ieee80211_vif *vif,
  		ht_cap = &sband->ht_cap;
  		vht_cap = &sband->vht_cap;
  		he_cap = ieee80211_get_he_iftype_cap(sband, vif->type);
@@ -294,7 +303,7 @@
  	}
  
  	if (band == NL80211_BAND_2GHZ) {
-@@ -822,9 +819,6 @@ mt76_connac_get_phy_mode_v2(struct mt76_phy *mphy, struct ieee80211_vif *vif,
+@@ -829,9 +826,6 @@ mt76_connac_get_phy_mode_v2(struct mt76_phy *mphy, struct ieee80211_vif *vif,
  
  		if (he_cap && he_cap->has_he)
  			mode |= PHY_TYPE_BIT_HE;
@@ -304,7 +313,7 @@
  	} else if (band == NL80211_BAND_5GHZ || band == NL80211_BAND_6GHZ) {
  		mode |= PHY_TYPE_BIT_OFDM;
  
-@@ -836,9 +830,6 @@ mt76_connac_get_phy_mode_v2(struct mt76_phy *mphy, struct ieee80211_vif *vif,
+@@ -843,9 +837,6 @@ mt76_connac_get_phy_mode_v2(struct mt76_phy *mphy, struct ieee80211_vif *vif,
  
  		if (he_cap && he_cap->has_he)
  			mode |= PHY_TYPE_BIT_HE;
@@ -314,7 +323,7 @@
  	}
  
  	return mode;
-@@ -862,25 +853,25 @@ void mt76_connac_mcu_sta_tlv(struct mt76_phy *mphy, struct sk_buff *skb,
+@@ -869,25 +860,25 @@ void mt76_connac_mcu_sta_tlv(struct mt76_phy *mphy, struct sk_buff *skb,
  	u16 supp_rates;
  
  	/* starec ht */
@@ -346,7 +355,7 @@
  	}
  
  	/* starec uapsd */
-@@ -889,11 +880,11 @@ void mt76_connac_mcu_sta_tlv(struct mt76_phy *mphy, struct sk_buff *skb,
+@@ -896,11 +887,11 @@ void mt76_connac_mcu_sta_tlv(struct mt76_phy *mphy, struct sk_buff *skb,
  	if (!is_mt7921(dev))
  		return;
  
@@ -360,7 +369,7 @@
  		mt76_connac_mcu_sta_he_tlv(skb, sta);
  		mt76_connac_mcu_sta_he_tlv_v2(skb, sta);
  		if (band == NL80211_BAND_6GHZ &&
-@@ -903,7 +894,7 @@ void mt76_connac_mcu_sta_tlv(struct mt76_phy *mphy, struct sk_buff *skb,
+@@ -910,7 +901,7 @@ void mt76_connac_mcu_sta_tlv(struct mt76_phy *mphy, struct sk_buff *skb,
  			tlv = mt76_connac_mcu_add_tlv(skb, STA_REC_HE_6G,
  						      sizeof(*he_6g_capa));
  			he_6g_capa = (struct sta_rec_he_6g_capa *)tlv;
@@ -369,7 +378,7 @@
  		}
  	}
  
-@@ -913,14 +904,14 @@ void mt76_connac_mcu_sta_tlv(struct mt76_phy *mphy, struct sk_buff *skb,
+@@ -920,14 +911,14 @@ void mt76_connac_mcu_sta_tlv(struct mt76_phy *mphy, struct sk_buff *skb,
  	phy->basic_rate = cpu_to_le16((u16)vif->bss_conf.basic_rates);
  	phy->rcpi = rcpi;
  	phy->ampdu = FIELD_PREP(IEEE80211_HT_AMPDU_PARM_FACTOR,
@@ -387,7 +396,7 @@
  	if (band == NL80211_BAND_2GHZ)
  		supp_rates = FIELD_PREP(RA_LEGACY_OFDM, supp_rates >> 4) |
  			     FIELD_PREP(RA_LEGACY_CCK, supp_rates & 0xf);
-@@ -929,18 +920,18 @@ void mt76_connac_mcu_sta_tlv(struct mt76_phy *mphy, struct sk_buff *skb,
+@@ -936,18 +927,18 @@ void mt76_connac_mcu_sta_tlv(struct mt76_phy *mphy, struct sk_buff *skb,
  
  	ra_info->legacy = cpu_to_le16(supp_rates);
  
@@ -411,7 +420,7 @@
  			IEEE80211_OPMODE_NOTIF_RX_NSS_SHIFT;
  	}
  }
-@@ -956,7 +947,7 @@ void mt76_connac_mcu_wtbl_smps_tlv(struct sk_buff *skb,
+@@ -963,7 +954,7 @@ void mt76_connac_mcu_wtbl_smps_tlv(struct sk_buff *skb,
  	tlv = mt76_connac_mcu_add_nested_tlv(skb, WTBL_SMPS, sizeof(*smps),
  					     wtbl_tlv, sta_wtbl);
  	smps = (struct wtbl_smps *)tlv;
@@ -420,7 +429,7 @@
  }
  EXPORT_SYMBOL_GPL(mt76_connac_mcu_wtbl_smps_tlv);
  
-@@ -968,27 +959,27 @@ void mt76_connac_mcu_wtbl_ht_tlv(struct mt76_dev *dev, struct sk_buff *skb,
+@@ -975,27 +966,27 @@ void mt76_connac_mcu_wtbl_ht_tlv(struct mt76_dev *dev, struct sk_buff *skb,
  	struct tlv *tlv;
  	u32 flags = 0;
  
@@ -456,7 +465,7 @@
  		struct wtbl_vht *vht;
  		u8 af;
  
-@@ -997,18 +988,18 @@ void mt76_connac_mcu_wtbl_ht_tlv(struct mt76_dev *dev, struct sk_buff *skb,
+@@ -1004,18 +995,18 @@ void mt76_connac_mcu_wtbl_ht_tlv(struct mt76_dev *dev, struct sk_buff *skb,
  						     sta_wtbl);
  		vht = (struct wtbl_vht *)tlv;
  		vht->ldpc = vht_ldpc &&
@@ -478,7 +487,7 @@
  		/* sgi */
  		u32 msk = MT_WTBL_W5_SHORT_GI_20 | MT_WTBL_W5_SHORT_GI_40 |
  			  MT_WTBL_W5_SHORT_GI_80 | MT_WTBL_W5_SHORT_GI_160;
-@@ -1018,15 +1009,15 @@ void mt76_connac_mcu_wtbl_ht_tlv(struct mt76_dev *dev, struct sk_buff *skb,
+@@ -1025,15 +1016,15 @@ void mt76_connac_mcu_wtbl_ht_tlv(struct mt76_dev *dev, struct sk_buff *skb,
  						     sizeof(*raw), wtbl_tlv,
  						     sta_wtbl);
  
@@ -499,7 +508,7 @@
  				flags |= MT_WTBL_W5_SHORT_GI_160;
  		}
  		raw = (struct wtbl_raw *)tlv;
-@@ -1315,9 +1306,9 @@ u8 mt76_connac_get_phy_mode(struct mt76_phy *phy, struct ieee80211_vif *vif,
+@@ -1322,9 +1313,9 @@ u8 mt76_connac_get_phy_mode(struct mt76_phy *phy, struct ieee80211_vif *vif,
  		return 0x38;
  
  	if (sta) {
@@ -512,7 +521,7 @@
  	} else {
  		struct ieee80211_supported_band *sband;
  
-@@ -1640,7 +1631,6 @@ int mt76_connac_mcu_hw_scan(struct mt76_phy *phy, struct ieee80211_vif *vif,
+@@ -1647,7 +1638,6 @@ int mt76_connac_mcu_hw_scan(struct mt76_phy *phy, struct ieee80211_vif *vif,
  	for (i = 0; i < sreq->n_ssids; i++) {
  		if (!sreq->ssids[i].ssid_len)
  			continue;
@@ -520,7 +529,7 @@
  		req->ssids[i].ssid_len = cpu_to_le32(sreq->ssids[i].ssid_len);
  		memcpy(req->ssids[i].ssid, sreq->ssids[i].ssid,
  		       sreq->ssids[i].ssid_len);
-@@ -1780,7 +1770,6 @@ int mt76_connac_mcu_sched_scan_req(struct mt76_phy *phy,
+@@ -1787,7 +1777,6 @@ int mt76_connac_mcu_sched_scan_req(struct mt76_phy *phy,
  		memcpy(req->ssids[i].ssid, ssid->ssid, ssid->ssid_len);
  		req->ssids[i].ssid_len = cpu_to_le32(ssid->ssid_len);
  	}
@@ -528,7 +537,7 @@
  	req->match_num = sreq->n_match_sets;
  	for (i = 0; i < req->match_num; i++) {
  		match = &sreq->match_sets[i];
-@@ -2156,10 +2145,8 @@ int mt76_connac_mcu_update_arp_filter(struct mt76_dev *dev,
+@@ -2163,10 +2152,8 @@ int mt76_connac_mcu_update_arp_filter(struct mt76_dev *dev,
  				      struct mt76_vif *vif,
  				      struct ieee80211_bss_conf *info)
  {
@@ -540,7 +549,7 @@
  			   IEEE80211_BSS_ARP_ADDR_LIST_LEN);
  	struct {
  		struct {
-@@ -2187,7 +2174,7 @@ int mt76_connac_mcu_update_arp_filter(struct mt76_dev *dev,
+@@ -2194,7 +2181,7 @@ int mt76_connac_mcu_update_arp_filter(struct mt76_dev *dev,
  
  	skb_put_data(skb, &req_hdr, sizeof(req_hdr));
  	for (i = 0; i < len; i++)
@@ -550,7 +559,7 @@
  	return mt76_mcu_skb_send_msg(dev, skb, MCU_UNI_CMD(OFFLOAD), true);
  }
 diff --git a/mt76x02_mac.c b/mt76x02_mac.c
-index d5db6ffd..fec3d10d 100644
+index d5db6ff..fec3d10 100644
 --- a/mt76x02_mac.c
 +++ b/mt76x02_mac.c
 @@ -404,7 +404,7 @@ void mt76x02_mac_write_txwi(struct mt76x02_dev *dev, struct mt76x02_txwi *txwi,
@@ -575,10 +584,10 @@
  		if (info->flags & IEEE80211_TX_CTL_RATE_CTRL_PROBE)
  			ba_size = 0;
 diff --git a/mt7915/debugfs.c b/mt7915/debugfs.c
-index 05e9f60f..6b66c92f 100644
+index 76d1951..e22e777 100644
 --- a/mt7915/debugfs.c
 +++ b/mt7915/debugfs.c
-@@ -2051,8 +2051,8 @@ static ssize_t mt7915_sta_fixed_rate_set(struct file *file,
+@@ -2052,8 +2052,8 @@ static ssize_t mt7915_sta_fixed_rate_set(struct file *file,
  
  	phy.ldpc = (phy.bw || phy.ldpc) * GENMASK(2, 0);
  	for (i = 0; i <= phy.bw; i++) {
@@ -590,7 +599,7 @@
  	field = RATE_PARAM_FIXED;
  
 diff --git a/mt7915/dma.c b/mt7915/dma.c
-index 4f9f5a38..fde6a385 100644
+index 4f9f5a3..fde6a38 100644
 --- a/mt7915/dma.c
 +++ b/mt7915/dma.c
 @@ -596,8 +596,8 @@ int mt7915_dma_init(struct mt7915_dev *dev, struct mt7915_phy *phy2)
@@ -605,7 +614,7 @@
  
  	mt7915_dma_enable(dev, false);
 diff --git a/mt7915/init.c b/mt7915/init.c
-index b463de8d..127530ba 100644
+index e5327be..93f706f 100644
 --- a/mt7915/init.c
 +++ b/mt7915/init.c
 @@ -1154,8 +1154,7 @@ mt7915_init_he_caps(struct mt7915_phy *phy, enum nl80211_band band,
@@ -619,7 +628,7 @@
  
  		if (band == NL80211_BAND_6GHZ) {
 diff --git a/mt7915/main.c b/mt7915/main.c
-index 70771ee5..27025743 100644
+index 17a380b..cc4fb49 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -547,7 +547,7 @@ static int mt7915_config(struct ieee80211_hw *hw, u32 changed)
@@ -697,7 +706,7 @@
  {
  	struct mt7915_dev *dev = mt7915_hw_dev(hw);
  
-@@ -1349,10 +1327,10 @@ static int mt7915_sta_set_txpwr(struct ieee80211_hw *hw,
+@@ -1374,10 +1352,10 @@ static int mt7915_sta_set_txpwr(struct ieee80211_hw *hw,
  {
  	struct mt7915_phy *phy = mt7915_hw_phy(hw);
  	struct mt7915_dev *dev = mt7915_hw_dev(hw);
@@ -711,7 +720,7 @@
  
  	mutex_lock(&dev->mt76.mutex);
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index d852f4a1..df1d0281 100644
+index f0273fe..5c14114 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -67,7 +67,7 @@ mt7915_mcu_set_sta_he_mcs(struct ieee80211_sta *sta, __le16 *he_mcs,
@@ -783,7 +792,7 @@
  		return;
  
  	ieee80211_color_change_finish(vif);
-@@ -944,13 +944,13 @@ mt7915_mcu_sta_he_tlv(struct sk_buff *skb, struct ieee80211_sta *sta,
+@@ -945,13 +945,13 @@ mt7915_mcu_sta_he_tlv(struct sk_buff *skb, struct ieee80211_sta *sta,
  		      struct ieee80211_vif *vif)
  {
  	struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv;
@@ -799,7 +808,7 @@
  		return;
  
  	tlv = mt76_connac_mcu_add_tlv(skb, STA_REC_HE, sizeof(*he));
-@@ -1036,8 +1036,8 @@ mt7915_mcu_sta_he_tlv(struct sk_buff *skb, struct ieee80211_sta *sta,
+@@ -1037,8 +1037,8 @@ mt7915_mcu_sta_he_tlv(struct sk_buff *skb, struct ieee80211_sta *sta,
  
  	he->he_cap = cpu_to_le32(cap);
  
@@ -810,7 +819,7 @@
  	case IEEE80211_STA_RX_BW_160:
  		if (elem->phy_cap_info[0] &
  		    IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G)
-@@ -1087,7 +1087,7 @@ mt7915_mcu_sta_muru_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
+@@ -1088,7 +1088,7 @@ mt7915_mcu_sta_muru_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
  			struct ieee80211_sta *sta, struct ieee80211_vif *vif)
  {
  	struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv;
@@ -819,7 +828,7 @@
  	struct mt7915_phy *phy = mvif->phy;
  	struct sta_rec_muru *muru;
  	struct tlv *tlv;
-@@ -1112,11 +1112,11 @@ mt7915_mcu_sta_muru_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
+@@ -1113,11 +1113,11 @@ mt7915_mcu_sta_muru_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
  	muru->cfg.ofdma_dl_en = !!(phy->muru_onoff & OFDMA_DL);
  	muru->cfg.ofdma_ul_en = !!(phy->muru_onoff & OFDMA_UL);
  
@@ -834,7 +843,7 @@
  		return;
  
  	muru->mimo_dl.partial_bw_dl_mimo =
-@@ -1152,13 +1152,13 @@ mt7915_mcu_sta_ht_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
+@@ -1153,13 +1153,13 @@ mt7915_mcu_sta_ht_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
  	struct sta_rec_ht *ht;
  	struct tlv *tlv;
  
@@ -850,7 +859,7 @@
  }
  
  static void
-@@ -1167,15 +1167,15 @@ mt7915_mcu_sta_vht_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
+@@ -1168,15 +1168,15 @@ mt7915_mcu_sta_vht_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
  	struct sta_rec_vht *vht;
  	struct tlv *tlv;
  
@@ -870,7 +879,7 @@
  }
  
  static void
-@@ -1190,7 +1190,7 @@ mt7915_mcu_sta_amsdu_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
+@@ -1191,7 +1191,7 @@ mt7915_mcu_sta_amsdu_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
  	    vif->type != NL80211_IFTYPE_AP)
  		return;
  
@@ -879,7 +888,7 @@
  	    return;
  
  	tlv = mt76_connac_mcu_add_tlv(skb, STA_REC_HW_AMSDU, sizeof(*amsdu));
-@@ -1199,7 +1199,7 @@ mt7915_mcu_sta_amsdu_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
+@@ -1200,7 +1200,7 @@ mt7915_mcu_sta_amsdu_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
  	amsdu->amsdu_en = true;
  	msta->wcid.amsdu = true;
  
@@ -888,7 +897,7 @@
  	case IEEE80211_MAX_MPDU_LEN_VHT_11454:
  		if (!is_mt7915(&dev->mt76)) {
  			amsdu->max_mpdu_size =
-@@ -1262,8 +1262,8 @@ mt7915_is_ebf_supported(struct mt7915_phy *phy, struct ieee80211_vif *vif,
+@@ -1263,8 +1263,8 @@ mt7915_is_ebf_supported(struct mt7915_phy *phy, struct ieee80211_vif *vif,
  	if (!bfee && sts < 2)
  		return false;
  
@@ -899,7 +908,7 @@
  
  		if (bfee)
  			return mvif->cap.he_su_ebfee &&
-@@ -1273,8 +1273,8 @@ mt7915_is_ebf_supported(struct mt7915_phy *phy, struct ieee80211_vif *vif,
+@@ -1274,8 +1274,8 @@ mt7915_is_ebf_supported(struct mt7915_phy *phy, struct ieee80211_vif *vif,
  			       HE_PHY(CAP4_SU_BEAMFORMEE, pe->phy_cap_info[4]);
  	}
  
@@ -910,7 +919,7 @@
  
  		if (bfee)
  			return mvif->cap.vht_su_ebfee &&
-@@ -1300,7 +1300,7 @@ static void
+@@ -1301,7 +1301,7 @@ static void
  mt7915_mcu_sta_bfer_ht(struct ieee80211_sta *sta, struct mt7915_phy *phy,
  		       struct sta_rec_bf *bf)
  {
@@ -919,7 +928,7 @@
  	u8 n = 0;
  
  	bf->tx_mode = MT_PHY_TYPE_HT;
-@@ -1325,7 +1325,7 @@ static void
+@@ -1326,7 +1326,7 @@ static void
  mt7915_mcu_sta_bfer_vht(struct ieee80211_sta *sta, struct mt7915_phy *phy,
  			struct sta_rec_bf *bf, bool explicit)
  {
@@ -928,7 +937,7 @@
  	struct ieee80211_sta_vht_cap *vc = &phy->mt76->sband_5g.sband.vht_cap;
  	u16 mcs_map = le16_to_cpu(pc->vht_mcs.rx_mcs_map);
  	u8 nss_mcs = mt7915_mcu_get_sta_nss(mcs_map);
-@@ -1346,14 +1346,14 @@ mt7915_mcu_sta_bfer_vht(struct ieee80211_sta *sta, struct mt7915_phy *phy,
+@@ -1347,14 +1347,14 @@ mt7915_mcu_sta_bfer_vht(struct ieee80211_sta *sta, struct mt7915_phy *phy,
  		bf->ncol = min_t(u8, nss_mcs, bf->nrow);
  		bf->ibf_ncol = bf->ncol;
  
@@ -945,7 +954,7 @@
  			bf->ibf_nrow = 1;
  	}
  }
-@@ -1362,7 +1362,7 @@ static void
+@@ -1363,7 +1363,7 @@ static void
  mt7915_mcu_sta_bfer_he(struct ieee80211_sta *sta, struct ieee80211_vif *vif,
  		       struct mt7915_phy *phy, struct sta_rec_bf *bf)
  {
@@ -954,7 +963,7 @@
  	struct ieee80211_he_cap_elem *pe = &pc->he_cap_elem;
  	const struct ieee80211_sta_he_cap *vc =
  		mt76_connac_get_he_phy_cap(phy->mt76, vif);
-@@ -1387,7 +1387,7 @@ mt7915_mcu_sta_bfer_he(struct ieee80211_sta *sta, struct ieee80211_vif *vif,
+@@ -1388,7 +1388,7 @@ mt7915_mcu_sta_bfer_he(struct ieee80211_sta *sta, struct ieee80211_vif *vif,
  	bf->ncol = min_t(u8, nss_mcs, bf->nrow);
  	bf->ibf_ncol = bf->ncol;
  
@@ -963,7 +972,7 @@
  		return;
  
  	/* go over for 160MHz and 80p80 */
-@@ -1435,7 +1435,7 @@ mt7915_mcu_sta_bfer_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
+@@ -1436,7 +1436,7 @@ mt7915_mcu_sta_bfer_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
  	};
  	bool ebf;
  
@@ -972,7 +981,7 @@
  		return;
  
  	ebf = mt7915_is_ebf_supported(phy, vif, sta, false);
-@@ -1449,21 +1449,21 @@ mt7915_mcu_sta_bfer_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
+@@ -1450,21 +1450,21 @@ mt7915_mcu_sta_bfer_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
  	 * vht: support eBF and iBF
  	 * ht: iBF only, since mac80211 lacks of eBF support
  	 */
@@ -1000,7 +1009,7 @@
  		bf->ibf_timeout = 0x48;
  	else
  		bf->ibf_timeout = 0x18;
-@@ -1473,7 +1473,7 @@ mt7915_mcu_sta_bfer_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
+@@ -1474,7 +1474,7 @@ mt7915_mcu_sta_bfer_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
  	else
  		bf->mem_20m = matrix[bf->nrow][bf->ncol];
  
@@ -1009,7 +1018,7 @@
  	case IEEE80211_STA_RX_BW_160:
  	case IEEE80211_STA_RX_BW_80:
  		bf->mem_total = bf->mem_20m * 2;
-@@ -1498,7 +1498,7 @@ mt7915_mcu_sta_bfee_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
+@@ -1499,7 +1499,7 @@ mt7915_mcu_sta_bfee_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
  	struct tlv *tlv;
  	u8 nrow = 0;
  
@@ -1018,7 +1027,7 @@
  		return;
  
  	if (!mt7915_is_ebf_supported(phy, vif, sta, true))
-@@ -1507,13 +1507,13 @@ mt7915_mcu_sta_bfee_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
+@@ -1508,13 +1508,13 @@ mt7915_mcu_sta_bfee_tlv(struct mt7915_dev *dev, struct sk_buff *skb,
  	tlv = mt76_connac_mcu_add_tlv(skb, STA_REC_BFEE, sizeof(*bfee));
  	bfee = (struct sta_rec_bfee *)tlv;
  
@@ -1036,7 +1045,7 @@
  
  		nrow = FIELD_GET(IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_MASK,
  				 pc->cap);
-@@ -1569,7 +1569,7 @@ int mt7915_mcu_set_fixed_rate_ctrl(struct mt7915_dev *dev,
+@@ -1570,7 +1570,7 @@ int mt7915_mcu_set_fixed_rate_ctrl(struct mt7915_dev *dev,
  			ra->phy = *phy;
  		break;
  	case RATE_PARAM_MMPS_UPDATE:
@@ -1045,7 +1054,7 @@
  		break;
  	case RATE_PARAM_SPE_UPDATE:
  		ra->spe_idx = *(u8 *)data;
-@@ -1645,7 +1645,7 @@ mt7915_mcu_add_rate_ctrl_fixed(struct mt7915_dev *dev,
+@@ -1646,7 +1646,7 @@ mt7915_mcu_add_rate_ctrl_fixed(struct mt7915_dev *dev,
  	do {									\
  		u8 i, gi = mask->control[band]._gi;				\
  		gi = (_he) ? gi : gi == NL80211_TXRATE_FORCE_SGI;		\
@@ -1054,7 +1063,7 @@
  			phy.sgi |= gi << (i << (_he));				\
  			phy.he_ltf |= mask->control[band].he_ltf << (i << (_he));\
  		}								\
-@@ -1659,11 +1659,11 @@ mt7915_mcu_add_rate_ctrl_fixed(struct mt7915_dev *dev,
+@@ -1660,11 +1660,11 @@ mt7915_mcu_add_rate_ctrl_fixed(struct mt7915_dev *dev,
  		}								\
  	} while (0)
  
@@ -1069,7 +1078,7 @@
  		__sta_phy_bitrate_mask_check(ht_mcs, gi, 1, 0);
  	} else {
  		nrates = hweight32(mask->control[band].legacy);
-@@ -1697,7 +1697,7 @@ mt7915_mcu_add_rate_ctrl_fixed(struct mt7915_dev *dev,
+@@ -1698,7 +1698,7 @@ mt7915_mcu_add_rate_ctrl_fixed(struct mt7915_dev *dev,
  		 * actual txrate hardware sends out.
  		 */
  		addr = mt7915_mac_wtbl_lmac_addr(dev, msta->wcid.idx, 7);
@@ -1078,7 +1087,7 @@
  			mt76_rmw_field(dev, addr, GENMASK(31, 24), phy.sgi);
  		else
  			mt76_rmw_field(dev, addr, GENMASK(15, 12), phy.sgi);
-@@ -1730,7 +1730,7 @@ mt7915_mcu_sta_rate_ctrl_tlv(struct sk_buff *skb, struct mt7915_dev *dev,
+@@ -1731,7 +1731,7 @@ mt7915_mcu_sta_rate_ctrl_tlv(struct sk_buff *skb, struct mt7915_dev *dev,
  	enum nl80211_band band = chandef->chan->band;
  	struct sta_rec_ra *ra;
  	struct tlv *tlv;
@@ -1087,7 +1096,7 @@
  	u32 cap = sta->wme ? STA_CAP_WMM : 0;
  
  	tlv = mt76_connac_mcu_add_tlv(skb, STA_REC_RA, sizeof(*ra));
-@@ -1740,9 +1740,9 @@ mt7915_mcu_sta_rate_ctrl_tlv(struct sk_buff *skb, struct mt7915_dev *dev,
+@@ -1741,9 +1741,9 @@ mt7915_mcu_sta_rate_ctrl_tlv(struct sk_buff *skb, struct mt7915_dev *dev,
  	ra->auto_rate = true;
  	ra->phy_mode = mt76_connac_get_phy_mode(mphy, vif, band, sta);
  	ra->channel = chandef->chan->hw_value;
@@ -1100,7 +1109,7 @@
  
  	if (supp_rate) {
  		supp_rate &= mask->control[band].legacy;
-@@ -1762,22 +1762,22 @@ mt7915_mcu_sta_rate_ctrl_tlv(struct sk_buff *skb, struct mt7915_dev *dev,
+@@ -1763,22 +1763,22 @@ mt7915_mcu_sta_rate_ctrl_tlv(struct sk_buff *skb, struct mt7915_dev *dev,
  		}
  	}
  
@@ -1131,7 +1140,7 @@
  			cap |= STA_CAP_LDPC;
  
  		mt7915_mcu_set_sta_ht_mcs(sta, ra->ht_mcs,
-@@ -1785,37 +1785,37 @@ mt7915_mcu_sta_rate_ctrl_tlv(struct sk_buff *skb, struct mt7915_dev *dev,
+@@ -1786,37 +1786,37 @@ mt7915_mcu_sta_rate_ctrl_tlv(struct sk_buff *skb, struct mt7915_dev *dev,
  		ra->supp_ht_mcs = *(__le32 *)ra->ht_mcs;
  	}
  
@@ -1179,7 +1188,7 @@
  					       IEEE80211_HE_6GHZ_CAP_MAX_AMPDU_LEN_EXP);
  	}
  
-@@ -2024,7 +2024,7 @@ mt7915_mcu_beacon_cntdwn(struct ieee80211_vif *vif, struct sk_buff *rskb,
+@@ -2025,7 +2025,7 @@ mt7915_mcu_beacon_cntdwn(struct ieee80211_vif *vif, struct sk_buff *rskb,
  	if (!offs->cntdwn_counter_offs[0])
  		return;
  
@@ -1188,7 +1197,7 @@
  	tlv = mt7915_mcu_add_nested_subtlv(rskb, sub_tag, sizeof(*info),
  					   &bcn->sub_ntlv, &bcn->len);
  	info = (struct bss_info_bcn_cntdwn *)tlv;
-@@ -2109,9 +2109,9 @@ mt7915_mcu_beacon_cont(struct mt7915_dev *dev, struct ieee80211_vif *vif,
+@@ -2110,9 +2110,9 @@ mt7915_mcu_beacon_cont(struct mt7915_dev *dev, struct ieee80211_vif *vif,
  	if (offs->cntdwn_counter_offs[0]) {
  		u16 offset = offs->cntdwn_counter_offs[0];
  
@@ -1200,7 +1209,7 @@
  			cont->bcc_ofs = cpu_to_le16(offset - 3);
  	}
  
-@@ -2121,6 +2121,85 @@ mt7915_mcu_beacon_cont(struct mt7915_dev *dev, struct ieee80211_vif *vif,
+@@ -2122,6 +2122,85 @@ mt7915_mcu_beacon_cont(struct mt7915_dev *dev, struct ieee80211_vif *vif,
  	memcpy(buf + MT_TXD_SIZE, skb->data, skb->len);
  }
  
@@ -1286,7 +1295,7 @@
  int
  mt7915_mcu_add_inband_discov(struct mt7915_dev *dev, struct ieee80211_vif *vif,
  			     u32 changed)
-@@ -2233,7 +2312,7 @@ int mt7915_mcu_add_beacon(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in
+@@ -2234,7 +2313,7 @@ int mt7915_mcu_add_beacon(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in
  	if (!en)
  		goto out;
  
@@ -1295,7 +1304,7 @@
  	if (!skb) {
  		dev_kfree_skb(rskb);
  		return -EINVAL;
-@@ -2249,6 +2328,7 @@ int mt7915_mcu_add_beacon(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in
+@@ -2250,6 +2329,7 @@ int mt7915_mcu_add_beacon(struct ieee80211_hw *hw, struct ieee80211_vif *vif, in
  	info = IEEE80211_SKB_CB(skb);
  	info->hw_queue = FIELD_PREP(MT_TX_HW_QUEUE_PHY, ext_phy);
  
@@ -1303,7 +1312,7 @@
  	mt7915_mcu_beacon_cntdwn(vif, rskb, skb, bcn, &offs);
  	mt7915_mcu_beacon_mbss(rskb, skb, vif, bcn, &offs);
  	mt7915_mcu_beacon_cont(dev, vif, rskb, skb, bcn, &offs);
-@@ -3546,17 +3626,17 @@ int mt7915_mcu_set_txpower_frame(struct mt7915_phy *phy,
+@@ -3547,17 +3627,17 @@ int mt7915_mcu_set_txpower_frame(struct mt7915_phy *phy,
  	if (txpower) {
  		u32 offs, len, i;
  
@@ -1325,7 +1334,7 @@
  					len = sku_len[SKU_HE_RU242] * 4;
  				}
 diff --git a/mt7915/testmode.c b/mt7915/testmode.c
-index ecd62712..b2c442b0 100644
+index ecd6271..b2c442b 100644
 --- a/mt7915/testmode.c
 +++ b/mt7915/testmode.c
 @@ -418,12 +418,12 @@ mt7915_tm_entry_add(struct mt7915_phy *phy, u8 aid)
@@ -1346,7 +1355,7 @@
  	sta->wme = 1;
  
 diff --git a/tx.c b/tx.c
-index df2bb07d..45567ea2 100644
+index e4eb74b..a3654a9 100644
 --- a/tx.c
 +++ b/tx.c
 @@ -60,20 +60,15 @@ mt76_tx_status_unlock(struct mt76_dev *dev, struct sk_buff_head *list)
@@ -1402,7 +1411,7 @@
  		ieee80211_tx_status_ext(hw, &status);
  		spin_unlock_bh(&dev->rx_lock);
 diff --git a/wed.c b/wed.c
-index 652f59e1..1c2ad302 100644
+index 652f59e..1c2ad30 100644
 --- a/wed.c
 +++ b/wed.c
 @@ -80,6 +80,7 @@ u32 mt76_wed_init_rx_buf(struct mtk_wed_device *wed, int size)
diff --git a/recipes-wifi/linux-mt76/files/patches/patches.inc b/recipes-wifi/linux-mt76/files/patches/patches.inc
index a4736a8..4b4927e 100644
--- a/recipes-wifi/linux-mt76/files/patches/patches.inc
+++ b/recipes-wifi/linux-mt76/files/patches/patches.inc
@@ -67,8 +67,8 @@
     file://1049-wifi-mt76-mt7915-add-background-radar-hw-cap-check.patch \
     file://1050-wifi-mt76-mt7915-remove-unnecessary-register-setting.patch \
     file://1051-wifi-mt76-mt7915-add-foolproof-mechanism-for-ZWDFS-d.patch \
-    file://1054-wifi-mt76-mt7915-assign-DEAUTH-to-ALTX-queue-for.patch \
-    file://1055-wifi-mt76-mt7915-set-channel-after-sta-is-associated.patch \
+    file://1052-mtk-wifi-mt76-mt7915-assign-DEAUTH-to-ALTX-queue-for.patch \
+    file://1053-wifi-mt76-mt7915-set-channel-after-sta-is-associated.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 \
@@ -82,6 +82,8 @@
     file://2010-wifi-mt76-mt7915-add-error-message-when-driver-recei.patch \
     file://2011-wifi-mt76-mt7915-wed-change-wed-token-init-size-to-a.patch \
     file://2012-wifi-mt76-mt7915-wed-add-per-bss-statistic-info.patch \
+    file://2013-wifi-mt76-add-debugfs-for-tx-drop-counters.patch \
+    file://2014-wifi-mt76-add-debugfs-for-rx-drop-counters.patch \
     file://2999-wifi-mt76-mt7915-support-backaward-compatiable.patch \
     file://9999-mt76-revert-for-backports-5.15-wireless-stack.patch \
     "
diff --git a/recipes-wifi/linux-mt76/linux-mt76_3.x.bb b/recipes-wifi/linux-mt76/linux-mt76_3.x.bb
index 223e7fa..92c37fa 100644
--- a/recipes-wifi/linux-mt76/linux-mt76_3.x.bb
+++ b/recipes-wifi/linux-mt76/linux-mt76_3.x.bb
@@ -5,7 +5,7 @@
 
 inherit module
 
-require mt76.inc
+require mt76-3x.inc
 SRC_URI = " \
     git://git@github.com/openwrt/mt76.git;protocol=https;branch=master \
     file://COPYING;subdir=git \
diff --git a/recipes-wifi/linux-mt76/mt76-3x.inc b/recipes-wifi/linux-mt76/mt76-3x.inc
new file mode 100644
index 0000000..3cee0cc
--- /dev/null
+++ b/recipes-wifi/linux-mt76/mt76-3x.inc
@@ -0,0 +1 @@
+SRCREV_mt7988 = "2135e201e7a9339e018d4e2d4a33c73266e674d7"
diff --git a/recipes-wifi/linux-mt76/mt76-test.bb b/recipes-wifi/linux-mt76/mt76-test.bb
index 853e974..b84adb4 100644
--- a/recipes-wifi/linux-mt76/mt76-test.bb
+++ b/recipes-wifi/linux-mt76/mt76-test.bb
@@ -10,6 +10,7 @@
 PV = "1.0"
 
 require mt76.inc
+require mt76-3x.inc
 
 SRC_URI = " \
     git://git@github.com/openwrt/mt76.git;protocol=https \
diff --git a/recipes-wifi/linux-mt76/mt76.inc b/recipes-wifi/linux-mt76/mt76.inc
index 9d6f6af..6f803c5 100644
--- a/recipes-wifi/linux-mt76/mt76.inc
+++ b/recipes-wifi/linux-mt76/mt76.inc
@@ -1 +1 @@
-SRCREV ?= "2135e201e7a9339e018d4e2d4a33c73266e674d7"
+SRCREV ?= "1e336a8582dce2ef32ddd440d423e9afef961e71"
diff --git a/recipes-wifi/wpa-supplicant/files/patches/mtk-0048-hostapd-mtk-add-support-for-channel-switching-with-c.patch b/recipes-wifi/wpa-supplicant/files/patches/mtk-0048-hostapd-mtk-add-support-for-channel-switching-with-c.patch
index 0dbdaca..fc37d6c 100644
--- a/recipes-wifi/wpa-supplicant/files/patches/mtk-0048-hostapd-mtk-add-support-for-channel-switching-with-c.patch
+++ b/recipes-wifi/wpa-supplicant/files/patches/mtk-0048-hostapd-mtk-add-support-for-channel-switching-with-c.patch
@@ -1,4 +1,4 @@
-From a0538a9373ec7def76048e020fcb6ecfec53f3db Mon Sep 17 00:00:00 2001
+From 5d4d4397d0628a1aa83f83163e97ff34a0a5de43 Mon Sep 17 00:00:00 2001
 From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 Date: Thu, 16 Nov 2023 13:18:48 +0800
 Subject: [PATCH] hostapd: mtk: add support for channel switching with csa sent
@@ -6,14 +6,15 @@
 
 Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
 ---
- hostapd/ctrl_iface.c   |  82 +++++++++++++++++-----
+ hostapd/ctrl_iface.c   |  84 +++++++++++++++++-----
  src/ap/ctrl_iface_ap.c |   5 +-
  src/ap/dfs.c           | 156 +++++++++++++++++++++++++++++++++++------
  src/ap/dfs.h           |   9 ++-
- 4 files changed, 212 insertions(+), 40 deletions(-)
+ src/ap/hostapd.c       |   8 ++-
+ 5 files changed, 221 insertions(+), 41 deletions(-)
 
 diff --git a/hostapd/ctrl_iface.c b/hostapd/ctrl_iface.c
-index 0afa6a2..44903e0 100644
+index 96b593a..445cb34 100644
 --- a/hostapd/ctrl_iface.c
 +++ b/hostapd/ctrl_iface.c
 @@ -2742,11 +2742,12 @@ static int hostapd_ctrl_iface_chan_switch(struct hostapd_iface *iface,
@@ -105,10 +106,13 @@
  	}
  
  	for (i = 0; i < iface->num_bss; i++) {
-@@ -2826,6 +2844,36 @@ static int hostapd_ctrl_iface_chan_switch(struct hostapd_iface *iface,
+@@ -2825,6 +2843,38 @@ static int hostapd_ctrl_iface_chan_switch(struct hostapd_iface *iface,
+ 			return ret;
  		}
  	}
- 
++	/* Clear the CAC flag once all BSSes are switched to the new channel */
++	iface->cac_started = 0;
++
 +	if (background_radar) {
 +		u8 seg0, seg1;
 +
@@ -138,10 +142,9 @@
 +		iface->radar_background.centr_freq_seg0_idx = seg0;
 +		iface->radar_background.centr_freq_seg1_idx = seg1;
 +	}
-+
+ 
  	return 0;
  #else /* NEED_AP_MLME */
- 	return -1;
 diff --git a/src/ap/ctrl_iface_ap.c b/src/ap/ctrl_iface_ap.c
 index 86e8729..005c9fa 100644
 --- a/src/ap/ctrl_iface_ap.c
@@ -166,7 +169,7 @@
  		return -1;
  	}
 diff --git a/src/ap/dfs.c b/src/ap/dfs.c
-index 012050c..5108e0a 100644
+index d490032..26ce229 100644
 --- a/src/ap/dfs.c
 +++ b/src/ap/dfs.c
 @@ -248,14 +248,15 @@ static int is_in_chanlist(struct hostapd_iface *iface,
@@ -215,7 +218,7 @@
  			if (chan2 && abs(chan2->chan - chan->chan) > 12) {
  				/* two channels are not adjacent */
  				sec_chan_idx_80p80 = chan2->chan;
-@@ -1302,6 +1303,9 @@ int hostapd_dfs_pre_cac_expired(struct hostapd_iface *iface, int freq,
+@@ -1304,6 +1305,9 @@ int hostapd_dfs_pre_cac_expired(struct hostapd_iface *iface, int freq,
  	set_dfs_state(iface, freq, ht_enabled, chan_offset, chan_width,
  		      cf1, cf2, HOSTAPD_CHAN_DFS_USABLE);
  
@@ -225,7 +228,7 @@
  	return 0;
  }
  
-@@ -1715,14 +1719,15 @@ int hostapd_handle_dfs_offload(struct hostapd_iface *iface)
+@@ -1717,14 +1721,15 @@ int hostapd_handle_dfs_offload(struct hostapd_iface *iface)
  }
  
  
@@ -245,7 +248,7 @@
  
  	if (!iface->conf->ieee80211h || !mode ||
  	    mode->mode != HOSTAPD_MODE_IEEE80211A)
-@@ -1755,18 +1760,129 @@ int hostapd_is_dfs_overlap(struct hostapd_iface *iface, enum chan_width width,
+@@ -1757,18 +1762,129 @@ int hostapd_is_dfs_overlap(struct hostapd_iface *iface, enum chan_width width,
  		if (!(chan->flag & HOSTAPD_CHAN_RADAR))
  			continue;
  
@@ -404,6 +407,25 @@
 +
  
  #endif /* DFS_H */
+diff --git a/src/ap/hostapd.c b/src/ap/hostapd.c
+index 250c168..d983902 100644
+--- a/src/ap/hostapd.c
++++ b/src/ap/hostapd.c
+@@ -3708,7 +3708,13 @@ static int hostapd_fill_csa_settings(struct hostapd_data *hapd,
+ 	u8 chan, bandwidth;
+ 
+ 	os_memset(&old_freq, 0, sizeof(old_freq));
+-	if (!iface || !iface->freq || hapd->csa_in_progress)
++	if (!iface || !iface->freq)
++		return -1;
++
++	/* Allow another channel switch if the previous
++	 * channel switch is waiting for post-CSA radar detection
++	 */
++	if (hapd->csa_in_progress && !iface->cac_started)
+ 		return -1;
+ 
+ 	switch (settings->freq_params.bandwidth) {
 -- 
 2.18.0
 
diff --git a/recipes-wifi/wpa-supplicant/files/patches/mtk-0054-hostapd-mtk-Add-support-for-gtk-rekeying-in-hostapd-.patch b/recipes-wifi/wpa-supplicant/files/patches/mtk-0054-hostapd-mtk-Add-support-for-gtk-rekeying-in-hostapd-.patch
new file mode 100644
index 0000000..3e9214a
--- /dev/null
+++ b/recipes-wifi/wpa-supplicant/files/patches/mtk-0054-hostapd-mtk-Add-support-for-gtk-rekeying-in-hostapd-.patch
@@ -0,0 +1,44 @@
+From 69271a55f60c797513cb9f925416aac13422ad7b Mon Sep 17 00:00:00 2001
+From: mtk23510 <rudra.shahi@mediatek.com>
+Date: Fri, 26 May 2023 14:52:35 +0800
+Subject: [PATCH] mtk: hostapd: Add support for gtk rekeying in hostapd cli
+
+Signed-off-by: mtk23510 <rudra.shahi@mediatek.com>
+---
+ hostapd/hostapd_cli.c | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/hostapd/hostapd_cli.c b/hostapd/hostapd_cli.c
+index a99df88..1b8a071 100644
+--- a/hostapd/hostapd_cli.c
++++ b/hostapd/hostapd_cli.c
+@@ -1250,6 +1250,15 @@ static int hostapd_cli_cmd_update_beacon(struct wpa_ctrl *ctrl, int argc,
+ }
+ 
+ 
++#ifdef CONFIG_TESTING_OPTIONS
++static int hostapd_cli_cmd_rekey_gtk(struct wpa_ctrl *ctrl, int argc,
++				      char *argv[])
++{
++	return wpa_ctrl_command(ctrl, "REKEY_GTK");
++}
++#endif
++
++
+ static int hostapd_cli_cmd_vendor(struct wpa_ctrl *ctrl, int argc, char *argv[])
+ {
+ 	char cmd[256];
+@@ -1760,6 +1769,10 @@ static const struct hostapd_cli_cmd hostapd_cli_commands[] = {
+ 	  "= disable hostapd on current BSS" },
+ 	{ "update_beacon", hostapd_cli_cmd_update_beacon, NULL,
+ 	  "= update Beacon frame contents\n"},
++#ifdef CONFIG_TESTING_OPTIONS
++	{ "rekey_gtk", hostapd_cli_cmd_rekey_gtk, NULL,
++	  "= rekey gtk\n"},
++#endif
+ 	{ "erp_flush", hostapd_cli_cmd_erp_flush, NULL,
+ 	  "= drop all ERP keys"},
+ 	{ "log_level", hostapd_cli_cmd_log_level, NULL,
+-- 
+2.25.1
+
diff --git a/recipes-wifi/wpa-supplicant/files/patches/patches.inc b/recipes-wifi/wpa-supplicant/files/patches/patches.inc
index ad63af1..2809a0f 100644
--- a/recipes-wifi/wpa-supplicant/files/patches/patches.inc
+++ b/recipes-wifi/wpa-supplicant/files/patches/patches.inc
@@ -122,4 +122,5 @@
     file://mtk-0051-hostapd-mtk-add-support-for-enable-disable-single-BS.patch \
     file://mtk-0052-hostapd-mtk-ACS-remove-chan-freq-list-check-when-sca.patch \
     file://mtk-0053-hostapd-mtk-add-no_beacon-vendor-command-for-cert.patch \
+    file://mtk-0054-hostapd-mtk-Add-support-for-gtk-rekeying-in-hostapd-.patch \
     "