Skip to content

Commit

Permalink
Merge tag 'tag-chrome-platform-for-v4.21' of git://git.kernel.org/pub…
Browse files Browse the repository at this point in the history
…/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
  • Loading branch information
torvalds committed Jan 6, 2019
2 parents 66e012f + cdd6a4a commit 1213325
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 8 deletions.
11 changes: 10 additions & 1 deletion MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -3674,11 +3674,20 @@ F: drivers/input/touchscreen/chipone_icn8505.c

CHROME HARDWARE PLATFORM SUPPORT
M: Benson Leung <[email protected]>
M: Olof Johansson <[email protected]>
M: Enric Balletbo i Serra <[email protected]>
S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/bleung/chrome-platform.git
F: drivers/platform/chrome/

CHROMEOS EC SUBDRIVERS
M: Benson Leung <[email protected]>
M: Enric Balletbo i Serra <[email protected]>
R: Guenter Roeck <[email protected]>
S: Maintained
N: cros_ec
N: cros-ec
F: drivers/power/supply/cros_usbpd-charger.c

CIRRUS LOGIC AUDIO CODEC DRIVERS
M: Brian Austin <[email protected]>
M: Paul Handrigan <[email protected]>
Expand Down
22 changes: 17 additions & 5 deletions drivers/platform/chrome/cros_ec_proto.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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;
Expand Down
6 changes: 4 additions & 2 deletions include/linux/mfd/cros_ec.h
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,9 @@ int cros_ec_query_all(struct cros_ec_device *ec_dev);
* @wake_event: Pointer to a bool set to true upon return if the event might be
* treated as a wake event. Ignored if null.
*
* Return: 0 on success or negative error code.
* Return: negative error code on errors; 0 for no data; or else number of
* bytes received (i.e., an event was retrieved successfully). Event types are
* written out to @ec_dev->event_data.event_type on success.
*/
int cros_ec_get_next_event(struct cros_ec_device *ec_dev, bool *wake_event);

Expand All @@ -329,7 +331,7 @@ int cros_ec_get_next_event(struct cros_ec_device *ec_dev, bool *wake_event);
* events raised and call the functions in the ec notifier. This function
* is a helper to know which events are raised.
*
* Return: 0 on success or negative error code.
* Return: 0 on error or non-zero bitmask of one or more EC_HOST_EVENT_*.
*/
u32 cros_ec_get_host_event(struct cros_ec_device *ec_dev);

Expand Down

0 comments on commit 1213325

Please sign in to comment.