diff options
author | Scott B | 2021-11-16 02:24:59 -0800 |
---|---|---|
committer | Scott B | 2021-11-16 02:26:20 -0800 |
commit | ccb82b38d6cdc2b97757ef0e7f53a4f8fc5796f2 (patch) | |
tree | e29b15f8a5196771ba612202d94ee864f0bdef43 | |
parent | e50f7df5ab660456fe2b49e08338deca35816cc5 (diff) | |
download | aur-ccb82b38d6cdc2b97757ef0e7f53a4f8fc5796f2.tar.gz |
patch: drop mediatek patches for 5.15.3
-rw-r--r-- | .SRCINFO | 14 | ||||
-rw-r--r-- | 2-2-mt76-mt7921-fix-retrying-release-semaphore-without-end.patch | 38 | ||||
-rw-r--r-- | PKGBUILD | 15 | ||||
-rw-r--r-- | mt76-mt7921-Fix-out-of-order-process-by-invalid-even.patch | 41 | ||||
-rw-r--r-- | mt76-mt7921-fix-dma-hang-in-rmmod.patch | 55 | ||||
-rw-r--r-- | mt76-mt7921-fix-firmware-usage-of-RA-info-using-legacy-rates.patch | 72 | ||||
-rw-r--r-- | mt76-mt7921-fix-the-inconsistent-state-between-bind-and-unbind.patch | 46 | ||||
-rw-r--r-- | mt76-mt7921-report-HE-MU-radiotap.patch | 187 | ||||
-rw-r--r-- | v2-mt76-mt7921-fix-kernel-warning-from-cfg80211_calculate_bitrate.patch | 99 |
9 files changed, 0 insertions, 567 deletions
@@ -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); - @@ -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: |