Merge tag 'tag-chrome-platform-for-v4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/bleung/chrome-platform
Pull chrome platform updates from Benson Leung: - Changes for EC_MKBP_EVENT_SENSOR_FIFO handling. - Also, maintainership changes. Olofj out, Enric balletbo in. * tag 'tag-chrome-platform-for-v4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/bleung/chrome-platform: MAINTAINERS: add maintainers for ChromeOS EC sub-drivers MAINTAINERS: platform/chrome: Add Enric as a maintainer MAINTAINERS: platform/chrome: remove myself as maintainer platform/chrome: don't report EC_MKBP_EVENT_SENSOR_FIFO as wakeup platform/chrome: straighten out cros_ec_get_{next,host}_event() error codes
This commit is contained in:
@@ -575,12 +575,13 @@ static int get_keyboard_state_event(struct cros_ec_device *ec_dev)
|
||||
|
||||
int cros_ec_get_next_event(struct cros_ec_device *ec_dev, bool *wake_event)
|
||||
{
|
||||
u8 event_type;
|
||||
u32 host_event;
|
||||
int ret;
|
||||
|
||||
if (!ec_dev->mkbp_event_supported) {
|
||||
ret = get_keyboard_state_event(ec_dev);
|
||||
if (ret < 0)
|
||||
if (ret <= 0)
|
||||
return ret;
|
||||
|
||||
if (wake_event)
|
||||
@@ -590,15 +591,26 @@ int cros_ec_get_next_event(struct cros_ec_device *ec_dev, bool *wake_event)
|
||||
}
|
||||
|
||||
ret = get_next_event(ec_dev);
|
||||
if (ret < 0)
|
||||
if (ret <= 0)
|
||||
return ret;
|
||||
|
||||
if (wake_event) {
|
||||
event_type = ec_dev->event_data.event_type;
|
||||
host_event = cros_ec_get_host_event(ec_dev);
|
||||
|
||||
/* Consider non-host_event as wake event */
|
||||
*wake_event = !host_event ||
|
||||
!!(host_event & ec_dev->host_event_wake_mask);
|
||||
/*
|
||||
* Sensor events need to be parsed by the sensor sub-device.
|
||||
* Defer them, and don't report the wakeup here.
|
||||
*/
|
||||
if (event_type == EC_MKBP_EVENT_SENSOR_FIFO)
|
||||
*wake_event = false;
|
||||
/* Masked host-events should not count as wake events. */
|
||||
else if (host_event &&
|
||||
!(host_event & ec_dev->host_event_wake_mask))
|
||||
*wake_event = false;
|
||||
/* Consider all other events as wake events. */
|
||||
else
|
||||
*wake_event = true;
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
Reference in New Issue
Block a user