platform/chrome: cros_ec_lpc: wake up from s2idle on Chrome EC
authorWenkai Du <wenkai.du@intel.com>
Thu, 22 Feb 2018 21:21:17 +0000 (13:21 -0800)
committerBenson Leung <bleung@chromium.org>
Tue, 10 Apr 2018 05:57:46 +0000 (22:57 -0700)
Chrome platform installed a Chrome EC notify handler which prevents
default EC GPE handler getting called. Add pm_system_wakeup to the
Chrome EC notify handler so wake up from s2idle can happen.

Suggested-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Wenkai Du <wenkai.du@intel.com>
Signed-off-by: Benson Leung <bleung@chromium.org>
drivers/platform/chrome/cros_ec_lpc.c

index af89e82..2a40c2b 100644 (file)
@@ -31,6 +31,7 @@
 #include <linux/module.h>
 #include <linux/platform_device.h>
 #include <linux/printk.h>
+#include <linux/suspend.h>
 
 #define DRV_NAME "cros_ec_lpcs"
 #define ACPI_DRV_NAME "GOOG0004"
@@ -235,6 +236,9 @@ static void cros_ec_lpc_acpi_notify(acpi_handle device, u32 value, void *data)
            cros_ec_get_next_event(ec_dev, NULL) > 0)
                blocking_notifier_call_chain(&ec_dev->event_notifier, 0,
                                             ec_dev);
+
+       if (value == ACPI_NOTIFY_DEVICE_WAKE)
+               pm_system_wakeup();
 }
 
 static int cros_ec_lpc_probe(struct platform_device *pdev)