]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
mt76: update to Git HEAD (2026-01-28)
authorFelix Fietkau <nbd@nbd.name>
Wed, 28 Jan 2026 11:26:26 +0000 (11:26 +0000)
committerFelix Fietkau <nbd@nbd.name>
Wed, 28 Jan 2026 11:37:29 +0000 (12:37 +0100)
f473d66ab595 wifi: mt76: mt7996: fix crash in mt7996_tx_prepare_skb
7d17569dae17 wifi: mt76: mt7996: grab mt76 mutex in mt7996_mac_sta_event()
2650a7b63d9e wifi: mt76: mt7996: move mt7996_update_beacons under mt76 mutex
5f29f4ca68ea wifi: mt76: Move mt76_abort_scan out of mt76_reset_device()
b01325c2d9a4 wifi: mt76: mt7996: skip deflink accounting for offchannel links
3cdafc1b1320 wifi: mt76: mt7996: skip ieee80211_iter_keys() on scanning link remove
e2a5529fa153 wifi: mt76: mt7996: Add missing locking in mt7996_mac_sta_rc_work()
3c232526a0cd wifi: cfg80211/mac80211: Add support to get radio index
12c099c526a3 wifi: mt76: mt7996: extend CSA and CCA support for MLO
85c39fb2447c wifi: mt76: mt7996: fix the behavior of radar detection
3b11a2351769 wifi: mt76: mt7996: set specific BSSINFO and STAREC commands after channel switch
cbafe36e86ee wifi: mt76: mt7996: abort CCA when CSA is starting
acc24cb925d2 wifi: mt76: mt7996: offload radar threshold initialization
febe6e372be8 wifi: mt76: mt7996: add duplicated WTBL command
9fa302a6832a wifi: mt76: mt7996: fix iface combination for different chipsets
eeb6c8d05275 wifi: mt76: mt7925: fix AMPDU state handling in mt7925_tx_check_aggr
82c085f95abc wifi: mt76: mt76x02: wake queues after reconfig
7b76bbba591a wifi: mt76: mt7925: introduce CSA support in non-MLO mode
081a70280692 wifi: mt76: mt7996: Fix spelling mistake "retriving" -> "retrieving"
21cb56560766 wifi: mt76: mt7996: Set mtxq->wcid just for primary link
be3d1224cc47 wifi: mt76: mt7996: Reset mtxq->idx if primary link is removed in mt7996_vif_link_remove()
66fea566f1c8 wifi: mt76: mt7996: Switch to the secondary link if the default one is removed
c2b1d3ec94aa wifi: mt76: mt7996: Clear wcid pointer in mt7996_mac_sta_deinit_link()
11f24adb143a wifi: mt76: mt7996: Reset ampdu_state state in case of failure in mt7996_tx_check_aggr()
1b9739997207 wifi: mt76: mt7921: Reset ampdu_state state in case of failure in mt76_connac2_tx_check_aggr()
2e0a0f36ccf4 wifi: mt76: mt7925: Fix incorrect MLO mode in firmware control
85f5a3473bb8 wifi: mt76: mt792x: Fix a potential deadlock in high-load situations
d9b9807a3d6a wifi: mt76: mt7615: fix use_cts_prot support
8ae9ae4225bf wifi: mt76: mt7915: fix use_cts_prot support
51a3b8c35d04 wifi: mt76: mt7996: add support for ERP CTS & HT protection
cfbbb8e66a79 treewide, timers: Rename from_timer() to timer_container_of()
f3dd8161204f mt76: mt7615: Fix memory leak in mt7615_mcu_wtbl_sta_add()
e9d08e12bde1 treewide: Switch/rename to timer_delete[_sync]()
f8684c6fb506 wifi: mt76: mt792x: fix wifi init fail by setting MCU_RUNNING after CLC load
3b4870dcc531 wifi: mt76: mt7925: fix potential deadlock in mt7925_roc_abort_sync
d67da44b59e7 wifi: mt76: fix list corruption in mt76_wcid_cleanup
ffdbdcd3966a wifi: mt76: set page_pool napi pointer for mmio devices
7dd72bbd6f51 wifi: mt76: Fix memory leak destroying device
e992ff8842b3 wifi: mt76: mt7996: Fix NPU stop procedure
86a0bf3441ca wifi: mt76: npu: Add missing rx_token_size initialization
5c67ef508817 wifi: mt76: always enable RRO queues for non-MT7992 chipset
8e94d3266b45 wifi: mt76: mt7996: Fix BAND2 tx queues initialization when NPU is enabled
bc5529c1239e wifi: mt76: mt7996: Fix wdma_idx for MT7996 device if NPU is enabled
853eafe8591f wifi: mt76: mt7996: Add mt7992_npu_txrx_offload_init routine
cdb32a658b92 wifi: mt76: mt7996: Rename mt7996_npu_rxd_init() in mt7992_npu_rxd_init()
01575edfc36d wifi: mt76: mt7996: Add NPU support for MT7990 chipset
d7a79fcece87 wifi: mt76: mt7996: Integrate NPU in RRO session management
9e10bcac8160 wifi: mt76: mt7996: Integrate MT7990 init configuration for NPU
8a02211445d0 wifi: mt76: mt7996: Integrate MT7990 dma configuration for NPU
56334c1c9bfd wifi: mt76: mt7996: Add __mt7996_npu_hw_init routine
d78bce0a1515 wifi: mt76: mt7996: Move RRO dma start in a dedicated routine
9ccd49d45530 wifi: mt76: Do not reset idx for NPU tx queues during reset
2bc891cc94e0 wifi: mt76: mt7996: Do not schedule RRO and TxFree queues during reset for NPU
e826923c533a wifi: mt76: mt7996: Store DMA mapped buffer addresses in mt7996_npu_hw_init()
bd9fb7ac9790 wifi: mt76: Enable NPU support for MT7996 devices
c825e8c80a40 wifi: mt76: Remove blank line after mt792x firmware version dmesg
efbbfd5af082 wifi: mt76: mt7925: drop puncturing handling from BSS change path
f5b57ffab5f8 wifi: mt76: mt7925: Skip scan process during suspend.
7ab500f7db73 wifi: mt76: Fix memory leak after mt76_connac_mcu_alloc_sta_req()
4b0df538fb35 wifi: mt76: mt7925: fix tx power setting failure after chip reset
7595227241fc wifi: mt76: mt7921: fix ROC abort flow interruption in mt7921_roc_work
ee961ff91ec1 wifi: mt76: mt7921: fix potential deadlock in mt7921_roc_abort_sync
db0460d6630a wifi: mt76: fix deadlock in remain-on-channel
07ae843cd42d wifi: mt76: mt7996: reset device after MCU message timeout
a5930632e109 wifi: mt76: mt7996: increase txq memory limit to 32 MiB
2596285c6a10 wifi: mt76: fix multi-radio on-channel scanning
86abd922a489 wifi: mt76: support upgrading passive scans to active
093280ae5dcd wifi: mt76: fix backoff fields and max_power calculation
b2fe7f146352 wifi: mt76: mt7921: Replace deprecated PCI function

