wifi: mt76: mt7915: avoid long MCU command timeouts during SER
authorFelix Fietkau <nbd@nbd.name>
Tue, 27 Aug 2024 09:30:11 +0000 (11:30 +0200)
committerFelix Fietkau <nbd@nbd.name>
Fri, 6 Sep 2024 12:23:07 +0000 (14:23 +0200)
Immediately abort MCU commands when firmware requests DMA restart.

Link: https://patch.msgid.link/20240827093011.18621-24-nbd@nbd.name
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7915/mac.c

index 54974ff72a5b79437c832edb2b45fa735b1c6022..cf77ce0c875991efed17b7616c1bf64f8dfdc59d 100644 (file)
@@ -1696,6 +1696,11 @@ void mt7915_reset(struct mt7915_dev *dev)
                return;
        }
 
+       if ((READ_ONCE(dev->recovery.state) & MT_MCU_CMD_STOP_DMA)) {
+               set_bit(MT76_MCU_RESET, &dev->mphy.state);
+               wake_up(&dev->mt76.mcu.wait);
+       }
+
        queue_work(dev->mt76.wq, &dev->reset_work);
        wake_up(&dev->reset_wait);
 }