[][MAC80211][MT76][Fix patch fail]

[Description]
Fix patch fail

[Release-log]
N/A

Change-Id: Ic67b010637fec8ccdaafca746d82b43a1f1a41bd
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/6438621
diff --git a/autobuild_mac80211_release/package/kernel/mt76/patches/1006-mt76-mt7915-add-L0.5-system-error-recovery-support.patch b/autobuild_mac80211_release/package/kernel/mt76/patches/1006-mt76-mt7915-add-L0.5-system-error-recovery-support.patch
index aed5db0..777dfbe 100644
--- a/autobuild_mac80211_release/package/kernel/mt76/patches/1006-mt76-mt7915-add-L0.5-system-error-recovery-support.patch
+++ b/autobuild_mac80211_release/package/kernel/mt76/patches/1006-mt76-mt7915-add-L0.5-system-error-recovery-support.patch
@@ -1,21 +1,20 @@
-From ae9d492fc2d9e15e6625187bc0fcbc154fb58e02 Mon Sep 17 00:00:00 2001
+From a9856ee394084946e0fb59c6b56dfd66108761ba Mon Sep 17 00:00:00 2001
 From: Bo Jiao <Bo.Jiao@mediatek.com>
 Date: Wed, 22 Jun 2022 10:51:59 +0800
-Subject: [PATCH 1006/1008] mt76: mt7915: add L0.5 system error recovery
- support
+Subject: [PATCH] mt76: mt7915: add L0.5 system error recovery support
 
 ---
- .../wireless/mediatek/mt76/mt7915/debugfs.c   |  88 ++++--
- .../net/wireless/mediatek/mt76/mt7915/dma.c   |  48 +++
- .../net/wireless/mediatek/mt76/mt7915/init.c  |   8 +-
- .../net/wireless/mediatek/mt76/mt7915/mac.c   | 284 ++++++++++++++----
- .../net/wireless/mediatek/mt76/mt7915/main.c  |  19 +-
- .../net/wireless/mediatek/mt76/mt7915/mcu.c   |  95 +++++-
- .../net/wireless/mediatek/mt76/mt7915/mcu.h   |   3 +-
- .../net/wireless/mediatek/mt76/mt7915/mmio.c  |   8 +-
- .../wireless/mediatek/mt76/mt7915/mt7915.h    |  23 ++
- .../net/wireless/mediatek/mt76/mt7915/regs.h  |  16 +
- 10 files changed, 493 insertions(+), 99 deletions(-)
+ mt7915/debugfs.c |  88 ++++++++++++---
+ mt7915/dma.c     |  48 ++++++++
+ mt7915/init.c    |   8 +-
+ mt7915/mac.c     | 283 +++++++++++++++++++++++++++++++++++++----------
+ mt7915/main.c    |  19 +++-
+ mt7915/mcu.c     |  95 ++++++++++++++--
+ mt7915/mcu.h     |   3 +-
+ mt7915/mmio.c    |   8 +-
+ mt7915/mt7915.h  |  23 ++++
+ mt7915/regs.h    |  16 +++
+ 10 files changed, 492 insertions(+), 99 deletions(-)
 
 diff --git a/mt7915/debugfs.c b/mt7915/debugfs.c
 index 0cfb6068..07de2eef 100644
@@ -142,16 +141,16 @@
  	kfree(buff);
  	return ret;
 diff --git a/mt7915/dma.c b/mt7915/dma.c
-index c2d655cd..9e3d14db 100644
+index f7e6bb10..4b594a53 100644
 --- a/mt7915/dma.c
 +++ b/mt7915/dma.c
