From 29a8a08827b1d072d9b1f869a2af8183549e9daf Mon Sep 17 00:00:00 2001 From: Sean Wang Date: Wed, 3 Nov 2021 08:05:16 +0800 Subject: [PATCH] mt76: mt7921: fix MT7921E reset failure There is a missing mt7921e_driver_own in the MT7921E reset procedure since the mt7921 mcu.c has been refactored for MT7921S, that will result in MT7921E reset failure, so add it back now. Fixes: dfc7743de1eb ("mt76: mt7921: refactor mcu.c to be bus independent") Reported-by: YN Chen Signed-off-by: Sean Wang Signed-off-by: Felix Fietkau --- mt7921/mt7921.h | 1 + mt7921/pci_mac.c | 4 ++++ mt7921/pci_mcu.c | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/mt7921/mt7921.h b/mt7921/mt7921.h index e9c7c3a1..d6b82371 100644 --- a/mt7921/mt7921.h +++ b/mt7921/mt7921.h @@ -446,6 +446,7 @@ int mt7921_mcu_restart(struct mt76_dev *dev); void mt7921e_queue_rx_skb(struct mt76_dev *mdev, enum mt76_rxq_id q, struct sk_buff *skb); +int mt7921e_driver_own(struct mt7921_dev *dev); int mt7921e_mac_reset(struct mt7921_dev *dev); int mt7921e_mcu_init(struct mt7921_dev *dev); int mt7921s_wfsys_reset(struct mt7921_dev *dev); diff --git a/mt7921/pci_mac.c b/mt7921/pci_mac.c index f9547d27..85286cc9 100644 --- a/mt7921/pci_mac.c +++ b/mt7921/pci_mac.c @@ -321,6 +321,10 @@ int mt7921e_mac_reset(struct mt7921_dev *dev) MT_INT_MCU_CMD); mt76_wr(dev, MT_PCIE_MAC_INT_ENABLE, 0xff); + err = mt7921e_driver_own(dev); + if (err) + return err; + err = mt7921_run_firmware(dev); if (err) goto out; diff --git a/mt7921/pci_mcu.c b/mt7921/pci_mcu.c index 583a89a3..7b34c7f2 100644 --- a/mt7921/pci_mcu.c +++ b/mt7921/pci_mcu.c @@ -4,7 +4,7 @@ #include "mt7921.h" #include "mcu.h" -static int mt7921e_driver_own(struct mt7921_dev *dev) +int mt7921e_driver_own(struct mt7921_dev *dev) { u32 reg = mt7921_reg_map_l1(dev, MT_TOP_LPCR_HOST_BAND0);