• Bjorn Helgaas's avatar
    PCI/PM: Run resume fixups before disabling wakeup events · f7b32a86
    Bjorn Helgaas authored
    pci_pm_resume() and pci_pm_restore() call pci_pm_default_resume(), which
    runs resume fixups before disabling wakeup events:
    
      static void pci_pm_default_resume(struct pci_dev *pci_dev)
      {
        pci_fixup_device(pci_fixup_resume, pci_dev);
        pci_enable_wake(pci_dev, PCI_D0, false);
      }
    
    pci_pm_runtime_resume() does both of these, but in the opposite order:
    
      pci_enable_wake(pci_dev, PCI_D0, false);
      pci_fixup_device(pci_fixup_resume, pci_dev);
    
    We should always use the same ordering unless there's a reason to do
    otherwise.  Change pci_pm_runtime_resume() to call pci_pm_default_resume()
    instead of open-coding this, so the fixups are always done before disabling
    wakeup events.
    
    pci_pm_default_resume() is called from pci_pm_runtime_resume(), which is
    under #ifdef CONFIG_PM.  If SUSPEND and HIBERNATION are disabled, PM_SLEEP
    is disabled also, so move pci_pm_default_resume() from #ifdef
    CONFIG_PM_SLEEP to #ifdef CONFIG_PM.
    
    Link: https://lore.kernel.org/r/20191014230016.240912-5-helgaas@kernel.orgSigned-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    f7b32a86
pci-driver.c 42.7 KB