aboutsummarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott B2021-11-16 02:24:59 -0800
committerScott B2021-11-16 02:26:20 -0800
commitccb82b38d6cdc2b97757ef0e7f53a4f8fc5796f2 (patch)
treee29b15f8a5196771ba612202d94ee864f0bdef43
parente50f7df5ab660456fe2b49e08338deca35816cc5 (diff)
downloadaur-ccb82b38d6cdc2b97757ef0e7f53a4f8fc5796f2.tar.gz
patch: drop mediatek patches for 5.15.3
-rw-r--r--.SRCINFO14
-rw-r--r--2-2-mt76-mt7921-fix-retrying-release-semaphore-without-end.patch38
-rw-r--r--PKGBUILD15
-rw-r--r--mt76-mt7921-Fix-out-of-order-process-by-invalid-even.patch41
-rw-r--r--mt76-mt7921-fix-dma-hang-in-rmmod.patch55
-rw-r--r--mt76-mt7921-fix-firmware-usage-of-RA-info-using-legacy-rates.patch72
-rw-r--r--mt76-mt7921-fix-the-inconsistent-state-between-bind-and-unbind.patch46
-rw-r--r--mt76-mt7921-report-HE-MU-radiotap.patch187
-rw-r--r--v2-mt76-mt7921-fix-kernel-warning-from-cfg80211_calculate_bitrate.patch99
9 files changed, 0 insertions, 567 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 74b8e9f56de6..13fe494df09a 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -29,18 +29,11 @@ pkgbase = linux-xanmod-rog
source = iwlwifi-next-patches-through-2020-11-08-5.15.3.patch
source = HID-asus-Reduce-object-size-by-consolidating-calls.patch
source = v16-asus-wmi-Add-support-for-custom-fan-curves.patch
- source = mt76-mt7921-Fix-out-of-order-process-by-invalid-even.patch
source = mt76-mt7921-Add-mt7922-support.patch
source = 1-2-mt76-mt7915-send-EAPOL-frames-at-lowest-rate.patch
source = 2-2-mt76-mt7921-send-EAPOL-frames-at-lowest-rate.patch
source = mt76-mt7921-enable-VO-tx-aggregation.patch
- source = mt76-mt7921-fix-dma-hang-in-rmmod.patch
- source = mt76-mt7921-fix-firmware-usage-of-RA-info-using-legacy-rates.patch
- source = mt76-mt7921-fix-the-inconsistent-state-between-bind-and-unbind.patch
- source = mt76-mt7921-report-HE-MU-radiotap.patch
- source = v2-mt76-mt7921-fix-kernel-warning-from-cfg80211_calculate_bitrate.patch
source = 1-2-mt76-mt7921-robustify-hardware-initialization-flow.patch
- source = 2-2-mt76-mt7921-fix-retrying-release-semaphore-without-end.patch
source = 1-2-Bluetooth-btusb-Add-Mediatek-MT7921-support-for-Foxconn.patch
source = 2-2-Bluetooth-btusb-Add-Mediatek-MT7921-support-for-IMC-Network.patch
source = Bluetooth-btusb-Add-support-for-IMC-Networks-Mediatek-Chip.patch
@@ -62,18 +55,11 @@ pkgbase = linux-xanmod-rog
sha256sums = b12a5bb789e4c854617ca3c7405fcc3121457ddb6564c8f758edfe4633cf24bd
sha256sums = 544464bf0807b324120767d55867f03014a9fda4e1804768ca341be902d7ade4
sha256sums = 0c422d8f420c1518aab1b980c6cdb6e029a4fa9cde1fd99a63670bb105a44f36
- sha256sums = 2163cb2e394a013042a40cd3b00dae788603284b20d71e262995366c5534e480
sha256sums = a01cf700d79b983807e2285be1b30df6e02db6adfd9c9027fe2dfa8ca5a74bc9
sha256sums = 4bfbff4eba07fc9de2ce78097a4a269509468ba0e24c15a82905cd94e093ad55
sha256sums = 021f8539ab2fb722b46937b95fdab22a2308236a24ecc1a9ea8db4853721dd39
sha256sums = 1ce9fd988201c4d2e48794c58acda5b768ec0fea1d29555e99d35cd2712281e4
- sha256sums = e7e37c7c433c58e2f5a79e2a7724823bef1dccaa01e857584397b4e3c837d991
- sha256sums = f075ac354acfd65dff4db49dc9798747cb9b7a3dd9839987bc46495bdbbd22dc
- sha256sums = 1770fec49335bc93194e9e55ced49e1cb67f2df4bf6948e80712a0b2ba50fa49
- sha256sums = 6da4010f86a74125969fd3dbc953da7b45209d33ff3d216474c3399e82e893ff
- sha256sums = eb391b6d1ebf7ef99ece00b23609b94180a1f3c0149bcf05f6bbeb74d0b724c7
sha256sums = c368cc4eefff20b7ae904eec686b7e72b46ff02b32c8a4fbd6bd4039f087e7ba
- sha256sums = 1a8639167a1ee1b66f580c0c6f8304e6ef359a68cfa3eb869d9200a9f0234098
sha256sums = 236cdadf0b1472945c0d7570caeed7b95929aabed6872319c9d0969a819689e9
sha256sums = cc2aa580d69801aa1afb0d72ecf094fe13c797363d3d5928c868d3a389910b7b
sha256sums = 292a7e32b248c7eee6e2f5407d609d03d985f367d329adb02b9d6dba1f85b44c
diff --git a/2-2-mt76-mt7921-fix-retrying-release-semaphore-without-end.patch b/2-2-mt76-mt7921-fix-retrying-release-semaphore-without-end.patch
deleted file mode 100644
index 04ef192d9482..000000000000
--- a/2-2-mt76-mt7921-fix-retrying-release-semaphore-without-end.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From: <sean.wang@mediatek.com>
-To: <nbd@nbd.name>, <lorenzo.bianconi@redhat.com>
-CC: <sean.wang@mediatek.com>, <Soul.Huang@mediatek.com>,
- <YN.Chen@mediatek.com>, <Leon.Yen@mediatek.com>,
- <Eric-SY.Chang@mediatek.com>, <Deren.Wu@mediatek.com>, <km.lin@mediatek.com>,
- <robin.chiu@mediatek.com>, <ch.yeh@mediatek.com>, <posh.sun@mediatek.com>,
- <ted.huang@mediatek.com>, <Eric.Liang@mediatek.com>,
- <Stella.Chang@mediatek.com>, <jemele@google.com>,
- <linux-wireless@vger.kernel.org>, <linux-mediatek@lists.infradead.org>
-Subject: [PATCH 2/2] mt76: mt7921: fix retrying release semaphore without end
-Date: Tue, 14 Sep 2021 23:50:22 +0800
-
-From: Sean Wang <sean.wang@mediatek.com>
-
-We should pass the error code to the caller immediately
-to avoid the possible infinite retry to release the semaphore.
-
-Fixes: 1c099ab44727 ("mt76: mt7921: add MCU support")
-Co-developed-by: YN Chen <YN.Chen@mediatek.com>
-Signed-off-by: YN Chen <YN.Chen@mediatek.com>
-Signed-off-by: Sean Wang <sean.wang@mediatek.com>
----
- drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
-index 9b35b5da3619..db33506567dc 100644
---- a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
-+++ b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
-@@ -876,7 +876,7 @@ static int mt7921_load_patch(struct mt7921_dev *dev)
- default:
- ret = -EAGAIN;
- dev_err(dev->mt76.dev, "Failed to release patch semaphore\n");
-- goto out;
-+ break;
- }
- release_firmware(fw);
-
diff --git a/PKGBUILD b/PKGBUILD
index 292f6238e618..44b7506d130f 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -151,19 +151,11 @@ source=("https://cdn.kernel.org/pub/linux/kernel/v${_branch}/linux-${_major}.tar
"v16-asus-wmi-Add-support-for-custom-fan-curves.patch"
# mediatek mt7921 bt/wifi patches
- "mt76-mt7921-Fix-out-of-order-process-by-invalid-even.patch"
"mt76-mt7921-Add-mt7922-support.patch"
- #"1-1-Bluetooth-btusb-Enable-MSFT-extension-for-Mediatek-Chip-MT7921.patch"
"1-2-mt76-mt7915-send-EAPOL-frames-at-lowest-rate.patch"
"2-2-mt76-mt7921-send-EAPOL-frames-at-lowest-rate.patch"
"mt76-mt7921-enable-VO-tx-aggregation.patch"
- "mt76-mt7921-fix-dma-hang-in-rmmod.patch"
- "mt76-mt7921-fix-firmware-usage-of-RA-info-using-legacy-rates.patch"
- "mt76-mt7921-fix-the-inconsistent-state-between-bind-and-unbind.patch"
- "mt76-mt7921-report-HE-MU-radiotap.patch"
- "v2-mt76-mt7921-fix-kernel-warning-from-cfg80211_calculate_bitrate.patch"
"1-2-mt76-mt7921-robustify-hardware-initialization-flow.patch"
- "2-2-mt76-mt7921-fix-retrying-release-semaphore-without-end.patch"
"1-2-Bluetooth-btusb-Add-Mediatek-MT7921-support-for-Foxconn.patch"
"2-2-Bluetooth-btusb-Add-Mediatek-MT7921-support-for-IMC-Network.patch"
"Bluetooth-btusb-Add-support-for-IMC-Networks-Mediatek-Chip.patch"
@@ -191,18 +183,11 @@ sha256sums=('57b2cf6991910e3b67a1b3490022e8a0674b6965c74c12da1e99d138d1991ee8'
'b12a5bb789e4c854617ca3c7405fcc3121457ddb6564c8f758edfe4633cf24bd'
'544464bf0807b324120767d55867f03014a9fda4e1804768ca341be902d7ade4'
'0c422d8f420c1518aab1b980c6cdb6e029a4fa9cde1fd99a63670bb105a44f36'
- '2163cb2e394a013042a40cd3b00dae788603284b20d71e262995366c5534e480'
'a01cf700d79b983807e2285be1b30df6e02db6adfd9c9027fe2dfa8ca5a74bc9'
'4bfbff4eba07fc9de2ce78097a4a269509468ba0e24c15a82905cd94e093ad55'
'021f8539ab2fb722b46937b95fdab22a2308236a24ecc1a9ea8db4853721dd39'
'1ce9fd988201c4d2e48794c58acda5b768ec0fea1d29555e99d35cd2712281e4'
- 'e7e37c7c433c58e2f5a79e2a7724823bef1dccaa01e857584397b4e3c837d991'
- 'f075ac354acfd65dff4db49dc9798747cb9b7a3dd9839987bc46495bdbbd22dc'
- '1770fec49335bc93194e9e55ced49e1cb67f2df4bf6948e80712a0b2ba50fa49'
- '6da4010f86a74125969fd3dbc953da7b45209d33ff3d216474c3399e82e893ff'
- 'eb391b6d1ebf7ef99ece00b23609b94180a1f3c0149bcf05f6bbeb74d0b724c7'
'c368cc4eefff20b7ae904eec686b7e72b46ff02b32c8a4fbd6bd4039f087e7ba'
- '1a8639167a1ee1b66f580c0c6f8304e6ef359a68cfa3eb869d9200a9f0234098'
'236cdadf0b1472945c0d7570caeed7b95929aabed6872319c9d0969a819689e9'
'cc2aa580d69801aa1afb0d72ecf094fe13c797363d3d5928c868d3a389910b7b'
'292a7e32b248c7eee6e2f5407d609d03d985f367d329adb02b9d6dba1f85b44c'
diff --git a/mt76-mt7921-Fix-out-of-order-process-by-invalid-even.patch b/mt76-mt7921-Fix-out-of-order-process-by-invalid-even.patch
deleted file mode 100644
index e3c25ccae6f9..000000000000
--- a/mt76-mt7921-Fix-out-of-order-process-by-invalid-even.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 8c7b55f401ae8cf172fd9766178ef20cda322e42 Mon Sep 17 00:00:00 2001
-From: Deren Wu <deren.wu@mediatek.com>
-Date: Wed, 14 Jul 2021 23:50:52 +0800
-Subject: [PATCH 8013/8014] mt76: mt7921: Fix out of order process by invalid
- event pkt
-
-The acceptable event report should inlcude original CMD-ID. Otherwise,
-drop unexpected result from fw.
-
-Fixes: 1c099ab44727c ("mt76: mt7921: add MCU support")
-Signed-off-by: Jimmy Hu <Jimmy.Hu@mediatek.com>
-Signed-off-by: Deren Wu <deren.wu@mediatek.com>
----
- drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
-index f7459ad2a073..bc8e3327a49f 100644
---- a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
-+++ b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
-@@ -157,6 +157,7 @@ mt7921_mcu_parse_response(struct mt76_dev *mdev, int cmd,
- struct sk_buff *skb, int seq)
- {
- struct mt7921_mcu_rxd *rxd;
-+ int mcu_cmd = cmd & MCU_CMD_MASK;
- int ret = 0;
-
- if (!skb) {
-@@ -194,6 +195,9 @@ mt7921_mcu_parse_response(struct mt76_dev *mdev, int cmd,
- skb_pull(skb, sizeof(*rxd));
- event = (struct mt7921_mcu_uni_event *)skb->data;
- ret = le32_to_cpu(event->status);
-+ /* skip invalid event */
-+ if (mcu_cmd != event->cid)
-+ ret = -EAGAIN;
- break;
- }
- case MCU_CMD_REG_READ: {
---
-2.32.0
-
diff --git a/mt76-mt7921-fix-dma-hang-in-rmmod.patch b/mt76-mt7921-fix-dma-hang-in-rmmod.patch
deleted file mode 100644
index 7b353ab3e5eb..000000000000
--- a/mt76-mt7921-fix-dma-hang-in-rmmod.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From: Deren Wu <Deren.Wu@mediatek.com>
-To: Felix Fietkau <nbd@nbd.name>, Lorenzo Bianconi
- <lorenzo.bianconi@redhat.com>
-CC: Sean Wang <sean.wang@mediatek.com>, Soul Huang <Soul.Huang@mediatek.com>,
- YN Chen <YN.Chen@mediatek.com>, Leon Yen <Leon.Yen@mediatek.com>, "Eric-SY
- Chang" <Eric-SY.Chang@mediatek.com>, Deren Wu <Deren.Wu@mediatek.com>,
- KM Lin <km.lin@mediatek.com>, Robin Chiu <robin.chiu@mediatek.com>, CH Yeh
- <ch.yeh@mediatek.com>, Posh Sun <posh.sun@mediatek.com>, Eric Liang
- <Eric.Liang@mediatek.com>, Stella Chang <Stella.Chang@mediatek.com>, Jimmy Hu
- <Jimmy.Hu@mediatek.com>, <jemele@google.com>, <yenlinlai@google.com>,
- linux-wireless <linux-wireless@vger.kernel.org>, linux-mediatek
- <linux-mediatek@lists.infradead.org>, Deren Wu <deren.wu@mediatek.com>
-Subject: [PATCH] mt76: mt7921: fix dma hang in rmmod
-Date: Tue, 27 Jul 2021 17:47:09 +0800
-
-From: Deren Wu <deren.wu@mediatek.com>
-
-The dma would be broken after rmmod flow. There are two different
-cases causing this issue.
-1. dma access without privilege.
-2. hw access sequence borken by another context.
-
-This patch handle both cases to avoid hw crash.
-
-Fixes: 2b9ea5a8cf1bd ("mt76: mt7921: add mt7921_dma_cleanup in mt7921_unregister_device")
-Signed-off-by: Deren Wu <deren.wu@mediatek.com>
----
- drivers/net/wireless/mediatek/mt76/mt7921/init.c | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/init.c b/drivers/net/wireless/mediatek/mt76/mt7921/init.c
-index 49725caca7ed..1f37e64b6038 100644
---- a/drivers/net/wireless/mediatek/mt76/mt7921/init.c
-+++ b/drivers/net/wireless/mediatek/mt76/mt7921/init.c
-@@ -266,10 +266,20 @@ int mt7921_register_device(struct mt7921_dev *dev)
-
- void mt7921_unregister_device(struct mt7921_dev *dev)
- {
-+ int i;
-+ struct mt76_connac_pm *pm = &dev->pm;
-+
- mt76_unregister_device(&dev->mt76);
-+ mt76_for_each_q_rx(&dev->mt76, i)
-+ napi_disable(&dev->mt76.napi[i]);
-+ cancel_delayed_work_sync(&pm->ps_work);
-+ cancel_work_sync(&pm->wake_work);
-+
- mt7921_tx_token_put(dev);
-+ mt7921_mcu_drv_pmctrl(dev);
- mt7921_dma_cleanup(dev);
- mt7921_mcu_exit(dev);
-+ mt7921_mcu_fw_pmctrl(dev);
-
- tasklet_disable(&dev->irq_tasklet);
- mt76_free_device(&dev->mt76);
diff --git a/mt76-mt7921-fix-firmware-usage-of-RA-info-using-legacy-rates.patch b/mt76-mt7921-fix-firmware-usage-of-RA-info-using-legacy-rates.patch
deleted file mode 100644
index 870e24a3a1ff..000000000000
--- a/mt76-mt7921-fix-firmware-usage-of-RA-info-using-legacy-rates.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From: <sean.wang@mediatek.com>
-To: <nbd@nbd.name>, <lorenzo.bianconi@redhat.com>
-CC: <sean.wang@mediatek.com>, <Soul.Huang@mediatek.com>,
- <YN.Chen@mediatek.com>, <Leon.Yen@mediatek.com>,
- <Eric-SY.Chang@mediatek.com>, <Deren.Wu@mediatek.com>, <km.lin@mediatek.com>,
- <robin.chiu@mediatek.com>, <ch.yeh@mediatek.com>, <posh.sun@mediatek.com>,
- <Eric.Liang@mediatek.com>, <Stella.Chang@mediatek.com>, <jemele@google.com>,
- <yenlinlai@google.com>, <linux-wireless@vger.kernel.org>,
- <linux-mediatek@lists.infradead.org>
-Subject: [PATCH] mt76: mt7921: fix firmware usage of RA info using legacy
- rates
-Date: Wed, 11 Aug 2021 13:58:24 +0800
-
-From: Sean Wang <sean.wang@mediatek.com>
-
-According to the firmware usage, OFDM rates should fill out bit 6 - 13
-while CCK rates should fill out bit 0 - 3 in legacy field of RA info to
-make the rate adaption runs propertly. Otherwise, a unicast frame might be
-picking up the unsupported rate to send out.
-
-Fixes: 1c099ab44727 ("mt76: mt7921: add MCU support")
-Reported-by: Joshua Emele <jemele@chromium.org>
-Co-developed-by: YN Chen <YN.Chen@mediatek.com>
-Signed-off-by: YN Chen <YN.Chen@mediatek.com>
-Signed-off-by: Sean Wang <sean.wang@mediatek.com>
----
- drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c | 11 ++++++++++-
- drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h | 2 ++
- 2 files changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
-index a2555dc0f003..27e45f4fc05f 100644
---- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
-+++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c
-@@ -719,6 +719,7 @@ void mt76_connac_mcu_sta_tlv(struct mt76_phy *mphy, struct sk_buff *skb,
- struct sta_rec_state *state;
- struct sta_rec_phy *phy;
- struct tlv *tlv;
-+ u16 supp_rates;
-
- /* starec ht */
- if (sta->ht_cap.ht_supported) {
-@@ -767,7 +768,15 @@ void mt76_connac_mcu_sta_tlv(struct mt76_phy *mphy, struct sk_buff *skb,
-
- tlv = mt76_connac_mcu_add_tlv(skb, STA_REC_RA, sizeof(*ra_info));
- ra_info = (struct sta_rec_ra_info *)tlv;
-- ra_info->legacy = cpu_to_le16((u16)sta->supp_rates[band]);
-+
-+ supp_rates = sta->supp_rates[band];
-+ if (band == NL80211_BAND_2GHZ)
-+ supp_rates = FIELD_PREP(RA_LEGACY_OFDM, supp_rates >> 4) |
-+ FIELD_PREP(RA_LEGACY_CCK, supp_rates & 0xf);
-+ else
-+ supp_rates = FIELD_PREP(RA_LEGACY_OFDM, supp_rates);
-+
-+ ra_info->legacy = cpu_to_le16(supp_rates);
-
- if (sta->ht_cap.ht_supported)
- memcpy(ra_info->rx_mcs_bitmask, sta->ht_cap.mcs.rx_mask,
-diff --git a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h
-index ab77289c0541..9dfdf7625844 100644
---- a/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h
-+++ b/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.h
-@@ -124,6 +124,8 @@ struct sta_rec_state {
- u8 rsv[1];
- } __packed;
-
-+#define RA_LEGACY_OFDM GENMASK(13, 6)
-+#define RA_LEGACY_CCK GENMASK(3, 0)
- #define HT_MCS_MASK_NUM 10
- struct sta_rec_ra_info {
- __le16 tag;
diff --git a/mt76-mt7921-fix-the-inconsistent-state-between-bind-and-unbind.patch b/mt76-mt7921-fix-the-inconsistent-state-between-bind-and-unbind.patch
deleted file mode 100644
index c1a9eabc6f02..000000000000
--- a/mt76-mt7921-fix-the-inconsistent-state-between-bind-and-unbind.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From: <sean.wang@mediatek.com>
-To: <nbd@nbd.name>, <lorenzo.bianconi@redhat.com>
-CC: <sean.wang@mediatek.com>, <Soul.Huang@mediatek.com>,
- <YN.Chen@mediatek.com>, <Leon.Yen@mediatek.com>,
- <Eric-SY.Chang@mediatek.com>, <Deren.Wu@mediatek.com>, <km.lin@mediatek.com>,
- <robin.chiu@mediatek.com>, <ch.yeh@mediatek.com>, <posh.sun@mediatek.com>,
- <Eric.Liang@mediatek.com>, <Stella.Chang@mediatek.com>, <jemele@google.com>,
- <linux-wireless@vger.kernel.org>, <linux-mediatek@lists.infradead.org>
-Subject: [PATCH] mt76: mt7921: fix the inconsistent state between bind and
- unbind
-Date: Mon, 23 Aug 2021 10:26:51 +0800
-
-From: Sean Wang <sean.wang@mediatek.com>
-
-We shouldn't put back the device into fw own state after wifi reset at
-driver unbind stage to fix the following error because that is not the
-consistent state the current driver bind stage expects.
-
-localhost ~ # echo 0000:01:00.0 > /sys/bus/pci/drivers/mt7921e/unbind
-localhost ~ # echo 0000:01:00.0 > /sys/bus/pci/drivers/mt7921e/bind
-...
-[ 481.172969] mt7921e 0000:01:00.0: ASIC revision: feed0000
-[ 482.133547] mt7921e: probe of 0000:01:00.0 failed with error -110
--bash: echo: write error: No such device
-
-Fixes: c1af184ba830 ("mt76: mt7921: fix dma hang in rmmod")
-Co-developed-by: YN Chen <YN.Chen@mediatek.com>
-Signed-off-by: YN Chen <YN.Chen@mediatek.com>
-Signed-off-by: Sean Wang <sean.wang@mediatek.com>
-Tested-by: Chen-Yu Tsai <wenst@chromium.org>
----
- drivers/net/wireless/mediatek/mt76/mt7921/init.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/init.c b/drivers/net/wireless/mediatek/mt76/mt7921/init.c
-index 1f37e64b6038..3e84ef8f5358 100644
---- a/drivers/net/wireless/mediatek/mt76/mt7921/init.c
-+++ b/drivers/net/wireless/mediatek/mt76/mt7921/init.c
-@@ -279,7 +279,6 @@ void mt7921_unregister_device(struct mt7921_dev *dev)
- mt7921_mcu_drv_pmctrl(dev);
- mt7921_dma_cleanup(dev);
- mt7921_mcu_exit(dev);
-- mt7921_mcu_fw_pmctrl(dev);
-
- tasklet_disable(&dev->irq_tasklet);
- mt76_free_device(&dev->mt76);
diff --git a/mt76-mt7921-report-HE-MU-radiotap.patch b/mt76-mt7921-report-HE-MU-radiotap.patch
deleted file mode 100644
index ebb44077b5f8..000000000000
--- a/mt76-mt7921-report-HE-MU-radiotap.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-From: <sean.wang@mediatek.com>
-To: <nbd@nbd.name>, <lorenzo.bianconi@redhat.com>
-CC: <sean.wang@mediatek.com>, <Soul.Huang@mediatek.com>,
- <YN.Chen@mediatek.com>, <Leon.Yen@mediatek.com>,
- <Eric-SY.Chang@mediatek.com>, <Deren.Wu@mediatek.com>, <km.lin@mediatek.com>,
- <robin.chiu@mediatek.com>, <ch.yeh@mediatek.com>, <posh.sun@mediatek.com>,
- <Eric.Liang@mediatek.com>, <Stella.Chang@mediatek.com>, <jemele@google.com>,
- <yenlinlai@google.com>, <linux-wireless@vger.kernel.org>,
- <linux-mediatek@lists.infradead.org>, Ryder Lee <ryder.lee@mediatek.com>
-Subject: [PATCH] mt76: mt7921: report HE MU radiotap
-Date: Fri, 13 Aug 2021 06:48:24 +0800
-
-From: Sean Wang <sean.wang@mediatek.com>
-
-Report HE MU/BF radiotap.
-
-That fixed HE MU packets dropped by mac80211 because they are missing the
-ieee80211_radiotap_he_mu header.
-
-Fixes: 163f4d22c118d ("mt76: mt7921: add MAC support")
-Co-developed-by: Ryder Lee <ryder.lee@mediatek.com>
-Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
-Co-developed-by: Eric-SY Chang <Eric-SY.Chang@mediatek.com>
-Signed-off-by: Eric-SY Chang <Eric-SY.Chang@mediatek.com>
-Tested-by: Eric-SY Chang <Eric-SY.Chang@mediatek.com>
-Signed-off-by: Sean Wang <sean.wang@mediatek.com>
----
- .../net/wireless/mediatek/mt76/mt7921/mac.c | 65 ++++++++++++++++---
- .../net/wireless/mediatek/mt76/mt7921/mac.h | 8 +++
- 2 files changed, 65 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mac.c b/drivers/net/wireless/mediatek/mt76/mt7921/mac.c
-index 296e0f7a1d14..7ee9ef2fb9f0 100644
---- a/drivers/net/wireless/mediatek/mt76/mt7921/mac.c
-+++ b/drivers/net/wireless/mediatek/mt76/mt7921/mac.c
-@@ -180,12 +180,56 @@ mt7921_mac_decode_he_radiotap_ru(struct mt76_rx_status *status,
- IEEE80211_RADIOTAP_HE_DATA2_RU_OFFSET);
- }
-
-+static void
-+mt7921_mac_decode_he_mu_radiotap(struct sk_buff *skb,
-+ struct mt76_rx_status *status,
-+ __le32 *rxv)
-+{
-+ static const struct ieee80211_radiotap_he_mu mu_known = {
-+ .flags1 = HE_BITS(MU_FLAGS1_SIG_B_MCS_KNOWN) |
-+ HE_BITS(MU_FLAGS1_SIG_B_DCM_KNOWN) |
-+ HE_BITS(MU_FLAGS1_CH1_RU_KNOWN) |
-+ HE_BITS(MU_FLAGS1_SIG_B_SYMS_USERS_KNOWN) |
-+ HE_BITS(MU_FLAGS1_SIG_B_COMP_KNOWN),
-+ .flags2 = HE_BITS(MU_FLAGS2_BW_FROM_SIG_A_BW_KNOWN) |
-+ HE_BITS(MU_FLAGS2_PUNC_FROM_SIG_A_BW_KNOWN),
-+ };
-+ struct ieee80211_radiotap_he_mu *he_mu = NULL;
-+
-+ he_mu = skb_push(skb, sizeof(mu_known));
-+ memcpy(he_mu, &mu_known, sizeof(mu_known));
-+
-+#define MU_PREP(f, v) le16_encode_bits(v, IEEE80211_RADIOTAP_HE_MU_##f)
-+
-+ he_mu->flags1 |= MU_PREP(FLAGS1_SIG_B_MCS, status->rate_idx);
-+ if (status->he_dcm)
-+ he_mu->flags1 |= MU_PREP(FLAGS1_SIG_B_DCM, status->he_dcm);
-+
-+ he_mu->flags2 |= MU_PREP(FLAGS2_BW_FROM_SIG_A_BW, status->bw) |
-+ MU_PREP(FLAGS2_SIG_B_SYMS_USERS,
-+ le32_get_bits(rxv[2], MT_CRXV_HE_NUM_USER));
-+
-+ he_mu->ru_ch1[0] = FIELD_GET(MT_CRXV_HE_RU0, cpu_to_le32(rxv[3]));
-+
-+ if (status->bw >= RATE_INFO_BW_40) {
-+ he_mu->flags1 |= HE_BITS(MU_FLAGS1_CH2_RU_KNOWN);
-+ he_mu->ru_ch2[0] =
-+ FIELD_GET(MT_CRXV_HE_RU1, cpu_to_le32(rxv[3]));
-+ }
-+
-+ if (status->bw >= RATE_INFO_BW_80) {
-+ he_mu->ru_ch1[1] =
-+ FIELD_GET(MT_CRXV_HE_RU2, cpu_to_le32(rxv[3]));
-+ he_mu->ru_ch2[1] =
-+ FIELD_GET(MT_CRXV_HE_RU3, cpu_to_le32(rxv[3]));
-+ }
-+}
-+
- static void
- mt7921_mac_decode_he_radiotap(struct sk_buff *skb,
- struct mt76_rx_status *status,
- __le32 *rxv, u32 phy)
- {
-- /* TODO: struct ieee80211_radiotap_he_mu */
- static const struct ieee80211_radiotap_he known = {
- .data1 = HE_BITS(DATA1_DATA_MCS_KNOWN) |
- HE_BITS(DATA1_DATA_DCM_KNOWN) |
-@@ -193,6 +237,7 @@ mt7921_mac_decode_he_radiotap(struct sk_buff *skb,
- HE_BITS(DATA1_CODING_KNOWN) |
- HE_BITS(DATA1_LDPC_XSYMSEG_KNOWN) |
- HE_BITS(DATA1_DOPPLER_KNOWN) |
-+ HE_BITS(DATA1_SPTL_REUSE_KNOWN) |
- HE_BITS(DATA1_BSS_COLOR_KNOWN),
- .data2 = HE_BITS(DATA2_GI_KNOWN) |
- HE_BITS(DATA2_TXBF_KNOWN) |
-@@ -207,9 +252,12 @@ mt7921_mac_decode_he_radiotap(struct sk_buff *skb,
-
- he->data3 = HE_PREP(DATA3_BSS_COLOR, BSS_COLOR, rxv[14]) |
- HE_PREP(DATA3_LDPC_XSYMSEG, LDPC_EXT_SYM, rxv[2]);
-+ he->data4 = HE_PREP(DATA4_SU_MU_SPTL_REUSE, SR_MASK, rxv[11]);
- he->data5 = HE_PREP(DATA5_PE_DISAMBIG, PE_DISAMBIG, rxv[2]) |
- le16_encode_bits(ltf_size,
- IEEE80211_RADIOTAP_HE_DATA5_LTF_SIZE);
-+ if (cpu_to_le32(rxv[0]) & MT_PRXV_TXBF)
-+ he->data5 |= HE_BITS(DATA5_TXBF);
- he->data6 = HE_PREP(DATA6_TXOP, TXOP_DUR, rxv[14]) |
- HE_PREP(DATA6_DOPPLER, DOPPLER, rxv[14]);
-
-@@ -217,8 +265,7 @@ mt7921_mac_decode_he_radiotap(struct sk_buff *skb,
- case MT_PHY_TYPE_HE_SU:
- he->data1 |= HE_BITS(DATA1_FORMAT_SU) |
- HE_BITS(DATA1_UL_DL_KNOWN) |
-- HE_BITS(DATA1_BEAM_CHANGE_KNOWN) |
-- HE_BITS(DATA1_SPTL_REUSE_KNOWN);
-+ HE_BITS(DATA1_BEAM_CHANGE_KNOWN);
-
- he->data3 |= HE_PREP(DATA3_BEAM_CHANGE, BEAM_CHNG, rxv[14]) |
- HE_PREP(DATA3_UL_DL, UPLINK, rxv[2]);
-@@ -232,17 +279,15 @@ mt7921_mac_decode_he_radiotap(struct sk_buff *skb,
- break;
- case MT_PHY_TYPE_HE_MU:
- he->data1 |= HE_BITS(DATA1_FORMAT_MU) |
-- HE_BITS(DATA1_UL_DL_KNOWN) |
-- HE_BITS(DATA1_SPTL_REUSE_KNOWN);
-+ HE_BITS(DATA1_UL_DL_KNOWN);
-
- he->data3 |= HE_PREP(DATA3_UL_DL, UPLINK, rxv[2]);
-- he->data4 |= HE_PREP(DATA4_SU_MU_SPTL_REUSE, SR_MASK, rxv[11]);
-+ he->data4 |= HE_PREP(DATA4_MU_STA_ID, MU_AID, rxv[7]);
-
- mt7921_mac_decode_he_radiotap_ru(status, he, rxv);
- break;
- case MT_PHY_TYPE_HE_TB:
- he->data1 |= HE_BITS(DATA1_FORMAT_TRIG) |
-- HE_BITS(DATA1_SPTL_REUSE_KNOWN) |
- HE_BITS(DATA1_SPTL_REUSE2_KNOWN) |
- HE_BITS(DATA1_SPTL_REUSE3_KNOWN) |
- HE_BITS(DATA1_SPTL_REUSE4_KNOWN);
-@@ -606,9 +651,13 @@ int mt7921_mac_fill_rx(struct mt7921_dev *dev, struct sk_buff *skb)
-
- mt7921_mac_assoc_rssi(dev, skb);
-
-- if (rxv && status->flag & RX_FLAG_RADIOTAP_HE)
-+ if (rxv && status->flag & RX_FLAG_RADIOTAP_HE) {
- mt7921_mac_decode_he_radiotap(skb, status, rxv, mode);
-
-+ if (status->flag & RX_FLAG_RADIOTAP_HE_MU)
-+ mt7921_mac_decode_he_mu_radiotap(skb, status, rxv);
-+ }
-+
- if (!status->wcid || !ieee80211_is_data_qos(fc))
- return 0;
-
-diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mac.h b/drivers/net/wireless/mediatek/mt76/mt7921/mac.h
-index 3af67fac213d..f0194c878037 100644
---- a/drivers/net/wireless/mediatek/mt76/mt7921/mac.h
-+++ b/drivers/net/wireless/mediatek/mt76/mt7921/mac.h
-@@ -116,6 +116,7 @@ enum rx_pkt_type {
- #define MT_PRXV_TX_DCM BIT(4)
- #define MT_PRXV_TX_ER_SU_106T BIT(5)
- #define MT_PRXV_NSTS GENMASK(9, 7)
-+#define MT_PRXV_TXBF BIT(10)
- #define MT_PRXV_HT_AD_CODE BIT(11)
- #define MT_PRXV_FRAME_MODE GENMASK(14, 12)
- #define MT_PRXV_SGI GENMASK(16, 15)
-@@ -138,8 +139,15 @@ enum rx_pkt_type {
- #define MT_CRXV_HE_LTF_SIZE GENMASK(18, 17)
- #define MT_CRXV_HE_LDPC_EXT_SYM BIT(20)
- #define MT_CRXV_HE_PE_DISAMBIG BIT(23)
-+#define MT_CRXV_HE_NUM_USER GENMASK(30, 24)
- #define MT_CRXV_HE_UPLINK BIT(31)
-
-+#define MT_CRXV_HE_RU0 GENMASK(7, 0)
-+#define MT_CRXV_HE_RU1 GENMASK(15, 8)
-+#define MT_CRXV_HE_RU2 GENMASK(23, 16)
-+#define MT_CRXV_HE_RU3 GENMASK(31, 24)
-+#define MT_CRXV_HE_MU_AID GENMASK(30, 20)
-+
- #define MT_CRXV_HE_SR_MASK GENMASK(11, 8)
- #define MT_CRXV_HE_SR1_MASK GENMASK(16, 12)
- #define MT_CRXV_HE_SR2_MASK GENMASK(20, 17)
diff --git a/v2-mt76-mt7921-fix-kernel-warning-from-cfg80211_calculate_bitrate.patch b/v2-mt76-mt7921-fix-kernel-warning-from-cfg80211_calculate_bitrate.patch
deleted file mode 100644
index b71d4dc6db89..000000000000
--- a/v2-mt76-mt7921-fix-kernel-warning-from-cfg80211_calculate_bitrate.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From: <sean.wang@mediatek.com>
-To: <nbd@nbd.name>, <lorenzo.bianconi@redhat.com>
-CC: <sean.wang@mediatek.com>, <Soul.Huang@mediatek.com>,
- <YN.Chen@mediatek.com>, <Leon.Yen@mediatek.com>,
- <Eric-SY.Chang@mediatek.com>, <Deren.Wu@mediatek.com>, <km.lin@mediatek.com>,
- <robin.chiu@mediatek.com>, <ch.yeh@mediatek.com>, <posh.sun@mediatek.com>,
- <Eric.Liang@mediatek.com>, <Stella.Chang@mediatek.com>, <jemele@google.com>,
- <yenlinlai@google.com>, <linux-wireless@vger.kernel.org>,
- <linux-mediatek@lists.infradead.org>
-Subject: [PATCH v2] mt76: mt7921: fix kernel warning from
- cfg80211_calculate_bitrate
-Date: Sat, 14 Aug 2021 02:09:18 +0800
-
-From: Sean Wang <sean.wang@mediatek.com>
-
-Fix the kernel warning from cfg80211_calculate_bitrate
-due to the legacy rate is not parsed well in the current driver.
-
-Also, zeros struct rate_info before we fill it out to avoid the old value
-is kept such as rate->legacy.
-
-[ 790.921560] WARNING: CPU: 7 PID: 970 at net/wireless/util.c:1298 cfg80211_calculate_bitrate+0x354/0x35c [cfg80211]
-[ 790.987738] Hardware name: MediaTek Asurada rev1 board (DT)
-[ 790.993298] pstate: a0400009 (NzCv daif +PAN -UAO)
-[ 790.998104] pc : cfg80211_calculate_bitrate+0x354/0x35c [cfg80211]
-[ 791.004295] lr : cfg80211_calculate_bitrate+0x180/0x35c [cfg80211]
-[ 791.010462] sp : ffffffc0129c3880
-[ 791.013765] x29: ffffffc0129c3880 x28: ffffffd38305bea8
-[ 791.019065] x27: ffffffc0129c3970 x26: 0000000000000013
-[ 791.024364] x25: 00000000000003ca x24: 000000000000002f
-[ 791.029664] x23: 00000000000000d0 x22: ffffff8d108bc000
-[ 791.034964] x21: ffffff8d108bc0d0 x20: ffffffc0129c39a8
-[ 791.040264] x19: ffffffc0129c39a8 x18: 00000000ffff0a10
-[ 791.045563] x17: 0000000000000050 x16: 00000000000000ec
-[ 791.050910] x15: ffffffd3f9ebed9c x14: 0000000000000006
-[ 791.056211] x13: 00000000000b2eea x12: 0000000000000000
-[ 791.061511] x11: 00000000ffffffff x10: 0000000000000000
-[ 791.066811] x9 : 0000000000000000 x8 : 0000000000000000
-[ 791.072110] x7 : 0000000000000000 x6 : ffffffd3fafa5a7b
-[ 791.077409] x5 : 0000000000000000 x4 : 0000000000000000
-[ 791.082708] x3 : 0000000000000000 x2 : 0000000000000000
-[ 791.088008] x1 : ffffff8d3f79c918 x0 : 0000000000000000
-[ 791.093308] Call trace:
-[ 791.095770] cfg80211_calculate_bitrate+0x354/0x35c [cfg80211]
-[ 791.101615] nl80211_put_sta_rate+0x6c/0x2c0 [cfg80211]
-[ 791.106853] nl80211_send_station+0x980/0xaa4 [cfg80211]
-[ 791.112178] nl80211_get_station+0xb4/0x134 [cfg80211]
-[ 791.117308] genl_rcv_msg+0x3a0/0x440
-[ 791.120960] netlink_rcv_skb+0xcc/0x118
-[ 791.124785] genl_rcv+0x34/0x48
-[ 791.127916] netlink_unicast+0x144/0x1dc
-
-Fixes: 1c099ab44727 ("mt76: mt7921: add MCU support")
-Signed-off-by: Sean Wang <sean.wang@mediatek.com>
----
-v2: don't do unnecessary line removal
----
- drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 11 +++++++++--
- 1 file changed, 9 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
-index cadb633639d3..9b35b5da3619 100644
---- a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
-+++ b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c
-@@ -328,11 +328,13 @@ mt7921_mcu_tx_rate_parse(struct mt76_phy *mphy,
- struct rate_info *rate, u16 r)
- {
- struct ieee80211_supported_band *sband;
-- u16 flags = 0;
-+ u16 flags = 0, rate_idx;
- u8 txmode = FIELD_GET(MT_WTBL_RATE_TX_MODE, r);
- u8 gi = 0;
- u8 bw = 0;
-+ bool cck = false;
-
-+ memset(rate, 0, sizeof(*rate));
- rate->mcs = FIELD_GET(MT_WTBL_RATE_MCS, r);
- rate->nss = FIELD_GET(MT_WTBL_RATE_NSS, r) + 1;
-
-@@ -357,13 +359,18 @@ mt7921_mcu_tx_rate_parse(struct mt76_phy *mphy,
-
- switch (txmode) {
- case MT_PHY_TYPE_CCK:
-+ cck = true;
-+ fallthrough;
- case MT_PHY_TYPE_OFDM:
- if (mphy->chandef.chan->band == NL80211_BAND_5GHZ)
- sband = &mphy->sband_5g.sband;
- else
- sband = &mphy->sband_2g.sband;
-
-- rate->legacy = sband->bitrates[rate->mcs].bitrate;
-+ rate_idx = FIELD_GET(MT_TX_RATE_IDX, r);
-+ rate_idx = mt76_get_rate(mphy->dev, sband, rate_idx,
-+ cck);
-+ rate->legacy = sband->bitrates[rate_idx].bitrate;
- break;
- case MT_PHY_TYPE_HT:
- case MT_PHY_TYPE_HT_GF: