[][MAC80211][mt76][Refactor mt76 internal patches]
[Description]
Refactor internal patches to fix patch failed.
[Release-log]
N/A
Change-Id: I85b6e531f13944c576a939596d3431c6d27e963a
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/7087554
diff --git a/autobuild_mac80211_release/package/kernel/mt76/patches/4006-wifi-mt76-revert-ser-patches.patch b/autobuild_mac80211_release/package/kernel/mt76/patches/4006-wifi-mt76-revert-ser-patches.patch
new file mode 100644
index 0000000..ac71e70
--- /dev/null
+++ b/autobuild_mac80211_release/package/kernel/mt76/patches/4006-wifi-mt76-revert-ser-patches.patch
@@ -0,0 +1,83 @@
+From 21960def41a69264aadbd66be033ac32820e1909 Mon Sep 17 00:00:00 2001
+From: Peter Chiu <chui-hao.chiu@mediatek.com>
+Date: Fri, 3 Feb 2023 15:41:59 +0800
+Subject: [PATCH 4006/4006] wifi: mt76: revert ser patches
+
+---
+ mt7915/mac.c | 2 +-
+ mt7915/mmio.c | 30 +++---------------------------
+ 2 files changed, 4 insertions(+), 28 deletions(-)
+
+diff --git a/mt7915/mac.c b/mt7915/mac.c
+index c2e3048c..f1a21422 100644
+--- a/mt7915/mac.c
++++ b/mt7915/mac.c
+@@ -1632,7 +1632,7 @@ void mt7915_mac_reset_work(struct work_struct *work)
+ return;
+
+ if (mtk_wed_device_active(&dev->mt76.mmio.wed)) {
+- mtk_wed_device_stop(&dev->mt76.mmio.wed);
++ mtk_wed_device_stop(&dev->mt76.mmio.wed, true);
+ if (!is_mt7986(&dev->mt76))
+ mt76_wr(dev, MT_INT_WED_MASK_CSR, 0);
+ }
+diff --git a/mt7915/mmio.c b/mt7915/mmio.c
+index 6b9752b2..33231599 100644
+--- a/mt7915/mmio.c
++++ b/mt7915/mmio.c
+@@ -733,40 +733,17 @@ static void mt7915_mmio_wed_update_rx_stats(struct mtk_wed_device *wed,
+ rcu_read_unlock();
+ }
+
+-static int mt7915_mmio_wed_reset(struct mtk_wed_device *wed)
++static void mt7915_mmio_wed_reset(struct mtk_wed_device *wed)
+ {
+ struct mt76_dev *mdev = container_of(wed, struct mt76_dev, mmio.wed);
+ struct mt7915_dev *dev = container_of(mdev, struct mt7915_dev, mt76);
+ struct mt76_phy *mphy = &dev->mphy;
+ int ret;
+
+- ASSERT_RTNL();
+-
+- if (test_and_set_bit(MT76_STATE_WED_RESET, &mphy->state))
+- return -EBUSY;
+-
+ ret = mt7915_mcu_set_ser(dev, SER_RECOVER, SER_SET_RECOVER_L1,
+ mphy->band_idx);
+- if (ret)
+- goto out;
+-
+- rtnl_unlock();
+- if (!wait_for_completion_timeout(&mdev->mmio.wed_reset, 20 * HZ)) {
+- dev_err(mdev->dev, "wed reset timeout\n");
+- ret = -ETIMEDOUT;
+- }
+- rtnl_lock();
+-out:
+- clear_bit(MT76_STATE_WED_RESET, &mphy->state);
+-
+- return ret;
+-}
+-
+-static void mt7915_mmio_wed_reset_complete(struct mtk_wed_device *wed)
+-{
+- struct mt76_dev *dev = container_of(wed, struct mt76_dev, mmio.wed);
+
+- complete(&dev->mmio.wed_reset_complete);
++ return;
+ }
+ #endif
+
+@@ -850,8 +827,7 @@ int mt7915_mmio_wed_init(struct mt7915_dev *dev, void *pdev_ptr,
+ wed->wlan.init_rx_buf = mt7915_mmio_wed_init_rx_buf;
+ wed->wlan.release_rx_buf = mt7915_mmio_wed_release_rx_buf;
+ wed->wlan.update_wo_rx_stats = mt7915_mmio_wed_update_rx_stats;
+- wed->wlan.reset = mt7915_mmio_wed_reset;
+- wed->wlan.reset_complete = mt7915_mmio_wed_reset_complete;
++ wed->wlan.ser_trigger = mt7915_mmio_wed_reset;
+
+ dev->mt76.rx_token_size += wed->wlan.rx_npkt;
+
+--
+2.18.0
+