summaryrefslogtreecommitdiffstats
path: root/drivers/pci
diff options
context:
space:
mode:
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>2012-11-15 00:13:50 +0100
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2012-11-15 00:13:50 +0100
commitdea553e3fc63c5e53a3f8741f0c9f840660cf06e (patch)
tree3f87bc48f50c318f248934e74de8206a8597480f /drivers/pci
parentLinux 3.7-rc5 (diff)
parentPM / QoS: Resume device before exposing/hiding PM QoS flags (diff)
downloadlinux-dea553e3fc63c5e53a3f8741f0c9f840660cf06e.tar.xz
linux-dea553e3fc63c5e53a3f8741f0c9f840660cf06e.zip
Merge branch 'pm-qos' into acpi-dev-pm
Material in the 'acpi-dev-pm' branch depends on 'pm-qos' commits.
Diffstat (limited to 'drivers/pci')
-rw-r--r--drivers/pci/pci-acpi.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c
index c5792d622dc4..63d6618a4804 100644
--- a/drivers/pci/pci-acpi.c
+++ b/drivers/pci/pci-acpi.c
@@ -17,6 +17,7 @@
#include <linux/pci-acpi.h>
#include <linux/pm_runtime.h>
+#include <linux/pm_qos.h>
#include "pci.h"
static DEFINE_MUTEX(pci_acpi_pm_notify_mtx);
@@ -257,11 +258,16 @@ static int acpi_pci_set_power_state(struct pci_dev *dev, pci_power_t state)
return -ENODEV;
switch (state) {
+ case PCI_D3cold:
+ if (dev_pm_qos_flags(&dev->dev, PM_QOS_FLAG_NO_POWER_OFF) ==
+ PM_QOS_FLAGS_ALL) {
+ error = -EBUSY;
+ break;
+ }
case PCI_D0:
case PCI_D1:
case PCI_D2:
case PCI_D3hot:
- case PCI_D3cold:
error = acpi_bus_set_power(handle, state_conv[state]);
}