PCI / PM: Disable wakeup during shutdown for devices not enabled to wake up
[deliverable/linux.git] / drivers / pci / pci-driver.c
index 3623d65f8b86ccb9d786085ec57592d2e890292c..5d19695c771a78f71c02205c2fd5d4cf387c1010 100644 (file)
@@ -430,6 +430,16 @@ static void pci_device_shutdown(struct device *dev)
                drv->shutdown(pci_dev);
        pci_msi_shutdown(pci_dev);
        pci_msix_shutdown(pci_dev);
+
+       /*
+        * Devices may be enabled to wake up by runtime PM, but they need not
+        * be supposed to wake up the system from its "power off" state (e.g.
+        * ACPI S5).  Therefore disable wakeup for all devices that aren't
+        * supposed to wake up the system at this point.  The state argument
+        * will be ignored by pci_enable_wake().
+        */
+       if (!device_may_wakeup(dev))
+               pci_enable_wake(pci_dev, PCI_UNKNOWN, false);
 }
 
 #ifdef CONFIG_PM
This page took 0.039622 seconds and 5 git commands to generate.