summaryrefslogtreecommitdiffstats
path: root/drivers/platform
diff options
context:
space:
mode:
authorEvan Green <evgreen@chromium.org>2019-04-03 14:34:28 -0700
committerLee Jones <lee.jones@linaro.org>2019-05-14 08:13:27 +0100
commit7235560ac77a2516b84b86946debaa4fb951ed9b (patch)
treeb0dd3de2e289e8b8b9ed6bc0ce376177b9cc36d9 /drivers/platform
parentafe2bb5c4b6227a347be60c70df2890c3f57553d (diff)
downloadlinux-stable-7235560ac77a2516b84b86946debaa4fb951ed9b.tar.gz
linux-stable-7235560ac77a2516b84b86946debaa4fb951ed9b.tar.bz2
linux-stable-7235560ac77a2516b84b86946debaa4fb951ed9b.zip
platform/chrome: Add support for v1 of host sleep event
Add support in code for the new forms of the host sleep event. Detects the presence of this version of the command at runtime, and use whichever form the EC supports. At this time, always request the default timeout, and only report the failing response via a WARN_ONCE(). Future versions could accept the sleep parameter from outside the driver, and return the response information to usermode or elsewhere. Signed-off-by: Evan Green <evgreen@chromium.org> Reviewed-by: Rajat Jain <rajatja@chromium.org> Reviewed-by: Guenter Roeck <groeck@chromium.org> Acked-by: Enric Balletbo i Serra <enric.balletbo@collabora.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'drivers/platform')
-rw-r--r--drivers/platform/chrome/cros_ec_proto.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/platform/chrome/cros_ec_proto.c b/drivers/platform/chrome/cros_ec_proto.c
index 97a068dff192..52ca564a64e7 100644
--- a/drivers/platform/chrome/cros_ec_proto.c
+++ b/drivers/platform/chrome/cros_ec_proto.c
@@ -414,6 +414,12 @@ int cros_ec_query_all(struct cros_ec_device *ec_dev)
else
ec_dev->mkbp_event_supported = 1;
+ /* Probe if host sleep v1 is supported for S0ix failure detection. */
+ ret = cros_ec_get_host_command_version_mask(ec_dev,
+ EC_CMD_HOST_SLEEP_EVENT,
+ &ver_mask);
+ ec_dev->host_sleep_v1 = (ret >= 0 && (ver_mask & EC_VER_MASK(1)));
+
/*
* Get host event wake mask, assume all events are wake events
* if unavailable.