From: Felix Fietkau Date: Tue, 10 Mar 2020 16:10:59 +0000 (+0100) Subject: mt76: mt76x02: reset MCU timeout counter earlier in watchdog reset X-Git-Tag: block-5.7-2020-04-09~9^2~86^2~25^2~27 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=e58f6e0625c581b6d10962c35eace02590f8ce75;p=linux-block.git mt76: mt76x02: reset MCU timeout counter earlier in watchdog reset Ensure that MCU commands issued right after hardware reset are not dropped and treated as failed. Signed-off-by: Felix Fietkau --- diff --git a/drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c b/drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c index c7f028e73b6b..7dcc5d342e9f 100644 --- a/drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c +++ b/drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c @@ -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,