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.wyso...@intel.com>
Signed-off-by: Wenkai Du <wenkai...@intel.com>
---
 drivers/platform/chrome/cros_ec_lpc.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/platform/chrome/cros_ec_lpc.c 
b/drivers/platform/chrome/cros_ec_lpc.c
index af89e82eecd2..2a40c2b1a7ff 100644
--- a/drivers/platform/chrome/cros_ec_lpc.c
+++ b/drivers/platform/chrome/cros_ec_lpc.c
@@ -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)
-- 
2.16.1

Reply via email to