Signed-off-by: Felix Fietkau <nbd@nbd.name>
package/kernel/mt76/Makefile
package/kernel/mt76/patches/0002-wifi-mt76-mt7996-fix-crash-in-mt7996_tx_prepare_skb.patch [deleted file]
package/kernel/mt76/patches/001-wifi-cfg80211-mac80211-Add-support-to-get-radio-inde.patch [deleted file]

index c94d76456e596b6f514a7373684e9dfb10b0c838..39057b8c2d66bab44bfd8e69d79a135387f78a7c 100644 (file)
@@ -1,16 +1,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mt76
-PKG_RELEASE=2
+PKG_RELEASE=1
 
 PKG_LICENSE:=BSD-3-Clause-Clear
 PKG_LICENSE_FILES:=
 
 PKG_SOURCE_URL:=https://github.com/openwrt/mt76
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_DATE:=2025-11-06
-PKG_SOURCE_VERSION:=eb567bc7f9b692bbf1ddfe31dd740861c58ec85b
-PKG_MIRROR_HASH:=7cfe242a5494cdf5d8e8eea86633778a525717528bcce70aedef96eee5594383
+PKG_SOURCE_DATE:=2026-01-28
+PKG_SOURCE_VERSION:=b2fe7f1463526572f01731db8440c10e393fd09f
+PKG_MIRROR_HASH:=ea2408d5bfa331598bd0f2fb40516ecbd718d3903a4f43ca0a2d1fc66e8fb6b6
 
 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
 PKG_USE_NINJA:=0
