mt76: update to Git HEAD (2024-02-03)
authorFelix Fietkau <[email protected]>
Thu, 16 May 2024 12:06:12 +0000 (14:06 +0200)
committerRafał Miłecki <[email protected]>
Thu, 16 May 2024 12:44:27 +0000 (14:44 +0200)
a9693e1979c2 linux-firmware: add firmware for MT7996
0258dc90e3a1 wifi: mt76: mt7603: fix reading target power from eeprom
3e81173d9e2b wifi: mt76: mt7603: initialize chainmask
786a339bac36 wifi: mt76: mt7996: fix fortify warning
bc37a7ebc267 wifi: mt76: mt7996: fix fw loading timeout
027bab6a88a3 wifi: mt76: usb: create a dedicated queue for psd traffic
e8909c610c3b wifi: mt76: usb: store usb endpoint in mt76_queue
8b3d96fa4ead wifi: mt76: mt792xu: enable dmashdl support
7864d7ad0ed0 wifi: mt76: mt76x2u: add netgear wdna3100v3 to device table
27c81f7c1480 wifi: mt76: mt7925: fix connect to 80211b mode fail in 2Ghz band
b7443c63069a wifi: mt76: mt7925: fix SAP no beacon issue in 5Ghz and 6Ghz band
bab721a65f5a wifi: mt76: mt7925: fix mcu query command fail
1f0f71ed81e8 wifi: mt76: mt7925: fix wmm queue mapping
bcfe2ad966f3 wifi: mt76: mt7925: fix fw download fail
f982c3d67a29 wifi: mt76: mt7925: fix WoW failed in encrypted mode
6a72716ec213 wifi: mt76: mt7925: fix the wrong header translation config
50928b7e1359 wifi: mt76: mt7925: add flow to avoid chip bt function fail
762ab4530e8f wifi: mt76: mt7925: add support to set ifs time by mcu command
87deaf82efa4 wifi: mt76: mt7925: update PCIe DMA settings
c190c1576522 wifi: mt76: mt7925: support temperature sensor
025d5734caba wifi: mt76: mt7996: check txs format before getting skb by pid
4768bfa2baca wifi: mt76: mt7996: fix TWT issues
a65e3eced907 wifi: mt76: mt7996: disable AMSDU for non-data frames
d71716d93aee wifi: mt76: mt7996: fix incorrect interpretation of EHT MCS caps
f21728f3f4bd wifi: mt76: mt7996: ensure 4-byte alignment for beacon commands
68dad7dacd2a wifi: mt76: mt7996: fix HE beamformer phy cap for station vif
66a28f340cdc wifi: mt76: mt7996: mark GCMP IGTK unsupported
b47ad8a7764e wifi: mt76: mt7996: fix efuse reading issue
c2fc7dae7b72 wifi: mt76: mt7996: remove TXS queue setting
e0f1ed168ed5 wifi: mt76: mt7996: add locking for accessing mapped registers
d0cc92c1fd08 wifi: mt76: connac: set correct muar_idx for mt799x chipsets
ae0c62279adc wifi: mt76: mt7996: fix HIF_TXD_V2_1 value
ecc14276af54 wifi: mt76: mt792x: fix ethtool warning
9827df56b241 wifi: mt76: move wed common utilities in wed.c
dccbd2598505 wifi: mt76: mt7925: fix the wrong data type for scan command
9907f4f20261 wifi: mt76: mt792x: add the illegal value check for mtcl table of acpi
1b088a7ac06d wifi: mt76: mt7921e: fix use-after-free in free_irq()
f3c5b4820d7f wifi: mt76: mt7925e: fix use-after-free in free_irq()
d75eac9f5531 wifi: mt76: mt7921: fix incorrect type conversion for CLC command
7bd5401f5bb1 wifi: mt76: mt792x: fix a potential loading failure of the 6Ghz channel config from ACPI
ea55196bc4a0 wifi: mt76: mt792x: update the country list of EU for ACPI SAR
6124ea9135ed wifi: mt76: mt7921: fix the unfinished command of regd_notifier before suspend

