]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mt76: mt76x02: reset MCU timeout counter earlier in watchdog reset
authorFelix Fietkau <nbd@nbd.name>
Tue, 10 Mar 2020 16:10:59 +0000 (17:10 +0100)
committerFelix Fietkau <nbd@nbd.name>
Tue, 17 Mar 2020 16:13:59 +0000 (17:13 +0100)
Ensure that MCU commands issued right after hardware reset are not dropped
and treated as failed.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c

index c7f028e73b6b79e6bbf2b94a3af92a1c7fdd0301..7dcc5d342e9f5f490ef26da85bc0de56456e0941 100644 (file)
@@ -461,6 +461,7 @@ static void mt76x02_watchdog_reset(struct mt76x02_dev *dev)
 
        mutex_lock(&dev->mt76.mutex);
 
+       dev->mcu_timeout = 0;
        if (restart)
                mt76x02_reset_state(dev);
 
@@ -544,10 +545,6 @@ static void mt76x02_check_tx_hang(struct mt76x02_dev *dev)
 restart:
        mt76x02_watchdog_reset(dev);
 
-       mutex_lock(&dev->mt76.mcu.mutex);
-       dev->mcu_timeout = 0;
-       mutex_unlock(&dev->mt76.mcu.mutex);
-
        dev->tx_hang_reset++;
        dev->tx_hang_check = 0;
        memset(dev->mt76.tx_dma_idx, 0xff,