]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/acpi/sleep.c
Merge branch 'for-rmk' of git://git.pengutronix.de/git/imx/linux-2.6
[karo-tx-linux.git] / drivers / acpi / sleep.c
index f01f8e84fd3dbe8bf370a9942af79a159ad865f5..f74834a544fd6b85eae3941ea9c5401f08a91450 100644 (file)
@@ -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");