diff --git a/mt7925/pci.c b/mt7925/pci.c index 4e734f4f..02ef09dd 100644 --- a/mt7925/pci.c +++ b/mt7925/pci.c @@ -650,6 +650,9 @@ static int mt7925_pci_probe(struct pci_dev *pdev, if (!mt7925_disable_aspm && mt76_pci_aspm_supported(pdev)) dev->aspm_supported = true; + if (is_mt7928(&dev->mt76)) + dev->skip_wpdma_reinit = true; + ret = __mt792x_mcu_fw_pmctrl(dev); if (ret) goto err_free_dev; diff --git a/mt792x.h b/mt792x.h index 5a1ba1cf..6187eb1f 100644 --- a/mt792x.h +++ b/mt792x.h @@ -273,6 +273,7 @@ struct mt792x_dev { bool hif_idle:1; bool hif_resumed:1; bool regd_change:1; + bool skip_wpdma_reinit:1; wait_queue_head_t wait; struct work_struct init_work; diff --git a/mt792x_dma.c b/mt792x_dma.c index 8ad94fa5..e74b95fd 100644 --- a/mt792x_dma.c +++ b/mt792x_dma.c @@ -418,6 +418,9 @@ int mt792x_wpdma_reinit_cond(struct mt792x_dev *dev) struct mt76_connac_pm *pm = &dev->pm; int err; + if (dev->skip_wpdma_reinit) + return 0; + /* check if the wpdma must be reinitialized */ if (mt792x_dma_need_reinit(dev)) { /* disable interrutpts */