-@@ -486,6 +486,54 @@ int mt7915_dma_init(struct mt7915_dev *dev, struct mt7915_phy *phy2)
+@@ -479,6 +479,54 @@ int mt7915_dma_init(struct mt7915_dev *dev, struct mt7915_phy *phy2)
  	return 0;
  }
  
 +int mt7915_dma_reset(struct mt7915_dev *dev, bool force)
 +{
-+	struct mt76_phy *mphy_ext = dev->mt76.phy2;
++	struct mt76_phy *mphy_ext = dev->mt76.phys[MT_BAND1];
 +	int i;
 +
 +	/* clean up hw queues */
@@ -201,7 +200,7 @@
  {
  	mt7915_dma_disable(dev, true);
 diff --git a/mt7915/init.c b/mt7915/init.c
-index 02d1b6d8..0d5109a3 100644
+index 37b7b54a..141c5ad8 100644
 --- a/mt7915/init.c
 +++ b/mt7915/init.c
 @@ -262,7 +262,7 @@ static void mt7915_led_set_brightness(struct led_classdev *led_cdev,
@@ -241,7 +240,7 @@
  
  unreg_thermal:
 diff --git a/mt7915/mac.c b/mt7915/mac.c
-index 24052f47..f13456bf 100644
+index 6b3fa4ce..e5409413 100644
 --- a/mt7915/mac.c
 +++ b/mt7915/mac.c
 @@ -3,6 +3,7 @@
@@ -252,15 +251,15 @@
  #include "mt7915.h"
  #include "../dma.h"
  #include "mac.h"
-@@ -1313,85 +1314,188 @@ mt7915_update_beacons(struct mt7915_dev *dev)
- 		mt7915_update_vif_beacon, dev->mt76.phy2->hw);
+@@ -1315,85 +1316,187 @@ mt7915_update_beacons(struct mt7915_dev *dev)
+ 		mt7915_update_vif_beacon, mphy_ext->hw);
  }
  
 -static void
 -mt7915_dma_reset(struct mt7915_dev *dev)
 +void mt7915_tx_token_put(struct mt7915_dev *dev)
  {
--	struct mt76_phy *mphy_ext = dev->mt76.phy2;
+-	struct mt76_phy *mphy_ext = dev->mt76.phys[MT_BAND1];
 -	u32 hif1_ofs = MT_WFDMA0_PCIE1(0) - MT_WFDMA0(0);
 -	int i;
 +	struct mt76_txwi_cache *txwi;
@@ -287,16 +286,13 @@
 -	mt76_clear(dev, MT_WFDMA0_GLO_CFG,
 -		   MT_WFDMA0_GLO_CFG_TX_DMA_EN |
 -		   MT_WFDMA0_GLO_CFG_RX_DMA_EN);
-+	ext_phy = dev->mt76.phy2;
++	ext_phy = dev->mt76.phys[MT_BAND1];
 +	phy2 = ext_phy ? ext_phy->priv : NULL;
  
 -	if (is_mt7915(&dev->mt76))
 -		mt76_clear(dev, MT_WFDMA1_GLO_CFG,
 -			   MT_WFDMA1_GLO_CFG_TX_DMA_EN |
 -			   MT_WFDMA1_GLO_CFG_RX_DMA_EN);
-+	/* irq disable */
-+	mt76_wr(dev, MT_INT_MASK_CSR, 0x0);
-+	mt76_wr(dev, MT_INT_SOURCE_CSR, ~0);
  	if (dev->hif2) {
 -		mt76_clear(dev, MT_WFDMA0_GLO_CFG + hif1_ofs,
 -			   MT_WFDMA0_GLO_CFG_TX_DMA_EN |
@@ -308,15 +304,15 @@
 -				   MT_WFDMA1_GLO_CFG_RX_DMA_EN);
 +		mt76_wr(dev, MT_INT1_MASK_CSR, 0x0);
 +		mt76_wr(dev, MT_INT1_SOURCE_CSR, ~0);
-+	}
+ 	}
+ 
+-	usleep_range(1000, 2000);
 +	if (dev_is_pci(mdev->dev)) {
 +		mt76_wr(dev, MT_PCIE_MAC_INT_ENABLE, 0x0);
 +		if (dev->hif2)
 +			mt76_wr(dev, MT_PCIE1_MAC_INT_ENABLE, 0x0);
- 	}
++	}
  
