[rdkb][common][bsp][Refactor and sync wifi from openwrt]
[Description]
e6d9f8b2 [MAC80211][misc][Add Filogic 880 Non-MLO SDK Release. Add missing firmwares]
9def0c8f [MAC80211][WiFi7][ucode][Not to remove or create interface for non-primary MLD link]
c77412af [MAC80211][WiFi7][Misc][Add MLD configuration options]
d0bc5c22 [MAC80211][misc][Add Filogic 880 Non-MLO SDK Release]
01817e1f [mac80211][WiFi7][misc][Fix patch fail]
d6a80bd6 [MAC80211][WiFi6][Misc][Add lpi, duplicate mode and sku index]
0977e5a6 [MAC80211][WiFi6][hostapd][Add txpower vendor command]
2e2eb49f [MAC80211][WiFi6][mt76][Add support for lpi and duplicate mode]
c4856a8a [MAC80211][WiFi6][core][Add sta info flush and send deauth during DFS channel switch]
c586f5f5 [MAC80211][WiFi6][mt76][rebase patches]
fabcdbbd [MAC80211][WiFi6][mt76][Support thermal recal debug command]
1cba3dbf [MAC80211][WiFi6][mt76][Fix the fw version of wm and wa are on contrary]
99500b19 [MAC80211][WiFi6][core][Revert sending deauth frame for DFS channel switch]
[Release-log]
Change-Id: I357f4a5fec68ce0210927e1b4f172fcd3196139d
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0001-mtk-Revert-wifi-mt76-mt7996-fill-txd-by-host-driver.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0001-mtk-Revert-wifi-mt76-mt7996-fill-txd-by-host-driver.patch
index 634f7b5..427cc70 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0001-mtk-Revert-wifi-mt76-mt7996-fill-txd-by-host-driver.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0001-mtk-Revert-wifi-mt76-mt7996-fill-txd-by-host-driver.patch
@@ -1,7 +1,7 @@
From 79c8a28d435df3a9b0da8145675ea8d70a4de463 Mon Sep 17 00:00:00 2001
From: Shayne Chen <shayne.chen@mediatek.com>
Date: Tue, 19 Sep 2023 11:21:23 +0800
-Subject: [PATCH 01/23] mtk: Revert "wifi: mt76: mt7996: fill txd by host
+Subject: [PATCH 01/25] mtk: Revert "wifi: mt76: mt7996: fill txd by host
driver"
This reverts commit 325a0c4931990d553487024c4f76c776492bdcc2.
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0002-mtk-wifi-mt76-connac-use-peer-address-for-station-BM.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0002-mtk-wifi-mt76-connac-use-peer-address-for-station-BM.patch
index bb26142..f7e8cb0 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0002-mtk-wifi-mt76-connac-use-peer-address-for-station-BM.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0002-mtk-wifi-mt76-connac-use-peer-address-for-station-BM.patch
@@ -1,7 +1,7 @@
From b7325781bb79f1ffa9d3f5a9ea9f79a59aa92e41 Mon Sep 17 00:00:00 2001
From: Shayne Chen <shayne.chen@mediatek.com>
Date: Thu, 24 Aug 2023 18:38:11 +0800
-Subject: [PATCH 02/23] mtk: wifi: mt76: connac: use peer address for station
+Subject: [PATCH 02/25] mtk: wifi: mt76: connac: use peer address for station
BMC entry
Set peer address and aid for the BMC wtbl of station interface. For some
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0003-mtk-wifi-mt76-mt7996-disable-rx-header-translation-f.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0003-mtk-wifi-mt76-mt7996-disable-rx-header-translation-f.patch
index 955382e..dde3572 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0003-mtk-wifi-mt76-mt7996-disable-rx-header-translation-f.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0003-mtk-wifi-mt76-mt7996-disable-rx-header-translation-f.patch
@@ -1,7 +1,7 @@
From 70f582db962c977a71d3d618081f894c0e658046 Mon Sep 17 00:00:00 2001
From: Shayne Chen <shayne.chen@mediatek.com>
Date: Tue, 5 Sep 2023 17:31:49 +0800
-Subject: [PATCH 03/23] mtk: wifi: mt76: mt7996: disable rx header translation
+Subject: [PATCH 03/25] mtk: wifi: mt76: mt7996: disable rx header translation
for BMC entry
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0004-mtk-wifi-mt76-check-txs-format-before-getting-skb-by.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0004-mtk-wifi-mt76-check-txs-format-before-getting-skb-by.patch
index 314c0b3..930622b 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0004-mtk-wifi-mt76-check-txs-format-before-getting-skb-by.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0004-mtk-wifi-mt76-check-txs-format-before-getting-skb-by.patch
@@ -1,7 +1,7 @@
From 87a3fa3c38e1b840cebe5f3b088a0ff67e5920f0 Mon Sep 17 00:00:00 2001
From: Peter Chiu <chui-hao.chiu@mediatek.com>
Date: Thu, 7 Dec 2023 11:17:56 +0800
-Subject: [PATCH 04/23] mtk: wifi: mt76: check txs format before getting skb by
+Subject: [PATCH 04/25] mtk: wifi: mt76: check txs format before getting skb by
pid
The PPDU TxS does not include the error bit so it cannot use to report
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0005-mtk-wifi-mt76-mt7996-fix-some-twt-issues.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0005-mtk-wifi-mt76-mt7996-fix-some-twt-issues.patch
index c2dc2f2..63f5b88 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0005-mtk-wifi-mt76-mt7996-fix-some-twt-issues.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0005-mtk-wifi-mt76-mt7996-fix-some-twt-issues.patch
@@ -1,7 +1,7 @@
From 651d207a15f2bc281edf3c92236b88853fc41006 Mon Sep 17 00:00:00 2001
From: Peter Chiu <chui-hao.chiu@mediatek.com>
Date: Wed, 8 Nov 2023 10:17:10 +0800
-Subject: [PATCH 05/23] mtk: wifi: mt76: mt7996: fix some twt issues
+Subject: [PATCH 05/25] mtk: wifi: mt76: mt7996: fix some twt issues
1. Reject twt flows with the same parameters to prevent potential issues
causing by duplicated establishment.
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0006-mtk-wifi-mt76-mt7996-disable-AMSDU-for-non-data-fram.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0006-mtk-wifi-mt76-mt7996-disable-AMSDU-for-non-data-fram.patch
index 6b813fd..0fe3af0 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0006-mtk-wifi-mt76-mt7996-disable-AMSDU-for-non-data-fram.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0006-mtk-wifi-mt76-mt7996-disable-AMSDU-for-non-data-fram.patch
@@ -1,7 +1,7 @@
From abd4da501a5b6d4159f8ef3dbcfc9f646ecc8a40 Mon Sep 17 00:00:00 2001
From: Peter Chiu <chui-hao.chiu@mediatek.com>
Date: Mon, 6 Nov 2023 20:17:16 +0800
-Subject: [PATCH 06/23] mtk: wifi: mt76: mt7996: disable AMSDU for non-data
+Subject: [PATCH 06/25] mtk: wifi: mt76: mt7996: disable AMSDU for non-data
frames
Mgmt. frames with amsdu may lead to unexpected errors.
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0007-mtk-wifi-mt76-mt7996-fix-incorrect-interpretation-of.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0007-mtk-wifi-mt76-mt7996-fix-incorrect-interpretation-of.patch
index 36cd7ee..73f4337 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0007-mtk-wifi-mt76-mt7996-fix-incorrect-interpretation-of.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0007-mtk-wifi-mt76-mt7996-fix-incorrect-interpretation-of.patch
@@ -1,7 +1,7 @@
From 27ad6ee9498d3293dca55d04af1fba221460d74c Mon Sep 17 00:00:00 2001
From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
Date: Mon, 4 Dec 2023 15:39:00 +0800
-Subject: [PATCH 07/23] mtk: wifi: mt76: mt7996: fix incorrect interpretation
+Subject: [PATCH 07/25] mtk: wifi: mt76: mt7996: fix incorrect interpretation
of EHT MCS and NSS capabilities
The EHT-MCS Map (20 MHz-Only Non-AP STA) subfield of the Supported EHT-MCS And NSS Set field in the EHT Capabilities element is not present for AP. Therefore, STA should not parse the subfield.
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0008-mtk-wifi-mt76-mt7992-add-TLV-sanity-check.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0008-mtk-wifi-mt76-mt7992-add-TLV-sanity-check.patch
index 110888b..31badbe 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0008-mtk-wifi-mt76-mt7992-add-TLV-sanity-check.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0008-mtk-wifi-mt76-mt7992-add-TLV-sanity-check.patch
@@ -1,7 +1,7 @@
From 6bef1f8c48baa71a2c7b4bc22e30915fe0651b92 Mon Sep 17 00:00:00 2001
From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
Date: Thu, 9 Nov 2023 10:35:13 +0800
-Subject: [PATCH 08/23] mtk: wifi: mt76: mt7992: add TLV sanity check
+Subject: [PATCH 08/25] mtk: wifi: mt76: mt7992: add TLV sanity check
If TLV involves beacon content, its length might not be 4-byte aligned.
Therefore, 4-byte alignment check and padding, if necessary, are performed before sending TLV to FW.
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0009-mtk-wifi-mt76-mt7996-fix-HE-beamformer-phy-cap-for-s.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0009-mtk-wifi-mt76-mt7996-fix-HE-beamformer-phy-cap-for-s.patch
index 8f6f7ad..9d38428 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0009-mtk-wifi-mt76-mt7996-fix-HE-beamformer-phy-cap-for-s.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0009-mtk-wifi-mt76-mt7996-fix-HE-beamformer-phy-cap-for-s.patch
@@ -1,7 +1,7 @@
From cf403f86913aa78ea951d0dc11b89409f257c01b Mon Sep 17 00:00:00 2001
From: Howard Hsu <howard-yh.hsu@mediatek.com>
Date: Thu, 23 Nov 2023 20:06:26 +0800
-Subject: [PATCH 09/23] mtk: wifi: mt76: mt7996: fix HE beamformer phy cap for
+Subject: [PATCH 09/25] mtk: wifi: mt76: mt7996: fix HE beamformer phy cap for
station vif
Without this commit, station mode will not set all needed bit in HE Phy
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0010-mtk-wifi-mt76-mt7996-Let-MAC80211-handles-GCMP-IGTK.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0010-mtk-wifi-mt76-mt7996-Let-MAC80211-handles-GCMP-IGTK.patch
index 96ee97d..891bf4c 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0010-mtk-wifi-mt76-mt7996-Let-MAC80211-handles-GCMP-IGTK.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0010-mtk-wifi-mt76-mt7996-Let-MAC80211-handles-GCMP-IGTK.patch
@@ -1,7 +1,7 @@
From e154e95bd733a456c5551ae89ef5673d57941b2a Mon Sep 17 00:00:00 2001
From: Michael-CY Lee <michael-cy.lee@mediatek.com>
Date: Fri, 8 Dec 2023 16:23:37 +0800
-Subject: [PATCH 10/23] mtk: wifi: mt76: mt7996: Let MAC80211 handles GCMP IGTK
+Subject: [PATCH 10/25] mtk: wifi: mt76: mt7996: Let MAC80211 handles GCMP IGTK
Because the FW does not support IGTK in GCMP mode, mt76 returns "not
support" to mac80211, and mac80211 will handle the integrity calculation
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0011-mtk-wifi-mt76-mt7996-fix-efuse-read-issue.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0011-mtk-wifi-mt76-mt7996-fix-efuse-read-issue.patch
index b24231f..9b2fbb8 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0011-mtk-wifi-mt76-mt7996-fix-efuse-read-issue.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0011-mtk-wifi-mt76-mt7996-fix-efuse-read-issue.patch
@@ -1,7 +1,7 @@
From 68cbc6f4aa32410876f18d54f053b4f928b4b981 Mon Sep 17 00:00:00 2001
From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Date: Wed, 29 Nov 2023 10:55:15 +0800
-Subject: [PATCH 11/23] mtk: wifi: mt76: mt7996: fix efuse read issue
+Subject: [PATCH 11/25] mtk: wifi: mt76: mt7996: fix efuse read issue
The efuse data starts at 48 bytes instead of 64 bytes in the returned
skb.
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0012-mtk-wifi-mt76-mt7996-enable-ser-query.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0012-mtk-wifi-mt76-mt7996-enable-ser-query.patch
index 2ca9151..630a637 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0012-mtk-wifi-mt76-mt7996-enable-ser-query.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0012-mtk-wifi-mt76-mt7996-enable-ser-query.patch
@@ -1,7 +1,7 @@
From ca4d4dc688f96320065b35c9b473e378dddef56b Mon Sep 17 00:00:00 2001
From: Peter Chiu <chui-hao.chiu@mediatek.com>
Date: Mon, 30 Oct 2023 20:19:41 +0800
-Subject: [PATCH 12/23] mtk: wifi: mt76: mt7996: enable ser query
+Subject: [PATCH 12/25] mtk: wifi: mt76: mt7996: enable ser query
Do not return -EINVAL when action is UNI_CMD_SER_QUERY for user
to dump SER information from FW.
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0013-mtk-wifi-mt76-mt7996-init-rcpi-to-use-better-init-mc.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0013-mtk-wifi-mt76-mt7996-init-rcpi-to-use-better-init-mc.patch
index 8eded5f..79499c0 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0013-mtk-wifi-mt76-mt7996-init-rcpi-to-use-better-init-mc.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0013-mtk-wifi-mt76-mt7996-init-rcpi-to-use-better-init-mc.patch
@@ -1,7 +1,7 @@
From c59e5d1ee99fbe46418efb2eacb6755db54b8e57 Mon Sep 17 00:00:00 2001
From: Peter Chiu <chui-hao.chiu@mediatek.com>
Date: Mon, 13 Nov 2023 20:15:39 +0800
-Subject: [PATCH 13/23] mtk: wifi: mt76: mt7996: init rcpi to use better init
+Subject: [PATCH 13/25] mtk: wifi: mt76: mt7996: init rcpi to use better init
mcs
Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0014-mtk-wifi-mt76-mt7996-Fix-TGax-HE-4.51.1_24G-fail.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0014-mtk-wifi-mt76-mt7996-Fix-TGax-HE-4.51.1_24G-fail.patch
index 5d24464..f8bff26 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0014-mtk-wifi-mt76-mt7996-Fix-TGax-HE-4.51.1_24G-fail.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0014-mtk-wifi-mt76-mt7996-Fix-TGax-HE-4.51.1_24G-fail.patch
@@ -1,7 +1,7 @@
From 73aed7092e7da26eaf17b1e29bdb94222e073e94 Mon Sep 17 00:00:00 2001
From: mtk27745 <rex.lu@mediatek.com>
Date: Fri, 17 Nov 2023 11:01:04 +0800
-Subject: [PATCH 14/23] mtk: wifi: mt76: mt7996: Fix TGax HE-4.51.1_24G fail
+Subject: [PATCH 14/25] mtk: wifi: mt76: mt7996: Fix TGax HE-4.51.1_24G fail
According to sta capability to decide to enable/disable wed pao when create ppe entry.
without this patch, TGax HE-4.51.1_24G will test fail
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0015-mtk-wifi-mt76-mt7996-remove-TxS-queue-setting.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0015-mtk-wifi-mt76-mt7996-remove-TxS-queue-setting.patch
new file mode 100644
index 0000000..42575e9
--- /dev/null
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0015-mtk-wifi-mt76-mt7996-remove-TxS-queue-setting.patch
@@ -0,0 +1,31 @@
+From bc44fe965f13651643513532a746aca9ed04362b Mon Sep 17 00:00:00 2001
+From: Peter Chiu <chui-hao.chiu@mediatek.com>
+Date: Fri, 22 Dec 2023 17:01:36 +0800
+Subject: [PATCH 15/25] mtk: wifi: mt76: mt7996: remove TxS queue setting
+
+Remove TxS queue setting which is set by FW.
+
+Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
+---
+ mt7996/init.c | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/mt7996/init.c b/mt7996/init.c
+index 50dcce9f..1c464e2f 100644
+--- a/mt7996/init.c
++++ b/mt7996/init.c
+@@ -506,11 +506,6 @@ void mt7996_mac_init(struct mt7996_dev *dev)
+ mt76_rmw_field(dev, i, MT_LED_GPIO_SEL_MASK, 4);
+ }
+
+- /* txs report queue */
+- mt76_rmw_field(dev, MT_DMA_TCRF1(0), MT_DMA_TCRF1_QIDX, 0);
+- mt76_rmw_field(dev, MT_DMA_TCRF1(1), MT_DMA_TCRF1_QIDX, 6);
+- mt76_rmw_field(dev, MT_DMA_TCRF1(2), MT_DMA_TCRF1_QIDX, 0);
+-
+ /* rro module init */
+ if (is_mt7996(&dev->mt76))
+ mt7996_mcu_set_rro(dev, UNI_RRO_SET_PLATFORM_TYPE, 2);
+--
+2.18.0
+
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0015-mtk-wifi-mt76-mt7996-add-eagle-default-bin-of-differ.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0016-mtk-wifi-mt76-mt7996-add-eagle-default-bin-of-differ.patch
similarity index 92%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0015-mtk-wifi-mt76-mt7996-add-eagle-default-bin-of-differ.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0016-mtk-wifi-mt76-mt7996-add-eagle-default-bin-of-differ.patch
index b7decbf..2e1869a 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0015-mtk-wifi-mt76-mt7996-add-eagle-default-bin-of-differ.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0016-mtk-wifi-mt76-mt7996-add-eagle-default-bin-of-differ.patch
@@ -1,7 +1,7 @@
-From 776233df7a3216546d93bdaf6160390736452f2a Mon Sep 17 00:00:00 2001
+From db3119c60343e526a18e668a3b600c9c5feaa825 Mon Sep 17 00:00:00 2001
From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Date: Thu, 20 Jul 2023 17:27:22 +0800
-Subject: [PATCH 15/23] mtk: wifi: mt76: mt7996: add eagle default bin of
+Subject: [PATCH 16/25] mtk: wifi: mt76: mt7996: add eagle default bin of
different sku variants
Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
@@ -25,10 +25,10 @@
case 0x7992:
return MT7992_EEPROM_DEFAULT;
diff --git a/mt7996/init.c b/mt7996/init.c
-index 50dcce9f..d8946a86 100644
+index 1c464e2f..1b8a1bf6 100644
--- a/mt7996/init.c
+++ b/mt7996/init.c
-@@ -902,6 +902,10 @@ static int mt7996_init_hardware(struct mt7996_dev *dev)
+@@ -897,6 +897,10 @@ static int mt7996_init_hardware(struct mt7996_dev *dev)
INIT_LIST_HEAD(&dev->wed_rro.poll_list);
spin_lock_init(&dev->wed_rro.lock);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0016-mtk-wifi-mt76-mt7996-add-kite-fw-default-bin-for-dif.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0017-mtk-wifi-mt76-mt7996-add-kite-fw-default-bin-for-dif.patch
similarity index 88%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0016-mtk-wifi-mt76-mt7996-add-kite-fw-default-bin-for-dif.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0017-mtk-wifi-mt76-mt7996-add-kite-fw-default-bin-for-dif.patch
index 7c38f4b..dddfb1e 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0016-mtk-wifi-mt76-mt7996-add-kite-fw-default-bin-for-dif.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0017-mtk-wifi-mt76-mt7996-add-kite-fw-default-bin-for-dif.patch
@@ -1,7 +1,7 @@
-From dac8a0fc54f9b171dbb57e7559db7c5245e52bbf Mon Sep 17 00:00:00 2001
+From 43d2e883f22101832564f6170fcdceb0efd7aa69 Mon Sep 17 00:00:00 2001
From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Date: Fri, 21 Jul 2023 10:41:28 +0800
-Subject: [PATCH 16/23] mtk: wifi: mt76: mt7996: add kite fw & default bin for
+Subject: [PATCH 17/25] mtk: wifi: mt76: mt7996: add kite fw & default bin for
different sku variants
Add fem type (2i5i, 2i5e, 2e5e, ...)
@@ -15,20 +15,30 @@
so we add this efuse check to avoid 7976c recognition failure.
Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
+
+GPIO ADie Combination of BE5040 should be considered as don't care
+instead of 0
+
+Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
+
+Only check eeprom chip id when fem type (= MT7996_FEM_UNSET) is not determined yet
+Without this fix, mt7996_check_eeprom will return EINVAL in mt7996_eeprom_check_fw_mode
+
+Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
---
- mt7996/eeprom.c | 35 +++++++++++++++++++++++++++--
+ mt7996/eeprom.c | 38 +++++++++++++++++++++++++++++--
mt7996/eeprom.h | 1 +
- mt7996/init.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++
+ mt7996/init.c | 59 +++++++++++++++++++++++++++++++++++++++++++++++++
mt7996/mcu.c | 7 +++++-
- mt7996/mt7996.h | 49 ++++++++++++++++++++++++++---------------
+ mt7996/mt7996.h | 49 +++++++++++++++++++++++++---------------
mt7996/regs.h | 7 ++++++
- 6 files changed, 136 insertions(+), 21 deletions(-)
+ 6 files changed, 140 insertions(+), 21 deletions(-)
diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index 7505a8b7..c8fa87ef 100644
+index 7505a8b7..3260d1fe 100644
--- a/mt7996/eeprom.c
+++ b/mt7996/eeprom.c
-@@ -9,14 +9,30 @@
+@@ -9,14 +9,33 @@
static int mt7996_check_eeprom(struct mt7996_dev *dev)
{
@@ -46,6 +56,9 @@
return is_mt7996(&dev->mt76) ? 0 : -EINVAL;
case 0x7992:
- return is_mt7992(&dev->mt76) ? 0 : -EINVAL;
++ if (dev->fem_type == MT7996_FEM_UNSET)
++ return is_mt7992(&dev->mt76) ? 0 : -EINVAL;
++
+ if (fem[0] == FEM_EXT && fem[1] == FEM_EXT)
+ fem_type = MT7996_FEM_EXT;
+ else if (fem[0] == FEM_INT && fem[1] == FEM_INT)
@@ -60,7 +73,7 @@
default:
return -EINVAL;
}
-@@ -30,7 +46,18 @@ static char *mt7996_eeprom_name(struct mt7996_dev *dev)
+@@ -30,7 +49,18 @@ static char *mt7996_eeprom_name(struct mt7996_dev *dev)
return MT7996_EEPROM_DEFAULT_404;
return MT7996_EEPROM_DEFAULT;
case 0x7992:
@@ -80,7 +93,7 @@
default:
return MT7996_EEPROM_DEFAULT;
}
-@@ -221,6 +248,10 @@ int mt7996_eeprom_init(struct mt7996_dev *dev)
+@@ -221,6 +251,10 @@ int mt7996_eeprom_init(struct mt7996_dev *dev)
{
int ret;
@@ -104,10 +117,10 @@
#define MT_EE_WIFI_CONF1_TX_PATH_BAND0 GENMASK(5, 3)
#define MT_EE_WIFI_CONF2_TX_PATH_BAND1 GENMASK(2, 0)
diff --git a/mt7996/init.c b/mt7996/init.c
-index d8946a86..dae640e9 100644
+index 1b8a1bf6..5db85939 100644
--- a/mt7996/init.c
+++ b/mt7996/init.c
-@@ -887,6 +887,64 @@ out:
+@@ -882,6 +882,65 @@ out:
#endif
}
@@ -133,11 +146,11 @@
+ case 0x7992:
+ adie_comb = FIELD_GET(MT_PAD_GPIO_ADIE_COMB_7992, val);
+ adie_num = FIELD_GET(MT_PAD_GPIO_ADIE_NUM_7992, val);
-+ adie_idx = !!adie_comb;
-+ if (adie_comb)
-+ dev->chip_sku = MT7992_SKU_44;
-+ else if (adie_num)
++ adie_idx = !adie_num;
++ if (adie_num)
+ dev->chip_sku = MT7992_SKU_23;
++ else if (adie_comb)
++ dev->chip_sku = MT7992_SKU_44;
+ else
+ dev->chip_sku = MT7992_SKU_24;
+ break;
@@ -158,7 +171,8 @@
+ (adie_chip_ver == MT7976C_HL_CHIP_VER) ||
+ (adie_chip_ver == MT7976C_PS_CHIP_VER) ||
+ (buf[idx] == MT7976C_EFUSE_VALUE);
-+ if (adie_chip_id == 0x7975 || (adie_chip_id == 0x7976 && is_7976c))
++ if (adie_chip_id == 0x7975 || (adie_chip_id == 0x7976 && is_7976c) ||
++ adie_chip_id == 0x7979)
+ dev->fem_type = MT7996_FEM_INT;
+ else if (adie_chip_id == 0x7977 && adie_comb == 1)
+ dev->fem_type = MT7996_FEM_MIX;
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0017-mtk-wifi-mt76-mt7996-add-lock-for-indirect-register-.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0018-mtk-wifi-mt76-mt7996-add-lock-for-indirect-register-.patch
similarity index 97%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0017-mtk-wifi-mt76-mt7996-add-lock-for-indirect-register-.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0018-mtk-wifi-mt76-mt7996-add-lock-for-indirect-register-.patch
index 0569291..df69921 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0017-mtk-wifi-mt76-mt7996-add-lock-for-indirect-register-.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0018-mtk-wifi-mt76-mt7996-add-lock-for-indirect-register-.patch
@@ -1,7 +1,7 @@
-From f6787ee5ac1f581217a0177d830c395c23183046 Mon Sep 17 00:00:00 2001
+From 6c7a12a76766fba5030fcbc363dcdd9bb15f95b4 Mon Sep 17 00:00:00 2001
From: Shayne Chen <shayne.chen@mediatek.com>
Date: Mon, 3 Jul 2023 22:38:43 +0800
-Subject: [PATCH 17/23] mtk: wifi: mt76: mt7996: add lock for indirect register
+Subject: [PATCH 18/25] mtk: wifi: mt76: mt7996: add lock for indirect register
access
Some races were observed during indirect register access, fix this
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0018-mtk-wifi-mt76-connac-set-correct-muar_idx-for-connac.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0019-mtk-wifi-mt76-connac-set-correct-muar_idx-for-connac.patch
similarity index 90%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0018-mtk-wifi-mt76-connac-set-correct-muar_idx-for-connac.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0019-mtk-wifi-mt76-connac-set-correct-muar_idx-for-connac.patch
index 53c8e6d..90af1e3 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0018-mtk-wifi-mt76-connac-set-correct-muar_idx-for-connac.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0019-mtk-wifi-mt76-connac-set-correct-muar_idx-for-connac.patch
@@ -1,7 +1,7 @@
-From 1049c0632347ba53ab8ba1d9f195377e135c9856 Mon Sep 17 00:00:00 2001
+From 72e254cac7eac0e0e822b6c12148f0208688d131 Mon Sep 17 00:00:00 2001
From: Shayne Chen <shayne.chen@mediatek.com>
Date: Thu, 16 Feb 2023 13:53:14 +0800
-Subject: [PATCH 18/23] mtk: wifi: mt76: connac: set correct muar_idx for
+Subject: [PATCH 19/25] mtk: wifi: mt76: connac: set correct muar_idx for
connac3 chipset
Set the muar_idx to 0xe for the hw bcast/mcast station entry of connac3
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0019-mtk-wifi-mt76-mt7996-ACS-channel-time-too-long-on-du.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0020-mtk-wifi-mt76-mt7996-ACS-channel-time-too-long-on-du.patch
similarity index 94%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0019-mtk-wifi-mt76-mt7996-ACS-channel-time-too-long-on-du.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0020-mtk-wifi-mt76-mt7996-ACS-channel-time-too-long-on-du.patch
index 4cf6472..fd06410 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0019-mtk-wifi-mt76-mt7996-ACS-channel-time-too-long-on-du.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0020-mtk-wifi-mt76-mt7996-ACS-channel-time-too-long-on-du.patch
@@ -1,7 +1,7 @@
-From ce1d4b6bce414015a9e889f28eafc06a57c4e1a7 Mon Sep 17 00:00:00 2001
+From da3d42e039ac3a62fda4f262811ff369df15e609 Mon Sep 17 00:00:00 2001
From: "fancy.liu" <fancy.liu@mediatek.com>
Date: Tue, 14 Nov 2023 10:13:24 +0800
-Subject: [PATCH 19/23] mtk: wifi: mt76: mt7996: ACS channel time too long on
+Subject: [PATCH 20/25] mtk: wifi: mt76: mt7996: ACS channel time too long on
duty channel
Step and issue:
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0020-mtk-wifi-mt76-mt7996-Fixed-null-pointer-dereference-.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0021-mtk-wifi-mt76-mt7996-Fixed-null-pointer-dereference-.patch
similarity index 90%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0020-mtk-wifi-mt76-mt7996-Fixed-null-pointer-dereference-.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0021-mtk-wifi-mt76-mt7996-Fixed-null-pointer-dereference-.patch
index 8a6dad9..0ce194a 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0020-mtk-wifi-mt76-mt7996-Fixed-null-pointer-dereference-.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0021-mtk-wifi-mt76-mt7996-Fixed-null-pointer-dereference-.patch
@@ -1,7 +1,7 @@
-From 7de61119663e923bc39f777545f39b489f9f4715 Mon Sep 17 00:00:00 2001
+From f0ec3acdda2dd199e0eddcf0c5ae2dd8b305b547 Mon Sep 17 00:00:00 2001
From: MeiChia Chiu <meichia.chiu@mediatek.com>
Date: Thu, 26 Oct 2023 10:08:10 +0800
-Subject: [PATCH 20/23] mtk: wifi: mt76: mt7996: Fixed null pointer dereference
+Subject: [PATCH 21/25] mtk: wifi: mt76: mt7996: Fixed null pointer dereference
issue
Without this patch, when the station is still in Authentication stage and
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0021-mtk-wifi-mt76-add-sanity-check-to-prevent-kernel-cra.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0022-mtk-wifi-mt76-add-sanity-check-to-prevent-kernel-cra.patch
similarity index 87%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0021-mtk-wifi-mt76-add-sanity-check-to-prevent-kernel-cra.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0022-mtk-wifi-mt76-add-sanity-check-to-prevent-kernel-cra.patch
index b12d5ed..937cee2 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0021-mtk-wifi-mt76-add-sanity-check-to-prevent-kernel-cra.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0022-mtk-wifi-mt76-add-sanity-check-to-prevent-kernel-cra.patch
@@ -1,7 +1,7 @@
-From 56cd8feb0565b8eedfae7c42dba8b5e374dc71a8 Mon Sep 17 00:00:00 2001
+From 947abea1e4134b5a3f00feba7276b194089f13d0 Mon Sep 17 00:00:00 2001
From: Peter Chiu <chui-hao.chiu@mediatek.com>
Date: Mon, 30 Oct 2023 11:06:19 +0800
-Subject: [PATCH 21/23] mtk: wifi: mt76: add sanity check to prevent kernel
+Subject: [PATCH 22/25] mtk: wifi: mt76: add sanity check to prevent kernel
crash
wcid may not be initialized when mac80211 calls mt76.tx and it would lead to
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0022-mtk-wifi-mt76-mt7996-add-firmware-WA-s-coredump.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0023-mtk-wifi-mt76-mt7996-add-firmware-WA-s-coredump.patch
similarity index 99%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0022-mtk-wifi-mt76-mt7996-add-firmware-WA-s-coredump.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0023-mtk-wifi-mt76-mt7996-add-firmware-WA-s-coredump.patch
index 5f22e8e..c8ffc65 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0022-mtk-wifi-mt76-mt7996-add-firmware-WA-s-coredump.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0023-mtk-wifi-mt76-mt7996-add-firmware-WA-s-coredump.patch
@@ -1,7 +1,7 @@
-From 8795ba8431696203ecd0b5bbf37ad64302250a29 Mon Sep 17 00:00:00 2001
+From b78ba04740ae976f2a6ce9703c97430667be170a Mon Sep 17 00:00:00 2001
From: Bo Jiao <Bo.Jiao@mediatek.com>
Date: Fri, 19 May 2023 14:16:50 +0800
-Subject: [PATCH 22/23] mtk: wifi: mt76: mt7996: add firmware WA's coredump.
+Subject: [PATCH 23/25] mtk: wifi: mt76: mt7996: add firmware WA's coredump.
Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com>
---
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0023-mtk-wifi-mt76-mt7996-add-preamble-puncture-support-f.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0024-mtk-wifi-mt76-mt7996-add-preamble-puncture-support-f.patch
similarity index 95%
rename from recipes-wifi/linux-mt76/files/patches-3.x/0023-mtk-wifi-mt76-mt7996-add-preamble-puncture-support-f.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/0024-mtk-wifi-mt76-mt7996-add-preamble-puncture-support-f.patch
index 9e70644..eb45ff1 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0023-mtk-wifi-mt76-mt7996-add-preamble-puncture-support-f.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0024-mtk-wifi-mt76-mt7996-add-preamble-puncture-support-f.patch
@@ -1,7 +1,7 @@
-From d83b800e9615b4d861fd79c5f71e26cd8d0c4141 Mon Sep 17 00:00:00 2001
+From 5fd32e152d666b1385953a42193ca0063dc78a10 Mon Sep 17 00:00:00 2001
From: Howard Hsu <howard-yh.hsu@mediatek.com>
Date: Fri, 22 Sep 2023 10:32:37 +0800
-Subject: [PATCH 23/23] mtk: wifi: mt76: mt7996: add preamble puncture support
+Subject: [PATCH 24/25] mtk: wifi: mt76: mt7996: add preamble puncture support
for mt7996
Add support configure preamble puncture feature through mcu commands.
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0025-mtk-wifi-mt76-mt7996-enable-hw-cso-module.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0025-mtk-wifi-mt76-mt7996-enable-hw-cso-module.patch
new file mode 100644
index 0000000..1705e22
--- /dev/null
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0025-mtk-wifi-mt76-mt7996-enable-hw-cso-module.patch
@@ -0,0 +1,76 @@
+From b6fa1060af0c2a8f2d950481fd3d962ba9bcbf41 Mon Sep 17 00:00:00 2001
+From: Howard Hsu <howard-yh.hsu@mediatek.com>
+Date: Wed, 3 Jan 2024 15:21:44 +0800
+Subject: [PATCH 25/25] mtk: wifi: mt76: mt7996: enable hw cso module
+
+The cso module needs to be enabled. The cso mudule can help identify if the traffic
+is TCP traffic. This can assist the firmware in adjusting algorithms to
+improve overall performance.
+
+Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com>
+---
+ mt76_connac_mcu.h | 7 +++++++
+ mt7996/mcu.c | 15 +++++++++++++++
+ 2 files changed, 22 insertions(+)
+
+diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
+index 823b3626..d3c05894 100644
+--- a/mt76_connac_mcu.h
++++ b/mt76_connac_mcu.h
+@@ -610,6 +610,12 @@ struct sta_rec_ra_fixed {
+ u8 mmps_mode;
+ } __packed;
+
++struct sta_rec_tx_proc {
++ __le16 tag;
++ __le16 len;
++ __le32 flag;
++} __packed;
++
+ /* wtbl_rec */
+
+ struct wtbl_req_hdr {
+@@ -777,6 +783,7 @@ struct wtbl_raw {
+ sizeof(struct sta_rec_ra_fixed) + \
+ sizeof(struct sta_rec_he_6g_capa) + \
+ sizeof(struct sta_rec_pn_info) + \
++ sizeof(struct sta_rec_tx_proc) + \
+ sizeof(struct tlv) + \
+ MT76_CONNAC_WTBL_UPDATE_MAX_SIZE)
+
+diff --git a/mt7996/mcu.c b/mt7996/mcu.c
+index deabdb1f..46ee93c0 100644
+--- a/mt7996/mcu.c
++++ b/mt7996/mcu.c
+@@ -1766,6 +1766,19 @@ mt7996_mcu_sta_bfee_tlv(struct mt7996_dev *dev, struct sk_buff *skb,
+ bfee->fb_identity_matrix = (nrow == 1 && tx_ant == 2);
+ }
+
++static void
++mt7996_mcu_sta_tx_proc_tlv(struct sk_buff *skb)
++{
++ struct sta_rec_tx_proc *tx_proc;
++ struct tlv *tlv;
++
++ tlv = mt76_connac_mcu_add_tlv(skb, STA_REC_TX_PROC, sizeof(*tx_proc));
++
++ tx_proc = (struct sta_rec_tx_proc *)tlv;
++ /* CSO is enabled if this flag exists. */
++ tx_proc->flag = cpu_to_le32(0);
++}
++
+ static void
+ mt7996_mcu_sta_hdrt_tlv(struct mt7996_dev *dev, struct sk_buff *skb)
+ {
+@@ -2177,6 +2190,8 @@ int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct ieee80211_vif *vif,
+
+ /* starec hdr trans */
+ mt7996_mcu_sta_hdr_trans_tlv(dev, skb, vif, sta);
++ /* starec tx proc */
++ mt7996_mcu_sta_tx_proc_tlv(skb);
+
+ /* tag order is in accordance with firmware dependency. */
+ if (sta) {
+--
+2.18.0
+
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/0999-mtk-wifi-mt76-mt7996-for-build-pass.patch b/recipes-wifi/linux-mt76/files/patches-3.x/0999-mtk-wifi-mt76-mt7996-for-build-pass.patch
index f414f45..5ddea83 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/0999-mtk-wifi-mt76-mt7996-for-build-pass.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/0999-mtk-wifi-mt76-mt7996-for-build-pass.patch
@@ -1,7 +1,7 @@
-From bb8cbd2687b9601b8970cb9be1cfd356f285997e Mon Sep 17 00:00:00 2001
+From 2b2dc33d94447570f8dbadb46e08f6ede2d67d72 Mon Sep 17 00:00:00 2001
From: Shayne Chen <shayne.chen@mediatek.com>
Date: Thu, 3 Nov 2022 00:27:17 +0800
-Subject: [PATCH 0999/1041] mtk: wifi: mt76: mt7996: for build pass
+Subject: [PATCH 0999/1044] mtk: wifi: mt76: mt7996: for build pass
---
debugfs.c | 3 +++
@@ -130,10 +130,10 @@
mt7996_dma_enable(dev, false);
diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index c8fa87ef..7d07c1b1 100644
+index 3260d1fe..121a3c95 100644
--- a/mt7996/eeprom.c
+++ b/mt7996/eeprom.c
-@@ -135,6 +135,7 @@ static int mt7996_eeprom_parse_efuse_hw_cap(struct mt7996_dev *dev)
+@@ -138,6 +138,7 @@ static int mt7996_eeprom_parse_efuse_hw_cap(struct mt7996_dev *dev)
if (ret)
return ret;
@@ -142,7 +142,7 @@
dev->has_eht = !(cap & MODE_HE_ONLY);
dev->wtbl_size_group = u32_get_bits(cap, WTBL_SIZE_GROUP);
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index deabdb1f..3ecdde86 100644
+index 46ee93c0..ae78141e 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
@@ -5,6 +5,7 @@
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1000-mtk-wifi-mt76-mt7996-add-debug-tool.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1000-mtk-wifi-mt76-mt7996-add-debug-tool.patch
index 033ca0b..a2d872f 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1000-mtk-wifi-mt76-mt7996-add-debug-tool.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1000-mtk-wifi-mt76-mt7996-add-debug-tool.patch
@@ -1,7 +1,7 @@
-From a4b26d99f6d02c2b4e7ebff9a07acbdd7ec5185b Mon Sep 17 00:00:00 2001
+From 1f2ab08e04fe3c68b0791da1de2b4e891dff1cb2 Mon Sep 17 00:00:00 2001
From: Shayne Chen <shayne.chen@mediatek.com>
Date: Fri, 24 Mar 2023 14:02:32 +0800
-Subject: [PATCH 1000/1041] mtk: wifi: mt76: mt7996: add debug tool
+Subject: [PATCH 1000/1044] mtk: wifi: mt76: mt7996: add debug tool
Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
@@ -2609,7 +2609,7 @@
+#endif
diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
new file mode 100644
-index 00000000..53b11d54
+index 00000000..ab97a372
--- /dev/null
+++ b/mt7996/mtk_debugfs.c
@@ -0,0 +1,2484 @@
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1001-mtk-wifi-mt76-mt7996-support-record-muru-algo-log-wh.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1001-mtk-wifi-mt76-mt7996-support-record-muru-algo-log-wh.patch
index f707328..ceab96d 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1001-mtk-wifi-mt76-mt7996-support-record-muru-algo-log-wh.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1001-mtk-wifi-mt76-mt7996-support-record-muru-algo-log-wh.patch
@@ -1,7 +1,7 @@
-From 80a3aa92334b91d0f6f0a8793a2e70391bcd1d12 Mon Sep 17 00:00:00 2001
+From e0e7443107c89385d66e9247888abd01c51b8845 Mon Sep 17 00:00:00 2001
From: Howard Hsu <howard-yh.hsu@mediatek.com>
Date: Tue, 28 Nov 2023 16:01:33 +0800
-Subject: [PATCH 1001/1041] mtk: wifi: mt76: mt7996: support record muru algo
+Subject: [PATCH 1001/1044] mtk: wifi: mt76: mt7996: support record muru algo
log when record fw log
Support record muru algorithm debug log in firmware when we use
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1002-mtk-wifi-mt76-mt7996-add-check-for-hostapd-config-he.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1002-mtk-wifi-mt76-mt7996-add-check-for-hostapd-config-he.patch
index e94c68d..8d9cb0c 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1002-mtk-wifi-mt76-mt7996-add-check-for-hostapd-config-he.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1002-mtk-wifi-mt76-mt7996-add-check-for-hostapd-config-he.patch
@@ -1,7 +1,7 @@
-From 9b07919cd131c27ae7507632a57767727815bbd9 Mon Sep 17 00:00:00 2001
+From ce7f8d1d0b181442e5a03b5f8aa9920491a8e0d5 Mon Sep 17 00:00:00 2001
From: "Allen.Ye" <allen.ye@mediatek.com>
Date: Thu, 8 Jun 2023 17:32:33 +0800
-Subject: [PATCH 1002/1041] mtk: wifi: mt76: mt7996: add check for hostapd
+Subject: [PATCH 1002/1044] mtk: wifi: mt76: mt7996: add check for hostapd
config he_ldpc
Add check for hostapd config he_ldpc.
@@ -15,7 +15,7 @@
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 3ecdde86..b379b226 100644
+index ae78141e..388b593d 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
@@ -1182,7 +1182,8 @@ int mt7996_mcu_add_rx_ba(struct mt7996_dev *dev,
@@ -40,7 +40,7 @@
mcs_map = sta->deflink.he_cap.he_mcs_nss_supp;
switch (sta->deflink.bandwidth) {
case IEEE80211_STA_RX_BW_160:
-@@ -2108,7 +2114,7 @@ int mt7996_mcu_add_rate_ctrl(struct mt7996_dev *dev, struct ieee80211_vif *vif,
+@@ -2121,7 +2127,7 @@ int mt7996_mcu_add_rate_ctrl(struct mt7996_dev *dev, struct ieee80211_vif *vif,
* update sta_rec_he here.
*/
if (changed)
@@ -49,7 +49,7 @@
/* sta_rec_ra accommodates BW, NSS and only MCS range format
* i.e 0-{7,8,9} for VHT.
-@@ -2194,7 +2200,7 @@ int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct ieee80211_vif *vif,
+@@ -2209,7 +2215,7 @@ int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct ieee80211_vif *vif,
/* starec amsdu */
mt7996_mcu_sta_amsdu_tlv(dev, skb, vif, sta);
/* starec he */
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1003-mtk-wifi-mt76-testmode-add-atenl-support-in-mt7996.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1003-mtk-wifi-mt76-testmode-add-atenl-support-in-mt7996.patch
index ee2c2c6..6d653aa 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1003-mtk-wifi-mt76-testmode-add-atenl-support-in-mt7996.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1003-mtk-wifi-mt76-testmode-add-atenl-support-in-mt7996.patch
@@ -1,7 +1,7 @@
-From 7ff2021958001be2941953f6295c07cdcd7728e9 Mon Sep 17 00:00:00 2001
+From f1c4924fab3b775e09aa413dc300e478864ee76a Mon Sep 17 00:00:00 2001
From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Date: Wed, 28 Dec 2022 22:24:25 +0800
-Subject: [PATCH 1003/1041] mtk: wifi: mt76: testmode: add atenl support in
+Subject: [PATCH 1003/1044] mtk: wifi: mt76: testmode: add atenl support in
mt7996
Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1004-mtk-wifi-mt76-testmode-add-basic-testmode-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1004-mtk-wifi-mt76-testmode-add-basic-testmode-support.patch
index dc7d412..0bde2c2 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1004-mtk-wifi-mt76-testmode-add-basic-testmode-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1004-mtk-wifi-mt76-testmode-add-basic-testmode-support.patch
@@ -1,7 +1,7 @@
-From 5ada52c4318533dafc3a77110ff161849508175c Mon Sep 17 00:00:00 2001
+From 06208f297f532c17779277a8dec486f466631791 Mon Sep 17 00:00:00 2001
From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Date: Wed, 1 Mar 2023 11:59:16 +0800
-Subject: [PATCH 1004/1041] mtk: wifi: mt76: testmode: add basic testmode
+Subject: [PATCH 1004/1044] mtk: wifi: mt76: testmode: add basic testmode
support
Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
@@ -161,10 +161,10 @@
{
#ifdef CONFIG_NL80211_TESTMODE
diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 823b3626..0a55a4be 100644
+index d3c05894..4796c255 100644
--- a/mt76_connac_mcu.h
+++ b/mt76_connac_mcu.h
-@@ -1255,12 +1255,14 @@ enum {
+@@ -1262,12 +1262,14 @@ enum {
MCU_UNI_CMD_EFUSE_CTRL = 0x2d,
MCU_UNI_CMD_RA = 0x2f,
MCU_UNI_CMD_MURU = 0x31,
@@ -191,7 +191,7 @@
mt7996e-y += mtk_debugfs.o mtk_mcu.o
diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index 7d07c1b1..8fb1015e 100644
+index 121a3c95..2299793d 100644
--- a/mt7996/eeprom.c
+++ b/mt7996/eeprom.c
@@ -6,6 +6,11 @@
@@ -206,7 +206,7 @@
static int mt7996_check_eeprom(struct mt7996_dev *dev)
{
-@@ -40,6 +45,9 @@ static int mt7996_check_eeprom(struct mt7996_dev *dev)
+@@ -43,6 +48,9 @@ static int mt7996_check_eeprom(struct mt7996_dev *dev)
static char *mt7996_eeprom_name(struct mt7996_dev *dev)
{
@@ -216,7 +216,7 @@
switch (mt76_chip(&dev->mt76)) {
case 0x7990:
if (dev->chip_sku == MT7996_SKU_404)
-@@ -89,21 +97,36 @@ out:
+@@ -92,21 +100,36 @@ out:
return ret;
}
@@ -258,7 +258,7 @@
ret = mt7996_mcu_get_eeprom_free_block(dev, &free_block_num);
if (ret < 0)
return ret;
-@@ -115,7 +138,7 @@ static int mt7996_eeprom_load(struct mt7996_dev *dev)
+@@ -118,7 +141,7 @@ static int mt7996_eeprom_load(struct mt7996_dev *dev)
/* read eeprom data from efuse */
block_num = DIV_ROUND_UP(MT7996_EEPROM_SIZE, eeprom_blk_size);
for (i = 0; i < block_num; i++) {
@@ -280,10 +280,10 @@
MT_EE_RATE_DELTA_2G = 0x1400,
MT_EE_RATE_DELTA_5G = 0x147d,
diff --git a/mt7996/init.c b/mt7996/init.c
-index dae640e9..7bfebd38 100644
+index 5db85939..42e7071c 100644
--- a/mt7996/init.c
+++ b/mt7996/init.c
-@@ -970,6 +970,10 @@ static int mt7996_init_hardware(struct mt7996_dev *dev)
+@@ -966,6 +966,10 @@ static int mt7996_init_hardware(struct mt7996_dev *dev)
set_bit(MT76_STATE_INITIALIZED, &dev->mphy.state);
@@ -294,7 +294,7 @@
ret = mt7996_mcu_init(dev);
if (ret)
return ret;
-@@ -1388,6 +1392,10 @@ int mt7996_register_device(struct mt7996_dev *dev)
+@@ -1384,6 +1388,10 @@ int mt7996_register_device(struct mt7996_dev *dev)
mt7996_init_wiphy(hw, &dev->mt76.mmio.wed);
@@ -385,10 +385,10 @@
.sta_add_debugfs = mt7996_sta_add_debugfs,
#endif
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index b379b226..099ff74f 100644
+index 388b593d..6c89d711 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
-@@ -2858,8 +2858,12 @@ static int mt7996_load_ram(struct mt7996_dev *dev)
+@@ -2873,8 +2873,12 @@ static int mt7996_load_ram(struct mt7996_dev *dev)
{
int ret;
@@ -403,7 +403,7 @@
if (ret)
return ret;
-@@ -3550,17 +3554,9 @@ int mt7996_mcu_set_eeprom(struct mt7996_dev *dev)
+@@ -3565,17 +3569,9 @@ int mt7996_mcu_set_eeprom(struct mt7996_dev *dev)
&req, sizeof(req), true);
}
@@ -423,7 +423,7 @@
.tag = cpu_to_le16(UNI_EFUSE_ACCESS),
.len = cpu_to_le16(sizeof(req) - 4),
.addr = cpu_to_le32(round_down(offset,
-@@ -3569,6 +3565,7 @@ int mt7996_mcu_get_eeprom(struct mt7996_dev *dev, u32 offset)
+@@ -3584,6 +3580,7 @@ int mt7996_mcu_get_eeprom(struct mt7996_dev *dev, u32 offset)
struct sk_buff *skb;
bool valid;
int ret;
@@ -431,7 +431,7 @@
ret = mt76_mcu_send_and_get_msg(&dev->mt76,
MCU_WM_UNI_CMD_QUERY(EFUSE_CTRL),
-@@ -3579,7 +3576,9 @@ int mt7996_mcu_get_eeprom(struct mt7996_dev *dev, u32 offset)
+@@ -3594,7 +3591,9 @@ int mt7996_mcu_get_eeprom(struct mt7996_dev *dev, u32 offset)
valid = le32_to_cpu(*(__le32 *)(skb->data + 16));
if (valid) {
u32 addr = le32_to_cpu(*(__le32 *)(skb->data + 12));
@@ -442,7 +442,7 @@
skb_pull(skb, 48);
memcpy(buf, skb->data, MT7996_EEPROM_BLOCK_SIZE);
-@@ -4571,3 +4570,37 @@ int mt7996_mcu_set_pp_en(struct mt7996_phy *phy, bool auto_mode,
+@@ -4586,3 +4585,37 @@ int mt7996_mcu_set_pp_en(struct mt7996_phy *phy, bool auto_mode,
return mt76_mcu_send_msg(&dev->mt76, MCU_WM_UNI_CMD(PP),
&req, sizeof(req), false);
}
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1005-mtk-wifi-mt76-testmode-add-testmode-pre-calibration-.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1005-mtk-wifi-mt76-testmode-add-testmode-pre-calibration-.patch
index e1e2ecc..127c63b 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1005-mtk-wifi-mt76-testmode-add-testmode-pre-calibration-.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1005-mtk-wifi-mt76-testmode-add-testmode-pre-calibration-.patch
@@ -1,7 +1,7 @@
-From 52b8f9d42643b5103fc608fb1848e03eac88834c Mon Sep 17 00:00:00 2001
+From 2a4f1ada373d5bd9999807d7906f44bee9c7dc21 Mon Sep 17 00:00:00 2001
From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Date: Fri, 31 Mar 2023 11:27:24 +0800
-Subject: [PATCH 1005/1041] mtk: wifi: mt76: testmode: add testmode
+Subject: [PATCH 1005/1044] mtk: wifi: mt76: testmode: add testmode
pre-calibration support
Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
@@ -93,10 +93,10 @@
#define MT_TM_FW_RX_COUNT BIT(0)
diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 0a55a4be..3447f523 100644
+index 4796c255..e4783433 100644
--- a/mt76_connac_mcu.h
+++ b/mt76_connac_mcu.h
-@@ -1031,8 +1031,10 @@ enum {
+@@ -1038,8 +1038,10 @@ enum {
MCU_UNI_EVENT_RDD_REPORT = 0x11,
MCU_UNI_EVENT_ROC = 0x27,
MCU_UNI_EVENT_TX_DONE = 0x2d,
@@ -108,7 +108,7 @@
MCU_UNI_EVENT_PER_STA_INFO = 0x6d,
MCU_UNI_EVENT_ALL_STA_INFO = 0x6e,
diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index 8fb1015e..29a245ce 100644
+index 2299793d..3aeffdfb 100644
--- a/mt7996/eeprom.c
+++ b/mt7996/eeprom.c
@@ -12,6 +12,42 @@ static bool testmode_enable;
@@ -154,7 +154,7 @@
static int mt7996_check_eeprom(struct mt7996_dev *dev)
{
#define FEM_INT 0
-@@ -71,6 +107,36 @@ static char *mt7996_eeprom_name(struct mt7996_dev *dev)
+@@ -74,6 +110,36 @@ static char *mt7996_eeprom_name(struct mt7996_dev *dev)
}
}
@@ -257,7 +257,7 @@
#define MT_EE_WIFI_CONF2_TX_PATH_BAND1 GENMASK(2, 0)
#define MT_EE_WIFI_CONF2_TX_PATH_BAND2 GENMASK(5, 3)
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 099ff74f..eb346a9c 100644
+index 6c89d711..151f3788 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
@@ -712,6 +712,11 @@ mt7996_mcu_uni_rx_unsolicited_event(struct mt7996_dev *dev, struct sk_buff *skb)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1006-mtk-wifi-mt76-mt7996-enable-SCS-feature-for-mt7996-d.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1006-mtk-wifi-mt76-mt7996-enable-SCS-feature-for-mt7996-d.patch
index 90ff7e8..bae90bf 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1006-mtk-wifi-mt76-mt7996-enable-SCS-feature-for-mt7996-d.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1006-mtk-wifi-mt76-mt7996-enable-SCS-feature-for-mt7996-d.patch
@@ -1,7 +1,7 @@
-From d96436bbd8f0aa903bb0ee905a2654f81ebbfbff Mon Sep 17 00:00:00 2001
+From 9ce66350f74d9addf51f8c5742ef5adde6deaf45 Mon Sep 17 00:00:00 2001
From: Howard Hsu <howard-yh.hsu@mediatek.com>
Date: Mon, 8 May 2023 09:03:50 +0800
-Subject: [PATCH 1006/1041] mtk: wifi: mt76: mt7996: enable SCS feature for
+Subject: [PATCH 1006/1044] mtk: wifi: mt76: mt7996: enable SCS feature for
mt7996 driver
Enable Smart Carrier Sense algorithn by default to improve performance
@@ -20,10 +20,10 @@
8 files changed, 148 insertions(+)
diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 3447f523..5e1b15c4 100644
+index e4783433..23310c4f 100644
--- a/mt76_connac_mcu.h
+++ b/mt76_connac_mcu.h
-@@ -1250,6 +1250,7 @@ enum {
+@@ -1257,6 +1257,7 @@ enum {
MCU_UNI_CMD_GET_STAT_INFO = 0x23,
MCU_UNI_CMD_SNIFFER = 0x24,
MCU_UNI_CMD_SR = 0x25,
@@ -32,10 +32,10 @@
MCU_UNI_CMD_SET_DBDC_PARMS = 0x28,
MCU_UNI_CMD_TXPOWER = 0x2b,
diff --git a/mt7996/init.c b/mt7996/init.c
-index 7bfebd38..c9c7c20a 100644
+index 42e7071c..23b7e5f8 100644
--- a/mt7996/init.c
+++ b/mt7996/init.c
-@@ -1378,6 +1378,7 @@ int mt7996_register_device(struct mt7996_dev *dev)
+@@ -1374,6 +1374,7 @@ int mt7996_register_device(struct mt7996_dev *dev)
dev->mt76.phy.priv = &dev->phy;
INIT_WORK(&dev->rc_work, mt7996_mac_sta_rc_work);
INIT_DELAYED_WORK(&dev->mphy.mac_work, mt7996_mac_work);
@@ -94,10 +94,10 @@
mutex_lock(&dev->mt76.mutex);
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index eb346a9c..cc417039 100644
+index 151f3788..af4d2023 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
-@@ -4609,3 +4609,108 @@ int mt7996_mcu_set_tx_power_ctrl(struct mt7996_phy *phy, u8 power_ctrl_id, u8 da
+@@ -4624,3 +4624,108 @@ int mt7996_mcu_set_tx_power_ctrl(struct mt7996_phy *phy, u8 power_ctrl_id, u8 da
return mt76_mcu_send_msg(&dev->mt76, MCU_WM_UNI_CMD(TXPOWER),
&req, sizeof(req), false);
}
@@ -271,7 +271,7 @@
static inline u8 mt7996_max_interface_num(struct mt7996_dev *dev)
{
diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 53b11d54..ccb147e9 100644
+index ab97a372..360c4c7e 100644
--- a/mt7996/mtk_debugfs.c
+++ b/mt7996/mtk_debugfs.c
@@ -2407,6 +2407,16 @@ static int mt7996_token_read(struct seq_file *s, void *data)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1007-mtk-wifi-mt76-mt7996-add-txpower-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1007-mtk-wifi-mt76-mt7996-add-txpower-support.patch
index 8244fc7..4a17bc3 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1007-mtk-wifi-mt76-mt7996-add-txpower-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1007-mtk-wifi-mt76-mt7996-add-txpower-support.patch
@@ -1,25 +1,25 @@
-From f656a23959ac8662dbb38b079a7afd440367578c Mon Sep 17 00:00:00 2001
+From b02c3175d355a3cf35924ad866e92013d62dbc66 Mon Sep 17 00:00:00 2001
From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Date: Fri, 24 Mar 2023 23:35:30 +0800
-Subject: [PATCH 1007/1041] mtk: wifi: mt76: mt7996: add txpower support
+Subject: [PATCH 1007/1044] mtk: wifi: mt76: mt7996: add txpower support
Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
---
- mt7996/eeprom.c | 34 +++++++
- mt7996/eeprom.h | 42 ++++++++
+ mt7996/eeprom.c | 34 +++++
+ mt7996/eeprom.h | 42 ++++++
mt7996/mcu.h | 2 +
mt7996/mt7996.h | 1 +
- mt7996/mtk_debugfs.c | 229 +++++++++++++++++++++++++++++++++++++++++++
- mt7996/mtk_mcu.c | 23 +++++
- mt7996/mtk_mcu.h | 79 +++++++++++++++
- mt7996/regs.h | 29 +++---
- 8 files changed, 428 insertions(+), 11 deletions(-)
+ mt7996/mtk_debugfs.c | 326 +++++++++++++++++++++++++++++++++++++++++++
+ mt7996/mtk_mcu.c | 23 +++
+ mt7996/mtk_mcu.h | 92 ++++++++++++
+ mt7996/regs.h | 29 ++--
+ 8 files changed, 538 insertions(+), 11 deletions(-)
diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index 29a245ce..6c1966b7 100644
+index 3aeffdfb..acc33cfe 100644
--- a/mt7996/eeprom.c
+++ b/mt7996/eeprom.c
-@@ -401,3 +401,37 @@ s8 mt7996_eeprom_get_power_delta(struct mt7996_dev *dev, int band)
+@@ -404,3 +404,37 @@ s8 mt7996_eeprom_get_power_delta(struct mt7996_dev *dev, int band)
return val & MT_EE_RATE_DELTA_SIGN ? delta : -delta;
}
@@ -141,10 +141,10 @@
void mt7996_mcu_scs_sta_poll(struct work_struct *work);
diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index ccb147e9..93428851 100644
+index 360c4c7e..c9b835b2 100644
--- a/mt7996/mtk_debugfs.c
+++ b/mt7996/mtk_debugfs.c
-@@ -2417,6 +2417,232 @@ mt7996_scs_enable_set(void *data, u64 val)
+@@ -2417,6 +2417,328 @@ mt7996_scs_enable_set(void *data, u64 val)
DEFINE_DEBUGFS_ATTRIBUTE(fops_scs_enable, NULL,
mt7996_scs_enable_set, "%lld\n");
@@ -181,8 +181,10 @@
+
+ buf = kzalloc(size, GFP_KERNEL);
+ event = kzalloc(sizeof(*event), GFP_KERNEL);
-+ if (!buf || !event)
-+ return -ENOMEM;
++ if (!buf || !event) {
++ ret = -ENOMEM;
++ goto out;
++ }
+
+ ret = mt7996_mcu_get_tx_power_info(phy, BASIC_INFO, event);
+ if (ret ||
@@ -269,8 +271,10 @@
+
+ buf = kzalloc(size, GFP_KERNEL);
+ event = kzalloc(sizeof(*event), GFP_KERNEL);
-+ if (!buf)
-+ return -ENOMEM;
++ if (!buf || !event) {
++ ret = -ENOMEM;
++ goto out;
++ }
+
+ ret = mt7996_mcu_get_tx_power_info(phy, PHY_RATE_INFO, event);
+ if (ret ||
@@ -374,16 +378,109 @@
+ .llseek = default_llseek,
+};
+
++#define mt7996_txpower_path_puts(rate, arr_length) \
++({ \
++ len += scnprintf(buf + len, size - len, "%-23s:", #rate " (TMAC)"); \
++ for (i = 0; i < arr_length; i++, offs++) \
++ len += scnprintf(buf + len, size - len, " %4d", \
++ event->backoff_table_info.frame_power[offs]); \
++ len += scnprintf(buf + len, size - len, "\n"); \
++})
++
++static ssize_t
++mt7996_get_txpower_path(struct file *file, char __user *user_buf,
++ size_t count, loff_t *ppos)
++{
++ struct mt7996_phy *phy = file->private_data;
++ struct mt7996_mcu_txpower_event *event;
++ static const size_t size = 5120;
++ int i, offs = 0, len = 0;
++ ssize_t ret;
++ char *buf;
++
++ buf = kzalloc(size, GFP_KERNEL);
++ event = kzalloc(sizeof(*event), GFP_KERNEL);
++ if (!buf || !event) {
++ ret = -ENOMEM;
++ goto out;
++ }
++
++ ret = mt7996_mcu_get_tx_power_info(phy, BACKOFF_TABLE_INFO, event);
++ if (ret ||
++ le32_to_cpu(event->phy_rate_info.category) != UNI_TXPOWER_BACKOFF_TABLE_SHOW_INFO)
++ goto out;
++
++ len += scnprintf(buf + len, size - len, "\n%*c", 25, ' ');
++ len += scnprintf(buf + len, size - len, "1T1S/2T1S/3T1S/4T1S/5T1S/2T2S/3T2S/4T2S/5T2S/"
++ "3T3S/4T3S/5T3S/4T4S/5T4S/5T5S\n");
++
++ mt7996_txpower_path_puts(CCK, 5);
++ mt7996_txpower_path_puts(OFDM, 5);
++ mt7996_txpower_path_puts(BF-OFDM, 4);
++
++ mt7996_txpower_path_puts(RU26, 15);
++ mt7996_txpower_path_puts(BF-RU26, 15);
++ mt7996_txpower_path_puts(RU52, 15);
++ mt7996_txpower_path_puts(BF-RU52, 15);
++ mt7996_txpower_path_puts(RU26_52, 15);
++ mt7996_txpower_path_puts(BF-RU26_52, 15);
++ mt7996_txpower_path_puts(RU106, 15);
++ mt7996_txpower_path_puts(BF-RU106, 15);
++ mt7996_txpower_path_puts(RU106_52, 15);
++ mt7996_txpower_path_puts(BF-RU106_52, 15);
++
++ mt7996_txpower_path_puts(BW20/RU242, 15);
++ mt7996_txpower_path_puts(BF-BW20/RU242, 15);
++ mt7996_txpower_path_puts(BW40/RU484, 15);
++ mt7996_txpower_path_puts(BF-BW40/RU484, 15);
++ mt7996_txpower_path_puts(RU242_484, 15);
++ mt7996_txpower_path_puts(BF-RU242_484, 15);
++ mt7996_txpower_path_puts(BW80/RU996, 15);
++ mt7996_txpower_path_puts(BF-BW80/RU996, 15);
++ mt7996_txpower_path_puts(RU484_996, 15);
++ mt7996_txpower_path_puts(BF-RU484_996, 15);
++ mt7996_txpower_path_puts(RU242_484_996, 15);
++ mt7996_txpower_path_puts(BF-RU242_484_996, 15);
++ mt7996_txpower_path_puts(BW160/RU996x2, 15);
++ mt7996_txpower_path_puts(BF-BW160/RU996x2, 15);
++ mt7996_txpower_path_puts(RU484_996x2, 15);
++ mt7996_txpower_path_puts(BF-RU484_996x2, 15);
++ mt7996_txpower_path_puts(RU996x3, 15);
++ mt7996_txpower_path_puts(BF-RU996x3, 15);
++ mt7996_txpower_path_puts(RU484_996x3, 15);
++ mt7996_txpower_path_puts(BF-RU484_996x3, 15);
++ mt7996_txpower_path_puts(BW320/RU996x4, 15);
++ mt7996_txpower_path_puts(BF-BW320/RU996x4, 15);
++
++ len += scnprintf(buf + len, size - len, "\nBackoff table: %s\n",
++ event->backoff_table_info.backoff_en ? "enable" : "disable");
++
++ ret = simple_read_from_buffer(user_buf, count, ppos, buf, len);
++
++out:
++ kfree(buf);
++ kfree(event);
++ return ret;
++}
++
++static const struct file_operations mt7996_txpower_path_fops = {
++ .read = mt7996_get_txpower_path,
++ .open = simple_open,
++ .owner = THIS_MODULE,
++ .llseek = default_llseek,
++};
++
int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
{
struct mt7996_dev *dev = phy->dev;
-@@ -2480,6 +2706,9 @@ int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
+@@ -2480,6 +2802,10 @@ int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
debugfs_create_devm_seqfile(dev->mt76.dev, "tr_info", dir,
mt7996_trinfo_read);
+ debugfs_create_file("txpower_level", 0600, dir, phy, &fops_txpower_level);
+ debugfs_create_file("txpower_info", 0600, dir, phy, &mt7996_txpower_info_fops);
+ debugfs_create_file("txpower_sku", 0600, dir, phy, &mt7996_txpower_sku_fops);
++ debugfs_create_file("txpower_path", 0600, dir, phy, &mt7996_txpower_path_fops);
debugfs_create_devm_seqfile(dev->mt76.dev, "wtbl_info", dir,
mt7996_wtbl_read);
@@ -424,10 +521,10 @@
int mt7996_mcu_muru_dbg_info(struct mt7996_dev *dev, u16 item, u8 val)
{
diff --git a/mt7996/mtk_mcu.h b/mt7996/mtk_mcu.h
-index 7f4d4e02..1eb27831 100644
+index 7f4d4e02..c30418ca 100644
--- a/mt7996/mtk_mcu.h
+++ b/mt7996/mtk_mcu.h
-@@ -14,6 +14,85 @@ enum {
+@@ -14,6 +14,98 @@ enum {
UNI_CMD_MURU_DBG_INFO = 0x18,
};
@@ -488,6 +585,16 @@
+ u8 rsv1;
+};
+
++struct txpower_backoff_table_info {
++ u8 category;
++ u8 band_idx;
++ u8 band;
++ u8 backoff_en;
++
++ s8 frame_power[MT7996_SKU_PATH_NUM];
++ u8 rsv[3];
++};
++
+struct mt7996_mcu_txpower_event {
+ u8 _rsv[4];
+
@@ -497,16 +604,19 @@
+ union {
+ struct txpower_basic_info basic_info;
+ struct txpower_phy_rate_info phy_rate_info;
++ struct txpower_backoff_table_info backoff_table_info;
+ };
+};
+
+enum txpower_category {
+ BASIC_INFO,
-+ PHY_RATE_INFO = 2,
++ BACKOFF_TABLE_INFO,
++ PHY_RATE_INFO,
+};
+
+enum txpower_event {
+ UNI_TXPOWER_BASIC_INFO = 0,
++ UNI_TXPOWER_BACKOFF_TABLE_SHOW_INFO = 3,
+ UNI_TXPOWER_PHY_RATE_INFO = 5,
+};
+
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1008-mtk-wifi-mt76-mt7996-add-single-sku.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1008-mtk-wifi-mt76-mt7996-add-single-sku.patch
index f97c32c..34ce9fd 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1008-mtk-wifi-mt76-mt7996-add-single-sku.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1008-mtk-wifi-mt76-mt7996-add-single-sku.patch
@@ -1,7 +1,7 @@
-From 646335d03eb96579459ba8f07c2e721d77188b10 Mon Sep 17 00:00:00 2001
+From de616f497d5c3b731ae7916afa60003c8c3a96f9 Mon Sep 17 00:00:00 2001
From: "Allen.Ye" <allen.ye@mediatek.com>
Date: Mon, 10 Jul 2023 19:56:16 +0800
-Subject: [PATCH 1008/1041] mtk: wifi: mt76: mt7996: add single sku
+Subject: [PATCH 1008/1044] mtk: wifi: mt76: mt7996: add single sku
Add single sku and default enable sku.
@@ -143,7 +143,7 @@
tx_power_tlv.last_msg = ch_list[idx] == last_ch;
sku_tlbv.channel = ch_list[idx];
diff --git a/mt7996/init.c b/mt7996/init.c
-index c9c7c20a..af2f4143 100644
+index 23b7e5f8..188d4f1f 100644
--- a/mt7996/init.c
+++ b/mt7996/init.c
@@ -295,6 +295,7 @@ static void __mt7996_init_txpower(struct mt7996_phy *phy,
@@ -183,10 +183,10 @@
ieee80211_queue_delayed_work(hw, &phy->mt76->mac_work,
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index cc417039..d8e5c220 100644
+index af4d2023..19b5a173 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
-@@ -4491,6 +4491,7 @@ int mt7996_mcu_wed_rro_reset_sessions(struct mt7996_dev *dev, u16 id)
+@@ -4506,6 +4506,7 @@ int mt7996_mcu_wed_rro_reset_sessions(struct mt7996_dev *dev, u16 id)
int mt7996_mcu_set_txpower_sku(struct mt7996_phy *phy)
{
#define TX_POWER_LIMIT_TABLE_RATE 0
@@ -194,7 +194,7 @@
struct mt7996_dev *dev = phy->dev;
struct mt76_phy *mphy = phy->mt76;
struct ieee80211_hw *hw = mphy->hw;
-@@ -4504,22 +4505,23 @@ int mt7996_mcu_set_txpower_sku(struct mt7996_phy *phy)
+@@ -4519,22 +4520,23 @@ int mt7996_mcu_set_txpower_sku(struct mt7996_phy *phy)
u8 band_idx;
} __packed req = {
.tag = cpu_to_le16(UNI_TXPOWER_POWER_LIMIT_TABLE_CTRL),
@@ -222,7 +222,7 @@
if (!skb)
return -ENOMEM;
-@@ -4542,6 +4544,37 @@ int mt7996_mcu_set_txpower_sku(struct mt7996_phy *phy)
+@@ -4557,6 +4559,37 @@ int mt7996_mcu_set_txpower_sku(struct mt7996_phy *phy)
/* eht */
skb_put_data(skb, &la.eht[0], sizeof(la.eht));
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1009-mtk-wifi-mt76-mt7996-add-binfile-mode-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1009-mtk-wifi-mt76-mt7996-add-binfile-mode-support.patch
index ad36e1a..5283a49 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1009-mtk-wifi-mt76-mt7996-add-binfile-mode-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1009-mtk-wifi-mt76-mt7996-add-binfile-mode-support.patch
@@ -1,7 +1,7 @@
-From f7bb6a600c1dfd47dfc99ca7a80dac4178ea2581 Mon Sep 17 00:00:00 2001
+From 5def24c68db8d0ff5e0a3ef799c4e1b670dfcb46 Mon Sep 17 00:00:00 2001
From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Date: Fri, 31 Mar 2023 11:36:34 +0800
-Subject: [PATCH 1009/1041] mtk: wifi: mt76: mt7996: add binfile mode support
+Subject: [PATCH 1009/1044] mtk: wifi: mt76: mt7996: add binfile mode support
Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
@@ -82,10 +82,10 @@
struct mt76_queue *
mt76_init_queue(struct mt76_dev *dev, int qid, int idx, int n_desc,
diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index 6c1966b7..c553a0f5 100644
+index acc33cfe..c334f849 100644
--- a/mt7996/eeprom.c
+++ b/mt7996/eeprom.c
-@@ -79,10 +79,17 @@ static int mt7996_check_eeprom(struct mt7996_dev *dev)
+@@ -82,10 +82,17 @@ static int mt7996_check_eeprom(struct mt7996_dev *dev)
}
}
@@ -106,7 +106,7 @@
switch (mt76_chip(&dev->mt76)) {
case 0x7990:
-@@ -149,7 +156,10 @@ mt7996_eeprom_load_default(struct mt7996_dev *dev)
+@@ -152,7 +159,10 @@ mt7996_eeprom_load_default(struct mt7996_dev *dev)
return ret;
if (!fw || !fw->data) {
@@ -118,7 +118,7 @@
ret = -EINVAL;
goto out;
}
-@@ -163,18 +173,45 @@ out:
+@@ -166,18 +176,45 @@ out:
return ret;
}
@@ -165,7 +165,7 @@
eeprom = dev->mt76.eeprom.data;
/* testmode enable priority: eeprom field > module parameter */
dev->testmode_enable = !mt7996_check_eeprom(dev) ? eeprom[MT_EE_TESTMODE_EN] :
-@@ -208,6 +245,7 @@ static int mt7996_eeprom_load(struct mt7996_dev *dev)
+@@ -211,6 +248,7 @@ static int mt7996_eeprom_load(struct mt7996_dev *dev)
if (ret < 0)
return ret;
}
@@ -173,7 +173,7 @@
}
return mt7996_check_eeprom(dev);
-@@ -334,6 +372,59 @@ int mt7996_eeprom_parse_hw_cap(struct mt7996_dev *dev, struct mt7996_phy *phy)
+@@ -337,6 +375,59 @@ int mt7996_eeprom_parse_hw_cap(struct mt7996_dev *dev, struct mt7996_phy *phy)
return mt7996_eeprom_parse_band_config(phy);
}
@@ -233,7 +233,7 @@
int mt7996_eeprom_init(struct mt7996_dev *dev)
{
int ret;
-@@ -348,6 +439,8 @@ int mt7996_eeprom_init(struct mt7996_dev *dev)
+@@ -351,6 +442,8 @@ int mt7996_eeprom_init(struct mt7996_dev *dev)
return ret;
dev_warn(dev->mt76.dev, "eeprom load fail, use default bin\n");
@@ -290,10 +290,10 @@
int mt7996_eeprom_check_fw_mode(struct mt7996_dev *dev);
int mt7996_eeprom_parse_hw_cap(struct mt7996_dev *dev, struct mt7996_phy *phy);
diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 93428851..fe6492ab 100644
+index c9b835b2..669eba9e 100644
--- a/mt7996/mtk_debugfs.c
+++ b/mt7996/mtk_debugfs.c
-@@ -2643,6 +2643,44 @@ static const struct file_operations mt7996_txpower_sku_fops = {
+@@ -2739,6 +2739,44 @@ static const struct file_operations mt7996_txpower_path_fops = {
.llseek = default_llseek,
};
@@ -338,9 +338,9 @@
int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
{
struct mt7996_dev *dev = phy->dev;
-@@ -2710,6 +2748,9 @@ int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
- debugfs_create_file("txpower_info", 0600, dir, phy, &mt7996_txpower_info_fops);
+@@ -2807,6 +2845,9 @@ int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
debugfs_create_file("txpower_sku", 0600, dir, phy, &mt7996_txpower_sku_fops);
+ debugfs_create_file("txpower_path", 0600, dir, phy, &mt7996_txpower_path_fops);
+ debugfs_create_devm_seqfile(dev->mt76.dev, "eeprom_mode", dir,
+ mt7996_show_eeprom_mode);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1010-mtk-wifi-mt76-mt7996-add-normal-mode-pre-calibration.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1010-mtk-wifi-mt76-mt7996-add-normal-mode-pre-calibration.patch
index 487adb7..7330ae5 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1010-mtk-wifi-mt76-mt7996-add-normal-mode-pre-calibration.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1010-mtk-wifi-mt76-mt7996-add-normal-mode-pre-calibration.patch
@@ -1,7 +1,7 @@
-From 6f2a22fee13ed919b2867ed08f106a4a31e8db79 Mon Sep 17 00:00:00 2001
+From 516fdeb45c9a8c2b8af89e6edab766a4d828e8db Mon Sep 17 00:00:00 2001
From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Date: Wed, 1 Mar 2023 12:12:51 +0800
-Subject: [PATCH 1010/1041] mtk: wifi: mt76: mt7996: add normal mode
+Subject: [PATCH 1010/1044] mtk: wifi: mt76: mt7996: add normal mode
pre-calibration support
Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
@@ -16,10 +16,10 @@
7 files changed, 188 insertions(+)
diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 5e1b15c4..1f0cd6e8 100644
+index 23310c4f..6a1ee3e2 100644
--- a/mt76_connac_mcu.h
+++ b/mt76_connac_mcu.h
-@@ -1266,6 +1266,7 @@ enum {
+@@ -1273,6 +1273,7 @@ enum {
MCU_UNI_CMD_PP = 0x38,
MCU_UNI_CMD_FIXED_RATE_TABLE = 0x40,
MCU_UNI_CMD_TESTMODE_CTRL = 0x46,
@@ -28,10 +28,10 @@
MCU_UNI_CMD_OFFCH_SCAN_CTRL = 0x58,
MCU_UNI_CMD_PER_STA_INFO = 0x6d,
diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index c553a0f5..372a822f 100644
+index c334f849..d93b1558 100644
--- a/mt7996/eeprom.c
+++ b/mt7996/eeprom.c
-@@ -446,6 +446,10 @@ int mt7996_eeprom_init(struct mt7996_dev *dev)
+@@ -449,6 +449,10 @@ int mt7996_eeprom_init(struct mt7996_dev *dev)
return ret;
}
@@ -56,10 +56,10 @@
#define MT_EE_WIFI_CONF0_TX_PATH GENMASK(2, 0)
diff --git a/mt7996/init.c b/mt7996/init.c
-index af2f4143..7cf7b0c2 100644
+index 188d4f1f..2d8d0f42 100644
--- a/mt7996/init.c
+++ b/mt7996/init.c
-@@ -988,6 +988,12 @@ static int mt7996_init_hardware(struct mt7996_dev *dev)
+@@ -984,6 +984,12 @@ static int mt7996_init_hardware(struct mt7996_dev *dev)
if (ret < 0)
return ret;
@@ -90,10 +90,10 @@
mt7996_tm_update_channel(phy);
goto out;
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index d8e5c220..fdddf457 100644
+index 19b5a173..da01f111 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
-@@ -3624,6 +3624,172 @@ int mt7996_mcu_get_eeprom_free_block(struct mt7996_dev *dev, u8 *block_num)
+@@ -3639,6 +3639,172 @@ int mt7996_mcu_get_eeprom_free_block(struct mt7996_dev *dev, u8 *block_num)
return 0;
}
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1011-mtk-wifi-mt76-testmode-add-testmode-ZWDFS-verificati.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1011-mtk-wifi-mt76-testmode-add-testmode-ZWDFS-verificati.patch
index dfcf033..3a98782 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1011-mtk-wifi-mt76-testmode-add-testmode-ZWDFS-verificati.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1011-mtk-wifi-mt76-testmode-add-testmode-ZWDFS-verificati.patch
@@ -1,7 +1,7 @@
-From 0557d0114d56520ddf0f86312401a5a024494091 Mon Sep 17 00:00:00 2001
+From aafd916aa93ef1400c25ea0783a7082f867cda5b Mon Sep 17 00:00:00 2001
From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Date: Wed, 22 Mar 2023 11:19:52 +0800
-Subject: [PATCH 1011/1041] mtk: wifi: mt76: testmode: add testmode ZWDFS
+Subject: [PATCH 1011/1044] mtk: wifi: mt76: testmode: add testmode ZWDFS
verification support
Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1012-mtk-wifi-mt76-mt7996-add-mu-vendor-command-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1012-mtk-wifi-mt76-mt7996-add-mu-vendor-command-support.patch
index 322fd05..3a679cc 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1012-mtk-wifi-mt76-mt7996-add-mu-vendor-command-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1012-mtk-wifi-mt76-mt7996-add-mu-vendor-command-support.patch
@@ -1,7 +1,7 @@
-From 842decc15bd36d4a61f17cb8927fba77b6c58999 Mon Sep 17 00:00:00 2001
+From c00796c518d5b534f77ebe2a479103dffb3488e1 Mon Sep 17 00:00:00 2001
From: MeiChia Chiu <meichia.chiu@mediatek.com>
Date: Tue, 13 Dec 2022 15:17:43 +0800
-Subject: [PATCH 1012/1041] mtk: wifi: mt76: mt7996: add mu vendor command
+Subject: [PATCH 1012/1044] mtk: wifi: mt76: mt7996: add mu vendor command
support
mtk: wifi: mt76: fix muru_onoff as all enabled by default
@@ -42,7 +42,7 @@
mt7996e-$(CONFIG_DEV_COREDUMP) += coredump.o
mt7996e-$(CONFIG_NL80211_TESTMODE) += testmode.o
diff --git a/mt7996/init.c b/mt7996/init.c
-index 7cf7b0c2..c4f0ec70 100644
+index 2d8d0f42..49884cd4 100644
--- a/mt7996/init.c
+++ b/mt7996/init.c
@@ -368,6 +368,7 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
@@ -53,7 +53,7 @@
hw->sta_data_size = sizeof(struct mt7996_sta);
hw->vif_data_size = sizeof(struct mt7996_vif);
-@@ -621,6 +622,10 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
+@@ -616,6 +617,10 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
if (ret)
goto error;
@@ -64,7 +64,7 @@
ret = mt76_register_phy(mphy, true, mt76_rates,
ARRAY_SIZE(mt76_rates));
if (ret)
-@@ -1405,6 +1410,10 @@ int mt7996_register_device(struct mt7996_dev *dev)
+@@ -1401,6 +1406,10 @@ int mt7996_register_device(struct mt7996_dev *dev)
dev->mt76.test_ops = &mt7996_testmode_ops;
#endif
@@ -76,7 +76,7 @@
ARRAY_SIZE(mt76_rates));
if (ret)
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index fdddf457..05fa855b 100644
+index da01f111..4ed4c8a4 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
@@ -1383,6 +1383,8 @@ static void
@@ -108,7 +108,7 @@
if (sta->deflink.vht_cap.vht_supported)
muru->mimo_dl.vht_mu_bfee =
-@@ -4913,3 +4918,25 @@ int mt7996_mcu_set_scs(struct mt7996_phy *phy, u8 enable)
+@@ -4928,3 +4933,25 @@ int mt7996_mcu_set_scs(struct mt7996_phy *phy, u8 enable)
return mt76_mcu_send_msg(&phy->dev->mt76, MCU_WM_UNI_CMD(SCS),
&req, sizeof(req), false);
}
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1013-mtk-wifi-mt76-mt7996-Add-air-monitor-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1013-mtk-wifi-mt76-mt7996-Add-air-monitor-support.patch
index 5afff31..3ff2783 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1013-mtk-wifi-mt76-mt7996-Add-air-monitor-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1013-mtk-wifi-mt76-mt7996-Add-air-monitor-support.patch
@@ -1,7 +1,7 @@
-From c541c6af3d962fb8eb8b844aab518702693ced12 Mon Sep 17 00:00:00 2001
+From fd83f2c255bf85eb8ce41a876f83d3d97713fb53 Mon Sep 17 00:00:00 2001
From: Evelyn Tsai <evelyn.tsai@mediatek.com>
Date: Wed, 26 Apr 2023 04:40:05 +0800
-Subject: [PATCH 1013/1041] mtk: wifi: mt76: mt7996: Add air monitor support
+Subject: [PATCH 1013/1044] mtk: wifi: mt76: mt7996: Add air monitor support
---
mt76_connac_mcu.h | 1 +
@@ -13,10 +13,10 @@
6 files changed, 445 insertions(+)
diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 1f0cd6e8..fefa2a0c 100644
+index 6a1ee3e2..5f41fc16 100644
--- a/mt76_connac_mcu.h
+++ b/mt76_connac_mcu.h
-@@ -1240,6 +1240,7 @@ enum {
+@@ -1247,6 +1247,7 @@ enum {
MCU_UNI_CMD_REG_ACCESS = 0x0d,
MCU_UNI_CMD_CHIP_CONFIG = 0x0e,
MCU_UNI_CMD_POWER_CTRL = 0x0f,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1014-mtk-wifi-mt76-mt7996-add-driver-support-for-wpa3-ocv.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1014-mtk-wifi-mt76-mt7996-add-driver-support-for-wpa3-ocv.patch
index bfecc98..16358b9 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1014-mtk-wifi-mt76-mt7996-add-driver-support-for-wpa3-ocv.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1014-mtk-wifi-mt76-mt7996-add-driver-support-for-wpa3-ocv.patch
@@ -1,7 +1,7 @@
-From 3532bffff8a8d5665304f6abb337305c50174de4 Mon Sep 17 00:00:00 2001
+From b855419db0dcd3ed7442cbbf79fd105922711ea5 Mon Sep 17 00:00:00 2001
From: mtk23510 <rudra.shahi@mediatek.com>
Date: Fri, 24 Mar 2023 19:18:53 +0800
-Subject: [PATCH 1014/1041] mtk: wifi: mt76: mt7996: add driver support for
+Subject: [PATCH 1014/1044] mtk: wifi: mt76: mt7996: add driver support for
wpa3 ocv and bp mt76
Signed-off-by: mtk23510 <rudra.shahi@mediatek.com>
@@ -10,7 +10,7 @@
1 file changed, 2 insertions(+)
diff --git a/mt7996/init.c b/mt7996/init.c
-index c4f0ec70..ab13021c 100644
+index 49884cd4..142a0f63 100644
--- a/mt7996/init.c
+++ b/mt7996/init.c
@@ -391,6 +391,8 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1015-mtk-wifi-mt76-mt7996-add-vendor-cmd-to-get-available.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1015-mtk-wifi-mt76-mt7996-add-vendor-cmd-to-get-available.patch
index 2e4efce..33746ea 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1015-mtk-wifi-mt76-mt7996-add-vendor-cmd-to-get-available.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1015-mtk-wifi-mt76-mt7996-add-vendor-cmd-to-get-available.patch
@@ -1,7 +1,7 @@
-From 5404f25b9db5bbeff8a4288f3709606290cd16f8 Mon Sep 17 00:00:00 2001
+From e9a571385e98dff38a1e0e74a39f93c744b7e02a Mon Sep 17 00:00:00 2001
From: Yi-Chia Hsieh <yi-chia.hsieh@mediatek.com>
Date: Wed, 3 May 2023 05:08:07 +0800
-Subject: [PATCH 1015/1041] mtk: wifi: mt76: mt7996: add vendor cmd to get
+Subject: [PATCH 1015/1044] mtk: wifi: mt76: mt7996: add vendor cmd to get
available color bitmap
Add a vendor cmd to notify user space available color bitmap.
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1016-mtk-wifi-mt76-mt7996-add-debugfs-for-fw-coredump.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1016-mtk-wifi-mt76-mt7996-add-debugfs-for-fw-coredump.patch
index 6039a11..c8d3d5f 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1016-mtk-wifi-mt76-mt7996-add-debugfs-for-fw-coredump.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1016-mtk-wifi-mt76-mt7996-add-debugfs-for-fw-coredump.patch
@@ -1,7 +1,7 @@
-From fc87a548d72adf02f817bfe4327973978cc69061 Mon Sep 17 00:00:00 2001
+From f1eae676ca9604151b987f09549228a166b8c632 Mon Sep 17 00:00:00 2001
From: Bo Jiao <Bo.Jiao@mediatek.com>
Date: Fri, 19 May 2023 14:56:07 +0800
-Subject: [PATCH 1016/1041] mtk: wifi: mt76: mt7996: add debugfs for fw
+Subject: [PATCH 1016/1044] mtk: wifi: mt76: mt7996: add debugfs for fw
coredump.
Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com>
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1017-mtk-wifi-mt76-mt7996-Add-mt7992-coredump-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1017-mtk-wifi-mt76-mt7996-Add-mt7992-coredump-support.patch
new file mode 100644
index 0000000..93f4afc
--- /dev/null
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1017-mtk-wifi-mt76-mt7996-Add-mt7992-coredump-support.patch
@@ -0,0 +1,163 @@
+From e7a7f2af86f895894445ced1d97e8fc09be4b30f Mon Sep 17 00:00:00 2001
+From: Rex Lu <rex.lu@mediatek.com>
+Date: Mon, 25 Dec 2023 15:17:49 +0800
+Subject: [PATCH 1017/1044] mtk: wifi: mt76: mt7996: Add mt7992 coredump
+ support
+
+1. Add mt7992 coredump support
+2. fixed if new ic have not support coredump, it may cause crash when remove module
+
+Signed-off-by: Rex Lu <rex.lu@mediatek.com>
+---
+ mt7996/coredump.c | 80 ++++++++++++++++++++++++++++++++++++++---------
+ mt7996/mt7996.h | 1 +
+ 2 files changed, 67 insertions(+), 14 deletions(-)
+
+diff --git a/mt7996/coredump.c b/mt7996/coredump.c
+index a7f91b56..d09bcd4b 100644
+--- a/mt7996/coredump.c
++++ b/mt7996/coredump.c
+@@ -67,6 +67,44 @@ static const struct mt7996_mem_region mt7996_wa_mem_regions[] = {
+ },
+ };
+
++static const struct mt7996_mem_region mt7992_wm_mem_regions[] = {
++ {
++ .start = 0x00800000,
++ .len = 0x0004bfff,
++ .name = "ULM0",
++ },
++ {
++ .start = 0x00900000,
++ .len = 0x00035fff,
++ .name = "ULM1",
++ },
++ {
++ .start = 0x02200000,
++ .len = 0x0003ffff,
++ .name = "ULM2",
++ },
++ {
++ .start = 0x00400000,
++ .len = 0x00027fff,
++ .name = "SRAM",
++ },
++ {
++ .start = 0xe0000000,
++ .len = 0x0015ffff,
++ .name = "CRAM0",
++ },
++ {
++ .start = 0xe0160000,
++ .len = 0x00c7fff,
++ .name = "CRAM1",
++ },
++ {
++ .start = 0x7c050000,
++ .len = 0x00007fff,
++ .name = "CONN_INFRA",
++ },
++};
++
+ const struct mt7996_mem_region*
+ mt7996_coredump_get_mem_layout(struct mt7996_dev *dev, u8 type, u32 *num)
+ {
+@@ -80,6 +118,14 @@ mt7996_coredump_get_mem_layout(struct mt7996_dev *dev, u8 type, u32 *num)
+
+ *num = ARRAY_SIZE(mt7996_wm_mem_regions);
+ return &mt7996_wm_mem_regions[0];
++ case 0x7992:
++ if (type == MT7996_RAM_TYPE_WA) {
++ /* mt7992 wa memory regions is the same as mt7996 */
++ *num = ARRAY_SIZE(mt7996_wa_mem_regions);
++ return &mt7996_wa_mem_regions[0];
++ }
++ *num = ARRAY_SIZE(mt7992_wm_mem_regions);
++ return &mt7992_wm_mem_regions[0];
+ default:
+ return NULL;
+ }
+@@ -115,7 +161,7 @@ struct mt7996_crash_data *mt7996_coredump_new(struct mt7996_dev *dev, u8 type)
+
+ lockdep_assert_held(&dev->dump_mutex);
+
+- if (!coredump_memdump)
++ if (!coredump_memdump || !crash_data->supported)
+ return NULL;
+
+ guid_gen(&crash_data->guid);
+@@ -289,40 +335,46 @@ int mt7996_coredump_register(struct mt7996_dev *dev)
+ for (i = 0; i < MT7996_COREDUMP_MAX; i++) {
+ crash_data = vzalloc(sizeof(*dev->coredump.crash_data[i]));
+ if (!crash_data)
+- return -ENOMEM;
++ goto nomem;
+
+ dev->coredump.crash_data[i] = crash_data;
++ crash_data->supported = false;
+
+ if (coredump_memdump) {
+ crash_data->memdump_buf_len = mt7996_coredump_get_mem_size(dev, i);
+ if (!crash_data->memdump_buf_len)
+ /* no memory content */
+- return 0;
++ continue;
+
+ crash_data->memdump_buf = vzalloc(crash_data->memdump_buf_len);
+- if (!crash_data->memdump_buf) {
+- vfree(crash_data);
+- return -ENOMEM;
+- }
++ if (!crash_data->memdump_buf)
++ goto nomem;
++
++ crash_data->supported = true;
+ }
+ }
+
+ return 0;
++nomem:
++ mt7996_coredump_unregister(dev);
++ return -ENOMEM;
+ }
+
+ void mt7996_coredump_unregister(struct mt7996_dev *dev)
+ {
+ int i;
++ struct mt7996_crash_data *crash_data;
+
+ for (i = 0; i < MT7996_COREDUMP_MAX; i++) {
+- if (dev->coredump.crash_data[i]->memdump_buf) {
+- vfree(dev->coredump.crash_data[i]->memdump_buf);
+- dev->coredump.crash_data[i]->memdump_buf = NULL;
+- dev->coredump.crash_data[i]->memdump_buf_len = 0;
+- }
++ crash_data = dev->coredump.crash_data[i];
++
++ if (!crash_data)
++ continue;
++
++ if (crash_data->memdump_buf)
++ vfree(crash_data->memdump_buf);
+
+- vfree(dev->coredump.crash_data[i]);
+- dev->coredump.crash_data[i] = NULL;
++ vfree(crash_data);
+ }
+ }
+
+diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
+index dd9aa9e2..7ca9d57e 100644
+--- a/mt7996/mt7996.h
++++ b/mt7996/mt7996.h
+@@ -230,6 +230,7 @@ struct mt7996_vif {
+ struct mt7996_crash_data {
+ guid_t guid;
+ struct timespec64 timestamp;
++ bool supported;
+
+ u8 *memdump_buf;
+ size_t memdump_buf_len;
+--
+2.18.0
+
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1017-mtk-wifi-mt76-mt7996-add-support-for-runtime-set-in-.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1018-mtk-wifi-mt76-mt7996-add-support-for-runtime-set-in-.patch
similarity index 82%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1017-mtk-wifi-mt76-mt7996-add-support-for-runtime-set-in-.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1018-mtk-wifi-mt76-mt7996-add-support-for-runtime-set-in-.patch
index 2a94253..aeeba0c 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1017-mtk-wifi-mt76-mt7996-add-support-for-runtime-set-in-.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1018-mtk-wifi-mt76-mt7996-add-support-for-runtime-set-in-.patch
@@ -1,7 +1,7 @@
-From 0e6130e10742d6937b5f6ab69a7b0c2aea1d8b79 Mon Sep 17 00:00:00 2001
+From 0d2c482270a6d32d669fd5441a40f6c5f34e99e7 Mon Sep 17 00:00:00 2001
From: MeiChia Chiu <meichia.chiu@mediatek.com>
Date: Tue, 6 Jun 2023 16:57:10 +0800
-Subject: [PATCH 1017/1041] mtk: wifi: mt76: mt7996: add support for runtime
+Subject: [PATCH 1018/1044] mtk: wifi: mt76: mt7996: add support for runtime
set in-band discovery
with this patch, AP can runtime set inband discovery via hostapd_cli
@@ -17,10 +17,10 @@
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 05fa855b..9331abb5 100644
+index 4ed4c8a4..78571034 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
-@@ -2600,8 +2600,7 @@ int mt7996_mcu_beacon_inband_discov(struct mt7996_dev *dev,
+@@ -2615,8 +2615,7 @@ int mt7996_mcu_beacon_inband_discov(struct mt7996_dev *dev,
if (IS_ERR(rskb))
return PTR_ERR(rskb);
@@ -30,7 +30,7 @@
interval = vif->bss_conf.fils_discovery.max_interval;
skb = ieee80211_get_fils_discovery_tmpl(hw, vif);
} else if (changed & BSS_CHANGED_UNSOL_BCAST_PROBE_RESP &&
-@@ -2636,7 +2635,7 @@ int mt7996_mcu_beacon_inband_discov(struct mt7996_dev *dev,
+@@ -2651,7 +2650,7 @@ int mt7996_mcu_beacon_inband_discov(struct mt7996_dev *dev,
discov->tx_type = !!(changed & BSS_CHANGED_FILS_DISCOVERY);
discov->tx_interval = interval;
discov->prob_rsp_len = cpu_to_le16(MT_TXD_SIZE + skb->len);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1018-mtk-wifi-mt76-mt7996-add-vendor-subcmd-EDCCA-ctrl-en.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1019-mtk-wifi-mt76-mt7996-add-vendor-subcmd-EDCCA-ctrl-en.patch
similarity index 97%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1018-mtk-wifi-mt76-mt7996-add-vendor-subcmd-EDCCA-ctrl-en.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1019-mtk-wifi-mt76-mt7996-add-vendor-subcmd-EDCCA-ctrl-en.patch
index 4714bd7..8f6c8d8 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1018-mtk-wifi-mt76-mt7996-add-vendor-subcmd-EDCCA-ctrl-en.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1019-mtk-wifi-mt76-mt7996-add-vendor-subcmd-EDCCA-ctrl-en.patch
@@ -1,7 +1,7 @@
-From a0ddc3b5248671258de46c7f1b4fc4e26f6cf553 Mon Sep 17 00:00:00 2001
+From 1f6dd2ec077acc13bc87b8f518a4d96d400786a6 Mon Sep 17 00:00:00 2001
From: mtk27745 <rex.lu@mediatek.com>
Date: Thu, 8 Jun 2023 20:21:04 +0800
-Subject: [PATCH 1018/1041] mtk: wifi: mt76: mt7996: add vendor subcmd EDCCA
+Subject: [PATCH 1019/1044] mtk: wifi: mt76: mt7996: add vendor subcmd EDCCA
ctrl enable
---
@@ -27,10 +27,10 @@
};
diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index dd9aa9e2..130e9b37 100644
+index 7ca9d57e..cfa50bfe 100644
--- a/mt7996/mt7996.h
+++ b/mt7996/mt7996.h
-@@ -785,6 +785,17 @@ int mt7996_vendor_amnt_sta_remove(struct mt7996_phy *phy,
+@@ -786,6 +786,17 @@ int mt7996_vendor_amnt_sta_remove(struct mt7996_phy *phy,
struct ieee80211_sta *sta);
#endif
@@ -145,10 +145,10 @@
+
#endif
diff --git a/mt7996/mtk_mcu.h b/mt7996/mtk_mcu.h
-index 1eb27831..1137fe5d 100644
+index c30418ca..36a58ad6 100644
--- a/mt7996/mtk_mcu.h
+++ b/mt7996/mtk_mcu.h
-@@ -93,6 +93,21 @@ enum txpower_event {
+@@ -106,6 +106,21 @@ enum txpower_event {
UNI_TXPOWER_PHY_RATE_INFO = 5,
};
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1019-mtk-wifi-mt76-mt7996-add-support-spatial-reuse-debug.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1020-mtk-wifi-mt76-mt7996-add-support-spatial-reuse-debug.patch
similarity index 95%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1019-mtk-wifi-mt76-mt7996-add-support-spatial-reuse-debug.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1020-mtk-wifi-mt76-mt7996-add-support-spatial-reuse-debug.patch
index a0620a7..eb14c0e 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1019-mtk-wifi-mt76-mt7996-add-support-spatial-reuse-debug.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1020-mtk-wifi-mt76-mt7996-add-support-spatial-reuse-debug.patch
@@ -1,7 +1,7 @@
-From 0b992146abb735d42afa9f2fa62c077dd09879f2 Mon Sep 17 00:00:00 2001
+From f9396e523e0f10df265a7c22b7f4ebf37d6b3f0d Mon Sep 17 00:00:00 2001
From: Howard Hsu <howard-yh.hsu@mediatek.com>
Date: Mon, 10 Jul 2023 11:47:29 +0800
-Subject: [PATCH 1019/1041] mtk: wifi: mt76: mt7996: add support spatial reuse
+Subject: [PATCH 1020/1044] mtk: wifi: mt76: mt7996: add support spatial reuse
debug commands
This commit adds the following debug commands in debugfs:
@@ -27,10 +27,10 @@
7 files changed, 270 insertions(+)
diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index fefa2a0c..b657ef39 100644
+index 5f41fc16..63c2ef10 100644
--- a/mt76_connac_mcu.h
+++ b/mt76_connac_mcu.h
-@@ -1029,6 +1029,7 @@ enum {
+@@ -1036,6 +1036,7 @@ enum {
MCU_UNI_EVENT_BSS_BEACON_LOSS = 0x0c,
MCU_UNI_EVENT_SCAN_DONE = 0x0e,
MCU_UNI_EVENT_RDD_REPORT = 0x11,
@@ -63,7 +63,7 @@
!dev->dbg.sku_disable);
#else
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 9331abb5..718a4f8d 100644
+index 78571034..7781c149 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
@@ -712,6 +712,14 @@ mt7996_mcu_uni_rx_unsolicited_event(struct mt7996_dev *dev, struct sk_buff *skb)
@@ -82,10 +82,10 @@
case MCU_UNI_EVENT_TESTMODE_CTRL:
mt7996_tm_rf_test_event(dev, skb);
diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 130e9b37..385f7218 100644
+index cfa50bfe..adb0cdd1 100644
--- a/mt7996/mt7996.h
+++ b/mt7996/mt7996.h
-@@ -351,6 +351,10 @@ struct mt7996_phy {
+@@ -352,6 +352,10 @@ struct mt7996_phy {
spinlock_t amnt_lock;
struct mt7996_air_monitor_ctrl amnt_ctrl;
#endif
@@ -96,7 +96,7 @@
};
struct mt7996_dev {
-@@ -799,6 +803,8 @@ enum edcca_bw_id {
+@@ -800,6 +804,8 @@ enum edcca_bw_id {
#ifdef CONFIG_MTK_DEBUG
int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir);
int mt7996_mcu_muru_dbg_info(struct mt7996_dev *dev, u16 item, u8 val);
@@ -106,10 +106,10 @@
#ifdef CONFIG_NET_MEDIATEK_SOC_WED
diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index fe6492ab..6229739b 100644
+index 669eba9e..d1ca9ce7 100644
--- a/mt7996/mtk_debugfs.c
+++ b/mt7996/mtk_debugfs.c
-@@ -2681,6 +2681,83 @@ static int mt7996_show_eeprom_mode(struct seq_file *s, void *data)
+@@ -2777,6 +2777,83 @@ static int mt7996_show_eeprom_mode(struct seq_file *s, void *data)
return 0;
}
@@ -193,7 +193,7 @@
int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
{
struct mt7996_dev *dev = phy->dev;
-@@ -2759,6 +2836,11 @@ int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
+@@ -2856,6 +2933,11 @@ int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
debugfs_create_u8("sku_disable", 0600, dir, &dev->dbg.sku_disable);
debugfs_create_file("scs_enable", 0200, dir, phy, &fops_scs_enable);
@@ -326,10 +326,10 @@
+}
#endif
diff --git a/mt7996/mtk_mcu.h b/mt7996/mtk_mcu.h
-index 1137fe5d..cc2de8f4 100644
+index 36a58ad6..098e63ae 100644
--- a/mt7996/mtk_mcu.h
+++ b/mt7996/mtk_mcu.h
-@@ -108,6 +108,62 @@ enum {
+@@ -121,6 +121,62 @@ enum {
EDCCA_JAPAN = 3
};
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1020-mtk-wifi-mt76-mt7996-Establish-BA-in-VO-queue.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1021-mtk-wifi-mt76-mt7996-Establish-BA-in-VO-queue.patch
similarity index 80%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1020-mtk-wifi-mt76-mt7996-Establish-BA-in-VO-queue.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1021-mtk-wifi-mt76-mt7996-Establish-BA-in-VO-queue.patch
index 5f2b377..ee0fe4e 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1020-mtk-wifi-mt76-mt7996-Establish-BA-in-VO-queue.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1021-mtk-wifi-mt76-mt7996-Establish-BA-in-VO-queue.patch
@@ -1,7 +1,7 @@
-From 135efc5c74d7ffdb671e7a8ffe32e18879251119 Mon Sep 17 00:00:00 2001
+From a3ffaab9ec8b6e38ca624bf92cc52fae318783d5 Mon Sep 17 00:00:00 2001
From: MeiChia Chiu <meichia.chiu@mediatek.com>
Date: Tue, 1 Aug 2023 16:02:28 +0800
-Subject: [PATCH 1020/1041] mtk: wifi: mt76: mt7996: Establish BA in VO queue
+Subject: [PATCH 1021/1044] mtk: wifi: mt76: mt7996: Establish BA in VO queue
---
mt7996/mac.c | 2 --
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1021-mtk-wifi-mt76-mt7996-add-eagle-iFEM-HWITS-ZWDFS-SW-w.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1022-mtk-wifi-mt76-mt7996-add-eagle-iFEM-HWITS-ZWDFS-SW-w.patch
similarity index 68%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1021-mtk-wifi-mt76-mt7996-add-eagle-iFEM-HWITS-ZWDFS-SW-w.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1022-mtk-wifi-mt76-mt7996-add-eagle-iFEM-HWITS-ZWDFS-SW-w.patch
index 169f6e0..e66e0ac 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1021-mtk-wifi-mt76-mt7996-add-eagle-iFEM-HWITS-ZWDFS-SW-w.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1022-mtk-wifi-mt76-mt7996-add-eagle-iFEM-HWITS-ZWDFS-SW-w.patch
@@ -1,21 +1,25 @@
-From 4dac1d1c289eccead02ec6d942aaa9d28929c484 Mon Sep 17 00:00:00 2001
+From 4bb174a32af42be0c3f23f302bb829a10b1dfb85 Mon Sep 17 00:00:00 2001
From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Date: Wed, 5 Jul 2023 10:00:17 +0800
-Subject: [PATCH 1021/1041] mtk: wifi: mt76: mt7996: add eagle iFEM HWITS ZWDFS
+Subject: [PATCH 1022/1044] mtk: wifi: mt76: mt7996: add eagle iFEM HWITS ZWDFS
SW workaround
+Fix the case that control channel is not first chan during first
+interface setup.
+Refactor ifem adie logic (if/else to switch, use sku_type & fem_type)
+
Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
---
- mt7996/main.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++---
+ mt7996/main.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++---
mt7996/mcu.c | 6 +++--
mt7996/mt7996.h | 1 +
- 3 files changed, 60 insertions(+), 5 deletions(-)
+ 3 files changed, 68 insertions(+), 5 deletions(-)
diff --git a/mt7996/main.c b/mt7996/main.c
-index c1776aeb..36894828 100644
+index c1776aeb..17b29aef 100644
--- a/mt7996/main.c
+++ b/mt7996/main.c
-@@ -1431,6 +1431,54 @@ mt7996_twt_teardown_request(struct ieee80211_hw *hw,
+@@ -1431,6 +1431,62 @@ mt7996_twt_teardown_request(struct ieee80211_hw *hw,
mutex_unlock(&dev->mt76.mutex);
}
@@ -27,28 +31,36 @@
+ struct mt7996_phy *phy = mt7996_hw_phy(hw);
+ struct mt7996_dev *dev = phy->dev;
+ struct cfg80211_chan_def *c = user_chandef;
++ struct ieee80211_channel *first_chan;
+ bool is_ifem_adie, expand = false;
-+ u32 origin_control;
+
-+ if (is_mt7996(&dev->mt76))
-+ is_ifem_adie = !!(mt76_get_field(dev, MT_PAD_GPIO, MT_PAD_GPIO_ADIE_COMB) % 2);
-+ else
-+ is_ifem_adie = (mt76_get_field(dev, MT_PAD_GPIO, MT_PAD_GPIO_ADIE_COMB_7992) == 1);
++ switch (mt76_chip(&dev->mt76)) {
++ case 0x7990:
++ is_ifem_adie = dev->fem_type == MT7996_FEM_INT &&
++ dev->chip_sku != MT7996_SKU_233;
++ break;
++ case 0x7992:
++ is_ifem_adie = dev->chip_sku == MT7992_SKU_44 &&
++ dev->fem_type != MT7996_FEM_EXT;
++ break;
++ default:
++ return;
++ }
+
+ if (!user_chandef || !is_ifem_adie)
+ goto out;
+
+ if (user_chandef->width == NL80211_CHAN_WIDTH_160) {
-+ origin_control = user_chandef->chan->center_freq;
++ first_chan = ieee80211_get_channel(hw->wiphy, user_chandef->center_freq1 - 70);
+ if (dev->bg_nxt_freq)
+ goto out;
+
-+ if (user_chandef->chan->flags & IEEE80211_CHAN_RADAR)
-+ dev->bg_nxt_freq = origin_control;
++ if (first_chan->flags & IEEE80211_CHAN_RADAR)
++ dev->bg_nxt_freq = first_chan->center_freq;
+ else
+ c = fw_chandef;
+
-+ c->chan = ieee80211_get_channel(hw->wiphy, origin_control + 80);
++ c->chan = ieee80211_get_channel(hw->wiphy, first_chan->center_freq + 80);
+ } else {
+ if (!dev->bg_nxt_freq)
+ goto out;
@@ -70,7 +82,7 @@
static int
mt7996_set_radar_background(struct ieee80211_hw *hw,
struct cfg80211_chan_def *chandef)
-@@ -1439,6 +1487,7 @@ mt7996_set_radar_background(struct ieee80211_hw *hw,
+@@ -1439,6 +1495,7 @@ mt7996_set_radar_background(struct ieee80211_hw *hw,
struct mt7996_dev *dev = phy->dev;
int ret = -EINVAL;
bool running;
@@ -78,7 +90,7 @@
mutex_lock(&dev->mt76.mutex);
-@@ -1451,13 +1500,14 @@ mt7996_set_radar_background(struct ieee80211_hw *hw,
+@@ -1451,13 +1508,14 @@ mt7996_set_radar_background(struct ieee80211_hw *hw,
goto out;
}
@@ -95,7 +107,7 @@
ret = mt7996_mcu_rdd_background_enable(phy, NULL);
if (ret)
goto out;
-@@ -1466,7 +1516,9 @@ mt7996_set_radar_background(struct ieee80211_hw *hw,
+@@ -1466,7 +1524,9 @@ mt7996_set_radar_background(struct ieee80211_hw *hw,
goto update_phy;
}
@@ -107,7 +119,7 @@
goto out;
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 718a4f8d..689f4ec5 100644
+index 7781c149..fff5a826 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
@@ -369,12 +369,14 @@ mt7996_mcu_rx_radar_detected(struct mt7996_dev *dev, struct sk_buff *skb)
@@ -128,10 +140,10 @@
}
diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 385f7218..5175c7fa 100644
+index adb0cdd1..b2fb68c3 100644
--- a/mt7996/mt7996.h
+++ b/mt7996/mt7996.h
-@@ -440,6 +440,7 @@ struct mt7996_dev {
+@@ -441,6 +441,7 @@ struct mt7996_dev {
bool testmode_enable;
bool bin_file_mode;
u8 eeprom_mode;
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1022-mtk-wifi-mt76-mt7996-report-tx-and-rx-byte-to-tpt_le.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1023-mtk-wifi-mt76-mt7996-report-tx-and-rx-byte-to-tpt_le.patch
similarity index 89%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1022-mtk-wifi-mt76-mt7996-report-tx-and-rx-byte-to-tpt_le.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1023-mtk-wifi-mt76-mt7996-report-tx-and-rx-byte-to-tpt_le.patch
index 9c8994c..57bd776 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1022-mtk-wifi-mt76-mt7996-report-tx-and-rx-byte-to-tpt_le.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1023-mtk-wifi-mt76-mt7996-report-tx-and-rx-byte-to-tpt_le.patch
@@ -1,7 +1,7 @@
-From 386da4814a8d8edd4071d0a98ac53402f18845fc Mon Sep 17 00:00:00 2001
+From f3ed6cebb20914e0f0417f180fb0bff1fd1a73e2 Mon Sep 17 00:00:00 2001
From: Yi-Chia Hsieh <yi-chia.hsieh@mediatek.com>
Date: Sat, 12 Aug 2023 04:17:22 +0800
-Subject: [PATCH 1022/1041] mtk: wifi: mt76: mt7996: report tx and rx byte to
+Subject: [PATCH 1023/1044] mtk: wifi: mt76: mt7996: report tx and rx byte to
tpt_led
---
@@ -9,7 +9,7 @@
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 689f4ec5..5683b3f5 100644
+index fff5a826..5c695669 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
@@ -522,6 +522,8 @@ mt7996_mcu_rx_all_sta_info_event(struct mt7996_dev *dev, struct sk_buff *skb)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1023-mtk-wifi-mt76-mt7996-support-dup-wtbl.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1024-mtk-wifi-mt76-mt7996-support-dup-wtbl.patch
similarity index 85%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1023-mtk-wifi-mt76-mt7996-support-dup-wtbl.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1024-mtk-wifi-mt76-mt7996-support-dup-wtbl.patch
index fe7894a..77d4d6f 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1023-mtk-wifi-mt76-mt7996-support-dup-wtbl.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1024-mtk-wifi-mt76-mt7996-support-dup-wtbl.patch
@@ -1,7 +1,7 @@
-From ea760fad749d58a54d4bbd41528a60503aa56eef Mon Sep 17 00:00:00 2001
+From 9932a8833f86351759e9a985cae1a3c86a1d0b1d Mon Sep 17 00:00:00 2001
From: Shayne Chen <shayne.chen@mediatek.com>
Date: Thu, 21 Sep 2023 00:52:46 +0800
-Subject: [PATCH 1023/1041] mtk: wifi: mt76: mt7996: support dup wtbl
+Subject: [PATCH 1024/1044] mtk: wifi: mt76: mt7996: support dup wtbl
Signed-off-by: Shayne Chen <shayne.chen@mediatek.com>
---
@@ -11,10 +11,10 @@
3 files changed, 25 insertions(+)
diff --git a/mt7996/init.c b/mt7996/init.c
-index ab13021c..b3677e03 100644
+index 142a0f63..91aff836 100644
--- a/mt7996/init.c
+++ b/mt7996/init.c
-@@ -680,6 +680,7 @@ static void mt7996_init_work(struct work_struct *work)
+@@ -675,6 +675,7 @@ static void mt7996_init_work(struct work_struct *work)
mt7996_mcu_set_eeprom(dev);
mt7996_mac_init(dev);
mt7996_txbf_init(dev);
@@ -23,10 +23,10 @@
void mt7996_wfsys_reset(struct mt7996_dev *dev)
diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 5175c7fa..087ab526 100644
+index b2fb68c3..23497b46 100644
--- a/mt7996/mt7996.h
+++ b/mt7996/mt7996.h
-@@ -806,6 +806,7 @@ int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir);
+@@ -807,6 +807,7 @@ int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir);
int mt7996_mcu_muru_dbg_info(struct mt7996_dev *dev, u16 item, u8 val);
int mt7996_mcu_set_sr_enable(struct mt7996_phy *phy, u8 action, u64 val, bool set);
void mt7996_mcu_rx_sr_event(struct mt7996_dev *dev, struct sk_buff *skb);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1024-mtk-wifi-mt76-mt7996-add-ibf-control-vendor-cmd.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1025-mtk-wifi-mt76-mt7996-add-ibf-control-vendor-cmd.patch
similarity index 96%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1024-mtk-wifi-mt76-mt7996-add-ibf-control-vendor-cmd.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1025-mtk-wifi-mt76-mt7996-add-ibf-control-vendor-cmd.patch
index eb32e88..477c786 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1024-mtk-wifi-mt76-mt7996-add-ibf-control-vendor-cmd.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1025-mtk-wifi-mt76-mt7996-add-ibf-control-vendor-cmd.patch
@@ -1,7 +1,7 @@
-From 4d89751738af129e90d9c77fd72308decce2fbfc Mon Sep 17 00:00:00 2001
+From f5758611be21fa63b3414e0746ddb5fb8b7a6700 Mon Sep 17 00:00:00 2001
From: "Allen.Ye" <allen.ye@mediatek.com>
Date: Fri, 22 Sep 2023 09:54:49 +0800
-Subject: [PATCH 1024/1041] mtk: wifi: mt76: mt7996: add ibf control vendor cmd
+Subject: [PATCH 1025/1044] mtk: wifi: mt76: mt7996: add ibf control vendor cmd
Signed-off-by: Allen.Ye <allen.ye@mediatek.com>
---
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1025-mtk-wifi-mt76-try-more-times-when-send-message-timeo.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1026-mtk-wifi-mt76-try-more-times-when-send-message-timeo.patch
similarity index 97%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1025-mtk-wifi-mt76-try-more-times-when-send-message-timeo.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1026-mtk-wifi-mt76-try-more-times-when-send-message-timeo.patch
index a9be456..8127bcb 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1025-mtk-wifi-mt76-try-more-times-when-send-message-timeo.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1026-mtk-wifi-mt76-try-more-times-when-send-message-timeo.patch
@@ -1,7 +1,7 @@
-From 2e5df04c0677add9e853c65b619bacffbfd10cf6 Mon Sep 17 00:00:00 2001
+From c5b9ecebf45799539185e75478fc0cd796d88746 Mon Sep 17 00:00:00 2001
From: Bo Jiao <Bo.Jiao@mediatek.com>
Date: Mon, 6 Nov 2023 11:10:10 +0800
-Subject: [PATCH 1025/1041] mtk: wifi: mt76: try more times when send message
+Subject: [PATCH 1026/1044] mtk: wifi: mt76: try more times when send message
timeout.
Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com>
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1026-mtk-wifi-mt76-mt7996-add-SER-overlap-handle.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1027-mtk-wifi-mt76-mt7996-add-SER-overlap-handle.patch
similarity index 92%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1026-mtk-wifi-mt76-mt7996-add-SER-overlap-handle.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1027-mtk-wifi-mt76-mt7996-add-SER-overlap-handle.patch
index 5561e51..ce1378f 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1026-mtk-wifi-mt76-mt7996-add-SER-overlap-handle.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1027-mtk-wifi-mt76-mt7996-add-SER-overlap-handle.patch
@@ -1,7 +1,7 @@
-From 4165fd47922164b4837bc5d247a82bca1a8e1b75 Mon Sep 17 00:00:00 2001
+From 0637936c479920fdd7e2b7539d17f30c5146a346 Mon Sep 17 00:00:00 2001
From: Bo Jiao <Bo.Jiao@mediatek.com>
Date: Tue, 21 Nov 2023 09:55:46 +0800
-Subject: [PATCH 1026/1041] mtk: wifi: mt76: mt7996: add SER overlap handle
+Subject: [PATCH 1027/1044] mtk: wifi: mt76: mt7996: add SER overlap handle
Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com>
---
@@ -59,7 +59,7 @@
wake_up(&dev->reset_wait);
}
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 5683b3f5..726d2adf 100644
+index 5c695669..eda6c506 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
@@ -246,6 +246,14 @@ mt7996_mcu_send_message(struct mt76_dev *mdev, struct sk_buff *skb,
@@ -78,10 +78,10 @@
seq = ++dev->mt76.mcu.msg_seq & 0xf;
diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 087ab526..71602b9b 100644
+index 23497b46..c590a8b8 100644
--- a/mt7996/mt7996.h
+++ b/mt7996/mt7996.h
-@@ -391,6 +391,8 @@ struct mt7996_dev {
+@@ -392,6 +392,8 @@ struct mt7996_dev {
wait_queue_head_t reset_wait;
struct {
u32 state;
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1027-mtk-wifi-mt76-mt7996-kite-default-1-pcie-setting.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1028-mtk-wifi-mt76-mt7996-kite-default-1-pcie-setting.patch
similarity index 91%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1027-mtk-wifi-mt76-mt7996-kite-default-1-pcie-setting.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1028-mtk-wifi-mt76-mt7996-kite-default-1-pcie-setting.patch
index 95c0edf..d19d3cd 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1027-mtk-wifi-mt76-mt7996-kite-default-1-pcie-setting.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1028-mtk-wifi-mt76-mt7996-kite-default-1-pcie-setting.patch
@@ -1,7 +1,7 @@
-From c0b68dfc03ee90fde9ebacc07db8f3c186846dd5 Mon Sep 17 00:00:00 2001
+From 34597329f87f553c3f19212067f7a0c7c0265cd5 Mon Sep 17 00:00:00 2001
From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Date: Thu, 13 Jul 2023 16:36:36 +0800
-Subject: [PATCH 1027/1041] mtk: wifi: mt76: mt7996: kite default 1-pcie
+Subject: [PATCH 1028/1044] mtk: wifi: mt76: mt7996: kite default 1-pcie
setting
Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1028-mtk-wifi-mt76-mt7996-add-debugfs-knob-for-rx_counter.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1029-mtk-wifi-mt76-mt7996-add-debugfs-knob-for-rx_counter.patch
similarity index 96%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1028-mtk-wifi-mt76-mt7996-add-debugfs-knob-for-rx_counter.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1029-mtk-wifi-mt76-mt7996-add-debugfs-knob-for-rx_counter.patch
index 5822e8c..95e3b35 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1028-mtk-wifi-mt76-mt7996-add-debugfs-knob-for-rx_counter.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1029-mtk-wifi-mt76-mt7996-add-debugfs-knob-for-rx_counter.patch
@@ -1,7 +1,7 @@
-From 64832783fc40e4a4075c2ac3b9c78a81266ef988 Mon Sep 17 00:00:00 2001
+From 97f4660009bcee136694bc1fdf376d0ffd8dc103 Mon Sep 17 00:00:00 2001
From: Peter Chiu <chui-hao.chiu@mediatek.com>
Date: Fri, 28 Apr 2023 10:39:58 +0800
-Subject: [PATCH 1028/1041] mtk: wifi: mt76: mt7996: add debugfs knob for
+Subject: [PATCH 1029/1044] mtk: wifi: mt76: mt7996: add debugfs knob for
rx_counters
Signed-off-by: Peter Chiu <chui-hao.chiu@mediatek.com>
@@ -227,10 +227,10 @@
break;
}
diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 6229739b..e1689605 100644
+index d1ca9ce7..17bbed65 100644
--- a/mt7996/mtk_debugfs.c
+++ b/mt7996/mtk_debugfs.c
-@@ -2758,6 +2758,46 @@ mt7996_sr_scene_cond_show(struct seq_file *file, void *data)
+@@ -2854,6 +2854,46 @@ mt7996_sr_scene_cond_show(struct seq_file *file, void *data)
}
DEFINE_SHOW_ATTRIBUTE(mt7996_sr_scene_cond);
@@ -277,7 +277,7 @@
int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
{
struct mt7996_dev *dev = phy->dev;
-@@ -2821,6 +2861,8 @@ int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
+@@ -2917,6 +2957,8 @@ int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
debugfs_create_devm_seqfile(dev->mt76.dev, "tr_info", dir,
mt7996_trinfo_read);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1029-mtk-wifi-mt76-mt7996-add-three-wire-pta-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1030-mtk-wifi-mt76-mt7996-add-three-wire-pta-support.patch
similarity index 95%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1029-mtk-wifi-mt76-mt7996-add-three-wire-pta-support.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1030-mtk-wifi-mt76-mt7996-add-three-wire-pta-support.patch
index 9902ccb..16ea061 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1029-mtk-wifi-mt76-mt7996-add-three-wire-pta-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1030-mtk-wifi-mt76-mt7996-add-three-wire-pta-support.patch
@@ -1,7 +1,7 @@
-From 1f4de166ff558ddc2803ce0661ac212dd8e7ffe2 Mon Sep 17 00:00:00 2001
+From 6c341942f4c70345db030e578526c431baf05d5c Mon Sep 17 00:00:00 2001
From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Date: Tue, 24 Oct 2023 15:59:18 +0800
-Subject: [PATCH 1029/1041] mtk: wifi: mt76: mt7996: add three wire pta support
+Subject: [PATCH 1030/1044] mtk: wifi: mt76: mt7996: add three wire pta support
three wire enable bit 0 & 1 for EXT0 & EXT1, respectively
@@ -13,10 +13,10 @@
3 files changed, 62 insertions(+)
diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index b657ef39..615c42b1 100644
+index 63c2ef10..06c8b960 100644
--- a/mt76_connac_mcu.h
+++ b/mt76_connac_mcu.h
-@@ -1274,6 +1274,7 @@ enum {
+@@ -1281,6 +1281,7 @@ enum {
MCU_UNI_CMD_PER_STA_INFO = 0x6d,
MCU_UNI_CMD_ALL_STA_INFO = 0x6e,
MCU_UNI_CMD_ASSERT_DUMP = 0x6f,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1030-mtk-wifi-mt76-mt7996-support-BF-MIMO-debug-commands.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1031-mtk-wifi-mt76-mt7996-support-BF-MIMO-debug-commands.patch
similarity index 98%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1030-mtk-wifi-mt76-mt7996-support-BF-MIMO-debug-commands.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1031-mtk-wifi-mt76-mt7996-support-BF-MIMO-debug-commands.patch
index 3048405..ef74d6b 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1030-mtk-wifi-mt76-mt7996-support-BF-MIMO-debug-commands.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1031-mtk-wifi-mt76-mt7996-support-BF-MIMO-debug-commands.patch
@@ -1,7 +1,7 @@
-From 05cf83b4947264a8afca95116afd98cb4519a9d5 Mon Sep 17 00:00:00 2001
+From 00fd52c040117f402328d7e4138df14ef71524a1 Mon Sep 17 00:00:00 2001
From: Howard Hsu <howard-yh.hsu@mediatek.com>
Date: Tue, 3 Jan 2023 09:42:07 +0800
-Subject: [PATCH 1030/1041] mtk: wifi: mt76: mt7996: support BF/MIMO debug
+Subject: [PATCH 1031/1044] mtk: wifi: mt76: mt7996: support BF/MIMO debug
commands
This commit includes the following commands:
@@ -25,7 +25,7 @@
6 files changed, 1102 insertions(+)
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 726d2adf..d3dab186 100644
+index eda6c506..9f8616ea 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
@@ -741,6 +741,11 @@ mt7996_mcu_uni_rx_unsolicited_event(struct mt7996_dev *dev, struct sk_buff *skb)
@@ -58,10 +58,10 @@
enum {
diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 71602b9b..a321e8e8 100644
+index c590a8b8..33936f90 100644
--- a/mt7996/mt7996.h
+++ b/mt7996/mt7996.h
-@@ -809,6 +809,11 @@ int mt7996_mcu_muru_dbg_info(struct mt7996_dev *dev, u16 item, u8 val);
+@@ -810,6 +810,11 @@ int mt7996_mcu_muru_dbg_info(struct mt7996_dev *dev, u16 item, u8 val);
int mt7996_mcu_set_sr_enable(struct mt7996_phy *phy, u8 action, u64 val, bool set);
void mt7996_mcu_rx_sr_event(struct mt7996_dev *dev, struct sk_buff *skb);
int mt7996_mcu_set_dup_wtbl(struct mt7996_dev *dev);
@@ -74,10 +74,10 @@
#ifdef CONFIG_NET_MEDIATEK_SOC_WED
diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index e1689605..938da645 100644
+index 17bbed65..651fb4a9 100644
--- a/mt7996/mtk_debugfs.c
+++ b/mt7996/mtk_debugfs.c
-@@ -2798,6 +2798,117 @@ static int mt7996_rx_counters(struct seq_file *s, void *data)
+@@ -2894,6 +2894,117 @@ static int mt7996_rx_counters(struct seq_file *s, void *data)
return 0;
}
@@ -195,7 +195,7 @@
int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
{
struct mt7996_dev *dev = phy->dev;
-@@ -2883,6 +2994,15 @@ int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
+@@ -2980,6 +3091,15 @@ int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
debugfs_create_file("sr_stats", 0400, dir, phy, &mt7996_sr_stats_fops);
debugfs_create_file("sr_scene_cond", 0400, dir, phy, &mt7996_sr_scene_cond_fops);
@@ -847,10 +847,10 @@
+
#endif
diff --git a/mt7996/mtk_mcu.h b/mt7996/mtk_mcu.h
-index cc2de8f4..519ffe1c 100644
+index 098e63ae..71c6684a 100644
--- a/mt7996/mtk_mcu.h
+++ b/mt7996/mtk_mcu.h
-@@ -106,6 +106,348 @@ enum {
+@@ -119,6 +119,348 @@ enum {
EDCCA_FCC = 1,
EDCCA_ETSI = 2,
EDCCA_JAPAN = 3
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1031-mtk-wifi-mt76-mt7996-add-build-the-following-MURU-mc.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1032-mtk-wifi-mt76-mt7996-add-build-the-following-MURU-mc.patch
similarity index 91%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1031-mtk-wifi-mt76-mt7996-add-build-the-following-MURU-mc.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1032-mtk-wifi-mt76-mt7996-add-build-the-following-MURU-mc.patch
index bd1a654..2a74748 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1031-mtk-wifi-mt76-mt7996-add-build-the-following-MURU-mc.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1032-mtk-wifi-mt76-mt7996-add-build-the-following-MURU-mc.patch
@@ -1,7 +1,7 @@
-From 16c194f2e8eb3bbe932ef58569eefa1dfb806264 Mon Sep 17 00:00:00 2001
+From 89b3bd70258ed3f943c61e88288ef6f63160a579 Mon Sep 17 00:00:00 2001
From: Howard Hsu <howard-yh.hsu@mediatek.com>
Date: Tue, 13 Jun 2023 14:49:02 +0800
-Subject: [PATCH 1031/1041] mtk: wifi: mt76: mt7996: add build the following
+Subject: [PATCH 1032/1044] mtk: wifi: mt76: mt7996: add build the following
MURU mcu command tlvs
It includes the following tlvs:
@@ -29,10 +29,10 @@
enum {
diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index a321e8e8..9df6b25c 100644
+index 33936f90..4a268a4e 100644
--- a/mt7996/mt7996.h
+++ b/mt7996/mt7996.h
-@@ -814,6 +814,9 @@ void mt7996_mcu_rx_bf_event(struct mt7996_dev *dev, struct sk_buff *skb);
+@@ -815,6 +815,9 @@ void mt7996_mcu_rx_bf_event(struct mt7996_dev *dev, struct sk_buff *skb);
int mt7996_mcu_set_muru_fixed_rate_enable(struct mt7996_dev *dev, u8 action, int val);
int mt7996_mcu_set_muru_fixed_rate_parameter(struct mt7996_dev *dev, u8 action, void *para);
int mt7996_mcu_set_txbf_snd_info(struct mt7996_phy *phy, void *para);
@@ -43,10 +43,10 @@
#ifdef CONFIG_NET_MEDIATEK_SOC_WED
diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 938da645..1530ad79 100644
+index 651fb4a9..87c80828 100644
--- a/mt7996/mtk_debugfs.c
+++ b/mt7996/mtk_debugfs.c
-@@ -2909,6 +2909,16 @@ static const struct file_operations fops_muru_fixed_group_rate = {
+@@ -3005,6 +3005,16 @@ static const struct file_operations fops_muru_fixed_group_rate = {
.llseek = default_llseek,
};
@@ -63,7 +63,7 @@
int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
{
struct mt7996_dev *dev = phy->dev;
-@@ -3003,6 +3013,8 @@ int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
+@@ -3100,6 +3110,8 @@ int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
debugfs_create_file("bf_fbk_rpt", 0600, dir, phy, &fops_bf_fbk_rpt);
debugfs_create_file("pfmu_tag_read", 0600, dir, phy, &fops_bf_pfmu_tag_read);
@@ -160,10 +160,10 @@
+
#endif
diff --git a/mt7996/mtk_mcu.h b/mt7996/mtk_mcu.h
-index 519ffe1c..eedc3589 100644
+index 71c6684a..b061950c 100644
--- a/mt7996/mtk_mcu.h
+++ b/mt7996/mtk_mcu.h
-@@ -106,6 +106,20 @@ enum {
+@@ -119,6 +119,20 @@ enum {
EDCCA_FCC = 1,
EDCCA_ETSI = 2,
EDCCA_JAPAN = 3
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1032-mtk-wifi-mt76-mt7996-add-cert-patch.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1033-mtk-wifi-mt76-mt7996-add-cert-patch.patch
similarity index 96%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1032-mtk-wifi-mt76-mt7996-add-cert-patch.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1033-mtk-wifi-mt76-mt7996-add-cert-patch.patch
index ca22864..0ba5aa8 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1032-mtk-wifi-mt76-mt7996-add-cert-patch.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1033-mtk-wifi-mt76-mt7996-add-cert-patch.patch
@@ -1,7 +1,7 @@
-From 0a36115fd164506e65bcbef9444f6664ba833c04 Mon Sep 17 00:00:00 2001
+From 9c5efd0e6b30c6ceab6e0f5a0f9056cea9844785 Mon Sep 17 00:00:00 2001
From: MeiChia Chiu <meichia.chiu@mediatek.com>
Date: Mon, 14 Aug 2023 13:36:58 +0800
-Subject: [PATCH 1032/1041] mtk: wifi: mt76: mt7996: add cert patch
+Subject: [PATCH 1033/1044] mtk: wifi: mt76: mt7996: add cert patch
This patch includes TGac and TGax
@@ -16,11 +16,11 @@
mt7996/mcu.c | 40 +++++++++
mt7996/mcu.h | 6 ++
mt7996/mt7996.h | 13 +++
- mt7996/mtk_mcu.c | 206 ++++++++++++++++++++++++++++++++++++++++++
+ mt7996/mtk_mcu.c | 205 ++++++++++++++++++++++++++++++++++++++++++
mt7996/mtk_mcu.h | 184 +++++++++++++++++++++++++++++++++++--
mt7996/vendor.c | 230 ++++++++++++++++++++++++++++++++++++++++++++++-
mt7996/vendor.h | 67 ++++++++++++++
- 9 files changed, 779 insertions(+), 7 deletions(-)
+ 9 files changed, 778 insertions(+), 7 deletions(-)
diff --git a/mt7996/mac.c b/mt7996/mac.c
index 73c66e57..27e5fb71 100644
@@ -50,7 +50,7 @@
{
struct mt7996_dev *dev = container_of(work, struct mt7996_dev, rc_work);
diff --git a/mt7996/main.c b/mt7996/main.c
-index 36894828..5a5b549a 100644
+index 17b29aef..f4d50ec1 100644
--- a/mt7996/main.c
+++ b/mt7996/main.c
@@ -588,6 +588,7 @@ mt7996_get_rates_table(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
@@ -113,7 +113,7 @@
void mt7996_mac_sta_remove(struct mt76_dev *mdev, struct ieee80211_vif *vif,
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index d3dab186..7f235f91 100644
+index 9f8616ea..7bd1221b 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
@@ -1359,6 +1359,10 @@ mt7996_mcu_sta_vht_tlv(struct sk_buff *skb, struct ieee80211_sta *sta)
@@ -137,7 +137,7 @@
}
static void
-@@ -4445,6 +4452,27 @@ int mt7996_mcu_set_rts_thresh(struct mt7996_phy *phy, u32 val)
+@@ -4460,6 +4467,27 @@ int mt7996_mcu_set_rts_thresh(struct mt7996_phy *phy, u32 val)
&req, sizeof(req), true);
}
@@ -165,7 +165,7 @@
int mt7996_mcu_set_radio_en(struct mt7996_phy *phy, bool enable)
{
struct {
-@@ -4959,6 +4987,18 @@ void mt7996_set_wireless_vif(void *data, u8 *mac, struct ieee80211_vif *vif)
+@@ -4974,6 +5002,18 @@ void mt7996_set_wireless_vif(void *data, u8 *mac, struct ieee80211_vif *vif)
val = FIELD_GET(RATE_CFG_VAL, *((u32 *)data));
switch (mode) {
@@ -221,10 +221,10 @@
enum {
diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 9df6b25c..e1a191ec 100644
+index 4a268a4e..b9c37612 100644
--- a/mt7996/mt7996.h
+++ b/mt7996/mt7996.h
-@@ -348,6 +348,7 @@ struct mt7996_phy {
+@@ -349,6 +349,7 @@ struct mt7996_phy {
} test;
#endif
#ifdef CONFIG_MTK_VENDOR
@@ -232,7 +232,7 @@
spinlock_t amnt_lock;
struct mt7996_air_monitor_ctrl amnt_ctrl;
#endif
-@@ -475,6 +476,9 @@ struct mt7996_dev {
+@@ -476,6 +477,9 @@ struct mt7996_dev {
} dbg;
const struct mt7996_dbg_reg_desc *dbg_reg;
#endif
@@ -242,7 +242,7 @@
};
enum {
-@@ -672,6 +676,7 @@ void mt7996_tm_rf_test_event(struct mt7996_dev *dev, struct sk_buff *skb);
+@@ -673,6 +677,7 @@ void mt7996_tm_rf_test_event(struct mt7996_dev *dev, struct sk_buff *skb);
int mt7996_mcu_get_tx_power_info(struct mt7996_phy *phy, u8 category, void *event);
int mt7996_mcu_set_scs(struct mt7996_phy *phy, u8 enable);
void mt7996_mcu_scs_sta_poll(struct work_struct *work);
@@ -250,7 +250,7 @@
static inline u8 mt7996_max_interface_num(struct mt7996_dev *dev)
{
-@@ -790,6 +795,10 @@ void mt7996_vendor_register(struct mt7996_phy *phy);
+@@ -791,6 +796,10 @@ void mt7996_vendor_register(struct mt7996_phy *phy);
void mt7996_vendor_amnt_fill_rx(struct mt7996_phy *phy, struct sk_buff *skb);
int mt7996_vendor_amnt_sta_remove(struct mt7996_phy *phy,
struct ieee80211_sta *sta);
@@ -261,7 +261,7 @@
#endif
int mt7996_mcu_edcca_enable(struct mt7996_phy *phy, bool enable);
-@@ -817,6 +826,10 @@ int mt7996_mcu_set_txbf_snd_info(struct mt7996_phy *phy, void *para);
+@@ -818,6 +827,10 @@ int mt7996_mcu_set_txbf_snd_info(struct mt7996_phy *phy, void *para);
int mt7996_mcu_set_muru_cmd(struct mt7996_dev *dev, u16 action, int val);
int mt7996_mcu_muru_set_prot_frame_thr(struct mt7996_dev *dev, u32 val);
int mt7996_mcu_set_bypass_smthint(struct mt7996_phy *phy, u8 val);
@@ -273,10 +273,10 @@
#ifdef CONFIG_NET_MEDIATEK_SOC_WED
diff --git a/mt7996/mtk_mcu.c b/mt7996/mtk_mcu.c
-index b7d86384..3b8fbe42 100644
+index b7d86384..cacca449 100644
--- a/mt7996/mtk_mcu.c
+++ b/mt7996/mtk_mcu.c
-@@ -984,4 +985,209 @@ int mt7996_mcu_set_bypass_smthint(struct mt7996_phy *phy, u8 val)
+@@ -984,4 +984,209 @@ int mt7996_mcu_set_bypass_smthint(struct mt7996_phy *phy, u8 val)
true);
}
@@ -487,10 +487,10 @@
+
#endif
diff --git a/mt7996/mtk_mcu.h b/mt7996/mtk_mcu.h
-index eedc3589..44cb0327 100644
+index b061950c..98c9660a 100644
--- a/mt7996/mtk_mcu.h
+++ b/mt7996/mtk_mcu.h
-@@ -109,14 +109,15 @@ enum {
+@@ -122,14 +122,15 @@ enum {
};
enum {
@@ -511,7 +511,7 @@
UNI_CMD_MURU_PROT_FRAME_THR = 0xCC,
UNI_CMD_MURU_SET_CERT_MU_EDCA_OVERRIDE,
};
-@@ -520,6 +521,179 @@ struct mt7996_mcu_sr_hw_ind_event {
+@@ -533,6 +534,179 @@ struct mt7996_mcu_sr_hw_ind_event {
__le32 sr_ampdu_mpdu_cnt;
__le32 sr_ampdu_mpdu_acked_cnt;
};
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1033-mtk-wifi-mt76-testmode-add-testmode-bf-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1034-mtk-wifi-mt76-testmode-add-testmode-bf-support.patch
similarity index 97%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1033-mtk-wifi-mt76-testmode-add-testmode-bf-support.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1034-mtk-wifi-mt76-testmode-add-testmode-bf-support.patch
index 569965f..6cd784f 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1033-mtk-wifi-mt76-testmode-add-testmode-bf-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1034-mtk-wifi-mt76-testmode-add-testmode-bf-support.patch
@@ -1,7 +1,7 @@
-From 5ebdb72f481cab029434e63a70b5c16d9fd2ec64 Mon Sep 17 00:00:00 2001
+From cc8ecb9fe62c4689899d79d8c710c2756a2bf131 Mon Sep 17 00:00:00 2001
From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Date: Thu, 6 Apr 2023 16:40:28 +0800
-Subject: [PATCH 1033/1041] mtk: wifi: mt76: testmode: add testmode bf support
+Subject: [PATCH 1034/1044] mtk: wifi: mt76: testmode: add testmode bf support
Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
@@ -48,7 +48,7 @@
bool ebf;
diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 615c42b1..306e7bee 100644
+index 06c8b960..2cdd5b9c 100644
--- a/mt76_connac_mcu.h
+++ b/mt76_connac_mcu.h
@@ -488,7 +488,8 @@ struct sta_rec_bf {
@@ -61,7 +61,7 @@
} __packed;
struct sta_rec_bfee {
-@@ -1267,6 +1268,7 @@ enum {
+@@ -1274,6 +1275,7 @@ enum {
MCU_UNI_CMD_VOW = 0x37,
MCU_UNI_CMD_PP = 0x38,
MCU_UNI_CMD_FIXED_RATE_TABLE = 0x40,
@@ -70,7 +70,7 @@
MCU_UNI_CMD_PRECAL_RESULT = 0x47,
MCU_UNI_CMD_RRO = 0x57,
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 7f235f91..6ba9c9d5 100644
+index 7bd1221b..5b5ddafb 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
@@ -1067,7 +1067,12 @@ mt7996_mcu_bss_basic_tlv(struct sk_buff *skb,
@@ -87,7 +87,7 @@
return 0;
}
-@@ -4103,7 +4108,6 @@ int mt7996_mcu_set_ser(struct mt7996_dev *dev, u8 action, u8 val, u8 band)
+@@ -4118,7 +4123,6 @@ int mt7996_mcu_set_ser(struct mt7996_dev *dev, u8 action, u8 val, u8 band)
int mt7996_mcu_set_txbf(struct mt7996_dev *dev, u8 action)
{
#define MT7996_BF_MAX_SIZE sizeof(union bf_tag_tlv)
@@ -166,10 +166,10 @@
CMD_BAND_NONE,
CMD_BAND_24G,
diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index e1a191ec..b5ce4a55 100644
+index b9c37612..2f76a0af 100644
--- a/mt7996/mt7996.h
+++ b/mt7996/mt7996.h
-@@ -479,6 +479,14 @@ struct mt7996_dev {
+@@ -480,6 +480,14 @@ struct mt7996_dev {
#ifdef CONFIG_MTK_VENDOR
bool cert_mode;
#endif
@@ -184,7 +184,7 @@
};
enum {
-@@ -818,7 +826,7 @@ int mt7996_mcu_muru_dbg_info(struct mt7996_dev *dev, u16 item, u8 val);
+@@ -819,7 +827,7 @@ int mt7996_mcu_muru_dbg_info(struct mt7996_dev *dev, u16 item, u8 val);
int mt7996_mcu_set_sr_enable(struct mt7996_phy *phy, u8 action, u64 val, bool set);
void mt7996_mcu_rx_sr_event(struct mt7996_dev *dev, struct sk_buff *skb);
int mt7996_mcu_set_dup_wtbl(struct mt7996_dev *dev);
@@ -193,7 +193,7 @@
void mt7996_mcu_rx_bf_event(struct mt7996_dev *dev, struct sk_buff *skb);
int mt7996_mcu_set_muru_fixed_rate_enable(struct mt7996_dev *dev, u8 action, int val);
int mt7996_mcu_set_muru_fixed_rate_parameter(struct mt7996_dev *dev, u8 action, void *para);
-@@ -830,10 +838,12 @@ int mt7996_mcu_set_rfeature_trig_type(struct mt7996_phy *phy, u8 enable, u8 trig
+@@ -831,10 +839,12 @@ int mt7996_mcu_set_rfeature_trig_type(struct mt7996_phy *phy, u8 enable, u8 trig
void mt7996_mcu_set_ppdu_tx_type(struct mt7996_phy *phy, u8 ppdu_type);
void mt7996_mcu_set_nusers_ofdma(struct mt7996_phy *phy, u8 type, u8 ofdma_user_cnt);
void mt7996_mcu_set_cert(struct mt7996_phy *phy, u8 type);
@@ -207,10 +207,10 @@
+
#endif
diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 1530ad79..0fdb911d 100644
+index 87c80828..9aeb6437 100644
--- a/mt7996/mtk_debugfs.c
+++ b/mt7996/mtk_debugfs.c
-@@ -2803,7 +2803,7 @@ mt7996_starec_bf_read_set(void *data, u64 wlan_idx)
+@@ -2899,7 +2899,7 @@ mt7996_starec_bf_read_set(void *data, u64 wlan_idx)
{
struct mt7996_phy *phy = data;
@@ -219,7 +219,7 @@
}
DEFINE_DEBUGFS_ATTRIBUTE(fops_starec_bf_read, NULL,
mt7996_starec_bf_read_set, "%lld\n");
-@@ -2847,7 +2847,7 @@ mt7996_bf_fbk_rpt_set(void *data, u64 wlan_idx)
+@@ -2943,7 +2943,7 @@ mt7996_bf_fbk_rpt_set(void *data, u64 wlan_idx)
{
struct mt7996_phy *phy = data;
@@ -228,7 +228,7 @@
}
DEFINE_DEBUGFS_ATTRIBUTE(fops_bf_fbk_rpt, NULL,
mt7996_bf_fbk_rpt_set, "%lld\n");
-@@ -2857,7 +2857,7 @@ mt7996_bf_pfmu_tag_read_set(void *data, u64 wlan_idx)
+@@ -2953,7 +2953,7 @@ mt7996_bf_pfmu_tag_read_set(void *data, u64 wlan_idx)
{
struct mt7996_phy *phy = data;
@@ -238,10 +238,10 @@
DEFINE_DEBUGFS_ATTRIBUTE(fops_bf_pfmu_tag_read, NULL,
mt7996_bf_pfmu_tag_read_set, "%lld\n");
diff --git a/mt7996/mtk_mcu.c b/mt7996/mtk_mcu.c
-index 3b8fbe42..2d8b08cd 100644
+index cacca449..f70bd0be 100644
--- a/mt7996/mtk_mcu.c
+++ b/mt7996/mtk_mcu.c
-@@ -296,7 +296,7 @@ __mt7996_mcu_add_uni_tlv(struct sk_buff *skb, u16 tag, u16 len)
+@@ -295,7 +295,7 @@ __mt7996_mcu_add_uni_tlv(struct sk_buff *skb, u16 tag, u16 len)
return ptlv;
}
@@ -250,7 +250,7 @@
{
struct mt7996_dev *dev = phy->dev;
#define MT7996_MTK_BF_MAX_SIZE sizeof(struct bf_starec_read)
-@@ -319,9 +319,8 @@ int mt7996_mcu_set_txbf_internal(struct mt7996_phy *phy, u8 action, int idx)
+@@ -318,9 +318,8 @@ int mt7996_mcu_set_txbf_internal(struct mt7996_phy *phy, u8 action, int idx)
tlv = __mt7996_mcu_add_uni_tlv(skb, action, sizeof(*req));
req = (struct bf_pfmu_tag *)tlv;
@@ -261,7 +261,7 @@
req->band_idx = phy->mt76->band_idx;
break;
}
-@@ -433,10 +432,36 @@ int mt7996_mcu_set_txbf_snd_info(struct mt7996_phy *phy, void *para)
+@@ -432,10 +431,36 @@ int mt7996_mcu_set_txbf_snd_info(struct mt7996_phy *phy, void *para)
return mt76_mcu_skb_send_msg(&phy->dev->mt76, skb, MCU_WM_UNI_CMD(BF), false);
}
@@ -299,7 +299,7 @@
struct mt7996_mcu_bf_basic_event *event;
event = (struct mt7996_mcu_bf_basic_event *)skb->data;
-@@ -471,13 +496,12 @@ mt7996_mcu_rx_bf_event(struct mt7996_dev *dev, struct sk_buff *skb)
+@@ -470,13 +495,12 @@ mt7996_mcu_rx_bf_event(struct mt7996_dev *dev, struct sk_buff *skb)
tag->t1.nr, tag->t1.nc, tag->t1.ngroup, tag->t1.lm, tag->t1.codebook,
tag->t1.mob_cal_en);
@@ -315,7 +315,7 @@
dev_info(dev->mt76.dev, "Mem Col1 = %d, Mem Row1 = %d, Mem Col2 = %d, Mem Row2 = %d\n",
tag->t1.col_id1, tag->t1.row_id1, tag->t1.col_id2, tag->t1.row_id2);
-@@ -731,6 +755,47 @@ mt7996_mcu_rx_bf_event(struct mt7996_dev *dev, struct sk_buff *skb)
+@@ -730,6 +754,47 @@ mt7996_mcu_rx_bf_event(struct mt7996_dev *dev, struct sk_buff *skb)
break;
}
@@ -364,10 +364,10 @@
dev_info(dev->mt76.dev, "%s: unknown bf event tag %d\n",
__func__, event->tag);
diff --git a/mt7996/mtk_mcu.h b/mt7996/mtk_mcu.h
-index 44cb0327..881afef1 100644
+index 98c9660a..252ae98e 100644
--- a/mt7996/mtk_mcu.h
+++ b/mt7996/mtk_mcu.h
-@@ -176,6 +176,164 @@ struct bf_txsnd_info {
+@@ -189,6 +189,164 @@ struct bf_txsnd_info {
u8 __rsv[2];
} __packed;
@@ -532,7 +532,7 @@
struct mt7996_mcu_bf_basic_event {
struct mt7996_mcu_rxd rxd;
-@@ -381,6 +539,181 @@ struct mt7996_pfmu_tag_event {
+@@ -394,6 +552,181 @@ struct mt7996_pfmu_tag_event {
struct mt7996_pfmu_tag2 t2;
};
@@ -714,7 +714,7 @@
enum {
UNI_EVENT_BF_PFMU_TAG = 0x5,
UNI_EVENT_BF_PFMU_DATA = 0x7,
-@@ -395,11 +728,6 @@ enum {
+@@ -408,11 +741,6 @@ enum {
UNI_EVENT_BF_MAX_NUM
};
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1034-mtk-wifi-mt76-mt7996-add-zwdfs-cert-mode.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1035-mtk-wifi-mt76-mt7996-add-zwdfs-cert-mode.patch
similarity index 93%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1034-mtk-wifi-mt76-mt7996-add-zwdfs-cert-mode.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1035-mtk-wifi-mt76-mt7996-add-zwdfs-cert-mode.patch
index 45a2131..9ab0aa1 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1034-mtk-wifi-mt76-mt7996-add-zwdfs-cert-mode.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1035-mtk-wifi-mt76-mt7996-add-zwdfs-cert-mode.patch
@@ -1,7 +1,7 @@
-From b7bac1d2e4c144961ffd4b96a7fe9c5ea56bb1f3 Mon Sep 17 00:00:00 2001
+From 57a5dbbde09c23122671c936872b1f6fa41dcb9c Mon Sep 17 00:00:00 2001
From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Date: Fri, 22 Sep 2023 12:33:06 +0800
-Subject: [PATCH 1034/1041] mtk: wifi: mt76: mt7996: add zwdfs cert mode
+Subject: [PATCH 1035/1044] mtk: wifi: mt76: mt7996: add zwdfs cert mode
Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
---
@@ -13,10 +13,10 @@
5 files changed, 100 insertions(+), 12 deletions(-)
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 6ba9c9d5..55e8cb1e 100644
+index 5b5ddafb..69718654 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
-@@ -4501,18 +4501,7 @@ int mt7996_mcu_set_radio_en(struct mt7996_phy *phy, bool enable)
+@@ -4516,18 +4516,7 @@ int mt7996_mcu_set_radio_en(struct mt7996_phy *phy, bool enable)
int mt7996_mcu_rdd_cmd(struct mt7996_dev *dev, int cmd, u8 index,
u8 rx_sel, u8 val)
{
@@ -36,7 +36,7 @@
.tag = cpu_to_le16(UNI_RDD_CTRL_PARM),
.len = cpu_to_le16(sizeof(req) - 4),
.ctrl = cmd,
-@@ -4525,6 +4514,37 @@ int mt7996_mcu_rdd_cmd(struct mt7996_dev *dev, int cmd, u8 index,
+@@ -4540,6 +4529,37 @@ int mt7996_mcu_rdd_cmd(struct mt7996_dev *dev, int cmd, u8 index,
&req, sizeof(req), true);
}
@@ -100,10 +100,10 @@
u8 _rsv[4];
diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index b5ce4a55..339d9890 100644
+index 2f76a0af..f937008f 100644
--- a/mt7996/mt7996.h
+++ b/mt7996/mt7996.h
-@@ -516,8 +516,11 @@ enum mt7996_rdd_cmd {
+@@ -517,8 +517,11 @@ enum mt7996_rdd_cmd {
RDD_READ_PULSE,
RDD_RESUME_BF,
RDD_IRQ_OFF,
@@ -115,7 +115,7 @@
static inline struct mt7996_phy *
mt7996_hw_phy(struct ieee80211_hw *hw)
{
-@@ -659,6 +662,8 @@ int mt7996_mcu_set_thermal_protect(struct mt7996_phy *phy, bool enable);
+@@ -660,6 +663,8 @@ int mt7996_mcu_set_thermal_protect(struct mt7996_phy *phy, bool enable);
int mt7996_mcu_set_txpower_sku(struct mt7996_phy *phy);
int mt7996_mcu_rdd_cmd(struct mt7996_dev *dev, int cmd, u8 index,
u8 rx_sel, u8 val);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1035-mtk-wifi-mt76-testmode-add-channel-68-96.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1036-mtk-wifi-mt76-testmode-add-channel-68-96.patch
similarity index 94%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1035-mtk-wifi-mt76-testmode-add-channel-68-96.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1036-mtk-wifi-mt76-testmode-add-channel-68-96.patch
index ada50df..8e62a9f 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1035-mtk-wifi-mt76-testmode-add-channel-68-96.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1036-mtk-wifi-mt76-testmode-add-channel-68-96.patch
@@ -1,7 +1,7 @@
-From 1df8b15784e507963fa58fd3ebd81af2f3953f7d Mon Sep 17 00:00:00 2001
+From 5fcaa5849033b9d2712f05796a6187d4dca7d9d1 Mon Sep 17 00:00:00 2001
From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Date: Mon, 11 Sep 2023 14:43:07 +0800
-Subject: [PATCH 1035/1041] mtk: wifi: mt76: testmode: add channel 68 & 96
+Subject: [PATCH 1036/1044] mtk: wifi: mt76: testmode: add channel 68 & 96
Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
@@ -44,7 +44,7 @@
CHAN5G(104, 5520),
CHAN5G(108, 5540),
diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index 372a822f..cff1b875 100644
+index d93b1558..1eb292c0 100644
--- a/mt7996/eeprom.c
+++ b/mt7996/eeprom.c
@@ -18,6 +18,17 @@ const struct ieee80211_channel dpd_2g_ch_list_bw20[] = {
@@ -73,7 +73,7 @@
const u32 dpd_5g_bw160_ch_num = ARRAY_SIZE(dpd_5g_ch_list_bw160);
const u32 dpd_6g_bw160_ch_num = ARRAY_SIZE(dpd_6g_ch_list_bw160);
const u32 dpd_6g_bw320_ch_num = ARRAY_SIZE(dpd_6g_ch_list_bw320);
-@@ -135,8 +147,8 @@ mt7996_get_dpd_per_band_size(struct mt7996_dev *dev, enum nl80211_band band)
+@@ -138,8 +150,8 @@ mt7996_get_dpd_per_band_size(struct mt7996_dev *dev, enum nl80211_band band)
if (band == NL80211_BAND_2GHZ)
dpd_size = dpd_2g_bw20_ch_num * DPD_PER_CH_BW20_SIZE;
else if (band == NL80211_BAND_5GHZ)
@@ -84,7 +84,7 @@
else
dpd_size = mphy->sband_6g.sband.n_channels * DPD_PER_CH_BW20_SIZE +
(dpd_6g_bw160_ch_num + dpd_6g_bw320_ch_num) * DPD_PER_CH_GT_BW20_SIZE;
-@@ -396,6 +408,39 @@ out:
+@@ -399,6 +411,39 @@ out:
return ret;
}
@@ -138,10 +138,10 @@
extern const u32 dpd_5g_bw160_ch_num;
extern const struct ieee80211_channel dpd_6g_ch_list_bw160[];
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 55e8cb1e..4598d815 100644
+index 69718654..528cbd55 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
-@@ -3775,7 +3775,8 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
+@@ -3790,7 +3790,8 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
chan_list_size = mphy->sband_5g.sband.n_channels;
base_offset += dpd_size_2g;
if (bw == NL80211_CHAN_WIDTH_160) {
@@ -151,7 +151,7 @@
per_chan_size = DPD_PER_CH_GT_BW20_SIZE;
cal_id = RF_DPD_FLAT_5G_MEM_CAL;
chan_list = dpd_5g_ch_list_bw160;
-@@ -3784,6 +3785,9 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
+@@ -3799,6 +3800,9 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
/* apply (center channel - 2)'s dpd cal data for bw 40/80 channels */
channel -= 2;
}
@@ -161,7 +161,7 @@
break;
case NL80211_BAND_6GHZ:
dpd_mask = MT_EE_WIFI_CAL_DPD_6G;
-@@ -3823,6 +3827,10 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
+@@ -3838,6 +3842,10 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
if (idx == chan_list_size)
return -EINVAL;
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1036-mtk-wifi-mt76-mt7996-support-enable-disable-pp-featu.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1037-mtk-wifi-mt76-mt7996-support-enable-disable-pp-featu.patch
similarity index 96%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1036-mtk-wifi-mt76-mt7996-support-enable-disable-pp-featu.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1037-mtk-wifi-mt76-mt7996-support-enable-disable-pp-featu.patch
index 9bce324..7490f63 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1036-mtk-wifi-mt76-mt7996-support-enable-disable-pp-featu.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1037-mtk-wifi-mt76-mt7996-support-enable-disable-pp-featu.patch
@@ -1,7 +1,7 @@
-From 3ee3f424e835e9366924452f5f32d8ce094f2d7b Mon Sep 17 00:00:00 2001
+From 0f6012b3256bebe0483d70b669d4f3164900ac5f Mon Sep 17 00:00:00 2001
From: Howard Hsu <howard-yh.hsu@mediatek.com>
Date: Mon, 25 Sep 2023 19:20:49 +0800
-Subject: [PATCH 1036/1041] mtk: wifi: mt76: mt7996: support enable/disable pp
+Subject: [PATCH 1037/1044] mtk: wifi: mt76: mt7996: support enable/disable pp
feature by nl80211 vendor commands
User can enable/disable preamble puncture feature through hostapd
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1037-mtk-wifi-mt76-testmode-add-kite-testmode-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1038-mtk-wifi-mt76-testmode-add-kite-testmode-support.patch
similarity index 97%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1037-mtk-wifi-mt76-testmode-add-kite-testmode-support.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1038-mtk-wifi-mt76-testmode-add-kite-testmode-support.patch
index d3e9daf..e34ed82 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1037-mtk-wifi-mt76-testmode-add-kite-testmode-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1038-mtk-wifi-mt76-testmode-add-kite-testmode-support.patch
@@ -1,7 +1,7 @@
-From 11a74db98d3f18b7d9ce7f2837079172a8b7d159 Mon Sep 17 00:00:00 2001
+From ffcb108d99e2a14c8099cd766c89e59a83d44617 Mon Sep 17 00:00:00 2001
From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Date: Thu, 12 Oct 2023 16:17:33 +0800
-Subject: [PATCH 1037/1041] mtk: wifi: mt76: testmode: add kite testmode
+Subject: [PATCH 1038/1044] mtk: wifi: mt76: testmode: add kite testmode
support
Add Kite testmode support
@@ -19,7 +19,7 @@
6 files changed, 198 insertions(+), 120 deletions(-)
diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index cff1b875..9fef7035 100644
+index 1eb292c0..39e65010 100644
--- a/mt7996/eeprom.c
+++ b/mt7996/eeprom.c
@@ -29,12 +29,39 @@ const struct ieee80211_channel dpd_5g_skip_ch_list[] = {
@@ -75,7 +75,7 @@
static int mt7996_check_eeprom(struct mt7996_dev *dev)
{
#define FEM_INT 0
-@@ -126,36 +147,6 @@ const char *mt7996_eeprom_name(struct mt7996_dev *dev)
+@@ -129,36 +150,6 @@ const char *mt7996_eeprom_name(struct mt7996_dev *dev)
}
}
@@ -211,10 +211,10 @@
#define RF_DPD_FLAT_CAL BIT(28)
#define RF_PRE_CAL BIT(29)
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 4598d815..a049ab71 100644
+index 528cbd55..708ec0a8 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
-@@ -3744,13 +3744,11 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
+@@ -3759,13 +3759,11 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
enum nl80211_chan_width bw = chandef->width;
const struct ieee80211_channel *chan_list;
u32 cal_id, chan_list_size, base_offset = 0, offs = MT_EE_DO_PRE_CAL;
@@ -230,7 +230,7 @@
switch (band) {
case NL80211_BAND_2GHZ:
-@@ -3766,27 +3764,35 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
+@@ -3781,27 +3779,35 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
return 0;
cal_id = RF_DPD_FLAT_CAL;
chan_list = dpd_2g_ch_list_bw20;
@@ -272,7 +272,7 @@
return 0;
break;
case NL80211_BAND_6GHZ:
-@@ -3794,20 +3800,27 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
+@@ -3809,20 +3815,27 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
cal_id = RF_DPD_FLAT_6G_CAL;
chan_list = mphy->sband_6g.sband.channels;
chan_list_size = mphy->sband_6g.sband.n_channels;
@@ -305,7 +305,7 @@
} else if (bw > NL80211_CHAN_WIDTH_20) {
/* apply (center channel - 2)'s dpd cal data for bw 40/80 channels */
channel -= 2;
-@@ -3827,9 +3840,8 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
+@@ -3842,9 +3855,8 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy)
if (idx == chan_list_size)
return -EINVAL;
@@ -318,7 +318,7 @@
cal += MT_EE_CAL_GROUP_SIZE + base_offset + idx * per_chan_size;
diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 339d9890..17cae7f5 100644
+index f937008f..881328be 100644
--- a/mt7996/mt7996.h
+++ b/mt7996/mt7996.h
@@ -195,6 +195,19 @@ struct mt7996_twt_flow {
@@ -341,7 +341,7 @@
struct mt7996_sta {
struct mt76_wcid wcid; /* must be first */
-@@ -456,6 +469,10 @@ struct mt7996_dev {
+@@ -457,6 +470,10 @@ struct mt7996_dev {
void *cal;
u32 cur_prek_offset;
@@ -352,7 +352,7 @@
struct {
u16 table_mask;
-@@ -592,7 +609,6 @@ int mt7996_eeprom_parse_hw_cap(struct mt7996_dev *dev, struct mt7996_phy *phy);
+@@ -593,7 +610,6 @@ int mt7996_eeprom_parse_hw_cap(struct mt7996_dev *dev, struct mt7996_phy *phy);
int mt7996_eeprom_get_target_power(struct mt7996_dev *dev,
struct ieee80211_channel *chan);
s8 mt7996_eeprom_get_power_delta(struct mt7996_dev *dev, int band);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1038-mtk-wifi-mt76-mt7996-assign-DEAUTH-to-ALTX-queue-for.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1039-mtk-wifi-mt76-mt7996-assign-DEAUTH-to-ALTX-queue-for.patch
similarity index 91%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1038-mtk-wifi-mt76-mt7996-assign-DEAUTH-to-ALTX-queue-for.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1039-mtk-wifi-mt76-mt7996-assign-DEAUTH-to-ALTX-queue-for.patch
index 00904cc..c01a89d 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1038-mtk-wifi-mt76-mt7996-assign-DEAUTH-to-ALTX-queue-for.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1039-mtk-wifi-mt76-mt7996-assign-DEAUTH-to-ALTX-queue-for.patch
@@ -1,7 +1,7 @@
-From a5a57f5c031c978e44a180df423568ff725d7dc2 Mon Sep 17 00:00:00 2001
+From b25ddbf220a6f2098d8983877a0992ea481c6768 Mon Sep 17 00:00:00 2001
From: Michael-CY Lee <michael-cy.lee@mediatek.com>
Date: Tue, 14 Nov 2023 11:27:06 +0800
-Subject: [PATCH 1038/1041] mtk: wifi: mt76: mt7996: assign DEAUTH to ALTX
+Subject: [PATCH 1039/1044] mtk: wifi: mt76: mt7996: assign DEAUTH to ALTX
queue for CERT
Signed-off-by: Michael-CY Lee <michael-cy.lee@mediatek.com>
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1039-mtk-wifi-mt76-mt7996-add-no_beacon-vendor-command-fo.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1040-mtk-wifi-mt76-mt7996-add-no_beacon-vendor-command-fo.patch
similarity index 92%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1039-mtk-wifi-mt76-mt7996-add-no_beacon-vendor-command-fo.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1040-mtk-wifi-mt76-mt7996-add-no_beacon-vendor-command-fo.patch
index 0e5a5bb..7eb6958 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1039-mtk-wifi-mt76-mt7996-add-no_beacon-vendor-command-fo.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1040-mtk-wifi-mt76-mt7996-add-no_beacon-vendor-command-fo.patch
@@ -1,7 +1,7 @@
-From 79d4e84364caca0772254c2a2dbfe82c8f905ab5 Mon Sep 17 00:00:00 2001
+From f2db711c2a2766369d6d948ddb7aa6bf043f42e4 Mon Sep 17 00:00:00 2001
From: MeiChia Chiu <meichia.chiu@mediatek.com>
Date: Wed, 22 Nov 2023 22:42:09 +0800
-Subject: [PATCH 1039/1041] mtk: wifi: mt76: mt7996: add no_beacon vendor
+Subject: [PATCH 1040/1044] mtk: wifi: mt76: mt7996: add no_beacon vendor
command for cert
Add the vendor command to disable/enable beacon
@@ -21,10 +21,10 @@
4 files changed, 65 insertions(+)
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index a049ab71..695a7f54 100644
+index 708ec0a8..ccb99c23 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
-@@ -5052,4 +5052,15 @@ void mt7996_set_wireless_vif(void *data, u8 *mac, struct ieee80211_vif *vif)
+@@ -5067,4 +5067,15 @@ void mt7996_set_wireless_vif(void *data, u8 *mac, struct ieee80211_vif *vif)
break;
}
}
@@ -41,10 +41,10 @@
+}
#endif
diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 17cae7f5..6233b987 100644
+index 881328be..bb2cee92 100644
--- a/mt7996/mt7996.h
+++ b/mt7996/mt7996.h
-@@ -828,6 +828,7 @@ void mt7996_set_wireless_amsdu(struct ieee80211_hw *hw, u8 en);
+@@ -829,6 +829,7 @@ void mt7996_set_wireless_amsdu(struct ieee80211_hw *hw, u8 en);
void mt7996_mcu_set_mimo(struct mt7996_phy *phy);
int mt7996_set_muru_cfg(struct mt7996_phy *phy, u8 action, u8 val);
int mt7996_mcu_set_muru_cfg(struct mt7996_phy *phy, void *data);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1040-mtk-wifi-mt76-mt7996-add-adie-efuse-merge-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1041-mtk-wifi-mt76-mt7996-add-adie-efuse-merge-support.patch
similarity index 93%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1040-mtk-wifi-mt76-mt7996-add-adie-efuse-merge-support.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1041-mtk-wifi-mt76-mt7996-add-adie-efuse-merge-support.patch
index 0bd9aa0..8d5a86b 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1040-mtk-wifi-mt76-mt7996-add-adie-efuse-merge-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1041-mtk-wifi-mt76-mt7996-add-adie-efuse-merge-support.patch
@@ -1,7 +1,7 @@
-From 0e4686ad6417415cf601ffaff2e64858b1b3d56e Mon Sep 17 00:00:00 2001
+From ff7edd501bafec382f5e4a4b6abb791bef3cd0c9 Mon Sep 17 00:00:00 2001
From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Date: Fri, 24 Nov 2023 09:49:08 +0800
-Subject: [PATCH 1040/1041] mtk: wifi: mt76: mt7996: add adie efuse merge
+Subject: [PATCH 1041/1044] mtk: wifi: mt76: mt7996: add adie efuse merge
support
Merge adie-dependent parameters in efuse into eeprom after FT.
@@ -14,10 +14,10 @@
2 files changed, 149 insertions(+), 2 deletions(-)
diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index 9fef7035..75e31238 100644
+index 39e65010..45cbd03d 100644
--- a/mt7996/eeprom.c
+++ b/mt7996/eeprom.c
-@@ -461,6 +461,147 @@ static int mt7996_eeprom_load_precal(struct mt7996_dev *dev)
+@@ -464,6 +464,147 @@ static int mt7996_eeprom_load_precal(struct mt7996_dev *dev)
return mt76_get_of_data_from_nvmem(mdev, dev->cal, "precal", size);
}
@@ -165,7 +165,7 @@
int mt7996_eeprom_init(struct mt7996_dev *dev)
{
int ret;
-@@ -486,6 +627,10 @@ int mt7996_eeprom_init(struct mt7996_dev *dev)
+@@ -489,6 +630,10 @@ int mt7996_eeprom_init(struct mt7996_dev *dev)
if (ret)
return ret;
@@ -177,10 +177,10 @@
if (ret < 0)
return ret;
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 695a7f54..6364be35 100644
+index ccb99c23..6b026c73 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
-@@ -3615,7 +3615,7 @@ int mt7996_mcu_get_eeprom(struct mt7996_dev *dev, u32 offset, u8 *read_buf)
+@@ -3630,7 +3630,7 @@ int mt7996_mcu_get_eeprom(struct mt7996_dev *dev, u32 offset, u8 *read_buf)
};
struct sk_buff *skb;
bool valid;
@@ -189,7 +189,7 @@
u8 *buf = read_buf;
ret = mt76_mcu_send_and_get_msg(&dev->mt76,
-@@ -3633,11 +3633,13 @@ int mt7996_mcu_get_eeprom(struct mt7996_dev *dev, u32 offset, u8 *read_buf)
+@@ -3648,11 +3648,13 @@ int mt7996_mcu_get_eeprom(struct mt7996_dev *dev, u32 offset, u8 *read_buf)
skb_pull(skb, 48);
memcpy(buf, skb->data, MT7996_EEPROM_BLOCK_SIZE);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1041-mtk-wifi-mt7996-add-Eagle-2adie-TBTC-BE14000-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1042-mtk-wifi-mt7996-add-Eagle-2adie-TBTC-BE14000-support.patch
similarity index 89%
rename from recipes-wifi/linux-mt76/files/patches-3.x/1041-mtk-wifi-mt7996-add-Eagle-2adie-TBTC-BE14000-support.patch
rename to recipes-wifi/linux-mt76/files/patches-3.x/1042-mtk-wifi-mt7996-add-Eagle-2adie-TBTC-BE14000-support.patch
index 861c9dc..70fae1f 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/1041-mtk-wifi-mt7996-add-Eagle-2adie-TBTC-BE14000-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1042-mtk-wifi-mt7996-add-Eagle-2adie-TBTC-BE14000-support.patch
@@ -1,7 +1,7 @@
-From 0b73b1e3d8790bfd9d9d362e7876866f631fec14 Mon Sep 17 00:00:00 2001
+From 3119a4b51528b7e52f301ee87286f2caa2439513 Mon Sep 17 00:00:00 2001
From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
Date: Tue, 5 Dec 2023 16:48:33 +0800
-Subject: [PATCH 1041/1041] mtk: wifi: mt7996: add Eagle 2adie TBTC (BE14000)
+Subject: [PATCH 1042/1044] mtk: wifi: mt7996: add Eagle 2adie TBTC (BE14000)
support
Add fwdl/default eeprom load support for Eagle 2 adie TBTC
@@ -22,10 +22,10 @@
6 files changed, 38 insertions(+), 2 deletions(-)
diff --git a/mt7996/eeprom.c b/mt7996/eeprom.c
-index 75e31238..e33acdfb 100644
+index 45cbd03d..3d422b0b 100644
--- a/mt7996/eeprom.c
+++ b/mt7996/eeprom.c
-@@ -128,6 +128,8 @@ const char *mt7996_eeprom_name(struct mt7996_dev *dev)
+@@ -131,6 +131,8 @@ const char *mt7996_eeprom_name(struct mt7996_dev *dev)
case 0x7990:
if (dev->chip_sku == MT7996_SKU_404)
return MT7996_EEPROM_DEFAULT_404;
@@ -34,7 +34,7 @@
return MT7996_EEPROM_DEFAULT;
case 0x7992:
if (dev->chip_sku == MT7992_SKU_23) {
-@@ -415,6 +417,8 @@ static void mt7996_eeprom_init_precal(struct mt7996_dev *dev)
+@@ -418,6 +420,8 @@ static void mt7996_eeprom_init_precal(struct mt7996_dev *dev)
switch (mt76_chip(&dev->mt76)) {
case 0x7990:
dev->prek.rev = mt7996_prek_rev;
@@ -43,7 +43,7 @@
/* 5g & 6g bw 80 dpd channel list is not used */
dev->prek.dpd_ch_num[DPD_CH_NUM_BW320_6G] = ARRAY_SIZE(dpd_6g_ch_list_bw320);
break;
-@@ -522,7 +526,7 @@ static int mt7996_apply_cal_free_data(struct mt7996_dev *dev)
+@@ -525,7 +529,7 @@ static int mt7996_apply_cal_free_data(struct mt7996_dev *dev)
case 0x7990:
adie_base = adie_base_7996;
/* adie 0 */
@@ -52,7 +52,7 @@
adie_id = ADIE_7975;
else
adie_id = ADIE_7976;
-@@ -530,7 +534,7 @@ static int mt7996_apply_cal_free_data(struct mt7996_dev *dev)
+@@ -533,7 +537,7 @@ static int mt7996_apply_cal_free_data(struct mt7996_dev *dev)
eep_offs[0] = eep_offs_list[adie_id];
/* adie 1 */
@@ -85,10 +85,10 @@
static const u32 mt7992_prek_rev[] = {
[GROUP_SIZE_2G] = 4 * MT_EE_CAL_UNIT,
diff --git a/mt7996/init.c b/mt7996/init.c
-index b3677e03..c7576ffe 100644
+index 91aff836..f2258541 100644
--- a/mt7996/init.c
+++ b/mt7996/init.c
-@@ -910,6 +910,12 @@ int mt7996_get_chip_sku(struct mt7996_dev *dev)
+@@ -905,6 +905,12 @@ int mt7996_get_chip_sku(struct mt7996_dev *dev)
switch (mt76_chip(&dev->mt76)) {
case 0x7990:
@@ -102,7 +102,7 @@
if (adie_comb <= 1)
dev->chip_sku = MT7996_SKU_444;
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 6364be35..c980f345 100644
+index 6b026c73..1232bc70 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
@@ -23,6 +23,11 @@
@@ -118,7 +118,7 @@
_fw = MT7996_##name; \
break; \
diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 6233b987..9bcb6ff8 100644
+index bb2cee92..bde0c086 100644
--- a/mt7996/mt7996.h
+++ b/mt7996/mt7996.h
@@ -35,6 +35,12 @@
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1043-mtk-wifi-mt76-mt7996-add-background-radar-hw-cap-che.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1043-mtk-wifi-mt76-mt7996-add-background-radar-hw-cap-che.patch
new file mode 100644
index 0000000..f1e5209
--- /dev/null
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1043-mtk-wifi-mt76-mt7996-add-background-radar-hw-cap-che.patch
@@ -0,0 +1,81 @@
+From c0969da768d20a041dd505bb57afe74abef989a5 Mon Sep 17 00:00:00 2001
+From: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
+Date: Fri, 22 Dec 2023 17:27:10 +0800
+Subject: [PATCH 1043/1044] mtk: wifi: mt76: mt7996: add background radar hw
+ cap check
+
+Signed-off-by: StanleyYP Wang <StanleyYP.Wang@mediatek.com>
+---
+ mt7996/debugfs.c | 5 +++++
+ mt7996/init.c | 7 ++++---
+ mt7996/mt7996.h | 20 ++++++++++++++++++++
+ 3 files changed, 29 insertions(+), 3 deletions(-)
+
+diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
+index 67c6bd09..cceabf00 100644
+--- a/mt7996/debugfs.c
++++ b/mt7996/debugfs.c
+@@ -257,6 +257,11 @@ mt7996_rdd_monitor(struct seq_file *s, void *data)
+
+ mutex_lock(&dev->mt76.mutex);
+
++ if (!mt7996_get_background_radar_cap(dev)) {
++ seq_puts(s, "no background radar capability\n");
++ goto out;
++ }
++
+ if (!cfg80211_chandef_valid(chandef)) {
+ ret = -EINVAL;
+ goto out;
+diff --git a/mt7996/init.c b/mt7996/init.c
+index f2258541..00063e72 100644
+--- a/mt7996/init.c
++++ b/mt7996/init.c
+@@ -393,9 +393,10 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
+
+ wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION);
+ wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_BEACON_PROTECTION);
+- if (!mdev->dev->of_node ||
+- !of_property_read_bool(mdev->dev->of_node,
+- "mediatek,disable-radar-background"))
++ if (mt7996_get_background_radar_cap(phy->dev) &&
++ (!mdev->dev->of_node ||
++ !of_property_read_bool(mdev->dev->of_node,
++ "mediatek,disable-radar-background")))
+ wiphy_ext_feature_set(wiphy,
+ NL80211_EXT_FEATURE_RADAR_BACKGROUND);
+
+diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
+index bde0c086..95db69ca 100644
+--- a/mt7996/mt7996.h
++++ b/mt7996/mt7996.h
+@@ -599,6 +599,26 @@ mt7996_band_valid(struct mt7996_dev *dev, u8 band)
+ return band == MT_BAND0 || band == MT_BAND2;
+ }
+
++static inline bool
++mt7996_get_background_radar_cap(struct mt7996_dev *dev)
++{
++ switch (mt76_chip(&dev->mt76)) {
++ case 0x7990:
++ if (dev->chip_sku == MT7996_SKU_233)
++ return 0;
++ break;
++ case 0x7992:
++ if (dev->chip_sku == MT7992_SKU_23 ||
++ dev->chip_sku == MT7992_SKU_24)
++ return 0;
++ break;
++ default:
++ break;
++ }
++
++ return 1;
++}
++
+ extern const struct ieee80211_ops mt7996_ops;
+ extern struct pci_driver mt7996_pci_driver;
+ extern struct pci_driver mt7996_hif_driver;
+--
+2.18.0
+
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/1044-mtk-wifi-mt76-mt7996-support-disable-muru-debug-info.patch b/recipes-wifi/linux-mt76/files/patches-3.x/1044-mtk-wifi-mt76-mt7996-support-disable-muru-debug-info.patch
new file mode 100644
index 0000000..e730237
--- /dev/null
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/1044-mtk-wifi-mt76-mt7996-support-disable-muru-debug-info.patch
@@ -0,0 +1,98 @@
+From d330b76bc26aadb42a30eed71e3dd739fc795352 Mon Sep 17 00:00:00 2001
+From: Howard Hsu <howard-yh.hsu@mediatek.com>
+Date: Fri, 22 Dec 2023 10:53:00 +0800
+Subject: [PATCH 1044/1044] mtk: wifi: mt76: mt7996: support disable muru debug
+ info when recording fwlog
+
+When we record fwlog, we will also enable recording muru debug info log by
+default. However, in certain test scenarios, this can result in
+recording too many logs, causing inconvenience during issue analysis.
+Therefore, this commit adds an debug option, fw_debug_muru_disable, in
+debugfs. User can modify this option to enable/disable recording muru
+debug info log.
+
+[Usage]
+Set:
+$ echo val > debugfs/fw_debug_muru_disable
+Get:
+$ cat debugfs/fw_debug_muru_disable
+
+val can be the following values:
+0 = enable recording muru debug info (Default value)
+1 = disable recording muru debug info
+
+Signed-off-by: Howard Hsu <howard-yh.hsu@mediatek.com>
+---
+ mt7996/debugfs.c | 29 +++++++++++++++++++++++++++++
+ mt7996/mt7996.h | 1 +
+ 2 files changed, 30 insertions(+)
+
+diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
+index cceabf00..cdd284b7 100644
+--- a/mt7996/debugfs.c
++++ b/mt7996/debugfs.c
+@@ -463,6 +463,9 @@ mt7996_fw_debug_muru_set(void *data)
+ } debug;
+ int ret;
+
++ if (dev->fw_debug_muru_disable)
++ return 0;
++
+ for (debug = DEBUG_BSRP_STATUS; debug <= DEBUG_MEC_UPDATE_AMSDU; debug++) {
+ ret = mt7996_mcu_muru_dbg_info(dev, debug,
+ dev->fw_debug_bin & BIT(0));
+@@ -867,6 +870,30 @@ mt7996_rf_regval_set(void *data, u64 val)
+ DEFINE_DEBUGFS_ATTRIBUTE(fops_rf_regval, mt7996_rf_regval_get,
+ mt7996_rf_regval_set, "0x%08llx\n");
+
++static int
++mt7996_fw_debug_muru_disable_set(void *data, u64 val)
++{
++ struct mt7996_dev *dev = data;
++
++ dev->fw_debug_muru_disable = !!val;
++
++ return 0;
++}
++
++static int
++mt7996_fw_debug_muru_disable_get(void *data, u64 *val)
++{
++ struct mt7996_dev *dev = data;
++
++ *val = dev->fw_debug_muru_disable;
++
++ return 0;
++}
++
++DEFINE_DEBUGFS_ATTRIBUTE(fops_fw_debug_muru_disable,
++ mt7996_fw_debug_muru_disable_get,
++ mt7996_fw_debug_muru_disable_set, "%lld\n");
++
+ int mt7996_init_debugfs(struct mt7996_phy *phy)
+ {
+ struct mt7996_dev *dev = phy->dev;
+@@ -902,6 +929,8 @@ int mt7996_init_debugfs(struct mt7996_phy *phy)
+ debugfs_create_devm_seqfile(dev->mt76.dev, "rdd_monitor", dir,
+ mt7996_rdd_monitor);
+ }
++ debugfs_create_file("fw_debug_muru_disable", 0600, dir, dev,
++ &fops_fw_debug_muru_disable);
+
+ if (phy == &dev->phy)
+ dev->debugfs_dir = dir;
+diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
+index 95db69ca..2227c08a 100644
+--- a/mt7996/mt7996.h
++++ b/mt7996/mt7996.h
+@@ -472,6 +472,7 @@ struct mt7996_dev {
+ u8 fw_debug_wa;
+ u8 fw_debug_bin;
+ u16 fw_debug_seq;
++ bool fw_debug_muru_disable;
+
+ struct dentry *debugfs_dir;
+ struct rchan *relay_fwlog;
+--
+2.18.0
+
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2000-mtk-wifi-mt76-revert-page_poll-for-kernel-5.4.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2000-mtk-wifi-mt76-revert-page_poll-for-kernel-5.4.patch
index a7a243d..498703a 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/2000-mtk-wifi-mt76-revert-page_poll-for-kernel-5.4.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2000-mtk-wifi-mt76-revert-page_poll-for-kernel-5.4.patch
@@ -1,7 +1,7 @@
-From d0983563a9735b4b4a59efefaeb7dd0c49425ec8 Mon Sep 17 00:00:00 2001
+From 1d0368d0a7e2ebd6d5616d662aa35b9f24dfe515 Mon Sep 17 00:00:00 2001
From: Bo Jiao <Bo.Jiao@mediatek.com>
Date: Mon, 6 Feb 2023 19:49:22 +0800
-Subject: [PATCH 2000/2020] mtk: wifi: mt76: revert page_poll for kernel 5.4
+Subject: [PATCH 2000/2028] mtk: wifi: mt76: revert page_poll for kernel 5.4
This reverts commit e8c10835cf062c577ddf426913788c39d30b4bd7.
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2001-mtk-wifi-mt76-rework-wed-rx-flow.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2001-mtk-wifi-mt76-rework-wed-rx-flow.patch
index 68382a2..5fcc869 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/2001-mtk-wifi-mt76-rework-wed-rx-flow.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2001-mtk-wifi-mt76-rework-wed-rx-flow.patch
@@ -1,7 +1,7 @@
-From 9601aeb0a394a557c038fdac877ada4620e06f61 Mon Sep 17 00:00:00 2001
+From 13cfb73b1070b1c2beb7cac43a18bba1ab364f14 Mon Sep 17 00:00:00 2001
From: Bo Jiao <Bo.Jiao@mediatek.com>
Date: Mon, 6 Feb 2023 13:37:23 +0800
-Subject: [PATCH 2001/2020] mtk: wifi: mt76: rework wed rx flow
+Subject: [PATCH 2001/2028] mtk: wifi: mt76: rework wed rx flow
Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com>
---
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2002-mtk-wifi-mt76-wed-change-wed-token-init-size-to-adap.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2002-mtk-wifi-mt76-wed-change-wed-token-init-size-to-adap.patch
index a4cf2c7..5d80a5a 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/2002-mtk-wifi-mt76-wed-change-wed-token-init-size-to-adap.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2002-mtk-wifi-mt76-wed-change-wed-token-init-size-to-adap.patch
@@ -1,7 +1,7 @@
-From cdecc4effebebbd6344eaf94516e8336afe70792 Mon Sep 17 00:00:00 2001
+From b718316b79f5b7f7a361ca9a6ac4c6eb9c67d75a Mon Sep 17 00:00:00 2001
From: "sujuan.chen" <sujuan.chen@mediatek.com>
Date: Wed, 19 Apr 2023 17:13:41 +0800
-Subject: [PATCH 2002/2020] mtk: wifi: mt76: wed: change wed token init size to
+Subject: [PATCH 2002/2028] mtk: wifi: mt76: wed: change wed token init size to
adapt wed3.0
Signed-off-by: sujuan.chen <sujuan.chen@mediatek.com>
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2003-mtk-wifi-mt76-add-random-early-drop-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2003-mtk-wifi-mt76-add-random-early-drop-support.patch
index 51ffcfe..5df456d 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/2003-mtk-wifi-mt76-add-random-early-drop-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2003-mtk-wifi-mt76-add-random-early-drop-support.patch
@@ -1,7 +1,7 @@
-From e0fcc09873c502b3591934ad11d4382f78210b97 Mon Sep 17 00:00:00 2001
+From 6b324ee1a5c9293c2027ac231ee4ac829e0bc766 Mon Sep 17 00:00:00 2001
From: Peter Chiu <chui-hao.chiu@mediatek.com>
Date: Wed, 19 Apr 2023 18:32:41 +0800
-Subject: [PATCH 2003/2020] mtk: wifi: mt76: add random early drop support
+Subject: [PATCH 2003/2028] mtk: wifi: mt76: add random early drop support
---
mt7996/debugfs.c | 1 +
@@ -15,10 +15,10 @@
8 files changed, 167 insertions(+), 4 deletions(-)
diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index 67c6bd09..223b655e 100644
+index cdd284b7..21bb2c5d 100644
--- a/mt7996/debugfs.c
+++ b/mt7996/debugfs.c
-@@ -621,6 +621,7 @@ mt7996_tx_stats_show(struct seq_file *file, void *data)
+@@ -629,6 +629,7 @@ mt7996_tx_stats_show(struct seq_file *file, void *data)
seq_printf(file, "Tx attempts: %8u (MPDUs)\n", attempts);
seq_printf(file, "Tx success: %8u (MPDUs)\n", success);
seq_printf(file, "Tx PER: %u%%\n", per);
@@ -45,10 +45,10 @@
}
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index c980f345..e893e79b 100644
+index 1232bc70..97874bb4 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
-@@ -3140,8 +3140,8 @@ int mt7996_mcu_init_firmware(struct mt7996_dev *dev)
+@@ -3155,8 +3155,8 @@ int mt7996_mcu_init_firmware(struct mt7996_dev *dev)
if (ret)
return ret;
@@ -59,7 +59,7 @@
}
int mt7996_mcu_init(struct mt7996_dev *dev)
-@@ -3173,6 +3173,83 @@ out:
+@@ -3188,6 +3188,83 @@ out:
skb_queue_purge(&dev->mt76.mcu.res_q);
}
@@ -167,10 +167,10 @@
enum {
diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 9bcb6ff8..e6a0b15a 100644
+index 2227c08a..b0eb5d91 100644
--- a/mt7996/mt7996.h
+++ b/mt7996/mt7996.h
-@@ -351,6 +351,7 @@ struct mt7996_phy {
+@@ -352,6 +352,7 @@ struct mt7996_phy {
bool has_aux_rx;
struct mt7996_scs_ctrl scs_ctrl;
@@ -178,7 +178,7 @@
u8 muru_onoff;
-@@ -696,6 +697,7 @@ int mt7996_mcu_rf_regval(struct mt7996_dev *dev, u32 regidx, u32 *val, bool set)
+@@ -718,6 +719,7 @@ int mt7996_mcu_rf_regval(struct mt7996_dev *dev, u32 regidx, u32 *val, bool set)
int mt7996_mcu_set_hdr_trans(struct mt7996_dev *dev, bool hdr_trans);
int mt7996_mcu_set_rro(struct mt7996_dev *dev, u16 tag, u16 val);
int mt7996_mcu_wa_cmd(struct mt7996_dev *dev, int cmd, u32 a1, u32 a2, u32 a3);
@@ -186,7 +186,7 @@
int mt7996_mcu_fw_log_2_host(struct mt7996_dev *dev, u8 type, u8 ctrl);
int mt7996_mcu_fw_dbg_ctrl(struct mt7996_dev *dev, u32 module, u8 level);
int mt7996_mcu_trigger_assert(struct mt7996_dev *dev);
-@@ -869,11 +871,12 @@ void mt7996_mcu_set_ppdu_tx_type(struct mt7996_phy *phy, u8 ppdu_type);
+@@ -891,11 +893,12 @@ void mt7996_mcu_set_ppdu_tx_type(struct mt7996_phy *phy, u8 ppdu_type);
void mt7996_mcu_set_nusers_ofdma(struct mt7996_phy *phy, u8 type, u8 ofdma_user_cnt);
void mt7996_mcu_set_cert(struct mt7996_phy *phy, u8 type);
void mt7996_tm_update_channel(struct mt7996_phy *phy);
@@ -201,10 +201,10 @@
-
#endif
diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 0fdb911d..9cf3e6dc 100644
+index 9aeb6437..7fecdb74 100644
--- a/mt7996/mtk_debugfs.c
+++ b/mt7996/mtk_debugfs.c
-@@ -2919,6 +2919,27 @@ static int mt7996_muru_prot_thr_set(void *data, u64 val)
+@@ -3015,6 +3015,27 @@ static int mt7996_muru_prot_thr_set(void *data, u64 val)
DEFINE_DEBUGFS_ATTRIBUTE(fops_muru_prot_thr, NULL,
mt7996_muru_prot_thr_set, "%lld\n");
@@ -232,7 +232,7 @@
int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
{
struct mt7996_dev *dev = phy->dev;
-@@ -2995,6 +3016,8 @@ int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
+@@ -3092,6 +3113,8 @@ int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
mt7996_wtbl_read);
debugfs_create_devm_seqfile(dev->mt76.dev, "token", dir, mt7996_token_read);
@@ -242,10 +242,10 @@
debugfs_create_u8("sku_disable", 0600, dir, &dev->dbg.sku_disable);
debugfs_create_file("scs_enable", 0200, dir, phy, &fops_scs_enable);
diff --git a/mt7996/mtk_mcu.c b/mt7996/mtk_mcu.c
-index 2d8b08cd..6440efcf 100644
+index f70bd0be..9a6636fd 100644
--- a/mt7996/mtk_mcu.c
+++ b/mt7996/mtk_mcu.c
-@@ -1255,4 +1255,30 @@ void mt7996_mcu_set_cert(struct mt7996_phy *phy, u8 type)
+@@ -1254,4 +1254,30 @@ void mt7996_mcu_set_cert(struct mt7996_phy *phy, u8 type)
sizeof(req), false);
}
@@ -277,10 +277,10 @@
+
#endif
diff --git a/mt7996/mtk_mcu.h b/mt7996/mtk_mcu.h
-index 881afef1..7d76bfea 100644
+index 252ae98e..1568f10e 100644
--- a/mt7996/mtk_mcu.h
+++ b/mt7996/mtk_mcu.h
-@@ -1022,6 +1022,30 @@ enum muru_vendor_ctrl {
+@@ -1035,6 +1035,30 @@ enum muru_vendor_ctrl {
MU_CTRL_DL_USER_CNT,
MU_CTRL_UL_USER_CNT,
};
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2004-mtk-wifi-mt76-mt7996-reset-addr_elem-when-delete-ba.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2004-mtk-wifi-mt76-mt7996-reset-addr_elem-when-delete-ba.patch
index 8ddf523..ffaf5b9 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/2004-mtk-wifi-mt76-mt7996-reset-addr_elem-when-delete-ba.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2004-mtk-wifi-mt76-mt7996-reset-addr_elem-when-delete-ba.patch
@@ -1,7 +1,7 @@
-From 97a7decba0c4e4d3fb25a869caba6fd8928ffdab Mon Sep 17 00:00:00 2001
+From 411816e1b90c216347406bc3f1c57d2affa0dee4 Mon Sep 17 00:00:00 2001
From: "sujuan.chen" <sujuan.chen@mediatek.com>
Date: Thu, 18 May 2023 15:01:47 +0800
-Subject: [PATCH 2004/2020] mtk: wifi: mt76: mt7996: reset addr_elem when
+Subject: [PATCH 2004/2028] mtk: wifi: mt76: mt7996: reset addr_elem when
delete ba
The old addr element info may be used when the signature is not equel to
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2005-mtk-wifi-mt76-wed-change-pcie0-R5-to-pcie1-to-get-6G.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2005-mtk-wifi-mt76-wed-change-pcie0-R5-to-pcie1-to-get-6G.patch
index f322d86..4232013 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/2005-mtk-wifi-mt76-wed-change-pcie0-R5-to-pcie1-to-get-6G.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2005-mtk-wifi-mt76-wed-change-pcie0-R5-to-pcie1-to-get-6G.patch
@@ -1,7 +1,7 @@
-From cd5a67a360ea7897a5129ae5b4b4c1fee73837dc Mon Sep 17 00:00:00 2001
+From 2754f1c8c5d3aad42f25b86b63f322f5b6862857 Mon Sep 17 00:00:00 2001
From: "sujuan.chen" <sujuan.chen@mediatek.com>
Date: Fri, 6 Oct 2023 14:01:41 +0800
-Subject: [PATCH 2005/2020] mtk: wifi: mt76 : wed : change pcie0 R5 to pcie1 to
+Subject: [PATCH 2005/2028] mtk: wifi: mt76 : wed : change pcie0 R5 to pcie1 to
get 6G ICS
---
@@ -26,10 +26,10 @@
MT_RXQ_ID(MT_RXQ_BAND2),
MT7996_RX_RING_SIZE,
diff --git a/mt7996/init.c b/mt7996/init.c
-index c7576ffe..10b17f7d 100644
+index 00063e72..d908c795 100644
--- a/mt7996/init.c
+++ b/mt7996/init.c
-@@ -642,10 +642,8 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
+@@ -638,10 +638,8 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
goto error;
if (wed == &dev->mt76.mmio.wed_hif2 && mtk_wed_device_active(wed)) {
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2006-mtk-wifi-mt76-add-SER-support-for-wed3.0.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2006-mtk-wifi-mt76-add-SER-support-for-wed3.0.patch
index d471b73..3755b92 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/2006-mtk-wifi-mt76-add-SER-support-for-wed3.0.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2006-mtk-wifi-mt76-add-SER-support-for-wed3.0.patch
@@ -1,7 +1,7 @@
-From 4d9f1a03be245fcefd8567c5b3623de9f85945ae Mon Sep 17 00:00:00 2001
+From d3fd0f1eb8faa1dae61798758b62d027dd7ad958 Mon Sep 17 00:00:00 2001
From: mtk27745 <rex.lu@mediatek.com>
Date: Tue, 23 May 2023 12:06:29 +0800
-Subject: [PATCH 2006/2020] mtk: wifi: mt76: add SER support for wed3.0
+Subject: [PATCH 2006/2028] mtk: wifi: mt76: add SER support for wed3.0
---
dma.c | 5 +++--
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2007-mtk-wifi-mt76-mt7915-wed-find-rx-token-by-physical-a.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2007-mtk-wifi-mt76-mt7915-wed-find-rx-token-by-physical-a.patch
index 575675d..b722dea 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/2007-mtk-wifi-mt76-mt7915-wed-find-rx-token-by-physical-a.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2007-mtk-wifi-mt76-mt7915-wed-find-rx-token-by-physical-a.patch
@@ -1,7 +1,7 @@
-From 2ce94ab60b821db9a1f3368df1b24b4f7904a00b Mon Sep 17 00:00:00 2001
+From 66913f29a6f44a588926788f393eb887d2997bfd Mon Sep 17 00:00:00 2001
From: "sujuan.chen" <sujuan.chen@mediatek.com>
Date: Wed, 19 Jul 2023 10:55:09 +0800
-Subject: [PATCH 2007/2020] mtk: wifi: mt76: mt7915: wed: find rx token by
+Subject: [PATCH 2007/2028] mtk: wifi: mt76: mt7915: wed: find rx token by
physical address
The token id in RxDMAD may be incorrect when it is not the last frame due to
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2008-mtk-wifi-mt76-mt7996-add-dma-mask-limitation.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2008-mtk-wifi-mt76-mt7996-add-dma-mask-limitation.patch
index dce4540..0e40b9d 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/2008-mtk-wifi-mt76-mt7996-add-dma-mask-limitation.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2008-mtk-wifi-mt76-mt7996-add-dma-mask-limitation.patch
@@ -1,7 +1,7 @@
-From 20990e5d6a405c24354d78e2632a8c0510613f18 Mon Sep 17 00:00:00 2001
+From 0a1fef8b518288d0fed1df86a95fdf04fc611db8 Mon Sep 17 00:00:00 2001
From: "sujuan.chen" <sujuan.chen@mediatek.com>
Date: Thu, 20 Jul 2023 10:25:50 +0800
-Subject: [PATCH 2008/2020] mtk: wifi: mt76: mt7996: add dma mask limitation
+Subject: [PATCH 2008/2028] mtk: wifi: mt76: mt7996: add dma mask limitation
Signed-off-by: sujuan.chen <sujuan.chen@mediatek.com>
---
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2009-mtk-wifi-mt76-mt7996-add-per-bss-statistic-info.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2009-mtk-wifi-mt76-mt7996-add-per-bss-statistic-info.patch
index 197f001..9986fb0 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/2009-mtk-wifi-mt76-mt7996-add-per-bss-statistic-info.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2009-mtk-wifi-mt76-mt7996-add-per-bss-statistic-info.patch
@@ -1,7 +1,7 @@
-From f738720718ccb088c71be5dfa9bd5b9a2b7cb78e Mon Sep 17 00:00:00 2001
+From 41bbf8a772f11e565ea2a6ee7b3fd26e43f315a3 Mon Sep 17 00:00:00 2001
From: Yi-Chia Hsieh <yi-chia.hsieh@mediatek.com>
Date: Fri, 18 Aug 2023 10:17:08 +0800
-Subject: [PATCH 2009/2020] mtk: wifi: mt76: mt7996: add per bss statistic info
+Subject: [PATCH 2009/2028] mtk: wifi: mt76: mt7996: add per bss statistic info
Whenever WED is enabled, unicast traffic might run through HW path.
As a result, we need to count them using WM event.
@@ -22,7 +22,7 @@
3 files changed, 37 insertions(+), 5 deletions(-)
diff --git a/mt7996/init.c b/mt7996/init.c
-index 10b17f7d..d807c357 100644
+index d908c795..19a7cd10 100644
--- a/mt7996/init.c
+++ b/mt7996/init.c
@@ -390,6 +390,7 @@ mt7996_init_wiphy(struct ieee80211_hw *hw, struct mtk_wed_device *wed)
@@ -34,7 +34,7 @@
wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION);
wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_BEACON_PROTECTION);
diff --git a/mt7996/main.c b/mt7996/main.c
-index 5a5b549a..939b0943 100644
+index f4d50ec1..3d6cc25a 100644
--- a/mt7996/main.c
+++ b/mt7996/main.c
@@ -251,6 +251,7 @@ static int mt7996_add_interface(struct ieee80211_hw *hw,
@@ -46,7 +46,7 @@
mt7996_mac_wtbl_update(dev, idx,
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index e893e79b..c5167732 100644
+index 97874bb4..9076020e 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
@@ -521,6 +521,27 @@ mt7996_mcu_update_tx_gi(struct rate_info *rate, struct all_sta_trx_rate *mcu_rat
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2010-mtk-wifi-mt76-mt7996-do-not-report-netdev-stats-on-m.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2010-mtk-wifi-mt76-mt7996-do-not-report-netdev-stats-on-m.patch
index 41093ff..58fb493 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/2010-mtk-wifi-mt76-mt7996-do-not-report-netdev-stats-on-m.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2010-mtk-wifi-mt76-mt7996-do-not-report-netdev-stats-on-m.patch
@@ -1,7 +1,7 @@
-From fc585381223ac634308f6c396e548a4b03c9c190 Mon Sep 17 00:00:00 2001
+From 1861ed32781234084364c8b77fcd8aa7a220654c Mon Sep 17 00:00:00 2001
From: Shayne Chen <shayne.chen@mediatek.com>
Date: Thu, 26 Oct 2023 17:27:43 +0800
-Subject: [PATCH 2010/2020] mtk: wifi: mt76: mt7996: do not report netdev stats
+Subject: [PATCH 2010/2028] mtk: wifi: mt76: mt7996: do not report netdev stats
on monitor vif
This fixes the following NULL pointer crash when enabling monitor mode:
@@ -19,7 +19,7 @@
1 file changed, 3 insertions(+)
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index c5167732..3116e664 100644
+index 9076020e..8bb29e3a 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
@@ -537,6 +537,9 @@ static inline void __mt7996_stat_to_netdev(struct mt76_phy *mphy,
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2011-mtk-wifi-mt76-mt7996-add-support-for-HW-ATF.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2011-mtk-wifi-mt76-mt7996-add-support-for-HW-ATF.patch
index 7e19302..2b0c138 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/2011-mtk-wifi-mt76-mt7996-add-support-for-HW-ATF.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2011-mtk-wifi-mt76-mt7996-add-support-for-HW-ATF.patch
@@ -1,24 +1,24 @@
-From 7768e810767e4ac6bb65f42ad459e84fbc22c6c0 Mon Sep 17 00:00:00 2001
+From 3e5f0df52e16d5dfab197af0e8768b906fa611a5 Mon Sep 17 00:00:00 2001
From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
Date: Mon, 11 Sep 2023 16:35:15 +0800
-Subject: [PATCH 2011/2020] mtk: wifi: mt76: mt7996: add support for HW-ATF
+Subject: [PATCH 2011/2028] mtk: wifi: mt76: mt7996: add support for HW-ATF
---
- mt7996/debugfs.c | 89 ++++++++++++++++
+ mt7996/debugfs.c | 90 ++++++++++++++++
mt7996/init.c | 43 ++++++++
mt7996/mac.c | 6 ++
mt7996/mcu.c | 265 ++++++++++++++++++++++++++++++++++++++++++-----
mt7996/mcu.h | 1 +
mt7996/mt7996.h | 96 ++++++++++++++++-
- 6 files changed, 474 insertions(+), 26 deletions(-)
+ 6 files changed, 475 insertions(+), 26 deletions(-)
diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index 223b655e..3d514c44 100644
+index 21bb2c5d..ed55afa0 100644
--- a/mt7996/debugfs.c
+++ b/mt7996/debugfs.c
-@@ -863,6 +863,90 @@ mt7996_rf_regval_set(void *data, u64 val)
- DEFINE_DEBUGFS_ATTRIBUTE(fops_rf_regval, mt7996_rf_regval_get,
- mt7996_rf_regval_set, "0x%08llx\n");
+@@ -895,6 +895,91 @@ DEFINE_DEBUGFS_ATTRIBUTE(fops_fw_debug_muru_disable,
+ mt7996_fw_debug_muru_disable_get,
+ mt7996_fw_debug_muru_disable_set, "%lld\n");
+static int
+mt7996_vow_info_read(struct seq_file *s, void *data)
@@ -63,6 +63,7 @@
+ vow->atf_enable = !!val;
+ return mt7996_mcu_set_vow_feature_ctrl(phy);
+}
++
+DEFINE_DEBUGFS_ATTRIBUTE(fops_atf_enable, mt7996_atf_enable_get,
+ mt7996_atf_enable_set, "%llu\n");
+
@@ -107,7 +108,7 @@
int mt7996_init_debugfs(struct mt7996_phy *phy)
{
struct mt7996_dev *dev = phy->dev;
-@@ -889,6 +973,11 @@ int mt7996_init_debugfs(struct mt7996_phy *phy)
+@@ -921,6 +1006,11 @@ int mt7996_init_debugfs(struct mt7996_phy *phy)
debugfs_create_devm_seqfile(dev->mt76.dev, "twt_stats", dir,
mt7996_twt_stats);
debugfs_create_file("rf_regval", 0600, dir, dev, &fops_rf_regval);
@@ -120,10 +121,10 @@
if (phy->mt76->cap.has_5ghz) {
debugfs_create_u32("dfs_hw_pattern", 0400, dir,
diff --git a/mt7996/init.c b/mt7996/init.c
-index d807c357..50453801 100644
+index 19a7cd10..d2cd2221 100644
--- a/mt7996/init.c
+++ b/mt7996/init.c
-@@ -566,6 +566,37 @@ int mt7996_txbf_init(struct mt7996_dev *dev)
+@@ -562,6 +562,37 @@ int mt7996_txbf_init(struct mt7996_dev *dev)
return mt7996_mcu_set_txbf(dev, BF_HW_EN_UPDATE);
}
@@ -161,7 +162,7 @@
static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
enum mt76_band_id band)
{
-@@ -638,6 +669,12 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
+@@ -634,6 +665,12 @@ static int mt7996_register_phy(struct mt7996_dev *dev, struct mt7996_phy *phy,
if (ret)
goto error;
@@ -174,7 +175,7 @@
ret = mt7996_init_debugfs(phy);
if (ret)
goto error;
-@@ -1443,6 +1480,12 @@ int mt7996_register_device(struct mt7996_dev *dev)
+@@ -1440,6 +1477,12 @@ int mt7996_register_device(struct mt7996_dev *dev)
dev->recovery.hw_init_done = true;
@@ -219,10 +220,10 @@
/* get signal strength of resp frames (CTS/BA/ACK) */
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 3116e664..45a44cd8 100644
+index 8bb29e3a..c7f9e308 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
-@@ -2220,34 +2220,37 @@ int mt7996_mcu_add_rate_ctrl(struct mt7996_dev *dev, struct ieee80211_vif *vif,
+@@ -2233,34 +2233,37 @@ int mt7996_mcu_add_rate_ctrl(struct mt7996_dev *dev, struct ieee80211_vif *vif,
}
static int
@@ -284,7 +285,7 @@
}
int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct ieee80211_vif *vif,
-@@ -2301,7 +2304,7 @@ int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct ieee80211_vif *vif,
+@@ -2316,7 +2319,7 @@ int mt7996_mcu_add_sta(struct mt7996_dev *dev, struct ieee80211_vif *vif,
mt7996_mcu_sta_bfee_tlv(dev, skb, vif, sta);
}
@@ -293,7 +294,7 @@
if (ret) {
dev_kfree_skb(skb);
return ret;
-@@ -5137,6 +5140,218 @@ int mt7996_mcu_set_scs(struct mt7996_phy *phy, u8 enable)
+@@ -5152,6 +5155,218 @@ int mt7996_mcu_set_scs(struct mt7996_phy *phy, u8 enable)
&req, sizeof(req), false);
}
@@ -525,7 +526,7 @@
UNI_VOW_RX_AT_AIRTIME_CLR_EN = 0x0e,
UNI_VOW_RED_ENABLE = 0x18,
diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index e6a0b15a..56538825 100644
+index b0eb5d91..b1abe42b 100644
--- a/mt7996/mt7996.h
+++ b/mt7996/mt7996.h
@@ -115,6 +115,12 @@
@@ -632,7 +633,7 @@
};
struct mt7996_vif {
-@@ -492,6 +575,7 @@ struct mt7996_dev {
+@@ -494,6 +577,7 @@ struct mt7996_dev {
u8 wtbl_size_group;
@@ -640,7 +641,7 @@
#ifdef CONFIG_MTK_DEBUG
u16 wlan_idx;
struct {
-@@ -712,10 +796,12 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy);
+@@ -734,10 +818,12 @@ int mt7996_mcu_apply_tx_dpd(struct mt7996_phy *phy);
#ifdef CONFIG_NL80211_TESTMODE
void mt7996_tm_rf_test_event(struct mt7996_dev *dev, struct sk_buff *skb);
#endif
@@ -654,7 +655,7 @@
static inline u8 mt7996_max_interface_num(struct mt7996_dev *dev)
{
-@@ -765,6 +851,14 @@ static inline u16 mt7996_rx_chainmask(struct mt7996_phy *phy)
+@@ -787,6 +873,14 @@ static inline u16 mt7996_rx_chainmask(struct mt7996_phy *phy)
return tx_chainmask | (BIT(fls(tx_chainmask)) * phy->has_aux_rx);
}
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2012-mtk-wifi-mt76-mt7996-wed-add-SER0.5-support-w-wed3.0.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2012-mtk-wifi-mt76-mt7996-wed-add-SER0.5-support-w-wed3.0.patch
index d78fcf3..5dd51c1 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/2012-mtk-wifi-mt76-mt7996-wed-add-SER0.5-support-w-wed3.0.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2012-mtk-wifi-mt76-mt7996-wed-add-SER0.5-support-w-wed3.0.patch
@@ -1,7 +1,7 @@
-From 2e7ac514e17ad740c9a837190f9d43ebeb8a9397 Mon Sep 17 00:00:00 2001
+From 14d56cbefbd6f72d82d18534da6dd445e6ddd266 Mon Sep 17 00:00:00 2001
From: "sujuan.chen" <sujuan.chen@mediatek.com>
Date: Thu, 12 Oct 2023 10:04:54 +0800
-Subject: [PATCH 2012/2020] mtk: wifi: mt76: mt7996: wed: add SER0.5 support w/
+Subject: [PATCH 2012/2028] mtk: wifi: mt76: mt7996: wed: add SER0.5 support w/
wed3.0
Signed-off-by: sujuan.chen <sujuan.chen@mediatek.com>
@@ -184,10 +184,10 @@
mt7996_dma_enable(dev, !force);
}
diff --git a/mt7996/init.c b/mt7996/init.c
-index 50453801..a1b76e33 100644
+index d2cd2221..32f2db33 100644
--- a/mt7996/init.c
+++ b/mt7996/init.c
-@@ -728,11 +728,91 @@ void mt7996_wfsys_reset(struct mt7996_dev *dev)
+@@ -724,11 +724,91 @@ void mt7996_wfsys_reset(struct mt7996_dev *dev)
msleep(20);
}
@@ -280,7 +280,7 @@
struct mt7996_wed_rro_addr *addr;
void *ptr;
int i;
-@@ -792,50 +872,9 @@ static int mt7996_wed_rro_init(struct mt7996_dev *dev)
+@@ -788,50 +868,9 @@ static int mt7996_wed_rro_init(struct mt7996_dev *dev)
addr++;
}
@@ -370,10 +370,10 @@
ret = mt7996_mcu_set_eeprom(dev);
if (ret)
diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 56538825..7a1cae71 100644
+index b1abe42b..84b34ea9 100644
--- a/mt7996/mt7996.h
+++ b/mt7996/mt7996.h
-@@ -691,6 +691,7 @@ extern const struct mt76_testmode_ops mt7996_testmode_ops;
+@@ -713,6 +713,7 @@ extern const struct mt76_testmode_ops mt7996_testmode_ops;
struct mt7996_dev *mt7996_mmio_probe(struct device *pdev,
void __iomem *mem_base, u32 device_id);
void mt7996_wfsys_reset(struct mt7996_dev *dev);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2013-mtk-wifi-mt76-mt7996-support-backaward-compatiable.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2013-mtk-wifi-mt76-mt7996-support-backaward-compatiable.patch
index 671d734..dae855a 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/2013-mtk-wifi-mt76-mt7996-support-backaward-compatiable.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2013-mtk-wifi-mt76-mt7996-support-backaward-compatiable.patch
@@ -1,7 +1,7 @@
-From 68d3bbf7120da35068e5983d89cae5ee470e55f4 Mon Sep 17 00:00:00 2001
+From 5fcb64a1ec7d90bdecd63ebcdb5676c4616d20cd Mon Sep 17 00:00:00 2001
From: mtk27745 <rex.lu@mediatek.com>
Date: Fri, 6 Oct 2023 20:59:42 +0800
-Subject: [PATCH 2013/2020] mtk: wifi: mt76: mt7996: support backaward
+Subject: [PATCH 2013/2028] mtk: wifi: mt76: mt7996: support backaward
compatiable
revert upstream wed trigger mode to polling mode
@@ -66,10 +66,10 @@
mt7996_irq_enable(dev, wed_irq_mask);
mt7996_irq_disable(dev, 0);
diff --git a/mt7996/main.c b/mt7996/main.c
-index 939b0943..45461949 100644
+index 3d6cc25a..73bf5eea 100644
--- a/mt7996/main.c
+++ b/mt7996/main.c
-@@ -1593,10 +1593,10 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
+@@ -1601,10 +1601,10 @@ mt7996_net_fill_forward_path(struct ieee80211_hw *hw,
path->mtk_wdma.wcid = msta->wcid.idx;
if (ieee80211_hw_check(hw, SUPPORTS_AMSDU_IN_AMPDU) &&
@@ -84,10 +84,10 @@
ctx->dev = NULL;
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 45a44cd8..57af55ec 100644
+index c7f9e308..0fe713d6 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
-@@ -3247,7 +3247,7 @@ static int mt7996_mcu_wa_red_config(struct mt7996_dev *dev)
+@@ -3262,7 +3262,7 @@ static int mt7996_mcu_wa_red_config(struct mt7996_dev *dev)
if (!mtk_wed_device_active(&dev->mt76.mmio.wed))
req.token_per_src[RED_TOKEN_SRC_CNT - 1] =
@@ -162,7 +162,7 @@
#else
return 0;
diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 7a1cae71..056d07fe 100644
+index 84b34ea9..3ba40c3a 100644
--- a/mt7996/mt7996.h
+++ b/mt7996/mt7996.h
@@ -74,6 +74,7 @@
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2014-mtk-wifi-mt76-mt7996-wed-add-wed-support-for-mt7992.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2014-mtk-wifi-mt76-mt7996-wed-add-wed-support-for-mt7992.patch
index 1b52408..f2e75f8 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/2014-mtk-wifi-mt76-mt7996-wed-add-wed-support-for-mt7992.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2014-mtk-wifi-mt76-mt7996-wed-add-wed-support-for-mt7992.patch
@@ -1,7 +1,7 @@
-From fe2c7b5514551f1b61404e9bc11cea12c6ae77de Mon Sep 17 00:00:00 2001
+From e38f980034dbfe7b9345347035e6e4042c5deadd Mon Sep 17 00:00:00 2001
From: "sujuan.chen" <sujuan.chen@mediatek.com>
Date: Fri, 8 Sep 2023 11:57:39 +0800
-Subject: [PATCH 2014/2020] mtk: wifi: mt76: mt7996: wed: add wed support for
+Subject: [PATCH 2014/2028] mtk: wifi: mt76: mt7996: wed: add wed support for
mt7992
Signed-off-by: sujuan.chen <sujuan.chen@mediatek.com>
@@ -168,10 +168,10 @@
if (mt7996_band_valid(dev, MT_BAND2)) {
/* rx rro data queue for band2 */
diff --git a/mt7996/init.c b/mt7996/init.c
-index a1b76e33..cc7d570a 100644
+index 32f2db33..12682c9b 100644
--- a/mt7996/init.c
+++ b/mt7996/init.c
-@@ -806,6 +806,7 @@ void mt7996_rro_hw_init(struct mt7996_dev *dev)
+@@ -802,6 +802,7 @@ void mt7996_rro_hw_init(struct mt7996_dev *dev)
/* interrupt enable */
mt76_wr(dev, MT_RRO_HOST_INT_ENA,
MT_RRO_HOST_INT_ENA_HOST_RRO_DONE_ENA);
@@ -179,7 +179,7 @@
#endif
}
-@@ -858,6 +859,17 @@ static int mt7996_wed_rro_init(struct mt7996_dev *dev)
+@@ -854,6 +855,17 @@ static int mt7996_wed_rro_init(struct mt7996_dev *dev)
dev->wed_rro.addr_elem[i].phy_addr;
}
@@ -305,7 +305,7 @@
dev->mt76.rx_token_size = MT7996_TOKEN_SIZE + wed->wlan.rx_npkt;
}
diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 056d07fe..677f00b0 100644
+index 3ba40c3a..d1d35e56 100644
--- a/mt7996/mt7996.h
+++ b/mt7996/mt7996.h
@@ -122,6 +122,10 @@
@@ -328,7 +328,7 @@
MT7996_RXQ_RRO_BAND2 = 6,
MT7996_RXQ_MSDU_PG_BAND0 = 10,
MT7996_RXQ_MSDU_PG_BAND1 = 11,
-@@ -540,6 +544,10 @@ struct mt7996_dev {
+@@ -541,6 +545,10 @@ struct mt7996_dev {
void *ptr;
dma_addr_t phy_addr;
} session;
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2015-mtk-wifi-mt76-mt7992-wed-add-2pcie-one-wed-support.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2015-mtk-wifi-mt76-mt7992-wed-add-2pcie-one-wed-support.patch
index 21d53cc..a4dfacc 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/2015-mtk-wifi-mt76-mt7992-wed-add-2pcie-one-wed-support.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2015-mtk-wifi-mt76-mt7992-wed-add-2pcie-one-wed-support.patch
@@ -1,7 +1,7 @@
-From fe7511e18f6fd543b5b3d2fac9dd61c9ed02d938 Mon Sep 17 00:00:00 2001
+From f5e2909fcfb815fcc91530addcb7b36f052f5c15 Mon Sep 17 00:00:00 2001
From: "sujuan.chen" <sujuan.chen@mediatek.com>
Date: Wed, 13 Sep 2023 17:35:43 +0800
-Subject: [PATCH 2015/2020] mtk: wifi: mt76: mt7992: wed: add 2pcie one wed
+Subject: [PATCH 2015/2028] mtk: wifi: mt76: mt7992: wed: add 2pcie one wed
support
Signed-off-by: sujuan.chen <sujuan.chen@mediatek.com>
@@ -100,7 +100,7 @@
//#define WF_WFDMA_MCU_DMA0_BASE 0x02000
#define WF_WFDMA_MCU_DMA0_BASE 0x54000000
diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index 9cf3e6dc..c1764824 100644
+index 7fecdb74..42370205 100644
--- a/mt7996/mtk_debugfs.c
+++ b/mt7996/mtk_debugfs.c
@@ -536,14 +536,22 @@ mt7996_show_dma_info(struct seq_file *s, struct mt7996_dev *dev)
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2016-mtk-wifi-mt76-mt7996-add-SER-state-log-for-debug.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2016-mtk-wifi-mt76-mt7996-add-SER-state-log-for-debug.patch
index 093244e..a00645f 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/2016-mtk-wifi-mt76-mt7996-add-SER-state-log-for-debug.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2016-mtk-wifi-mt76-mt7996-add-SER-state-log-for-debug.patch
@@ -1,7 +1,7 @@
-From f6a8fd2686dbc85ca8a4881258e8bde6b1e06481 Mon Sep 17 00:00:00 2001
+From 905b93728d4804e6b988e93c5a6ba3bf2810bba6 Mon Sep 17 00:00:00 2001
From: Bo Jiao <Bo.Jiao@mediatek.com>
Date: Mon, 6 Nov 2023 16:37:23 +0800
-Subject: [PATCH 2016/2020] mtk: wifi: mt76: mt7996: add SER state log for
+Subject: [PATCH 2016/2028] mtk: wifi: mt76: mt7996: add SER state log for
debug.
Signed-off-by: Bo Jiao <Bo.Jiao@mediatek.com>
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2017-mtk-wifi-mt76-mt7996-Remove-wed-rro-ring-add-napi-at.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2017-mtk-wifi-mt76-mt7996-Remove-wed-rro-ring-add-napi-at.patch
index 49cb21a..460e810 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/2017-mtk-wifi-mt76-mt7996-Remove-wed-rro-ring-add-napi-at.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2017-mtk-wifi-mt76-mt7996-Remove-wed-rro-ring-add-napi-at.patch
@@ -1,7 +1,7 @@
-From b81245ff66c12f52508f3a2fd22ef2c7cf56cde4 Mon Sep 17 00:00:00 2001
+From 55ac95bb1f783c203750968bfe762d1e63f99321 Mon Sep 17 00:00:00 2001
From: mtk27745 <rex.lu@mediatek.com>
Date: Mon, 6 Nov 2023 10:16:34 +0800
-Subject: [PATCH 2017/2020] mtk: wifi: mt76: mt7996: Remove wed rro ring add
+Subject: [PATCH 2017/2028] mtk: wifi: mt76: mt7996: Remove wed rro ring add
napi at init state
without this patch. rro ring will add napi at initial state. once rro ring add napi, it will have chance to be used by host driver. if host driver accessed the ring data, it will cause some issue.
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2018-mtk-wifi-mt76-mt7996-Remove-wed_stop-during-L1-SER.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2018-mtk-wifi-mt76-mt7996-Remove-wed_stop-during-L1-SER.patch
index 5ac595c..55185e7 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/2018-mtk-wifi-mt76-mt7996-Remove-wed_stop-during-L1-SER.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2018-mtk-wifi-mt76-mt7996-Remove-wed_stop-during-L1-SER.patch
@@ -1,7 +1,7 @@
-From 3c31acb1c6a90e33ca0aa60f6f605ccc75d0ac93 Mon Sep 17 00:00:00 2001
+From 143eed20d01bab9d81fc60540214a87be38580b0 Mon Sep 17 00:00:00 2001
From: Rex Lu <rex.lu@mediatek.com>
Date: Wed, 29 Nov 2023 13:56:52 +0800
-Subject: [PATCH 2018/2020] mtk: wifi: mt76: mt7996: Remove wed_stop during L1
+Subject: [PATCH 2018/2028] mtk: wifi: mt76: mt7996: Remove wed_stop during L1
SER
Align logan L1 SER flow. During L1 SER, didn't need to close wed interrupt.
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2019-mtk-wifi-mt76-mt7996-Refactor-rro-del-ba-command-for.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2019-mtk-wifi-mt76-mt7996-Refactor-rro-del-ba-command-for.patch
index 66b06a8..08e99eb 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/2019-mtk-wifi-mt76-mt7996-Refactor-rro-del-ba-command-for.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2019-mtk-wifi-mt76-mt7996-Refactor-rro-del-ba-command-for.patch
@@ -1,7 +1,7 @@
-From 025d64a4244f872c0e767cbefa8dbeb1af84de39 Mon Sep 17 00:00:00 2001
+From a91bffb95b75d3c9b0dc0fae4bccc1fd6ec302be Mon Sep 17 00:00:00 2001
From: Rex Lu <rex.lu@mediatek.com>
Date: Wed, 29 Nov 2023 15:51:04 +0800
-Subject: [PATCH 2019/2020] mtk: wifi: mt76: mt7996: Refactor rro del ba
+Subject: [PATCH 2019/2028] mtk: wifi: mt76: mt7996: Refactor rro del ba
command format
1. remove unused struct
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2020-mtk-wifi-mt76-mt7996-get-airtime-and-RSSI-via-MCU-co.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2020-mtk-wifi-mt76-mt7996-get-airtime-and-RSSI-via-MCU-co.patch
index c34671f..3c45b21 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/2020-mtk-wifi-mt76-mt7996-get-airtime-and-RSSI-via-MCU-co.patch
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2020-mtk-wifi-mt76-mt7996-get-airtime-and-RSSI-via-MCU-co.patch
@@ -1,7 +1,7 @@
-From 555895ccd2379f4b9d94148f7d67afb4a4d97be4 Mon Sep 17 00:00:00 2001
+From 64db610443287b4e5b47ee9a7461562c16ae0e76 Mon Sep 17 00:00:00 2001
From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
Date: Fri, 17 Nov 2023 18:08:06 +0800
-Subject: [PATCH 2020/2020] mtk: wifi: mt76: mt7996: get airtime and RSSI via
+Subject: [PATCH 2020/2028] mtk: wifi: mt76: mt7996: get airtime and RSSI via
MCU commands
Direct access to WTBL for airtime and RSSI may cause synchronization issue with FW.
@@ -66,10 +66,10 @@
mtxq_to_txq(struct mt76_txq *mtxq)
{
diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
-index 306e7bee..8056911f 100644
+index 2cdd5b9c..77c5b62f 100644
--- a/mt76_connac_mcu.h
+++ b/mt76_connac_mcu.h
-@@ -1357,11 +1357,23 @@ enum {
+@@ -1364,11 +1364,23 @@ enum {
UNI_OFFLOAD_OFFLOAD_BMC_RPY_DETECT,
};
@@ -95,10 +95,10 @@
UNI_ALL_STA_GI_MODE,
UNI_ALL_STA_TXRX_MSDU_COUNT,
diff --git a/mt7996/debugfs.c b/mt7996/debugfs.c
-index 3d514c44..c16099f9 100644
+index ed55afa0..24191f75 100644
--- a/mt7996/debugfs.c
+++ b/mt7996/debugfs.c
-@@ -914,12 +914,11 @@ mt7996_airtime_read(struct seq_file *s, void *data)
+@@ -947,12 +947,11 @@ mt7996_airtime_read(struct seq_file *s, void *data)
{
struct mt7996_dev *dev = dev_get_drvdata(s->private);
struct mt76_dev *mdev = &dev->mt76;
@@ -112,7 +112,7 @@
u16 i;
seq_printf(s, "VoW Airtime Information:\n");
-@@ -931,16 +930,16 @@ mt7996_airtime_read(struct seq_file *s, void *data)
+@@ -964,16 +963,16 @@ mt7996_airtime_read(struct seq_file *s, void *data)
msta = container_of(wcid, struct mt7996_sta, wcid);
sta = container_of((void *)msta, struct ieee80211_sta, drv_priv);
@@ -326,7 +326,7 @@
ieee80211_queue_delayed_work(mphy->hw, &mphy->mac_work,
MT7996_WATCHDOG_TIME);
diff --git a/mt7996/mcu.c b/mt7996/mcu.c
-index 57af55ec..b849ebe1 100644
+index 0fe713d6..62c073bd 100644
--- a/mt7996/mcu.c
+++ b/mt7996/mcu.c
@@ -560,7 +560,8 @@ mt7996_mcu_rx_all_sta_info_event(struct mt7996_dev *dev, struct sk_buff *skb)
@@ -373,7 +373,7 @@
default:
break;
}
-@@ -2239,8 +2258,6 @@ mt7996_mcu_sta_init_vow(struct mt7996_phy *phy, struct mt7996_sta *msta)
+@@ -2252,8 +2271,6 @@ mt7996_mcu_sta_init_vow(struct mt7996_phy *phy, struct mt7996_sta *msta)
vow->drr_quantum[IEEE80211_AC_VI] = VOW_DRR_QUANTUM_IDX1;
vow->drr_quantum[IEEE80211_AC_BE] = VOW_DRR_QUANTUM_IDX2;
vow->drr_quantum[IEEE80211_AC_BK] = VOW_DRR_QUANTUM_IDX2;
@@ -382,7 +382,7 @@
ret = mt7996_mcu_set_vow_drr_ctrl(phy, msta, VOW_DRR_CTRL_STA_BSS_GROUP);
if (ret)
-@@ -4844,9 +4861,155 @@ int mt7996_mcu_set_rro(struct mt7996_dev *dev, u16 tag, u16 val)
+@@ -4859,9 +4876,155 @@ int mt7996_mcu_set_rro(struct mt7996_dev *dev, u16 tag, u16 val)
sizeof(req), true);
}
@@ -540,7 +540,7 @@
struct {
u8 _rsv[4];
-@@ -4857,7 +5020,7 @@ int mt7996_mcu_get_all_sta_info(struct mt7996_phy *phy, u16 tag)
+@@ -4872,7 +5035,7 @@ int mt7996_mcu_get_all_sta_info(struct mt7996_phy *phy, u16 tag)
.len = cpu_to_le16(sizeof(req) - 4),
};
@@ -606,7 +606,7 @@
} __packed;
diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
-index 677f00b0..c128fb8e 100644
+index d1d35e56..c5b83648 100644
--- a/mt7996/mt7996.h
+++ b/mt7996/mt7996.h
@@ -126,6 +126,8 @@
@@ -635,7 +635,7 @@
int ack_signal;
struct ewma_avg_signal avg_ack_signal;
-@@ -404,6 +403,21 @@ struct mt7996_air_monitor_ctrl {
+@@ -405,6 +404,21 @@ struct mt7996_air_monitor_ctrl {
};
#endif
@@ -657,7 +657,7 @@
struct mt7996_phy {
struct mt76_phy *mt76;
struct mt7996_dev *dev;
-@@ -592,6 +606,7 @@ struct mt7996_dev {
+@@ -594,6 +608,7 @@ struct mt7996_dev {
u32 fw_dbg_module;
u8 fw_dbg_lv;
u32 bcn_total_cnt[__MT_MAX_BAND];
@@ -665,7 +665,7 @@
} dbg;
const struct mt7996_dbg_reg_desc *dbg_reg;
#endif
-@@ -797,7 +812,10 @@ int mt7996_mcu_fw_dbg_ctrl(struct mt7996_dev *dev, u32 module, u8 level);
+@@ -819,7 +834,10 @@ int mt7996_mcu_fw_dbg_ctrl(struct mt7996_dev *dev, u32 module, u8 level);
int mt7996_mcu_trigger_assert(struct mt7996_dev *dev);
void mt7996_mcu_rx_event(struct mt7996_dev *dev, struct sk_buff *skb);
void mt7996_mcu_exit(struct mt7996_dev *dev);
@@ -678,10 +678,10 @@
int mt7996_mcu_set_tx_power_ctrl(struct mt7996_phy *phy, u8 power_ctrl_id, u8 data);
int mt7996_mcu_get_tx_power_info(struct mt7996_phy *phy, u8 category, void *event);
diff --git a/mt7996/mtk_debugfs.c b/mt7996/mtk_debugfs.c
-index c1764824..3b5ae7ac 100644
+index 42370205..1c1f2c9c 100644
--- a/mt7996/mtk_debugfs.c
+++ b/mt7996/mtk_debugfs.c
-@@ -2951,6 +2951,69 @@ mt7996_vow_drr_dbg(void *data, u64 val)
+@@ -3047,6 +3047,69 @@ mt7996_vow_drr_dbg(void *data, u64 val)
DEFINE_DEBUGFS_ATTRIBUTE(fops_vow_drr_dbg, NULL,
mt7996_vow_drr_dbg, "%lld\n");
@@ -751,7 +751,7 @@
int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
{
struct mt7996_dev *dev = phy->dev;
-@@ -3049,6 +3112,14 @@ int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
+@@ -3146,6 +3209,14 @@ int mt7996_mtk_init_debugfs(struct mt7996_phy *phy, struct dentry *dir)
debugfs_create_file("muru_prot_thr", 0200, dir, phy, &fops_muru_prot_thr);
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/2021-mtk-wifi-mt76-mt7996-add-support-for-WMM-PBC-configu.patch b/recipes-wifi/linux-mt76/files/patches-3.x/2021-mtk-wifi-mt76-mt7996-add-support-for-WMM-PBC-configu.patch
new file mode 100644
index 0000000..78fcc32
--- /dev/null
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/2021-mtk-wifi-mt76-mt7996-add-support-for-WMM-PBC-configu.patch
@@ -0,0 +1,218 @@
+From edbe4cad5b63d80c10ac7ae14010e7018e6b351a Mon Sep 17 00:00:00 2001
+From: Benjamin Lin <benjamin-jw.lin@mediatek.com>
+Date: Thu, 4 Jan 2024 09:47:00 +0800
+Subject: [PATCH 2021/2028] mtk: wifi: mt76: mt7996: add support for WMM PBC
+ configuration
+
+Query per-AC-queue packet statistics from WA, and determine if multi-AC transmission is ongoing.
+If it is, enable WMM mode in WA. Otherwise, disable WMM mode.
+
+Signed-off-by: Benjamin Lin <benjamin-jw.lin@mediatek.com>
+---
+ mt76_connac_mcu.h | 2 ++
+ mt7996/init.c | 2 ++
+ mt7996/mac.c | 4 +++
+ mt7996/mcu.c | 78 +++++++++++++++++++++++++++++++++++++++++++++++
+ mt7996/mcu.h | 15 +++++++++
+ mt7996/mt7996.h | 4 +++
+ 6 files changed, 105 insertions(+)
+
+diff --git a/mt76_connac_mcu.h b/mt76_connac_mcu.h
+index 77c5b62f..7b4548dd 100644
+--- a/mt76_connac_mcu.h
++++ b/mt76_connac_mcu.h
+@@ -1022,6 +1022,7 @@ enum {
+ MCU_EXT_EVENT_ASSERT_DUMP = 0x23,
+ MCU_EXT_EVENT_RDD_REPORT = 0x3a,
+ MCU_EXT_EVENT_CSA_NOTIFY = 0x4f,
++ MCU_EXT_EVENT_BSS_ACQ_PKT_CNT = 0x52,
+ MCU_EXT_EVENT_WA_TX_STAT = 0x74,
+ MCU_EXT_EVENT_BCC_NOTIFY = 0x75,
+ MCU_EXT_EVENT_MURU_CTRL = 0x9f,
+@@ -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_SET_RADAR_TH = 0x7c,
+ MCU_EXT_CMD_SET_RDD_PATTERN = 0x7d,
+ MCU_EXT_CMD_MWDS_SUPPORT = 0x80,
+diff --git a/mt7996/init.c b/mt7996/init.c
+index 12682c9b..193904bc 100644
+--- a/mt7996/init.c
++++ b/mt7996/init.c
+@@ -1493,6 +1493,8 @@ int mt7996_register_device(struct mt7996_dev *dev)
+ INIT_WORK(&dev->dump_work, mt7996_mac_dump_work);
+ mutex_init(&dev->dump_mutex);
+
++ INIT_WORK(&dev->wmm_pbc_work, mt7996_mcu_wmm_pbc_work);
++
+ ret = mt7996_init_hardware(dev);
+ if (ret)
+ return ret;
+diff --git a/mt7996/mac.c b/mt7996/mac.c
+index bdf808fc..94c0cfab 100644
+--- a/mt7996/mac.c
++++ b/mt7996/mac.c
+@@ -2288,6 +2288,10 @@ void mt7996_mac_work(struct work_struct *work)
+ mt7996_mcu_get_all_sta_info(mdev, UNI_ALL_STA_TXRX_ADM_STAT);
+ mt7996_mcu_get_all_sta_info(mdev, UNI_ALL_STA_TXRX_MSDU_COUNT);
+ }
++
++ if (mt7996_mcu_wa_cmd(phy->dev, MCU_WA_PARAM_CMD(QUERY), MCU_WA_PARAM_BSS_ACQ_PKT_CNT,
++ BSS_ACQ_PKT_CNT_BSS_BITMAP_ALL | BSS_ACQ_PKT_CNT_READ_CLR, 0))
++ dev_err(mdev->dev, "Failed to query per-AC-queue packet counts.\n");
+ } else if (mt7996_band_valid(phy->dev, i) &&
+ test_bit(MT76_STATE_RUNNING, &mdev->phys[i]->state))
+ break;
+diff --git a/mt7996/mcu.c b/mt7996/mcu.c
+index 62c073bd..85d04525 100644
+--- a/mt7996/mcu.c
++++ b/mt7996/mcu.c
+@@ -666,6 +666,82 @@ mt7996_mcu_rx_thermal_notify(struct mt7996_dev *dev, struct sk_buff *skb)
+ phy->throttle_state = n->duty_percent;
+ }
+
++void mt7996_mcu_wmm_pbc_work(struct work_struct *work)
++{
++#define WMM_PBC_QUEUE_NUM 5
++#define WMM_PBC_BSS_ALL 0xff
++#define WMM_PBC_WLAN_IDX_ALL 0xffff
++#define WMM_PBC_BOUND_DEFAULT 0xffff
++#define WMM_PBC_LOW_BOUND_VO 1900
++#define WMM_PBC_LOW_BOUND_VI 1900
++#define WMM_PBC_LOW_BOUND_BE 1500
++#define WMM_PBC_LOW_BOUND_BK 900
++#define WMM_PBC_LOW_BOUND_MGMT 32
++ struct mt7996_dev *dev = container_of(work, struct mt7996_dev, wmm_pbc_work);
++ struct {
++ u8 bss_idx;
++ u8 queue_num;
++ __le16 wlan_idx;
++ u8 band_idx;
++ u8 __rsv[3];
++ struct {
++ __le16 low;
++ __le16 up;
++ } __packed bound[WMM_PBC_QUEUE_NUM];
++ } __packed req = {
++ .bss_idx = WMM_PBC_BSS_ALL,
++ .queue_num = WMM_PBC_QUEUE_NUM,
++ .wlan_idx = cpu_to_le16(WMM_PBC_WLAN_IDX_ALL),
++ .band_idx = dev->mphy.band_idx,
++ };
++ int i, ret;
++
++#define pbc_acq_low_bound_config(_ac, _bound) \
++ req.bound[mt76_connac_lmac_mapping(_ac)].low = dev->wmm_pbc_enable ? cpu_to_le16(_bound) : 0
++ pbc_acq_low_bound_config(IEEE80211_AC_VO, WMM_PBC_LOW_BOUND_VO);
++ pbc_acq_low_bound_config(IEEE80211_AC_VI, WMM_PBC_LOW_BOUND_VI);
++ pbc_acq_low_bound_config(IEEE80211_AC_BE, WMM_PBC_LOW_BOUND_BE);
++ pbc_acq_low_bound_config(IEEE80211_AC_BK, WMM_PBC_LOW_BOUND_BK);
++ req.bound[4].low = dev->wmm_pbc_enable
++ ? cpu_to_le16(WMM_PBC_LOW_BOUND_MGMT) : 0;
++
++ for (i = 0; i < WMM_PBC_QUEUE_NUM; ++i)
++ req.bound[i].up = cpu_to_le16(WMM_PBC_BOUND_DEFAULT);
++
++ ret = mt76_mcu_send_msg(&dev->mt76, MCU_WA_EXT_CMD(PKT_BUDGET_CTRL),
++ &req, sizeof(req), true);
++ if (ret)
++ dev_err(dev->mt76.dev, "Failed to configure WMM PBC.\n");
++}
++
++static void
++mt7996_mcu_rx_bss_acq_pkt_cnt(struct mt7996_dev *dev, struct sk_buff *skb)
++{
++ struct mt7996_mcu_bss_acq_pkt_cnt_event *event = (struct mt7996_mcu_bss_acq_pkt_cnt_event *)skb->data;
++ u32 bitmap = le32_to_cpu(event->bss_bitmap);
++ u64 sum[IEEE80211_NUM_ACS] = {0};
++ u8 ac_cnt = 0;
++ int i, j;
++
++ for (i = 0; (i < BSS_ACQ_PKT_CNT_BSS_NUM) && (bitmap & (1 << i)); ++i) {
++ for (j = IEEE80211_AC_VO; j < IEEE80211_NUM_ACS; ++j)
++ sum[j] += le32_to_cpu(event->bss[i].cnt[mt76_connac_lmac_mapping(j)]);
++ }
++
++ for (i = IEEE80211_AC_VO; i < IEEE80211_NUM_ACS; ++i) {
++ if (sum[i] > WMM_PKT_THRESHOLD)
++ ++ac_cnt;
++ }
++
++ if (ac_cnt > 1 && !dev->wmm_pbc_enable) {
++ dev->wmm_pbc_enable = true;
++ queue_work(dev->mt76.wq, &dev->wmm_pbc_work);
++ } else if (ac_cnt <= 1 && dev->wmm_pbc_enable) {
++ dev->wmm_pbc_enable = false;
++ queue_work(dev->mt76.wq, &dev->wmm_pbc_work);
++ }
++}
++
+ static void
+ mt7996_mcu_rx_ext_event(struct mt7996_dev *dev, struct sk_buff *skb)
+ {
+@@ -675,6 +751,8 @@ mt7996_mcu_rx_ext_event(struct mt7996_dev *dev, struct sk_buff *skb)
+ case MCU_EXT_EVENT_FW_LOG_2_HOST:
+ mt7996_mcu_rx_log_message(dev, skb);
+ break;
++ case MCU_EXT_EVENT_BSS_ACQ_PKT_CNT:
++ mt7996_mcu_rx_bss_acq_pkt_cnt(dev, skb);
+ default:
+ break;
+ }
+diff --git a/mt7996/mcu.h b/mt7996/mcu.h
+index cd327451..9dc7946b 100644
+--- a/mt7996/mcu.h
++++ b/mt7996/mcu.h
+@@ -375,10 +375,25 @@ enum {
+ MCU_WA_PARAM_CMD_DEBUG,
+ };
+
++#define BSS_ACQ_PKT_CNT_BSS_NUM 24
++#define BSS_ACQ_PKT_CNT_BSS_BITMAP_ALL 0x00ffffff
++#define BSS_ACQ_PKT_CNT_READ_CLR BIT(31)
++#define WMM_PKT_THRESHOLD 100
++
++struct mt7996_mcu_bss_acq_pkt_cnt_event {
++ struct mt7996_mcu_rxd rxd;
++
++ __le32 bss_bitmap;
++ struct {
++ __le32 cnt[IEEE80211_NUM_ACS];
++ } __packed bss[BSS_ACQ_PKT_CNT_BSS_NUM];
++} __packed;
++
+ enum {
+ MCU_WA_PARAM_PDMA_RX = 0x04,
+ MCU_WA_PARAM_CPU_UTIL = 0x0b,
+ MCU_WA_PARAM_RED_EN = 0x0e,
++ MCU_WA_PARAM_BSS_ACQ_PKT_CNT = 0x12,
+ MCU_WA_PARAM_HW_PATH_HIF_VER = 0x2f,
+ MCU_WA_PARAM_RED_CONFIG = 0x40,
+ };
+diff --git a/mt7996/mt7996.h b/mt7996/mt7996.h
+index c5b83648..6ea024ef 100644
+--- a/mt7996/mt7996.h
++++ b/mt7996/mt7996.h
+@@ -601,6 +601,9 @@ struct mt7996_dev {
+ u8 wtbl_size_group;
+
+ struct mt7996_vow_ctrl vow;
++
++ bool wmm_pbc_enable;
++ struct work_struct wmm_pbc_work;
+ #ifdef CONFIG_MTK_DEBUG
+ u16 wlan_idx;
+ struct {
+@@ -852,6 +855,7 @@ int mt7996_mcu_set_band_confg(struct mt7996_phy *phy, u16 option, bool enable);
+ int mt7996_mcu_set_vow_drr_ctrl(struct mt7996_phy *phy, struct mt7996_sta *msta,
+ enum vow_drr_ctrl_id id);
+ int mt7996_mcu_set_vow_feature_ctrl(struct mt7996_phy *phy);
++void mt7996_mcu_wmm_pbc_work(struct work_struct *work);
+
+ static inline u8 mt7996_max_interface_num(struct mt7996_dev *dev)
+ {
+--
+2.18.0
+
diff --git a/recipes-wifi/linux-mt76/files/patches-3.x/patches.inc b/recipes-wifi/linux-mt76/files/patches-3.x/patches.inc
index 6fc22a1..083cb42 100644
--- a/recipes-wifi/linux-mt76/files/patches-3.x/patches.inc
+++ b/recipes-wifi/linux-mt76/files/patches-3.x/patches.inc
@@ -14,15 +14,17 @@
file://0012-mtk-wifi-mt76-mt7996-enable-ser-query.patch \
file://0013-mtk-wifi-mt76-mt7996-init-rcpi-to-use-better-init-mc.patch \
file://0014-mtk-wifi-mt76-mt7996-Fix-TGax-HE-4.51.1_24G-fail.patch \
- file://0015-mtk-wifi-mt76-mt7996-add-eagle-default-bin-of-differ.patch \
- file://0016-mtk-wifi-mt76-mt7996-add-kite-fw-default-bin-for-dif.patch \
- file://0017-mtk-wifi-mt76-mt7996-add-lock-for-indirect-register-.patch \
- file://0018-mtk-wifi-mt76-connac-set-correct-muar_idx-for-connac.patch \
- file://0019-mtk-wifi-mt76-mt7996-ACS-channel-time-too-long-on-du.patch \
- file://0020-mtk-wifi-mt76-mt7996-Fixed-null-pointer-dereference-.patch \
- file://0021-mtk-wifi-mt76-add-sanity-check-to-prevent-kernel-cra.patch \
- file://0022-mtk-wifi-mt76-mt7996-add-firmware-WA-s-coredump.patch \
- file://0023-mtk-wifi-mt76-mt7996-add-preamble-puncture-support-f.patch \
+ file://0015-mtk-wifi-mt76-mt7996-remove-TxS-queue-setting.patch \
+ file://0016-mtk-wifi-mt76-mt7996-add-eagle-default-bin-of-differ.patch \
+ file://0017-mtk-wifi-mt76-mt7996-add-kite-fw-default-bin-for-dif.patch \
+ file://0018-mtk-wifi-mt76-mt7996-add-lock-for-indirect-register-.patch \
+ file://0019-mtk-wifi-mt76-connac-set-correct-muar_idx-for-connac.patch \
+ file://0020-mtk-wifi-mt76-mt7996-ACS-channel-time-too-long-on-du.patch \
+ file://0021-mtk-wifi-mt76-mt7996-Fixed-null-pointer-dereference-.patch \
+ file://0022-mtk-wifi-mt76-add-sanity-check-to-prevent-kernel-cra.patch \
+ file://0023-mtk-wifi-mt76-mt7996-add-firmware-WA-s-coredump.patch \
+ file://0024-mtk-wifi-mt76-mt7996-add-preamble-puncture-support-f.patch \
+ file://0025-mtk-wifi-mt76-mt7996-enable-hw-cso-module.patch \
file://0999-mtk-wifi-mt76-mt7996-for-build-pass.patch \
file://1000-mtk-wifi-mt76-mt7996-add-debug-tool.patch \
file://1001-mtk-wifi-mt76-mt7996-support-record-muru-algo-log-wh.patch \
@@ -41,31 +43,34 @@
file://1014-mtk-wifi-mt76-mt7996-add-driver-support-for-wpa3-ocv.patch \
file://1015-mtk-wifi-mt76-mt7996-add-vendor-cmd-to-get-available.patch \
file://1016-mtk-wifi-mt76-mt7996-add-debugfs-for-fw-coredump.patch \
- file://1017-mtk-wifi-mt76-mt7996-add-support-for-runtime-set-in-.patch \
- file://1018-mtk-wifi-mt76-mt7996-add-vendor-subcmd-EDCCA-ctrl-en.patch \
- file://1019-mtk-wifi-mt76-mt7996-add-support-spatial-reuse-debug.patch \
- file://1020-mtk-wifi-mt76-mt7996-Establish-BA-in-VO-queue.patch \
- file://1021-mtk-wifi-mt76-mt7996-add-eagle-iFEM-HWITS-ZWDFS-SW-w.patch \
- file://1022-mtk-wifi-mt76-mt7996-report-tx-and-rx-byte-to-tpt_le.patch \
- file://1023-mtk-wifi-mt76-mt7996-support-dup-wtbl.patch \
- file://1024-mtk-wifi-mt76-mt7996-add-ibf-control-vendor-cmd.patch \
- file://1025-mtk-wifi-mt76-try-more-times-when-send-message-timeo.patch \
- file://1026-mtk-wifi-mt76-mt7996-add-SER-overlap-handle.patch \
- file://1027-mtk-wifi-mt76-mt7996-kite-default-1-pcie-setting.patch \
- file://1028-mtk-wifi-mt76-mt7996-add-debugfs-knob-for-rx_counter.patch \
- file://1029-mtk-wifi-mt76-mt7996-add-three-wire-pta-support.patch \
- file://1030-mtk-wifi-mt76-mt7996-support-BF-MIMO-debug-commands.patch \
- file://1031-mtk-wifi-mt76-mt7996-add-build-the-following-MURU-mc.patch \
- file://1032-mtk-wifi-mt76-mt7996-add-cert-patch.patch \
- file://1033-mtk-wifi-mt76-testmode-add-testmode-bf-support.patch \
- file://1034-mtk-wifi-mt76-mt7996-add-zwdfs-cert-mode.patch \
- file://1035-mtk-wifi-mt76-testmode-add-channel-68-96.patch \
- file://1036-mtk-wifi-mt76-mt7996-support-enable-disable-pp-featu.patch \
- file://1037-mtk-wifi-mt76-testmode-add-kite-testmode-support.patch \
- file://1038-mtk-wifi-mt76-mt7996-assign-DEAUTH-to-ALTX-queue-for.patch \
- file://1039-mtk-wifi-mt76-mt7996-add-no_beacon-vendor-command-fo.patch \
- file://1040-mtk-wifi-mt76-mt7996-add-adie-efuse-merge-support.patch \
- file://1041-mtk-wifi-mt7996-add-Eagle-2adie-TBTC-BE14000-support.patch \
+ file://1017-mtk-wifi-mt76-mt7996-Add-mt7992-coredump-support.patch \
+ file://1018-mtk-wifi-mt76-mt7996-add-support-for-runtime-set-in-.patch \
+ file://1019-mtk-wifi-mt76-mt7996-add-vendor-subcmd-EDCCA-ctrl-en.patch \
+ file://1020-mtk-wifi-mt76-mt7996-add-support-spatial-reuse-debug.patch \
+ file://1021-mtk-wifi-mt76-mt7996-Establish-BA-in-VO-queue.patch \
+ file://1022-mtk-wifi-mt76-mt7996-add-eagle-iFEM-HWITS-ZWDFS-SW-w.patch \
+ file://1023-mtk-wifi-mt76-mt7996-report-tx-and-rx-byte-to-tpt_le.patch \
+ file://1024-mtk-wifi-mt76-mt7996-support-dup-wtbl.patch \
+ file://1025-mtk-wifi-mt76-mt7996-add-ibf-control-vendor-cmd.patch \
+ file://1026-mtk-wifi-mt76-try-more-times-when-send-message-timeo.patch \
+ file://1027-mtk-wifi-mt76-mt7996-add-SER-overlap-handle.patch \
+ file://1028-mtk-wifi-mt76-mt7996-kite-default-1-pcie-setting.patch \
+ file://1029-mtk-wifi-mt76-mt7996-add-debugfs-knob-for-rx_counter.patch \
+ file://1030-mtk-wifi-mt76-mt7996-add-three-wire-pta-support.patch \
+ file://1031-mtk-wifi-mt76-mt7996-support-BF-MIMO-debug-commands.patch \
+ file://1032-mtk-wifi-mt76-mt7996-add-build-the-following-MURU-mc.patch \
+ file://1033-mtk-wifi-mt76-mt7996-add-cert-patch.patch \
+ file://1034-mtk-wifi-mt76-testmode-add-testmode-bf-support.patch \
+ file://1035-mtk-wifi-mt76-mt7996-add-zwdfs-cert-mode.patch \
+ file://1036-mtk-wifi-mt76-testmode-add-channel-68-96.patch \
+ file://1037-mtk-wifi-mt76-mt7996-support-enable-disable-pp-featu.patch \
+ file://1038-mtk-wifi-mt76-testmode-add-kite-testmode-support.patch \
+ file://1039-mtk-wifi-mt76-mt7996-assign-DEAUTH-to-ALTX-queue-for.patch \
+ file://1040-mtk-wifi-mt76-mt7996-add-no_beacon-vendor-command-fo.patch \
+ file://1041-mtk-wifi-mt76-mt7996-add-adie-efuse-merge-support.patch \
+ file://1042-mtk-wifi-mt7996-add-Eagle-2adie-TBTC-BE14000-support.patch \
+ file://1043-mtk-wifi-mt76-mt7996-add-background-radar-hw-cap-che.patch \
+ file://1044-mtk-wifi-mt76-mt7996-support-disable-muru-debug-info.patch \
file://2000-mtk-wifi-mt76-revert-page_poll-for-kernel-5.4.patch \
file://2001-mtk-wifi-mt76-rework-wed-rx-flow.patch \
file://2002-mtk-wifi-mt76-wed-change-wed-token-init-size-to-adap.patch \
@@ -87,4 +92,5 @@
file://2018-mtk-wifi-mt76-mt7996-Remove-wed_stop-during-L1-SER.patch \
file://2019-mtk-wifi-mt76-mt7996-Refactor-rro-del-ba-command-for.patch \
file://2020-mtk-wifi-mt76-mt7996-get-airtime-and-RSSI-via-MCU-co.patch \
+ file://2021-mtk-wifi-mt76-mt7996-add-support-for-WMM-PBC-configu.patch \
"