diff --git a/package/kernel/mt76/patches/0002-wifi-mt76-mt7996-fix-crash-in-mt7996_tx_prepare_skb.patch b/package/kernel/mt76/patches/0002-wifi-mt76-mt7996-fix-crash-in-mt7996_tx_prepare_skb.patch
deleted file mode 100644 (file)
index 395fde3..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-From f473d66ab595d5f37aedc868bfe407da0a1245c8 Mon Sep 17 00:00:00 2001
-From: Felix Fietkau <nbd@nbd.name>
-Date: Wed, 12 Nov 2025 16:32:44 +0000
-Subject: wifi: mt76: mt7996: fix crash in mt7996_tx_prepare_skb
-
-Add missing NULL pointer check. In mesh mode, sta can be NULL even for
-qosdata frames.
-
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
-Upstream: https://github.com/openwrt/mt76/commit/f473d66ab595d5f37aedc868bfe407da0a1245c8
----
- mt7996/mac.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/mt7996/mac.c
-+++ b/mt7996/mac.c
-@@ -1061,7 +1061,7 @@ int mt7996_tx_prepare_skb(struct mt76_de
-       if (!wcid)
-               wcid = &dev->mt76.global_wcid;
--      if ((is_8023 || ieee80211_is_data_qos(hdr->frame_control)) && sta->mlo &&
-+      if ((is_8023 || ieee80211_is_data_qos(hdr->frame_control)) && sta && sta->mlo &&
-           likely(tx_info->skb->protocol != cpu_to_be16(ETH_P_PAE))) {
-               u8 tid = tx_info->skb->priority & IEEE80211_QOS_CTL_TID_MASK;
diff --git a/package/kernel/mt76/patches/001-wifi-cfg80211-mac80211-Add-support-to-get-radio-inde.patch b/package/kernel/mt76/patches/001-wifi-cfg80211-mac80211-Add-support-to-get-radio-inde.patch
deleted file mode 100644 (file)
index 1ef9039..0000000
+++ /dev/null
@@ -1,406 +0,0 @@
-From 6434ec7449b854fbdf8b1cab9c142e67a0a8a9a4 Mon Sep 17 00:00:00 2001
-From: Roopni Devanathan <quic_rdevanat@quicinc.com>
-Date: Sun, 15 Jun 2025 13:53:09 +0530
-Subject: [PATCH] wifi: cfg80211/mac80211: Add support to get radio index
-
-Currently, per-radio attributes are set on per-phy basis, i.e., all the
-radios present in a wiphy will take attributes values sent from user. But
-each radio in a wiphy can get different values from userspace based on
-its requirement.
-
-To extend support to set per-radio attributes, add support to get radio
-index from userspace. Add an NL attribute - NL80211_ATTR_WIPHY_RADIO_INDEX,
-to get user specified radio index for which attributes should be changed.
-Pass this to individual drivers, so that the drivers can use this radio
-index to change per-radio attributes when necessary. Currently, per-radio
-attributes identified are:
-NL80211_ATTR_WIPHY_TX_POWER_LEVEL
-NL80211_ATTR_WIPHY_ANTENNA_TX
-NL80211_ATTR_WIPHY_ANTENNA_RX
-NL80211_ATTR_WIPHY_RETRY_SHORT
-NL80211_ATTR_WIPHY_RETRY_LONG
-NL80211_ATTR_WIPHY_FRAG_THRESHOLD
-NL80211_ATTR_WIPHY_RTS_THRESHOLD
-NL80211_ATTR_WIPHY_COVERAGE_CLASS
-NL80211_ATTR_TXQ_LIMIT
-NL80211_ATTR_TXQ_MEMORY_LIMIT
-NL80211_ATTR_TXQ_QUANTUM
-
-By default, the radio index is set to -1. This means the attribute should
-be treated as a global configuration. If the user has not specified any
-index, then the radio index passed to individual drivers would be -1. This
-would indicate that the attribute applies to all radios in that wiphy.
-
-Signed-off-by: Roopni Devanathan <quic_rdevanat@quicinc.com>
-Link: https://patch.msgid.link/20250615082312.619639-2-quic_rdevanat@quicinc.com
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
----
- mac80211.c        |  3 ++-
- mt76.h            |  3 ++-
- mt7603/main.c     |  5 +++--
- mt7615/main.c     | 11 +++++++----
- mt76x0/main.c     |  2 +-
- mt76x0/mt76x0.h   |  2 +-
- mt76x02.h         |  4 ++--
- mt76x02_util.c    |  4 ++--
- mt76x2/pci_main.c |  6 +++---
- mt76x2/usb_main.c |  2 +-
- mt7915/main.c     | 13 ++++++++-----
- mt7921/main.c     |  8 +++++---
- mt7925/main.c     |  8 +++++---
- mt792x.h          |  3 ++-
- mt792x_core.c     |  3 ++-
- mt7996/main.c     | 11 +++++++----
- 16 files changed, 53 insertions(+), 35 deletions(-)
-
---- a/mac80211.c
-+++ b/mac80211.c
-@@ -1936,7 +1936,8 @@ void mt76_sw_scan_complete(struct ieee80
- }
- EXPORT_SYMBOL_GPL(mt76_sw_scan_complete);
--int mt76_get_antenna(struct ieee80211_hw *hw, u32 *tx_ant, u32 *rx_ant)
-+int mt76_get_antenna(struct ieee80211_hw *hw, int radio_idx, u32 *tx_ant,
-+                   u32 *rx_ant)
- {
-       struct mt76_phy *phy = hw->priv;
-       struct mt76_dev *dev = phy->dev;
---- a/mt76.h
-+++ b/mt76.h
-@@ -1598,7 +1598,8 @@ int mt76_get_sar_power(struct mt76_phy *
- void mt76_csa_check(struct mt76_dev *dev);
- void mt76_csa_finish(struct mt76_dev *dev);
--int mt76_get_antenna(struct ieee80211_hw *hw, u32 *tx_ant, u32 *rx_ant);
-+int mt76_get_antenna(struct ieee80211_hw *hw, int radio_idx, u32 *tx_ant,
-+                   u32 *rx_ant);
- int mt76_set_tim(struct ieee80211_hw *hw, struct ieee80211_sta *sta, bool set);
- void mt76_insert_ccmp_hdr(struct sk_buff *skb, u8 key_id);
- int mt76_get_rate(struct mt76_dev *dev,
---- a/mt7603/main.c
-+++ b/mt7603/main.c
-@@ -216,7 +216,7 @@ static int mt7603_set_sar_specs(struct i
- }
- static int
--mt7603_config(struct ieee80211_hw *hw, u32 changed)
-+mt7603_config(struct ieee80211_hw *hw, int radio_idx, u32 changed)
- {
-       struct mt7603_dev *dev = hw->priv;
-       int ret = 0;
-@@ -657,7 +657,8 @@ mt7603_sta_rate_tbl_update(struct ieee80
- }
- static void
--mt7603_set_coverage_class(struct ieee80211_hw *hw, s16 coverage_class)
-+mt7603_set_coverage_class(struct ieee80211_hw *hw, int radio_idx,
-+                        s16 coverage_class)
- {
-       struct mt7603_dev *dev = hw->priv;
---- a/mt7615/main.c
-+++ b/mt7615/main.c
-@@ -420,7 +420,7 @@ static int mt7615_set_sar_specs(struct i
-       return mt76_update_channel(phy->mt76);
- }
--static int mt7615_config(struct ieee80211_hw *hw, u32 changed)
-+static int mt7615_config(struct ieee80211_hw *hw, int radio_idx, u32 changed)
- {
-       struct mt7615_dev *dev = mt7615_hw_dev(hw);
-       struct mt7615_phy *phy = mt7615_hw_phy(hw);
-@@ -784,7 +784,8 @@ static void mt7615_tx(struct ieee80211_h
-       mt76_connac_pm_queue_skb(hw, &dev->pm, wcid, skb);
- }
--static int mt7615_set_rts_threshold(struct ieee80211_hw *hw, u32 val)
-+static int mt7615_set_rts_threshold(struct ieee80211_hw *hw, int radio_idx,
-+                                  u32 val)
- {
-       struct mt7615_dev *dev = mt7615_hw_dev(hw);
-       struct mt7615_phy *phy = mt7615_hw_phy(hw);
-@@ -972,7 +973,8 @@ mt7615_offset_tsf(struct ieee80211_hw *h
- }
- static void
--mt7615_set_coverage_class(struct ieee80211_hw *hw, s16 coverage_class)
-+mt7615_set_coverage_class(struct ieee80211_hw *hw, int radio_idx,
-+                        s16 coverage_class)
- {
-       struct mt7615_phy *phy = mt7615_hw_phy(hw);
-       struct mt7615_dev *dev = phy->dev;
-@@ -984,7 +986,8 @@ mt7615_set_coverage_class(struct ieee802
- }
- static int
--mt7615_set_antenna(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant)
-+mt7615_set_antenna(struct ieee80211_hw *hw, int radio_idx,
-+                 u32 tx_ant, u32 rx_ant)
- {
-       struct mt7615_dev *dev = mt7615_hw_dev(hw);
-       struct mt7615_phy *phy = mt7615_hw_phy(hw);
---- a/mt76x0/main.c
-+++ b/mt76x0/main.c
-@@ -57,7 +57,7 @@ out:
- }
- EXPORT_SYMBOL_GPL(mt76x0_set_sar_specs);
--int mt76x0_config(struct ieee80211_hw *hw, u32 changed)
-+int mt76x0_config(struct ieee80211_hw *hw, int radio_idx, u32 changed)
- {
-       struct mt76x02_dev *dev = hw->priv;
---- a/mt76x0/mt76x0.h
-+++ b/mt76x0/mt76x0.h
-@@ -48,7 +48,7 @@ void mt76x0_chip_onoff(struct mt76x02_de
- void mt76x0_mac_stop(struct mt76x02_dev *dev);
--int mt76x0_config(struct ieee80211_hw *hw, u32 changed);
-+int mt76x0_config(struct ieee80211_hw *hw, int radio_idx, u32 changed);
- int mt76x0_set_channel(struct mt76_phy *mphy);
- int mt76x0_set_sar_specs(struct ieee80211_hw *hw,
-                        const struct cfg80211_sar_specs *sar);
---- a/mt76x02.h
-+++ b/mt76x02.h
-@@ -183,8 +183,8 @@ void mt76x02_wdt_work(struct work_struct
- void mt76x02_tx_set_txpwr_auto(struct mt76x02_dev *dev, s8 txpwr);
- void mt76x02_set_tx_ackto(struct mt76x02_dev *dev);
- void mt76x02_set_coverage_class(struct ieee80211_hw *hw,
--                              s16 coverage_class);
--int mt76x02_set_rts_threshold(struct ieee80211_hw *hw, u32 val);
-+                              int radio_idx, s16 coverage_class);
-+int mt76x02_set_rts_threshold(struct ieee80211_hw *hw, int radio_idx, u32 val);
- void mt76x02_remove_hdr_pad(struct sk_buff *skb, int len);
- bool mt76x02_tx_status_data(struct mt76_dev *mdev, u8 *update);
- void mt76x02_queue_rx_skb(struct mt76_dev *mdev, enum mt76_rxq_id q,
---- a/mt76x02_util.c
-+++ b/mt76x02_util.c
-@@ -548,7 +548,7 @@ void mt76x02_set_tx_ackto(struct mt76x02
- EXPORT_SYMBOL_GPL(mt76x02_set_tx_ackto);
- void mt76x02_set_coverage_class(struct ieee80211_hw *hw,
--                              s16 coverage_class)
-+                              int radio_idx, s16 coverage_class)
- {
-       struct mt76x02_dev *dev = hw->priv;
-@@ -559,7 +559,7 @@ void mt76x02_set_coverage_class(struct i
- }
- EXPORT_SYMBOL_GPL(mt76x02_set_coverage_class);
--int mt76x02_set_rts_threshold(struct ieee80211_hw *hw, u32 val)
-+int mt76x02_set_rts_threshold(struct ieee80211_hw *hw, int radio_idx, u32 val)
- {
-       struct mt76x02_dev *dev = hw->priv;
---- a/mt76x2/pci_main.c
-+++ b/mt76x2/pci_main.c
-@@ -54,7 +54,7 @@ int mt76x2e_set_channel(struct mt76_phy
- }
- static int
--mt76x2_config(struct ieee80211_hw *hw, u32 changed)
-+mt76x2_config(struct ieee80211_hw *hw, int radio_idx, u32 changed)
- {
-       struct mt76x02_dev *dev = hw->priv;
-@@ -99,8 +99,8 @@ mt76x2_flush(struct ieee80211_hw *hw, st
- {
- }
--static int mt76x2_set_antenna(struct ieee80211_hw *hw, u32 tx_ant,
--                            u32 rx_ant)
-+static int mt76x2_set_antenna(struct ieee80211_hw *hw, int radio_idx,
-+                            u32 tx_ant, u32 rx_ant)
- {
-       struct mt76x02_dev *dev = hw->priv;
---- a/mt76x2/usb_main.c
-+++ b/mt76x2/usb_main.c
-@@ -50,7 +50,7 @@ int mt76x2u_set_channel(struct mt76_phy
- }
- static int
--mt76x2u_config(struct ieee80211_hw *hw, u32 changed)
-+mt76x2u_config(struct ieee80211_hw *hw, int radio_idx, u32 changed)
- {
-       struct mt76x02_dev *dev = hw->priv;
-       int err = 0;
---- a/mt7915/main.c
-+++ b/mt7915/main.c
-@@ -449,7 +449,8 @@ out:
-       return err;
- }
--static int mt7915_config(struct ieee80211_hw *hw, u32 changed)
-+static int mt7915_config(struct ieee80211_hw *hw, int radio_idx,
-+                       u32 changed)
- {
-       struct mt7915_dev *dev = mt7915_hw_dev(hw);
-       struct mt7915_phy *phy = mt7915_hw_phy(hw);
-@@ -913,7 +914,8 @@ static void mt7915_tx(struct ieee80211_h
-       mt76_tx(mphy, control->sta, wcid, skb);
- }
--static int mt7915_set_rts_threshold(struct ieee80211_hw *hw, u32 val)
-+static int mt7915_set_rts_threshold(struct ieee80211_hw *hw, int radio_idx,
-+                                  u32 val)
- {
-       struct mt7915_dev *dev = mt7915_hw_dev(hw);
-       struct mt7915_phy *phy = mt7915_hw_phy(hw);
-@@ -1109,7 +1111,8 @@ mt7915_offset_tsf(struct ieee80211_hw *h
- }
- static void
--mt7915_set_coverage_class(struct ieee80211_hw *hw, s16 coverage_class)
-+mt7915_set_coverage_class(struct ieee80211_hw *hw, int radio_idx,
-+                        s16 coverage_class)
- {
-       struct mt7915_phy *phy = mt7915_hw_phy(hw);
-       struct mt7915_dev *dev = phy->dev;
-@@ -1121,7 +1124,7 @@ mt7915_set_coverage_class(struct ieee802
- }
- static int
--mt7915_set_antenna(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant)
-+mt7915_set_antenna(struct ieee80211_hw *hw, int radio_idx, u32 tx_ant, u32 rx_ant)
- {
-       struct mt7915_dev *dev = mt7915_hw_dev(hw);
-       struct mt7915_phy *phy = mt7915_hw_phy(hw);
-@@ -1699,7 +1702,7 @@ mt7915_twt_teardown_request(struct ieee8
- }
- static int
--mt7915_set_frag_threshold(struct ieee80211_hw *hw, u32 val)
-+mt7915_set_frag_threshold(struct ieee80211_hw *hw, int radio_idx, u32 val)
- {
-       return 0;
- }
---- a/mt7921/main.c
-+++ b/mt7921/main.c
-@@ -626,7 +626,7 @@ void mt7921_set_runtime_pm(struct mt792x
-       mt76_connac_mcu_set_deep_sleep(&dev->mt76, pm->ds_enable);
- }
--static int mt7921_config(struct ieee80211_hw *hw, u32 changed)
-+static int mt7921_config(struct ieee80211_hw *hw, int radio_idx, u32 changed)
- {
-       struct mt792x_dev *dev = mt792x_hw_dev(hw);
-       struct mt792x_phy *phy = mt792x_hw_phy(hw);
-@@ -915,7 +915,8 @@ void mt7921_mac_sta_remove(struct mt76_d
- }
- EXPORT_SYMBOL_GPL(mt7921_mac_sta_remove);
--static int mt7921_set_rts_threshold(struct ieee80211_hw *hw, u32 val)
-+static int mt7921_set_rts_threshold(struct ieee80211_hw *hw, int radio_idx,
-+                                  u32 val)
- {
-       struct mt792x_dev *dev = mt792x_hw_dev(hw);
-@@ -1096,7 +1097,8 @@ mt7921_stop_sched_scan(struct ieee80211_
- }
- static int
--mt7921_set_antenna(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant)
-+mt7921_set_antenna(struct ieee80211_hw *hw, int radio_idx,
-+                 u32 tx_ant, u32 rx_ant)
- {
-       struct mt792x_dev *dev = mt792x_hw_dev(hw);
-       struct mt792x_phy *phy = mt792x_hw_phy(hw);
---- a/mt7925/main.c
-+++ b/mt7925/main.c
-@@ -758,7 +758,7 @@ void mt7925_set_runtime_pm(struct mt792x
-       mt7925_mcu_set_deep_sleep(dev, pm->ds_enable);
- }
--static int mt7925_config(struct ieee80211_hw *hw, u32 changed)
-+static int mt7925_config(struct ieee80211_hw *hw, int radio_idx, u32 changed)
- {
-       struct mt792x_dev *dev = mt792x_hw_dev(hw);
-       int ret = 0;
-@@ -1219,7 +1219,8 @@ void mt7925_mac_sta_remove(struct mt76_d
- }
- EXPORT_SYMBOL_GPL(mt7925_mac_sta_remove);
--static int mt7925_set_rts_threshold(struct ieee80211_hw *hw, u32 val)
-+static int mt7925_set_rts_threshold(struct ieee80211_hw *hw, int radio_idx,
-+                                  u32 val)
- {
-       struct mt792x_dev *dev = mt792x_hw_dev(hw);
-@@ -1438,7 +1439,8 @@ mt7925_stop_sched_scan(struct ieee80211_
- }
- static int
--mt7925_set_antenna(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant)
-+mt7925_set_antenna(struct ieee80211_hw *hw, int radio_idx,
-+                 u32 tx_ant, u32 rx_ant)
- {
-       struct mt792x_dev *dev = mt792x_hw_dev(hw);
-       struct mt792x_phy *phy = mt792x_hw_phy(hw);
---- a/mt792x.h
-+++ b/mt792x.h
-@@ -413,7 +413,8 @@ void mt792x_sta_statistics(struct ieee80
-                          struct ieee80211_vif *vif,
-                          struct ieee80211_sta *sta,
-                          struct station_info *sinfo);
--void mt792x_set_coverage_class(struct ieee80211_hw *hw, s16 coverage_class);
-+void mt792x_set_coverage_class(struct ieee80211_hw *hw, int radio_idx,
-+                             s16 coverage_class);
- void mt792x_dma_cleanup(struct mt792x_dev *dev);
- int mt792x_dma_enable(struct mt792x_dev *dev);
- int mt792x_wpdma_reset(struct mt792x_dev *dev, bool force);
---- a/mt792x_core.c
-+++ b/mt792x_core.c
-@@ -601,7 +601,8 @@ void mt792x_sta_statistics(struct ieee80
- }
- EXPORT_SYMBOL_GPL(mt792x_sta_statistics);
--void mt792x_set_coverage_class(struct ieee80211_hw *hw, s16 coverage_class)
-+void mt792x_set_coverage_class(struct ieee80211_hw *hw, int radio_idx,
-+                             s16 coverage_class)
- {
-       struct mt792x_phy *phy = mt792x_hw_phy(hw);
-       struct mt792x_dev *dev = phy->dev;
---- a/mt7996/main.c
-+++ b/mt7996/main.c
-@@ -644,7 +644,7 @@ static int mt7996_set_key(struct ieee802
-       return err;
- }
--static int mt7996_config(struct ieee80211_hw *hw, u32 changed)
-+static int mt7996_config(struct ieee80211_hw *hw, int radio_idx, u32 changed)
- {
-       return 0;
- }
-@@ -1370,7 +1370,8 @@ unlock:
-       rcu_read_unlock();
- }
--static int mt7996_set_rts_threshold(struct ieee80211_hw *hw, u32 val)
-+static int mt7996_set_rts_threshold(struct ieee80211_hw *hw, int radio_idx,
-+                                  u32 val)
- {
-       struct mt7996_dev *dev = mt7996_hw_dev(hw);
-       int i, ret = 0;
-@@ -1590,7 +1591,8 @@ unlock:
- }
- static void
--mt7996_set_coverage_class(struct ieee80211_hw *hw, s16 coverage_class)
-+mt7996_set_coverage_class(struct ieee80211_hw *hw, int radio_idx,
-+                        s16 coverage_class)
- {
-       struct mt7996_dev *dev = mt7996_hw_dev(hw);
-       struct mt7996_phy *phy;
-@@ -1604,7 +1606,8 @@ mt7996_set_coverage_class(struct ieee802
- }
- static int
--mt7996_set_antenna(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant)
-+mt7996_set_antenna(struct ieee80211_hw *hw, int radio_idx,
-+                 u32 tx_ant, u32 rx_ant)
- {
-       struct mt7996_dev *dev = mt7996_hw_dev(hw);
-       int i;