When the system is going to S5 resuming devices is unnecessary at best and may cause problems for power consumption at S5 at worst. Check the target `system_state` in the pci driver shutdown() callback and skip the runtime resume step if the system is being powered off. Cc: mpearson-lenovo@xxxxxxxxx Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx> --- drivers/pci/pci-driver.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c index 51ec9e7e784f..5a6f7a786952 100644 --- a/drivers/pci/pci-driver.c +++ b/drivers/pci/pci-driver.c @@ -507,7 +507,9 @@ static void pci_device_shutdown(struct device *dev) struct pci_dev *pci_dev = to_pci_dev(dev); struct pci_driver *drv = pci_dev->driver; - pm_runtime_resume(dev); + /* If system will go to S5, don't wake up PCI devices for shutdown */ + if (system_state != SYSTEM_POWER_OFF) + pm_runtime_resume(dev); if (drv && drv->shutdown) drv->shutdown(pci_dev); -- 2.34.1