X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;ds=sidebyside;f=drivers%2Facpi%2Fsleep.c;h=f74834a544fd6b85eae3941ea9c5401f08a91450;hb=ec28dcc6b4c00b78ad269ad5b85ebd5c2d504825;hp=f01f8e84fd3dbe8bf370a9942af79a159ad865f5;hpb=f6bb13aa1ea3bb26a4c783822347873f085b9000;p=safe%2Fjmp%2Flinux-2.6 diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c index f01f8e8..f74834a 100644 --- a/drivers/acpi/sleep.c +++ b/drivers/acpi/sleep.c @@ -754,9 +754,18 @@ int acpi_pm_device_sleep_wake(struct device *dev, bool enable) return -ENODEV; } - error = enable ? - acpi_enable_wakeup_device_power(adev, acpi_target_sleep_state) : - acpi_disable_wakeup_device_power(adev); + if (enable) { + error = acpi_enable_wakeup_device_power(adev, + acpi_target_sleep_state); + if (!error) + acpi_enable_gpe(adev->wakeup.gpe_device, + adev->wakeup.gpe_number, + ACPI_GPE_TYPE_WAKE); + } else { + acpi_disable_gpe(adev->wakeup.gpe_device, adev->wakeup.gpe_number, + ACPI_GPE_TYPE_WAKE); + error = acpi_disable_wakeup_device_power(adev); + } if (!error) dev_info(dev, "wake-up capability %s by ACPI\n", enable ? "enabled" : "disabled");