Signed-off-by: Felix Fietkau <[email protected]>
(cherry picked from commit 114190d8ae61fb3a7671852fbd7f0ca3279a5625)
[rmilecki: add patches/fixes for regressions from this commit]
Signed-off-by: Rafał Miłecki <[email protected]>
15 files changed:
package/kernel/mt76/Makefile
package/kernel/mt76/patches/0001-wifi-mt76-fix-the-issue-of-missing-txpwr-settings-fr.patch [new file with mode: 0644]
package/kernel/mt76/patches/0002-wifi-mt76-mt7996-fix-size-of-txpower-MCU-command.patch [new file with mode: 0644]
package/kernel/mt76/patches/0003-wifi-mt76-mt7996-fix-fortify-warning.patch [deleted file]
package/kernel/mt76/patches/0003-wifi-mt76-mt7996-fix-uninitialized-variable-in-mt799.patch [new file with mode: 0644]
package/kernel/mt76/patches/0004-wifi-mt76-mt7996-fix-fw-loading-timeout.patch [deleted file]
package/kernel/mt76/patches/0004-wifi-mt76-mt7996-fix-potential-memory-leakage-when-r.patch [new file with mode: 0644]
package/kernel/mt76/patches/0005-wifi-mt76-connac-check-for-null-before-dereferencing.patch [new file with mode: 0644]
package/kernel/mt76/patches/0005-wifi-mt76-mt7996-check-txs-format-before-getting-skb.patch [deleted file]
package/kernel/mt76/patches/0006-wifi-mt76-connac-use-muar-idx-0xe-for-non-mt799x-as-.patch [new file with mode: 0644]
package/kernel/mt76/patches/0006-wifi-mt76-mt7921-fix-incorrect-type-conversion-for-C.patch [deleted file]
package/kernel/mt76/patches/0007-wifi-mt76-fix-the-issue-of-missing-txpwr-settings-fr.patch [deleted file]
package/kernel/mt76/patches/0008-wifi-mt76-mt7996-fix-size-of-txpower-MCU-command.patch [deleted file]
package/kernel/mt76/patches/0009-wifi-mt76-mt7996-fix-uninitialized-variable-in-mt799.patch [deleted file]
package/kernel/mt76/patches/0010-wifi-mt76-mt7996-fix-potential-memory-leakage-when-r.patch [deleted file]

index 1fea3bd0e91617c8f87122d0154eef2c058b7cca..4f0fb5f69d046f6d7b515dd49f253130963544be 100644 (file)
@@ -8,9 +8,9 @@ PKG_LICENSE_FILES:=
 
 PKG_SOURCE_URL:=https://github.com/openwrt/mt76
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_DATE:=2024-01-18
-PKG_SOURCE_VERSION:=f77188160441d5f77f08dd517632ae3f60c653b0
-PKG_MIRROR_HASH:=133a5e44624fe1933c893ee0b8ac75a847753f3490c26518c2ed9798f9ef53e0
+PKG_SOURCE_DATE:=2024-02-03
+PKG_SOURCE_VERSION:=6124ea9135ed512671933f5520c46842906c78bc
+PKG_MIRROR_HASH:=acc326d7b15c9c72b494ed601300be329553f896e65c7f045e6a09327304c34a
 
 PKG_MAINTAINER:=Felix Fietkau <[email protected]>
 PKG_USE_NINJA:=0
@@ -323,6 +323,12 @@ define KernelPackage/mt7996e
   AUTOLOAD:=$(call AutoProbe,mt7996e)
 endef
 
+define KernelPackage/mt7996-firmware
+  $(KernelPackage/mt76-default)
+  TITLE:=MediaTek MT7996 firmware
+  DEPENDS+=+kmod-mt7996e
+endef
+
 define KernelPackage/mt7925-common
   $(KernelPackage/mt76-default)
   TITLE:=MediaTek MT7925 wireless driver common code
@@ -610,6 +616,17 @@ define KernelPackage/mt7922-firmware/install
                $(1)/lib/firmware/mediatek
 endef
 
+define KernelPackage/mt7996-firmware/install
+       $(INSTALL_DIR) $(1)/lib/firmware/mediatek/mt7996
+       cp \
+               $(PKG_BUILD_DIR)/firmware/mt7996/mt7996_dsp.bin \
+               $(PKG_BUILD_DIR)/firmware/mt7996/mt7996_eeprom.bin \
+               $(PKG_BUILD_DIR)/firmware/mt7996/mt7996_rom_patch.bin \
+               $(PKG_BUILD_DIR)/firmware/mt7996/mt7996_wa.bin \
+               $(PKG_BUILD_DIR)/firmware/mt7996/mt7996_wm.bin \
+               $(1)/lib/firmware/mediatek/mt7996
+endef
+
 define Package/mt76-test/install
        mkdir -p $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/mt76-test $(1)/usr/sbin
@@ -654,5 +671,6 @@ $(eval $(call KernelPackage,mt7921e))
 $(eval $(call KernelPackage,mt7925u))
 $(eval $(call KernelPackage,mt7925e))
 $(eval $(call KernelPackage,mt7996e))
+$(eval $(call KernelPackage,mt7996-firmware))
 $(eval $(call KernelPackage,mt76))
 $(eval $(call BuildPackage,mt76-test))
