mirror of
https://github.com/torvalds/linux.git
synced 2026-06-05 04:56:13 +02:00
PCI/PM: Set power.strict_midlayer in pci_pm_init()
The PCI bus type does not expect its runtime PM suspend callback function, pci_pm_runtime_suspend(), to be invoked at all during system- wide suspend and resume, and it does not expect its runtime resume callback function, pci_pm_runtime_resume(), to be invoked at any point when runtime PM is disabled for the given device during system-wide suspend and resume, so make it express that expectation by setting power.strict_midlayer for all PCI devices in pci_pm_prepare() and clear it in pci_pm_complete(). Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Acked-by: Bjorn Helgaas <bhelgaas@google.com> Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org> Link: https://patch.msgid.link/1925097.atdPhlSkOF@rjwysocki.net
This commit is contained in:
parent
325e3778ea
commit
f19dc0489e
|
|
@ -708,6 +708,8 @@ static int pci_pm_prepare(struct device *dev)
|
|||
struct pci_dev *pci_dev = to_pci_dev(dev);
|
||||
const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL;
|
||||
|
||||
dev_pm_set_strict_midlayer(dev, true);
|
||||
|
||||
if (pm && pm->prepare) {
|
||||
int error = pm->prepare(dev);
|
||||
if (error < 0)
|
||||
|
|
@ -749,6 +751,8 @@ static void pci_pm_complete(struct device *dev)
|
|||
if (pci_dev->current_state < pre_sleep_state)
|
||||
pm_request_resume(dev);
|
||||
}
|
||||
|
||||
dev_pm_set_strict_midlayer(dev, false);
|
||||
}
|
||||
|
||||
#else /* !CONFIG_PM_SLEEP */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user