mt76: update to latest HEAD
authorDavid Bauer <mail@david-bauer.net>
Wed, 17 May 2023 18:37:21 +0000 (20:37 +0200)
committerDavid Bauer <mail@david-bauer.net>
Wed, 17 May 2023 23:44:08 +0000 (01:44 +0200)
969b7b5e wifi: mt76: mt7915: add support for MT7981
cddbd796 linux-firmware: add firmware for MT7981
c69b0239 linux-firmware: update firmware for MT7921 WiFi device
c85a0f2f mt7921: remove duplicated line
0cbe1376 wifi: mt76: mt7915: drop redundant prefix of mt7915_txpower_puts()
b490c6c7 wifi: mt76: fix 6GHz high channel not be scanned
db5a8f70 wifi: mt76: move shared mac definitions in mt76_connac2_mac.h
3963ab2f wifi: mt76: mt7921: get rid of eeprom.h
c09f943d wifi: mt76: add mt76_connac_gen_ppe_thresh utility routine
28ea992c wifi: mt76: get rid of unused sta_ps callbacks
2936b036 wifi: mt76: add mt76_connac_irq_enable utility routine
482d2a76 wifi: mt76: move irq_tasklet in mt76_dev struct
88d1b002 wifi: mt76: mt7996: enable mesh HW amsdu/de-amsdu support
577fbd47 linux-firmware: update firmware for MT7916
32be54b5 linux-firmware: update firmware for MT7921 WiFi device
4e2fad04 linux-firmware: update firmware for MT7922 WiFi device
f8793b1a linux-firmware: update firmware for MT7921 WiFi device
91e6ad2a linux-firmware: update firmware for MT7921 WiFi device
b7a538a3 linux-firmware: update firmware for MT7922 WiFi device
e3b5a8cc wifi: mt76: mt7996: enable configured beacon tx rate
a18bf481 wifi: mt76: mt7996: enable BSS_CHANGED_MCAST_RATE support
f863beed wifi: mt76: mt7996: enable BSS_CHANGED_BASIC_RATES support
aedc10d5 wifi: mt76: connac: add nss calculation into mt76_connac2_mac_tx_rate_val()
84a227e5 wifi: mt76: connac: fix txd multicast rate setting
a0657180 wifi: mt76: mt7921e: stop chip reset worker in unregister hook
fd895347 wifi: mt76: mt7921e: improve reliability of dma reset
c9fa8d64 wifi: mt76: mt7921: fix missing unwind goto in `mt7921u_probe`
c1baa812 mt76: mt7921: fix kernel panic by accessing unallocated eeprom.data
ca180889 wifi: mt76: move mcu_uni_event and mcu_reg_event in common code
98fbca7a wifi: mt76: mt7996: enable coredump support
be1ff24e wifi: mt76: mt7996: add full system reset knobs into debugfs
b7a6c0ef wifi: mt76: mt7996: enable full system reset support
46f28e75 wifi: mt76: mt7921: enable p2p support
6a7e41c3 wifi: mt76: mt7921e: Set memory space enable in PCI_COMMAND if unset
084e6de7 wifi: mt76: mt7921: use driver flags rather than mac80211 flags to mcu
c66e7a1a wifi: mt76: mt7921: introduce mt7921_get_mac80211_ops utility routine
821caac5 wifi: mt76: mt7996: fix eeprom tx path bitfields
9ae2569b wifi: mt76: mt7996: remove mt7996_mcu_set_pm()
3244d176 wifi: mt76: mt7996: init mpdu density cap
210a558a wifi: mt76: mt7996: fix pointer calculation in ie countdown event
207c92bb wifi: mt76: mt7996: remove unused eeprom band selection
16a24667 wifi: mt76: mt7996: let non-bufferable MMPDUs use correct hw queue
d39bb7c8 wifi: mt76: mt7996: remove mt7996_mcu_beacon_check_caps()
4046b591 wifi: mt76: mt7915: remove mt7915_mcu_beacon_check_caps()
d63cb85c wifi: mt76: add missing locking to protect against concurrent rx/status calls
22f1b777 mt76: adjust for ieee80211_is_bufferable_mmpdu API change
8ecf551c wifi: mt76: set NL80211_EXT_FEATURE_CAN_REPLACE_PTK0 on supported drivers
efa44cb5 wifi: mt76: ignore key disable commands
56f0cd4d wifi: mt76: mt7915 add tc offloading support
021ded36 tools: Fix compile error with glibc