--	usleep_range(1000, 2000);
--
 -	for (i = 0; i < __MT_TXQ_MAX; i++) {
 -		mt76_queue_tx_cleanup(dev, dev->mphy.q_tx[i], true);
 -		if (mphy_ext)
@@ -354,15 +350,7 @@
 -	/* re-init prefetch settings after reset */
 -	mt7915_dma_prefetch(dev);
 +	mt7915_dma_reset(dev, true);
- 
--	mt76_set(dev, MT_WFDMA0_GLO_CFG,
--		 MT_WFDMA0_GLO_CFG_TX_DMA_EN | MT_WFDMA0_GLO_CFG_RX_DMA_EN);
--	if (is_mt7915(&dev->mt76))
--		mt76_set(dev, MT_WFDMA1_GLO_CFG,
--			 MT_WFDMA1_GLO_CFG_TX_DMA_EN |
--			 MT_WFDMA1_GLO_CFG_RX_DMA_EN |
--			 MT_WFDMA1_GLO_CFG_OMIT_TX_INFO |
--			 MT_WFDMA1_GLO_CFG_OMIT_RX_INFO);
++
 +	local_bh_disable();
 +	mt76_for_each_q_rx(mdev, i) {
 +		if (mdev->q_rx[i].ndesc) {
@@ -376,6 +364,15 @@
 +
 +	mt76_wr(dev, MT_INT_MASK_CSR, dev->mt76.mmio.irqmask);
 +	mt76_wr(dev, MT_INT_SOURCE_CSR, ~0);
+ 
+-	mt76_set(dev, MT_WFDMA0_GLO_CFG,
+-		 MT_WFDMA0_GLO_CFG_TX_DMA_EN | MT_WFDMA0_GLO_CFG_RX_DMA_EN);
+-	if (is_mt7915(&dev->mt76))
+-		mt76_set(dev, MT_WFDMA1_GLO_CFG,
+-			 MT_WFDMA1_GLO_CFG_TX_DMA_EN |
+-			 MT_WFDMA1_GLO_CFG_RX_DMA_EN |
+-			 MT_WFDMA1_GLO_CFG_OMIT_TX_INFO |
+-			 MT_WFDMA1_GLO_CFG_OMIT_RX_INFO);
  	if (dev->hif2) {
 -		mt76_set(dev, MT_WFDMA0_GLO_CFG + hif1_ofs,
 -			 MT_WFDMA0_GLO_CFG_TX_DMA_EN |
@@ -453,7 +450,10 @@
 -	idr_for_each_entry(&dev->mt76.token, txwi, id) {
 -		mt7915_txwi_free(dev, txwi, NULL, NULL);
 -		dev->mt76.token_count--;
-+	ext_phy = dev->mt76.phy2;
+-	}
+-	spin_unlock_bh(&dev->mt76.token_lock);
+-	idr_destroy(&dev->mt76.token);
++	ext_phy = dev->mt76.phys[MT_BAND1];
 +	phy2 = ext_phy ? ext_phy->priv : NULL;
 +
 +	dev->ser.hw_full_reset = true;
@@ -475,9 +475,7 @@
 +	for (i = 0; i < 10; i++) {
 +		if (!mt7915_mac_reset(dev))
 +			break;
- 	}
--	spin_unlock_bh(&dev->mt76.token_lock);
--	idr_destroy(&dev->mt76.token);
++ 	}
 +	mutex_unlock(&dev->mt76.mutex);
 +
 +	if (i == 10)
@@ -501,8 +499,8 @@
  }
  
  /* system error recovery */
-@@ -1406,6 +1510,36 @@ void mt7915_mac_reset_work(struct work_struct *work)
- 	ext_phy = dev->mt76.phy2;
+@@ -1408,6 +1511,36 @@ void mt7915_mac_reset_work(struct work_struct *work)
+ 	ext_phy = dev->mt76.phys[MT_BAND1];
  	phy2 = ext_phy ? ext_phy->priv : NULL;
  
 +	/* chip full reset */
@@ -538,7 +536,7 @@
  	if (!(READ_ONCE(dev->reset_state) & MT_MCU_CMD_STOP_DMA))
  		return;
  
-@@ -1431,7 +1565,7 @@ void mt7915_mac_reset_work(struct work_struct *work)
+@@ -1433,7 +1566,7 @@ void mt7915_mac_reset_work(struct work_struct *work)
  	mt76_wr(dev, MT_MCU_INT_EVENT, MT_MCU_INT_EVENT_DMA_STOPPED);
  
  	if (mt7915_wait_reset_state(dev, MT_MCU_CMD_RESET_DONE)) {
@@ -547,7 +545,7 @@
  
  		mt7915_tx_token_put(dev);
  		idr_init(&dev->mt76.token);
-@@ -1480,6 +1614,34 @@ void mt7915_mac_reset_work(struct work_struct *work)
+@@ -1482,6 +1615,34 @@ void mt7915_mac_reset_work(struct work_struct *work)
  					     MT7915_WATCHDOG_TIME);
  }
  
@@ -583,7 +581,7 @@
  {
  	struct mt7915_dev *dev = phy->dev;
 diff --git a/mt7915/main.c b/mt7915/main.c
-index d5fb947a..60d990f3 100644
+index 4e82904f..7a7ff86a 100644
 --- a/mt7915/main.c
 +++ b/mt7915/main.c
 @@ -20,17 +20,13 @@ static bool mt7915_dev_running(struct mt7915_dev *dev)
@@ -633,7 +631,7 @@
  	mutex_lock(&dev->mt76.mutex);
  
 diff --git a/mt7915/mcu.c b/mt7915/mcu.c
-index 53d4cd44..62412c23 100644
+index f692e520..5eac6ed6 100644
 --- a/mt7915/mcu.c
 +++ b/mt7915/mcu.c
 @@ -150,19 +150,90 @@ mt7915_mcu_set_sta_ht_mcs(struct ieee80211_sta *sta, u8 *ht_mcs,
@@ -727,7 +725,7 @@
  	rxd = (struct mt76_connac2_mcu_rxd *)skb->data;
  	if (seq != rxd->seq)
  		return -EAGAIN;
-@@ -2273,18 +2344,10 @@ mt7915_mcu_init_rx_airtime(struct mt7915_dev *dev)
+@@ -2266,18 +2337,10 @@ mt7915_mcu_init_rx_airtime(struct mt7915_dev *dev)
  				 sizeof(req), true);
  }
  
@@ -747,7 +745,7 @@
  	/* force firmware operation mode into normal state,
  	 * which should be set before firmware download stage.
  	 */
-@@ -2333,6 +2396,20 @@ int mt7915_mcu_init(struct mt7915_dev *dev)
+@@ -2326,6 +2389,20 @@ int mt7915_mcu_init(struct mt7915_dev *dev)
  				 MCU_WA_PARAM_RED, 0, 0);
  }
  
