From: Shaohua Li Date: Fri, 20 Jul 2007 02:03:25 +0000 (+0800) Subject: ACPI: ignore _PSx method for hotplugable PCI devices X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=10b3dcae0f275e2546e55303d64ddbb58cec7599;p=openwrt%2Fstaging%2Fblogic.git 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 Signed-off-by: Len Brown --- diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c index 5e866b94bcab..67c63d1f1582 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); }