Signed-off-by: David Bauer <mail@david-bauer.net>
package/kernel/mt76/Makefile
package/kernel/mt76/patches/100-api_update.patch [deleted file]
package/kernel/mt76/patches/110-wifi-mt76-ignore-key-disable-commands.patch [deleted file]

index 34930d7693f0de1e88c8bda19d8d2f642f275043..1a7c2ec8c7188a51f1fc611140445b5f7e3d3b40 100644 (file)
@@ -1,16 +1,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mt76
-PKG_RELEASE=5
+PKG_RELEASE=1
 
 PKG_LICENSE:=GPLv2
 PKG_LICENSE_FILES:=
 
 PKG_SOURCE_URL:=https://github.com/openwrt/mt76
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_DATE:=2023-03-01
-PKG_SOURCE_VERSION:=c32d6d849c43792abd8007e13e468b12d6d6e0b7
-PKG_MIRROR_HASH:=b7004bc920ba44cef2f7868d94beb2d288ff9d399af624ce5dad972f953723c8
+PKG_SOURCE_DATE:=2023-05-13
+PKG_SOURCE_VERSION:=969b7b5ebd129068ca56e4b0d831593a2f92382f
+PKG_MIRROR_HASH:=d28869591d1cb9a967b72f5cd8215c7b2c3388b7b31147b7b18c797018ab8ffb
 
 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
 PKG_USE_NINJA:=0
@@ -374,8 +374,8 @@ endif
 ifdef CONFIG_PACKAGE_kmod-mt7915e
   PKG_MAKE_FLAGS += CONFIG_MT7915E=m
   ifdef CONFIG_TARGET_mediatek_filogic
-    PKG_MAKE_FLAGS += CONFIG_MT7986_WMAC=y
-    NOSTDINC_FLAGS += -DCONFIG_MT7986_WMAC
+    PKG_MAKE_FLAGS += CONFIG_MT798X_WMAC=y
+    NOSTDINC_FLAGS += -DCONFIG_MT798X_WMAC
   endif
 endif
 ifdef CONFIG_PACKAGE_kmod-mt7921-common
