diff options
author | Enric Balletbo i Serra <enric.balletbo@collabora.com> | 2019-11-21 11:52:51 +0100 |
---|---|---|
committer | Enric Balletbo i Serra <enric.balletbo@collabora.com> | 2019-11-21 11:52:51 +0100 |
commit | 5ec966dbcc1935cfd429ffba22b837b88219cfcb (patch) | |
tree | b77800a591d083134c8e6e45b83ecd0b71cd0438 /drivers/platform/chrome/cros_ec_lpc.c | |
parent | c2ce4d23299fc8c40d5f20f2536eb56838c27762 (diff) | |
parent | 99cdb2472bb0466b9e73e27bc4ac769999313af8 (diff) |
Merge tag 'tag-ib-chrome-mfd-iio-input-5.5' into chrome-platform-5.5
IB between mfd, iio, input and chrome platform for cros-ec-sensorhub
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Diffstat (limited to 'drivers/platform/chrome/cros_ec_lpc.c')
-rw-r--r-- | drivers/platform/chrome/cros_ec_lpc.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/drivers/platform/chrome/cros_ec_lpc.c b/drivers/platform/chrome/cros_ec_lpc.c index 7d10d909435f..dccf479c6625 100644 --- a/drivers/platform/chrome/cros_ec_lpc.c +++ b/drivers/platform/chrome/cros_ec_lpc.c @@ -312,11 +312,20 @@ static int cros_ec_lpc_readmem(struct cros_ec_device *ec, unsigned int offset, static void cros_ec_lpc_acpi_notify(acpi_handle device, u32 value, void *data) { struct cros_ec_device *ec_dev = data; + bool ec_has_more_events; + int ret; - if (ec_dev->mkbp_event_supported && - cros_ec_get_next_event(ec_dev, NULL) > 0) - blocking_notifier_call_chain(&ec_dev->event_notifier, 0, - ec_dev); + ec_dev->last_event_time = cros_ec_get_time_ns(); + + if (ec_dev->mkbp_event_supported) + do { + ret = cros_ec_get_next_event(ec_dev, NULL, + &ec_has_more_events); + if (ret > 0) + blocking_notifier_call_chain( + &ec_dev->event_notifier, 0, + ec_dev); + } while (ec_has_more_events); if (value == ACPI_NOTIFY_DEVICE_WAKE) pm_system_wakeup(); |