From cdec0a7a3e61e462b9f63d91c79df947d2521033 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Tue, 15 Dec 2015 23:19:53 +0100 Subject: [PATCH] mt7603: avoid firmware restart, it gets the MAC stuck Signed-off-by: Felix Fietkau --- mt7603_mcu.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/mt7603_mcu.c b/mt7603_mcu.c index 27a6689a..fdfbd262 100644 --- a/mt7603_mcu.c +++ b/mt7603_mcu.c @@ -188,14 +188,6 @@ mt7603_mcu_start_firmware(struct mt7603_dev *dev, u32 addr) return mt7603_mcu_msg_send(dev, skb, -MCU_CMD_FW_START_REQ, MCU_Q_NA, NULL); } -static int -mt7603_mcu_restart(struct mt7603_dev *dev) -{ - struct sk_buff *skb = mt7603_mcu_msg_alloc(dev, NULL, 0); - - return mt7603_mcu_msg_send(dev, skb, -MCU_CMD_RESTART_DL_REQ, MCU_Q_NA, NULL); -} - static int mt7603_load_firmware(struct mt7603_dev *dev) { @@ -237,13 +229,8 @@ mt7603_load_firmware(struct mt7603_dev *dev) val = mt76_rr(dev, MT_TOP_MISC2); if (val & BIT(1)) { - dev_info(dev->mt76.dev, "Firmware already running, restarting...\n"); - - ret = mt7603_mcu_restart(dev); - if (ret) { - dev_err(dev->mt76.dev, "Failed to restart the MCU\n"); - goto out; - } + dev_info(dev->mt76.dev, "Firmware already running...\n"); + goto running; } if (!mt76_poll(dev, MT_TOP_MISC2, BIT(0), BIT(0), 500)) { @@ -277,6 +264,7 @@ mt7603_load_firmware(struct mt7603_dev *dev) goto out; } +running: mt76_clear(dev, MT_SCH_4, MT_SCH_4_FORCE_QID | MT_SCH_4_BYPASS); mt76_set(dev, MT_SCH_4, BIT(8));