diff options
author | Shaohua Li <shaohua.li@intel.com> | 2007-07-20 10:03:25 +0800 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2007-07-22 04:18:45 -0400 |
commit | 10b3dcae0f275e2546e55303d64ddbb58cec7599 (patch) | |
tree | bd075b5fb626bdadf17cf36eebf9c659194b8e74 /drivers/pci | |
parent | ab826ca4cf2fe8ebcfd21189ca8bfeb47ca88359 (diff) | |
download | op-kernel-dev-10b3dcae0f275e2546e55303d64ddbb58cec7599.zip op-kernel-dev-10b3dcae0f275e2546e55303d64ddbb58cec7599.tar.gz |
ACPI: ignore _PSx method for hotplugable PCI devices
If the ACPI device has _EJ0, ignore the device.
_PSx will set power for the slot,
and the hotplug driver will take care of _PSx.
Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/pci-acpi.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c index 5e866b9..67c63d1 100644 --- a/drivers/pci/pci-acpi.c +++ b/drivers/pci/pci-acpi.c @@ -271,6 +271,7 @@ static pci_power_t acpi_pci_choose_state(struct pci_dev *pdev, static int acpi_pci_set_power_state(struct pci_dev *dev, pci_power_t state) { acpi_handle handle = DEVICE_ACPI_HANDLE(&dev->dev); + acpi_handle tmp; static int state_conv[] = { [0] = 0, [1] = 1, @@ -282,6 +283,9 @@ static int acpi_pci_set_power_state(struct pci_dev *dev, pci_power_t state) if (!handle) return -ENODEV; + /* If the ACPI device has _EJ0, ignore the device */ + if (ACPI_SUCCESS(acpi_get_handle(handle, "_EJ0", &tmp))) + return 0; return acpi_bus_set_power(handle, acpi_state); } |