mt76: mt7915: stop ext_phy queue when mac reset happens
authorRyder Lee <ryder.lee@mediatek.com>
Sat, 27 Feb 2021 07:39:45 +0000 (15:39 +0800)
committerFelix Fietkau <nbd@nbd.name>
Sun, 11 Apr 2021 22:01:23 +0000 (00:01 +0200)
Stop Tx burst for ext_phy after mac reset.

Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7915/mac.c

index 2a3c7b3..d3a6312 100644 (file)
@@ -1607,9 +1607,10 @@ void mt7915_mac_reset_work(struct work_struct *work)
        set_bit(MT76_MCU_RESET, &dev->mphy.state);
        wake_up(&dev->mt76.mcu.wait);
        cancel_delayed_work_sync(&dev->mphy.mac_work);
-       if (phy2)
+       if (phy2) {
+               set_bit(MT76_RESET, &phy2->mt76->state);
                cancel_delayed_work_sync(&phy2->mt76->mac_work);
-
+       }
        /* lock/unlock all queues to ensure that no tx is pending */
        mt76_txq_schedule_all(&dev->mphy);
        if (ext_phy)
@@ -1637,6 +1638,8 @@ void mt7915_mac_reset_work(struct work_struct *work)
 
        clear_bit(MT76_MCU_RESET, &dev->mphy.state);
        clear_bit(MT76_RESET, &dev->mphy.state);
+       if (phy2)
+               clear_bit(MT76_RESET, &phy2->mt76->state);
 
        mt76_worker_enable(&dev->mt76.tx_worker);
        napi_enable(&dev->mt76.tx_napi);