diff --git a/package/kernel/mt76/patches/100-api_update.patch b/package/kernel/mt76/patches/100-api_update.patch
deleted file mode 100644 (file)
index 3a76f11..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/tx.c
-+++ b/tx.c
-@@ -330,7 +330,7 @@ mt76_tx(struct mt76_phy *phy, struct iee
-       if ((dev->drv->drv_flags & MT_DRV_HW_MGMT_TXQ) &&
-           !(info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) &&
-           !ieee80211_is_data(hdr->frame_control) &&
--          !ieee80211_is_bufferable_mmpdu(hdr->frame_control)) {
-+          !ieee80211_is_bufferable_mmpdu(skb)) {
-               qid = MT_TXQ_PSD;
-       }
diff --git a/package/kernel/mt76/patches/110-wifi-mt76-ignore-key-disable-commands.patch b/package/kernel/mt76/patches/110-wifi-mt76-ignore-key-disable-commands.patch
deleted file mode 100644 (file)
index 78b70d7..0000000
+++ /dev/null
@@ -1,326 +0,0 @@
-From: Felix Fietkau <nbd@nbd.name>
-Date: Wed, 22 Mar 2023 10:17:49 +0100
-Subject: [PATCH] wifi: mt76: ignore key disable commands
-
-This helps avoid cleartext leakage of already queued or powersave buffered
-packets, when a reassoc triggers the key deletion.
-
-Cc: stable@vger.kernel.org
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
-
---- a/mt7603/main.c
-+++ b/mt7603/main.c
-@@ -512,15 +512,15 @@ mt7603_set_key(struct ieee80211_hw *hw,
-           !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE))
-               return -EOPNOTSUPP;
--      if (cmd == SET_KEY) {
--              key->hw_key_idx = wcid->idx;
--              wcid->hw_key_idx = idx;
--      } else {
-+      if (cmd != SET_KEY) {
-               if (idx == wcid->hw_key_idx)
-                       wcid->hw_key_idx = -1;
--              key = NULL;
-+              return 0;
-       }
-+
-+      key->hw_key_idx = wcid->idx;
-+      wcid->hw_key_idx = idx;
-       mt76_wcid_key_setup(&dev->mt76, wcid, key);
-       return mt7603_wtbl_set_key(dev, wcid->idx, key);
---- a/mt7615/mac.c
-+++ b/mt7615/mac.c
-@@ -1193,8 +1193,7 @@ EXPORT_SYMBOL_GPL(mt7615_mac_enable_rtsc
- static int
- mt7615_mac_wtbl_update_key(struct mt7615_dev *dev, struct mt76_wcid *wcid,
-                          struct ieee80211_key_conf *key,
--                         enum mt76_cipher_type cipher, u16 cipher_mask,
--                         enum set_key_cmd cmd)
-+                         enum mt76_cipher_type cipher, u16 cipher_mask)
- {
-       u32 addr = mt7615_mac_wtbl_addr(dev, wcid->idx) + 30 * 4;
-       u8 data[32] = {};
-@@ -1203,27 +1202,18 @@ mt7615_mac_wtbl_update_key(struct mt7615
-               return -EINVAL;
-       mt76_rr_copy(dev, addr, data, sizeof(data));
--      if (cmd == SET_KEY) {
--              if (cipher == MT_CIPHER_TKIP) {
--                      /* Rx/Tx MIC keys are swapped */
--                      memcpy(data, key->key, 16);
--                      memcpy(data + 16, key->key + 24, 8);
--                      memcpy(data + 24, key->key + 16, 8);
--              } else {
--                      if (cipher_mask == BIT(cipher))
--                              memcpy(data, key->key, key->keylen);
--                      else if (cipher != MT_CIPHER_BIP_CMAC_128)
--                              memcpy(data, key->key, 16);
--                      if (cipher == MT_CIPHER_BIP_CMAC_128)
--                              memcpy(data + 16, key->key, 16);
--              }
-+      if (cipher == MT_CIPHER_TKIP) {
-+              /* Rx/Tx MIC keys are swapped */
-+              memcpy(data, key->key, 16);
-+              memcpy(data + 16, key->key + 24, 8);
-+              memcpy(data + 24, key->key + 16, 8);
-       } else {
-+              if (cipher_mask == BIT(cipher))
-+                      memcpy(data, key->key, key->keylen);
-+              else if (cipher != MT_CIPHER_BIP_CMAC_128)
-+                      memcpy(data, key->key, 16);
-               if (cipher == MT_CIPHER_BIP_CMAC_128)
--                      memset(data + 16, 0, 16);
--              else if (cipher_mask)
--                      memset(data, 0, 16);
--              if (!cipher_mask)
--                      memset(data, 0, sizeof(data));
-+                      memcpy(data + 16, key->key, 16);
-       }
-       mt76_wr_copy(dev, addr, data, sizeof(data));
-@@ -1234,7 +1224,7 @@ mt7615_mac_wtbl_update_key(struct mt7615
- static int
- mt7615_mac_wtbl_update_pk(struct mt7615_dev *dev, struct mt76_wcid *wcid,
-                         enum mt76_cipher_type cipher, u16 cipher_mask,
--                        int keyidx, enum set_key_cmd cmd)
-+                        int keyidx)
- {
-       u32 addr = mt7615_mac_wtbl_addr(dev, wcid->idx), w0, w1;
-@@ -1253,9 +1243,7 @@ mt7615_mac_wtbl_update_pk(struct mt7615_
-       else
-               w0 &= ~MT_WTBL_W0_RX_IK_VALID;
--      if (cmd == SET_KEY &&
--          (cipher != MT_CIPHER_BIP_CMAC_128 ||
--           cipher_mask == BIT(cipher))) {
-+      if (cipher != MT_CIPHER_BIP_CMAC_128 || cipher_mask == BIT(cipher)) {
-               w0 &= ~MT_WTBL_W0_KEY_IDX;
-               w0 |= FIELD_PREP(MT_WTBL_W0_KEY_IDX, keyidx);
-       }
-@@ -1272,19 +1260,10 @@ mt7615_mac_wtbl_update_pk(struct mt7615_
- static void
- mt7615_mac_wtbl_update_cipher(struct mt7615_dev *dev, struct mt76_wcid *wcid,
--                            enum mt76_cipher_type cipher, u16 cipher_mask,
--                            enum set_key_cmd cmd)
-+                            enum mt76_cipher_type cipher, u16 cipher_mask)
- {
-       u32 addr = mt7615_mac_wtbl_addr(dev, wcid->idx);
--      if (!cipher_mask) {
--              mt76_clear(dev, addr + 2 * 4, MT_WTBL_W2_KEY_TYPE);
--              return;
--      }
--
--      if (cmd != SET_KEY)
--              return;
--
-       if (cipher == MT_CIPHER_BIP_CMAC_128 &&
-           cipher_mask & ~BIT(MT_CIPHER_BIP_CMAC_128))
-               return;
-@@ -1295,8 +1274,7 @@ mt7615_mac_wtbl_update_cipher(struct mt7
- int __mt7615_mac_wtbl_set_key(struct mt7615_dev *dev,
-                             struct mt76_wcid *wcid,
--                            struct ieee80211_key_conf *key,
--                            enum set_key_cmd cmd)
-+                            struct ieee80211_key_conf *key)
- {
-       enum mt76_cipher_type cipher;
-       u16 cipher_mask = wcid->cipher;
-@@ -1306,19 +1284,14 @@ int __mt7615_mac_wtbl_set_key(struct mt7
-       if (cipher == MT_CIPHER_NONE)
-               return -EOPNOTSUPP;
--      if (cmd == SET_KEY)
--              cipher_mask |= BIT(cipher);
--      else
--              cipher_mask &= ~BIT(cipher);
--
--      mt7615_mac_wtbl_update_cipher(dev, wcid, cipher, cipher_mask, cmd);
--      err = mt7615_mac_wtbl_update_key(dev, wcid, key, cipher, cipher_mask,
--                                       cmd);
-+      cipher_mask |= BIT(cipher);
-+      mt7615_mac_wtbl_update_cipher(dev, wcid, cipher, cipher_mask);
-+      err = mt7615_mac_wtbl_update_key(dev, wcid, key, cipher, cipher_mask);
-       if (err < 0)
-               return err;
-       err = mt7615_mac_wtbl_update_pk(dev, wcid, cipher, cipher_mask,
--                                      key->keyidx, cmd);
-+                                      key->keyidx);
-       if (err < 0)
-               return err;
-@@ -1329,13 +1302,12 @@ int __mt7615_mac_wtbl_set_key(struct mt7
- int mt7615_mac_wtbl_set_key(struct mt7615_dev *dev,
-                           struct mt76_wcid *wcid,
--                          struct ieee80211_key_conf *key,
--                          enum set_key_cmd cmd)
-+                          struct ieee80211_key_conf *key)
- {
-       int err;
-       spin_lock_bh(&dev->mt76.lock);
--      err = __mt7615_mac_wtbl_set_key(dev, wcid, key, cmd);
-+      err = __mt7615_mac_wtbl_set_key(dev, wcid, key);
-       spin_unlock_bh(&dev->mt76.lock);
-       return err;
---- a/mt7615/main.c
-+++ b/mt7615/main.c
-@@ -391,18 +391,17 @@ static int mt7615_set_key(struct ieee802
-       if (cmd == SET_KEY)
-               *wcid_keyidx = idx;
--      else if (idx == *wcid_keyidx)
--              *wcid_keyidx = -1;
--      else
-+      else {
-+              if (idx == *wcid_keyidx)
-+                      *wcid_keyidx = -1;
-               goto out;
-+      }
--      mt76_wcid_key_setup(&dev->mt76, wcid,
--                          cmd == SET_KEY ? key : NULL);
--
-+      mt76_wcid_key_setup(&dev->mt76, wcid, key);
-       if (mt76_is_mmio(&dev->mt76))
--              err = mt7615_mac_wtbl_set_key(dev, wcid, key, cmd);
-+              err = mt7615_mac_wtbl_set_key(dev, wcid, key);
-       else
--              err = __mt7615_mac_wtbl_set_key(dev, wcid, key, cmd);
-+              err = __mt7615_mac_wtbl_set_key(dev, wcid, key);
- out:
-       mt7615_mutex_release(dev);
---- a/mt7615/mt7615.h
-+++ b/mt7615/mt7615.h
-@@ -491,11 +491,9 @@ int mt7615_mac_write_txwi(struct mt7615_
- void mt7615_mac_set_timing(struct mt7615_phy *phy);
- int __mt7615_mac_wtbl_set_key(struct mt7615_dev *dev,
-                             struct mt76_wcid *wcid,
--                            struct ieee80211_key_conf *key,
--                            enum set_key_cmd cmd);
-+                            struct ieee80211_key_conf *key);
- int mt7615_mac_wtbl_set_key(struct mt7615_dev *dev, struct mt76_wcid *wcid,
--                          struct ieee80211_key_conf *key,
--                          enum set_key_cmd cmd);
-+                          struct ieee80211_key_conf *key);
- void mt7615_mac_reset_work(struct work_struct *work);
- u32 mt7615_mac_get_sta_tid_sn(struct mt7615_dev *dev, int wcid, u8 tid);
---- a/mt76x02_util.c
-+++ b/mt76x02_util.c
-@@ -454,20 +454,20 @@ int mt76x02_set_key(struct ieee80211_hw
-       msta = sta ? (struct mt76x02_sta *)sta->drv_priv : NULL;
-       wcid = msta ? &msta->wcid : &mvif->group_wcid;
--      if (cmd == SET_KEY) {
--              key->hw_key_idx = wcid->idx;
--              wcid->hw_key_idx = idx;
--              if (key->flags & IEEE80211_KEY_FLAG_RX_MGMT) {
--                      key->flags |= IEEE80211_KEY_FLAG_SW_MGMT_TX;
--                      wcid->sw_iv = true;
--              }
--      } else {
-+      if (cmd != SET_KEY) {
-               if (idx == wcid->hw_key_idx) {
-                       wcid->hw_key_idx = -1;
-                       wcid->sw_iv = false;
-               }
--              key = NULL;
-+              return 0;
-+      }
-+
-+      key->hw_key_idx = wcid->idx;
-+      wcid->hw_key_idx = idx;
-+      if (key->flags & IEEE80211_KEY_FLAG_RX_MGMT) {
-+              key->flags |= IEEE80211_KEY_FLAG_SW_MGMT_TX;
-+              wcid->sw_iv = true;
-       }
-       mt76_wcid_key_setup(&dev->mt76, wcid, key);
---- a/mt7915/main.c
-+++ b/mt7915/main.c
-@@ -410,16 +410,15 @@ static int mt7915_set_key(struct ieee802
-               mt7915_mcu_add_bss_info(phy, vif, true);
-       }
--      if (cmd == SET_KEY)
-+      if (cmd == SET_KEY) {
-               *wcid_keyidx = idx;
--      else if (idx == *wcid_keyidx)
--              *wcid_keyidx = -1;
--      else
-+      } else {
-+              if (idx == *wcid_keyidx)
-+                      *wcid_keyidx = -1;
-               goto out;
-+      }
--      mt76_wcid_key_setup(&dev->mt76, wcid,
--                          cmd == SET_KEY ? key : NULL);
--
-+      mt76_wcid_key_setup(&dev->mt76, wcid, key);
-       err = mt76_connac_mcu_add_key(&dev->mt76, vif, &msta->bip,
-                                     key, MCU_EXT_CMD(STA_REC_UPDATE),
-                                     &msta->wcid, cmd);
---- a/mt7921/main.c
-+++ b/mt7921/main.c
-@@ -569,16 +569,15 @@ static int mt7921_set_key(struct ieee802
-       mt7921_mutex_acquire(dev);
--      if (cmd == SET_KEY)
-+      if (cmd == SET_KEY) {
-               *wcid_keyidx = idx;
--      else if (idx == *wcid_keyidx)
--              *wcid_keyidx = -1;
--      else
-+      } else {
-+              if (idx == *wcid_keyidx)
-+                      *wcid_keyidx = -1;
-               goto out;
-+      }
--      mt76_wcid_key_setup(&dev->mt76, wcid,
--                          cmd == SET_KEY ? key : NULL);
--
-+      mt76_wcid_key_setup(&dev->mt76, wcid, key);
-       err = mt76_connac_mcu_add_key(&dev->mt76, vif, &msta->bip,
-                                     key, MCU_UNI_CMD(STA_REC_UPDATE),
-                                     &msta->wcid, cmd);
---- a/mt7996/main.c
-+++ b/mt7996/main.c
-@@ -351,16 +351,15 @@ static int mt7996_set_key(struct ieee802
-               mt7996_mcu_add_bss_info(phy, vif, true);
-       }
--      if (cmd == SET_KEY)
-+      if (cmd == SET_KEY) {
-               *wcid_keyidx = idx;
--      else if (idx == *wcid_keyidx)
--              *wcid_keyidx = -1;
--      else
-+      } else {
-+              if (idx == *wcid_keyidx)
-+                      *wcid_keyidx = -1;
-               goto out;
-+      }
--      mt76_wcid_key_setup(&dev->mt76, wcid,
--                          cmd == SET_KEY ? key : NULL);
--
-+      mt76_wcid_key_setup(&dev->mt76, wcid, key);
-       err = mt7996_mcu_add_key(&dev->mt76, vif, &msta->bip,
-                                key, MCU_WMWA_UNI_CMD(STA_REC_UPDATE),
-                                &msta->wcid, cmd);