@@ -784,7 +782,7 @@
  	SER_SET_RECOVER_L3_RX_ABORT,
  	SER_SET_RECOVER_L3_TX_ABORT,
 diff --git a/mt7915/mmio.c b/mt7915/mmio.c
-index d0e792f8..6e140e2d 100644
+index c81fa091..8469d8fb 100644
 --- a/mt7915/mmio.c
 +++ b/mt7915/mmio.c
 @@ -24,6 +24,7 @@ static const u32 mt7915_reg[] = {
@@ -825,7 +823,7 @@
  	}
  }
 diff --git a/mt7915/mt7915.h b/mt7915/mt7915.h
-index 5aafaac0..07a1c9ce 100644
+index 267fa7eb..d214b181 100644
 --- a/mt7915/mt7915.h
 +++ b/mt7915/mt7915.h
 @@ -352,6 +352,15 @@ struct mt7915_dev {
@@ -857,7 +855,7 @@
  enum {
  	MT_RX_SEL0,
  	MT_RX_SEL1,
-@@ -513,6 +528,14 @@ s8 mt7915_eeprom_get_power_delta(struct mt7915_dev *dev, int band);
+@@ -514,6 +529,14 @@ s8 mt7915_eeprom_get_power_delta(struct mt7915_dev *dev, int band);
  int mt7915_dma_init(struct mt7915_dev *dev, struct mt7915_phy *phy2);
  void mt7915_dma_prefetch(struct mt7915_dev *dev);
  void mt7915_dma_cleanup(struct mt7915_dev *dev);
@@ -873,10 +871,10 @@
  int mt7915_mcu_twt_agrt_update(struct mt7915_dev *dev,
  			       struct mt7915_vif *mvif,
 diff --git a/mt7915/regs.h b/mt7915/regs.h
-index c7c9e411..47bae86e 100644
+index 16875680..3d2c15be 100644
 --- a/mt7915/regs.h
 +++ b/mt7915/regs.h
-@@ -32,6 +32,7 @@ enum reg_rev {
+@@ -26,6 +26,7 @@ enum reg_rev {
  	INFRA_MCU_ADDR_END,
  	FW_EXCEPTION_ADDR,
  	SWDEF_BASE_ADDR,
@@ -884,7 +882,7 @@
  	__MT_REG_MAX,
  };
  
-@@ -113,6 +114,11 @@ enum offs_rev {
+@@ -107,6 +108,11 @@ enum offs_rev {
  #define __REG(id)			(dev->reg.reg_rev[(id)])
  #define __OFFS(id)			(dev->reg.offs_rev[(id)])
  
@@ -896,7 +894,7 @@
  /* MCU WFDMA0 */
  #define MT_MCU_WFDMA0_BASE		0x2000
  #define MT_MCU_WFDMA0(ofs)		(MT_MCU_WFDMA0_BASE + (ofs))
-@@ -565,6 +571,10 @@ enum offs_rev {
+@@ -559,6 +565,10 @@ enum offs_rev {
  #define MT_WFDMA0_PRI_DLY_INT_CFG1	MT_WFDMA0(0x2f4)
  #define MT_WFDMA0_PRI_DLY_INT_CFG2	MT_WFDMA0(0x2f8)
  
@@ -907,7 +905,7 @@
  /* WFDMA1 */
  #define MT_WFDMA1_BASE			0xd5000
  #define MT_WFDMA1(ofs)			(MT_WFDMA1_BASE + (ofs))
-@@ -710,6 +720,10 @@ enum offs_rev {
+@@ -704,6 +714,10 @@ enum offs_rev {
  #define MT_MCU_CMD_NORMAL_STATE		BIT(5)
  #define MT_MCU_CMD_ERROR_MASK		GENMASK(5, 1)
  
@@ -918,7 +916,7 @@
  /* TOP RGU */
  #define MT_TOP_RGU_BASE			0x18000000
  #define MT_TOP_PWR_CTRL			(MT_TOP_RGU_BASE + (0x0))
-@@ -985,6 +999,8 @@ enum offs_rev {
+@@ -979,6 +993,8 @@ enum offs_rev {
  #define MT_CPU_UTIL_PEAK_IDLE_CNT	MT_CPU_UTIL(0x0c)
  #define MT_CPU_UTIL_CTRL		MT_CPU_UTIL(0x1c)
  
@@ -928,5 +926,5 @@
  #define MT_LED_TOP_BASE			0x18013000
  #define MT_LED_PHYS(_n)			(MT_LED_TOP_BASE + (_n))
 -- 
-2.25.1
+2.18.0