return err;
        }
 
+       if (!dev->pm.enable)
+               mt76_connac_mcu_set_deep_sleep(&dev->mt76, true);
+
        napi_disable(&mdev->tx_napi);
        mt76_worker_disable(&mdev->tx_worker);
 
                napi_enable(&mdev->napi[i]);
        }
        napi_enable(&mdev->tx_napi);
+
+       if (!dev->pm.enable)
+               mt76_connac_mcu_set_deep_sleep(&dev->mt76, false);
+
        if (hif_suspend)
                mt76_connac_mcu_set_hif_suspend(mdev, false);
 
        if (err < 0)
                return err;
 
+       mt7921_wpdma_reinit_cond(dev);
+
        /* enable interrupt */
        mt76_wr(dev, MT_PCIE_MAC_INT_ENABLE, 0xff);
        mt7921_irq_enable(dev, MT_INT_RX_DONE_ALL | MT_INT_TX_DONE_ALL |
        napi_enable(&mdev->tx_napi);
        napi_schedule(&mdev->tx_napi);
 
+       if (!dev->pm.enable)
+               mt76_connac_mcu_set_deep_sleep(&dev->mt76, false);
+
        if (!test_bit(MT76_STATE_SUSPEND, &dev->mphy.state))
                err = mt76_connac_mcu_set_hif_suspend(mdev, false);