1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00

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: dfc7743de1 ("mt76: mt7921: refactor mcu.c to be bus independent")
Reported-by: YN Chen <YN.Chen@mediatek.com>
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
Sean Wang 2021-11-03 08:05:16 +08:00 committed by Felix Fietkau
parent 8c55516de3
commit 0efaf31dec
3 changed files with 6 additions and 1 deletions

View file

@ -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, void mt7921e_queue_rx_skb(struct mt76_dev *mdev, enum mt76_rxq_id q,
struct sk_buff *skb); struct sk_buff *skb);
int mt7921e_driver_own(struct mt7921_dev *dev);
int mt7921e_mac_reset(struct mt7921_dev *dev); int mt7921e_mac_reset(struct mt7921_dev *dev);
int mt7921e_mcu_init(struct mt7921_dev *dev); int mt7921e_mcu_init(struct mt7921_dev *dev);
int mt7921s_wfsys_reset(struct mt7921_dev *dev); int mt7921s_wfsys_reset(struct mt7921_dev *dev);

View file

@ -321,6 +321,10 @@ int mt7921e_mac_reset(struct mt7921_dev *dev)
MT_INT_MCU_CMD); MT_INT_MCU_CMD);
mt76_wr(dev, MT_PCIE_MAC_INT_ENABLE, 0xff); mt76_wr(dev, MT_PCIE_MAC_INT_ENABLE, 0xff);
err = mt7921e_driver_own(dev);
if (err)
return err;
err = mt7921_run_firmware(dev); err = mt7921_run_firmware(dev);
if (err) if (err)
goto out; goto out;

View file

@ -4,7 +4,7 @@
#include "mt7921.h" #include "mt7921.h"
#include "mcu.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); u32 reg = mt7921_reg_map_l1(dev, MT_TOP_LPCR_HOST_BAND0);