diff --git a/package/kernel/mt76/patches/0001-wifi-mt76-fix-the-issue-of-missing-txpwr-settings-fr.patch b/package/kernel/mt76/patches/0001-wifi-mt76-fix-the-issue-of-missing-txpwr-settings-fr.patch
new file mode 100644 (file)
index 0000000..ef7816a
--- /dev/null
@@ -0,0 +1,28 @@
+From 841bf82e99581f648325bee570de98892cad894f Mon Sep 17 00:00:00 2001
+From: Ming Yen Hsieh <[email protected]>
+Date: Wed, 7 Feb 2024 11:31:23 +0800
+Subject: [PATCH] wifi: mt76: fix the issue of missing txpwr settings from
+ ch153 to ch177
+
+Because the number of channels to be configured is calculated using the %,
+and it results in 0 when there's an exact division, this leads to some
+channels not having their tx power configured.
+
+Fixes: 7801da338856 ("wifi: mt76: mt7921: enable set txpower for UNII-4")
+Signed-off-by: Ming Yen Hsieh <[email protected]>
+Signed-off-by: Felix Fietkau <[email protected]>
+---
+ mt76_connac_mcu.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/mt76_connac_mcu.c
++++ b/mt76_connac_mcu.c
+@@ -2104,7 +2104,7 @@ mt76_connac_mcu_rate_txpower_band(struct
+               int j, msg_len, num_ch;
+               struct sk_buff *skb;
+-              num_ch = i == batch_size - 1 ? n_chan % batch_len : batch_len;
++              num_ch = i == batch_size - 1 ? n_chan - i * batch_len : batch_len;
+               msg_len = sizeof(tx_power_tlv) + num_ch * sizeof(sku_tlbv);
+               skb = mt76_mcu_msg_alloc(dev, NULL, msg_len);
+               if (!skb) {
diff --git a/package/kernel/mt76/patches/0002-wifi-mt76-mt7996-fix-size-of-txpower-MCU-command.patch b/package/kernel/mt76/patches/0002-wifi-mt76-mt7996-fix-size-of-txpower-MCU-command.patch
new file mode 100644 (file)
index 0000000..f3d8245
--- /dev/null
@@ -0,0 +1,56 @@
+From b108dda7e201994f10c885362b07ff3b6e1e843d Mon Sep 17 00:00:00 2001
+From: Chad Monroe <[email protected]>
+Date: Tue, 5 Mar 2024 17:55:35 +0000
+Subject: [PATCH] wifi: mt76: mt7996: fix size of txpower MCU command
+
+Fixes issues with scanning and low power output at some rates.
+
+Fixes: f75e4779d215 ("wifi: mt76: mt7996: add txpower setting support")
+Signed-off-by: Chad Monroe <[email protected]>
+Signed-off-by: Ryder Lee <[email protected]>
+Signed-off-by: Felix Fietkau <[email protected]>
+---
+ mt7996/mcu.c    | 7 +++++--
+ mt7996/mt7996.h | 1 +
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+--- a/mt7996/mcu.c
++++ b/mt7996/mcu.c
+@@ -4464,7 +4464,7 @@ int mt7996_mcu_set_txpower_sku(struct mt
+               u8 band_idx;
+       } __packed req = {
+               .tag = cpu_to_le16(UNI_TXPOWER_POWER_LIMIT_TABLE_CTRL),
+-              .len = cpu_to_le16(sizeof(req) + MT7996_SKU_RATE_NUM - 4),
++              .len = cpu_to_le16(sizeof(req) + MT7996_SKU_PATH_NUM - 4),
+               .power_ctrl_id = UNI_TXPOWER_POWER_LIMIT_TABLE_CTRL,
+               .power_limit_type = TX_POWER_LIMIT_TABLE_RATE,
+               .band_idx = phy->mt76->band_idx,
+@@ -4479,7 +4479,7 @@ int mt7996_mcu_set_txpower_sku(struct mt
+       mphy->txpower_cur = tx_power;
+       skb = mt76_mcu_msg_alloc(&dev->mt76, NULL,
+-                               sizeof(req) + MT7996_SKU_RATE_NUM);
++                               sizeof(req) + MT7996_SKU_PATH_NUM);
+       if (!skb)
+               return -ENOMEM;
+@@ -4503,6 +4503,9 @@ int mt7996_mcu_set_txpower_sku(struct mt
+       /* eht */
+       skb_put_data(skb, &la.eht[0], sizeof(la.eht));
++      /* padding */
++      skb_put_zero(skb, MT7996_SKU_PATH_NUM - MT7996_SKU_RATE_NUM);
++
+       return mt76_mcu_skb_send_msg(&dev->mt76, skb,
+                                    MCU_WM_UNI_CMD(TXPOWER), true);
+ }
+--- a/mt7996/mt7996.h
++++ b/mt7996/mt7996.h
+@@ -50,6 +50,7 @@
+ #define MT7996_CFEND_RATE_11B         0x03    /* 11B LP, 11M */
+ #define MT7996_SKU_RATE_NUM           417
++#define MT7996_SKU_PATH_NUM           494
+ #define MT7996_MAX_TWT_AGRT           16
+ #define MT7996_MAX_STA_TWT_AGRT               8
diff --git a/package/kernel/mt76/patches/0003-wifi-mt76-mt7996-fix-fortify-warning.patch b/package/kernel/mt76/patches/0003-wifi-mt76-mt7996-fix-fortify-warning.patch
deleted file mode 100644 (file)
index f3cf9c1..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-From 786a339bac36d8e53eb8b540e79221d20011ab2a Mon Sep 17 00:00:00 2001
-From: Felix Fietkau <[email protected]>
-Date: Sat, 3 Feb 2024 14:21:58 +0100
-Subject: [PATCH] wifi: mt76: mt7996: fix fortify warning
-
-Copy cck and ofdm separately in order to avoid __read_overflow2_field
-warning.
-
-Fixes: f75e4779d215 ("wifi: mt76: mt7996: add txpower setting support")
-Signed-off-by: Felix Fietkau <[email protected]>
----
- mt7996/mcu.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/mt7996/mcu.c
-+++ b/mt7996/mcu.c
-@@ -4477,7 +4477,8 @@ int mt7996_mcu_set_txpower_sku(struct mt
-       skb_put_data(skb, &req, sizeof(req));
-       /* cck and ofdm */
--      skb_put_data(skb, &la.cck, sizeof(la.cck) + sizeof(la.ofdm));
-+      skb_put_data(skb, &la.cck, sizeof(la.cck));
-+      skb_put_data(skb, &la.ofdm, sizeof(la.ofdm));
-       /* ht20 */
-       skb_put_data(skb, &la.mcs[0], 8);
-       /* ht40 */
diff --git a/package/kernel/mt76/patches/0003-wifi-mt76-mt7996-fix-uninitialized-variable-in-mt799.patch b/package/kernel/mt76/patches/0003-wifi-mt76-mt7996-fix-uninitialized-variable-in-mt799.patch
new file mode 100644 (file)
index 0000000..c121bec
--- /dev/null
@@ -0,0 +1,27 @@
+From b96ab5e62010887a8abee43dbcccf6f4b3fcb269 Mon Sep 17 00:00:00 2001
+From: Lorenzo Bianconi <[email protected]>
+Date: Tue, 19 Mar 2024 13:05:36 +0100
+Subject: [PATCH] wifi: mt76: mt7996: fix uninitialized variable in
+ mt7996_irq_tasklet()
+
+Set intr1 to 0 in mt7996_irq_tasklet() in order to avoid possible
+uninitialized variable usage if wed is not active for hif2.
+
+Fixes: 83eafc9251d6 ("wifi: mt76: mt7996: add wed tx support")
+Signed-off-by: Lorenzo Bianconi <[email protected]>
+Signed-off-by: Felix Fietkau <[email protected]>
+---
+ mt7996/mmio.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/mt7996/mmio.c
++++ b/mt7996/mmio.c
+@@ -519,7 +519,7 @@ static void mt7996_irq_tasklet(struct ta
+       struct mt7996_dev *dev = from_tasklet(dev, t, mt76.irq_tasklet);
+       struct mtk_wed_device *wed = &dev->mt76.mmio.wed;
+       struct mtk_wed_device *wed_hif2 = &dev->mt76.mmio.wed_hif2;
+-      u32 i, intr, mask, intr1;
++      u32 i, intr, mask, intr1 = 0;
+       if (dev->hif2 && mtk_wed_device_active(wed_hif2)) {
+               mtk_wed_device_irq_set_mask(wed_hif2, 0);
diff --git a/package/kernel/mt76/patches/0004-wifi-mt76-mt7996-fix-fw-loading-timeout.patch b/package/kernel/mt76/patches/0004-wifi-mt76-mt7996-fix-fw-loading-timeout.patch
deleted file mode 100644 (file)
index 9c2247b..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-From bc37a7ebc267e400fc4e9886b7197b4b866763d1 Mon Sep 17 00:00:00 2001
-From: Lorenzo Bianconi <[email protected]>
-Date: Thu, 21 Dec 2023 10:41:18 +0100
-Subject: [PATCH] wifi: mt76: mt7996: fix fw loading timeout
-
-Fix the following firmware loading error due to a wrong dma register
-configuration if wed is disabled.
-
-[    8.245881] mt7996e_hif 0001:01:00.0: assign IRQ: got 128
-[    8.251308] mt7996e_hif 0001:01:00.0: enabling device (0000 -> 0002)
-[    8.257674] mt7996e_hif 0001:01:00.0: enabling bus mastering
-[    8.263488] mt7996e 0000:01:00.0: assign IRQ: got 126
-[    8.268537] mt7996e 0000:01:00.0: enabling device (0000 -> 0002)
-[    8.274551] mt7996e 0000:01:00.0: enabling bus mastering
-[   28.648773] mt7996e 0000:01:00.0: Message 00000010 (seq 1) timeout
-[   28.654959] mt7996e 0000:01:00.0: Failed to get patch semaphore
-[   29.661033] mt7996e: probe of 0000:01:00.0 failed with error -11
-
-Suggested-by: Sujuan Chen" <[email protected]>
-Fixes: 4920a3a1285f ("wifi: mt76: mt7996: set DMA mask to 36 bits for boards with more than 4GB of RAM")
-Signed-off-by: Lorenzo Bianconi <[email protected]>
-Signed-off-by: Felix Fietkau <[email protected]>
----
- mt7996/dma.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/mt7996/dma.c
-+++ b/mt7996/dma.c
-@@ -237,7 +237,8 @@ void mt7996_dma_start(struct mt7996_dev
-                                MT_WFDMA0_GLO_CFG_TX_DMA_EN |
-                                MT_WFDMA0_GLO_CFG_RX_DMA_EN |
-                                MT_WFDMA0_GLO_CFG_OMIT_TX_INFO |
--                               MT_WFDMA0_GLO_CFG_OMIT_RX_INFO_PFET2);
-+                               MT_WFDMA0_GLO_CFG_OMIT_RX_INFO_PFET2 |
-+                               MT_WFDMA0_GLO_CFG_EXT_EN);
-               if (dev->hif2)
-                       mt76_set(dev, MT_WFDMA0_GLO_CFG + hif1_ofs,
diff --git a/package/kernel/mt76/patches/0004-wifi-mt76-mt7996-fix-potential-memory-leakage-when-r.patch b/package/kernel/mt76/patches/0004-wifi-mt76-mt7996-fix-potential-memory-leakage-when-r.patch
new file mode 100644 (file)
index 0000000..421ace1
--- /dev/null
@@ -0,0 +1,39 @@
+From 424e9df466cea3bb39a1e92bf95f3efe65472c27 Mon Sep 17 00:00:00 2001
+From: Howard Hsu <[email protected]>
+Date: Wed, 20 Mar 2024 19:09:14 +0800
+Subject: [PATCH] wifi: mt76: mt7996: fix potential memory leakage when reading
+ chip temperature
+
+Without this commit, reading chip temperature will cause memory leakage.
+
+Fixes: 6879b2e94172 ("wifi: mt76: mt7996: add thermal sensor device support")
+Reported-by: Ryder Lee <[email protected]>
+Signed-off-by: Howard Hsu <[email protected]>
+Signed-off-by: Shayne Chen <[email protected]>
+Signed-off-by: Felix Fietkau <[email protected]>
+---
+ mt7996/mcu.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/mt7996/mcu.c
++++ b/mt7996/mcu.c
+@@ -3729,6 +3729,7 @@ int mt7996_mcu_get_temperature(struct mt
+       } __packed * res;
+       struct sk_buff *skb;
+       int ret;
++      u32 temp;
+       ret = mt76_mcu_send_and_get_msg(&phy->dev->mt76, MCU_WM_UNI_CMD(THERMAL),
+                                       &req, sizeof(req), true, &skb);
+@@ -3736,8 +3737,10 @@ int mt7996_mcu_get_temperature(struct mt
+               return ret;
+       res = (void *)skb->data;
++      temp = le32_to_cpu(res->temperature);
++      dev_kfree_skb(skb);
+-      return le32_to_cpu(res->temperature);
++      return temp;
+ }
+ int mt7996_mcu_set_thermal_throttling(struct mt7996_phy *phy, u8 state)
diff --git a/package/kernel/mt76/patches/0005-wifi-mt76-connac-check-for-null-before-dereferencing.patch b/package/kernel/mt76/patches/0005-wifi-mt76-connac-check-for-null-before-dereferencing.patch
new file mode 100644 (file)
index 0000000..a5c6fdb
--- /dev/null
@@ -0,0 +1,27 @@
+From 725f531c14597f20645321d8a900796f5a68e135 Mon Sep 17 00:00:00 2001
+From: Muhammad Usama Anjum <[email protected]>
+Date: Fri, 1 Mar 2024 19:44:06 +0500
+Subject: [PATCH] wifi: mt76: connac: check for null before dereferencing
+
+The wcid can be NULL. It should be checked for validity before
+dereferencing it to avoid crash.
+
+Fixes: 098428c400ff ("wifi: mt76: connac: set correct muar_idx for mt799x chipsets")
+Signed-off-by: Muhammad Usama Anjum <[email protected]>
+Reviewed-by: AngeloGioacchino Del Regno <[email protected]>
+Signed-off-by: Felix Fietkau <[email protected]>
+---
+ mt76_connac_mcu.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/mt76_connac_mcu.c
++++ b/mt76_connac_mcu.c
+@@ -283,7 +283,7 @@ __mt76_connac_mcu_alloc_sta_req(struct m
+       };
+       struct sk_buff *skb;
+-      if (is_mt799x(dev) && !wcid->sta)
++      if (is_mt799x(dev) && wcid && !wcid->sta)
+               hdr.muar_idx = 0xe;
+       mt76_connac_mcu_get_wlan_idx(dev, wcid, &hdr.wlan_idx_lo,
diff --git a/package/kernel/mt76/patches/0005-wifi-mt76-mt7996-check-txs-format-before-getting-skb.patch b/package/kernel/mt76/patches/0005-wifi-mt76-mt7996-check-txs-format-before-getting-skb.patch
deleted file mode 100644 (file)
index f72c76e..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-From 025d5734caba6fa1fd96b57c19c61e42e601815b Mon Sep 17 00:00:00 2001
-From: Peter Chiu <[email protected]>
-Date: Fri, 26 Jan 2024 17:09:12 +0800
-Subject: [PATCH] wifi: mt76: mt7996: check txs format before getting skb by
- pid
-
-The PPDU TXS does not include the error bit so it cannot use to report
-status to mac80211. This patch fixes issue that STA wrongly detects if AP
-is still alive.
-
-Fixes: 2569ea5326e2 ("wifi: mt76: mt7996: enable PPDU-TxS to host")
-Signed-off-by: Peter Chiu <[email protected]>
-Signed-off-by: Shayne Chen <[email protected]>
-Signed-off-by: Felix Fietkau <[email protected]>
----
- mt7996/mac.c | 23 +++++++++++++----------
- 1 file changed, 13 insertions(+), 10 deletions(-)
-
---- a/mt7996/mac.c
-+++ b/mt7996/mac.c
-@@ -1188,25 +1188,28 @@ mt7996_mac_add_txs_skb(struct mt7996_dev
-       struct ieee80211_tx_info *info;
-       struct sk_buff_head list;
-       struct rate_info rate = {};
--      struct sk_buff *skb;
-+      struct sk_buff *skb = NULL;
-       bool cck = false;
-       u32 txrate, txs, mode, stbc;
-       txs = le32_to_cpu(txs_data[0]);
-       mt76_tx_status_lock(mdev, &list);
--      skb = mt76_tx_status_skb_get(mdev, wcid, pid, &list);
--      if (skb) {
--              info = IEEE80211_SKB_CB(skb);
--              if (!(txs & MT_TXS0_ACK_ERROR_MASK))
--                      info->flags |= IEEE80211_TX_STAT_ACK;
--
--              info->status.ampdu_len = 1;
--              info->status.ampdu_ack_len =
--                      !!(info->flags & IEEE80211_TX_STAT_ACK);
-+      /* only report MPDU TXS */
-+      if (le32_get_bits(txs_data[0], MT_TXS0_TXS_FORMAT) == 0) {
-+              skb = mt76_tx_status_skb_get(mdev, wcid, pid, &list);
-+              if (skb) {
-+                      info = IEEE80211_SKB_CB(skb);
-+                      if (!(txs & MT_TXS0_ACK_ERROR_MASK))
-+                              info->flags |= IEEE80211_TX_STAT_ACK;
-+
-+                      info->status.ampdu_len = 1;
-+                      info->status.ampdu_ack_len =
-+                              !!(info->flags & IEEE80211_TX_STAT_ACK);
--              info->status.rates[0].idx = -1;
-+                      info->status.rates[0].idx = -1;
-+              }
-       }
-       if (mtk_wed_device_active(&dev->mt76.mmio.wed) && wcid->sta) {
diff --git a/package/kernel/mt76/patches/0006-wifi-mt76-connac-use-muar-idx-0xe-for-non-mt799x-as-.patch b/package/kernel/mt76/patches/0006-wifi-mt76-connac-use-muar-idx-0xe-for-non-mt799x-as-.patch
new file mode 100644 (file)
index 0000000..6aa47d9
--- /dev/null
@@ -0,0 +1,25 @@
+From 1e336a8582dce2ef32ddd440d423e9afef961e71 Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <[email protected]>
+Date: Wed, 3 Apr 2024 13:01:01 +0200
+Subject: [PATCH] wifi: mt76: connac: use muar idx 0xe for non-mt799x as well
+
+This is expected by the firmware of older chipsets as well, though it may
+not have been as strongly required as on mt799x
+
+Fixes: 098428c400ff ("wifi: mt76: connac: set correct muar_idx for mt799x chipsets")
+Signed-off-by: Felix Fietkau <[email protected]>
+---
+ mt76_connac_mcu.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/mt76_connac_mcu.c
++++ b/mt76_connac_mcu.c
+@@ -283,7 +283,7 @@ __mt76_connac_mcu_alloc_sta_req(struct m
+       };
+       struct sk_buff *skb;
+-      if (is_mt799x(dev) && wcid && !wcid->sta)
++      if (wcid && !wcid->sta)
+               hdr.muar_idx = 0xe;
+       mt76_connac_mcu_get_wlan_idx(dev, wcid, &hdr.wlan_idx_lo,
diff --git a/package/kernel/mt76/patches/0006-wifi-mt76-mt7921-fix-incorrect-type-conversion-for-C.patch b/package/kernel/mt76/patches/0006-wifi-mt76-mt7921-fix-incorrect-type-conversion-for-C.patch
deleted file mode 100644 (file)
index a85dfb7..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-From d75eac9f5531e484fbbabf2652922976e15a7a7a Mon Sep 17 00:00:00 2001
-From: Ming Yen Hsieh <[email protected]>
-Date: Tue, 16 Jan 2024 10:48:54 +0800
-Subject: [PATCH] wifi: mt76: mt7921: fix incorrect type conversion for CLC
- command
-
-clc->len is defined as 32 bits in length, so it must also be
-operated on with 32 bits, not 16 bits.
-
-Fixes: fa6ad88e023d ("wifi: mt76: mt7921: fix country count limitation for CLC")
-Signed-off-by: Ming Yen Hsieh <[email protected]>
-Reported-by: kernel test robot <[email protected]>
-Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
-Signed-off-by: Felix Fietkau <[email protected]>
----
- mt7921/mcu.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/mt7921/mcu.c
-+++ b/mt7921/mcu.c
-@@ -1272,7 +1272,7 @@ int __mt7921_mcu_set_clc(struct mt792x_d
-               .mtcl_conf = mt792x_acpi_get_mtcl_conf(&dev->phy, alpha2),
-       };
-       int ret, valid_cnt = 0;
--      u16 buf_len = 0;
-+      u32 buf_len = 0;
-       u8 *pos;
-       if (!clc)
-@@ -1283,7 +1283,7 @@ int __mt7921_mcu_set_clc(struct mt792x_d
-       if (mt76_find_power_limits_node(&dev->mt76))
-               req.cap |= CLC_CAP_DTS_EN;
--      buf_len = le16_to_cpu(clc->len) - sizeof(*clc);
-+      buf_len = le32_to_cpu(clc->len) - sizeof(*clc);
-       pos = clc->data;
-       while (buf_len > 16) {
-               struct mt7921_clc_rule *rule = (struct mt7921_clc_rule *)pos;
diff --git a/package/kernel/mt76/patches/0007-wifi-mt76-fix-the-issue-of-missing-txpwr-settings-fr.patch b/package/kernel/mt76/patches/0007-wifi-mt76-fix-the-issue-of-missing-txpwr-settings-fr.patch
deleted file mode 100644 (file)
index 380bdfa..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-From 841bf82e99581f648325bee570de98892cad894f Mon Sep 17 00:00:00 2001
-From: Ming Yen Hsieh <[email protected]>
-Date: Wed, 7 Feb 2024 11:31:23 +0800
-Subject: [PATCH] wifi: mt76: fix the issue of missing txpwr settings from
- ch153 to ch177
-
-Because the number of channels to be configured is calculated using the %,
-and it results in 0 when there's an exact division, this leads to some
-channels not having their tx power configured.
-
-Fixes: 7801da338856 ("wifi: mt76: mt7921: enable set txpower for UNII-4")
-Signed-off-by: Ming Yen Hsieh <[email protected]>
-Signed-off-by: Felix Fietkau <[email protected]>
----
- mt76_connac_mcu.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/mt76_connac_mcu.c
-+++ b/mt76_connac_mcu.c
-@@ -2101,7 +2101,7 @@ mt76_connac_mcu_rate_txpower_band(struct
-               int j, msg_len, num_ch;
-               struct sk_buff *skb;
--              num_ch = i == batch_size - 1 ? n_chan % batch_len : batch_len;
-+              num_ch = i == batch_size - 1 ? n_chan - i * batch_len : batch_len;
-               msg_len = sizeof(tx_power_tlv) + num_ch * sizeof(sku_tlbv);
-               skb = mt76_mcu_msg_alloc(dev, NULL, msg_len);
-               if (!skb) {
diff --git a/package/kernel/mt76/patches/0008-wifi-mt76-mt7996-fix-size-of-txpower-MCU-command.patch b/package/kernel/mt76/patches/0008-wifi-mt76-mt7996-fix-size-of-txpower-MCU-command.patch
deleted file mode 100644 (file)
index f1d3af8..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-From b108dda7e201994f10c885362b07ff3b6e1e843d Mon Sep 17 00:00:00 2001
-From: Chad Monroe <[email protected]>
-Date: Tue, 5 Mar 2024 17:55:35 +0000
-Subject: [PATCH] wifi: mt76: mt7996: fix size of txpower MCU command
-
-Fixes issues with scanning and low power output at some rates.
-
-Fixes: f75e4779d215 ("wifi: mt76: mt7996: add txpower setting support")
-Signed-off-by: Chad Monroe <[email protected]>
-Signed-off-by: Ryder Lee <[email protected]>
-Signed-off-by: Felix Fietkau <[email protected]>
----
- mt7996/mcu.c    | 7 +++++--
- mt7996/mt7996.h | 1 +
- 2 files changed, 6 insertions(+), 2 deletions(-)
-
---- a/mt7996/mcu.c
-+++ b/mt7996/mcu.c
-@@ -4456,7 +4456,7 @@ int mt7996_mcu_set_txpower_sku(struct mt
-               u8 band_idx;
-       } __packed req = {
-               .tag = cpu_to_le16(UNI_TXPOWER_POWER_LIMIT_TABLE_CTRL),
--              .len = cpu_to_le16(sizeof(req) + MT7996_SKU_RATE_NUM - 4),
-+              .len = cpu_to_le16(sizeof(req) + MT7996_SKU_PATH_NUM - 4),
-               .power_ctrl_id = UNI_TXPOWER_POWER_LIMIT_TABLE_CTRL,
-               .power_limit_type = TX_POWER_LIMIT_TABLE_RATE,
-               .band_idx = phy->mt76->band_idx,
-@@ -4471,7 +4471,7 @@ int mt7996_mcu_set_txpower_sku(struct mt
-       mphy->txpower_cur = tx_power;
-       skb = mt76_mcu_msg_alloc(&dev->mt76, NULL,
--                               sizeof(req) + MT7996_SKU_RATE_NUM);
-+                               sizeof(req) + MT7996_SKU_PATH_NUM);
-       if (!skb)
-               return -ENOMEM;
-@@ -4495,6 +4495,9 @@ int mt7996_mcu_set_txpower_sku(struct mt
-       /* eht */
-       skb_put_data(skb, &la.eht[0], sizeof(la.eht));
-+      /* padding */
-+      skb_put_zero(skb, MT7996_SKU_PATH_NUM - MT7996_SKU_RATE_NUM);
-+
-       return mt76_mcu_skb_send_msg(&dev->mt76, skb,
-                                    MCU_WM_UNI_CMD(TXPOWER), true);
- }
---- a/mt7996/mt7996.h
-+++ b/mt7996/mt7996.h
-@@ -50,6 +50,7 @@
- #define MT7996_CFEND_RATE_11B         0x03    /* 11B LP, 11M */
- #define MT7996_SKU_RATE_NUM           417
-+#define MT7996_SKU_PATH_NUM           494
- #define MT7996_MAX_TWT_AGRT           16
- #define MT7996_MAX_STA_TWT_AGRT               8
diff --git a/package/kernel/mt76/patches/0009-wifi-mt76-mt7996-fix-uninitialized-variable-in-mt799.patch b/package/kernel/mt76/patches/0009-wifi-mt76-mt7996-fix-uninitialized-variable-in-mt799.patch
deleted file mode 100644 (file)
index b0b7a78..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-From b96ab5e62010887a8abee43dbcccf6f4b3fcb269 Mon Sep 17 00:00:00 2001
-From: Lorenzo Bianconi <[email protected]>
-Date: Tue, 19 Mar 2024 13:05:36 +0100
-Subject: [PATCH] wifi: mt76: mt7996: fix uninitialized variable in
- mt7996_irq_tasklet()
-
-Set intr1 to 0 in mt7996_irq_tasklet() in order to avoid possible
-uninitialized variable usage if wed is not active for hif2.
-
-Fixes: 83eafc9251d6 ("wifi: mt76: mt7996: add wed tx support")
-Signed-off-by: Lorenzo Bianconi <[email protected]>
-Signed-off-by: Felix Fietkau <[email protected]>
----
- mt7996/mmio.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/mt7996/mmio.c
-+++ b/mt7996/mmio.c
-@@ -499,7 +499,7 @@ static void mt7996_irq_tasklet(struct ta
-       struct mt7996_dev *dev = from_tasklet(dev, t, mt76.irq_tasklet);
-       struct mtk_wed_device *wed = &dev->mt76.mmio.wed;
-       struct mtk_wed_device *wed_hif2 = &dev->mt76.mmio.wed_hif2;
--      u32 i, intr, mask, intr1;
-+      u32 i, intr, mask, intr1 = 0;
-       if (dev->hif2 && mtk_wed_device_active(wed_hif2)) {
-               mtk_wed_device_irq_set_mask(wed_hif2, 0);
diff --git a/package/kernel/mt76/patches/0010-wifi-mt76-mt7996-fix-potential-memory-leakage-when-r.patch b/package/kernel/mt76/patches/0010-wifi-mt76-mt7996-fix-potential-memory-leakage-when-r.patch
deleted file mode 100644 (file)
index a0d62dc..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-From 424e9df466cea3bb39a1e92bf95f3efe65472c27 Mon Sep 17 00:00:00 2001
-From: Howard Hsu <[email protected]>
-Date: Wed, 20 Mar 2024 19:09:14 +0800
-Subject: [PATCH] wifi: mt76: mt7996: fix potential memory leakage when reading
- chip temperature
-
-Without this commit, reading chip temperature will cause memory leakage.
-
-Fixes: 6879b2e94172 ("wifi: mt76: mt7996: add thermal sensor device support")
-Reported-by: Ryder Lee <[email protected]>
-Signed-off-by: Howard Hsu <[email protected]>
-Signed-off-by: Shayne Chen <[email protected]>
-Signed-off-by: Felix Fietkau <[email protected]>
----
- mt7996/mcu.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
---- a/mt7996/mcu.c
-+++ b/mt7996/mcu.c
-@@ -3721,6 +3721,7 @@ int mt7996_mcu_get_temperature(struct mt
-       } __packed * res;
-       struct sk_buff *skb;
-       int ret;
-+      u32 temp;
-       ret = mt76_mcu_send_and_get_msg(&phy->dev->mt76, MCU_WM_UNI_CMD(THERMAL),
-                                       &req, sizeof(req), true, &skb);
-@@ -3728,8 +3729,10 @@ int mt7996_mcu_get_temperature(struct mt
-               return ret;
-       res = (void *)skb->data;
-+      temp = le32_to_cpu(res->temperature);
-+      dev_kfree_skb(skb);
--      return le32_to_cpu(res->temperature);
-+      return temp;
- }
- int mt7996_mcu_set_thermal_throttling(struct mt7996_phy *phy, u8 state)