diff --git a/drivers/pci/controller/dwc/pcie-dw-rockchip.c b/drivers/pci/controller/dwc/pcie-dw-rockchip.c index d13194f311bf..4c19dc98ccce 100644 --- a/drivers/pci/controller/dwc/pcie-dw-rockchip.c +++ b/drivers/pci/controller/dwc/pcie-dw-rockchip.c @@ -1580,7 +1580,8 @@ static int rk_pcie_really_probe(void *p) dw_pcie_dbi_ro_wr_dis(pci); /* 7. framework misc settings */ - device_init_wakeup(dev, true); + if (rk_pcie->skip_scan_in_resume) + device_init_wakeup(dev, true); device_enable_async_suspend(dev); /* Enable async system PM for multiports SoC */ return 0; @@ -1747,8 +1748,10 @@ static int __maybe_unused rockchip_dw_pcie_suspend(struct device *dev) */ if (rk_pcie->skip_scan_in_resume) { rfkill_get_wifi_power_state(&power); - if (!power) + if (!power) { + device_init_wakeup(dev, false); goto no_l2; + } } /* 2. Broadcast PME_Turn_Off Message */ @@ -1862,6 +1865,8 @@ static int __maybe_unused rockchip_dw_pcie_resume(struct device *dev) dw_pcie_dbi_ro_wr_dis(rk_pcie->pci); rk_pcie->in_suspend = false; + if (rk_pcie->skip_scan_in_resume) + device_init_wakeup(dev, true); return 0; err: