mfd: cros_ec: Add helper for event notifier.
Add cros_ec_get_event() entry point to retrieve event within functions called by the notifier. Signed-off-by: Gwendal Grignou <gwendal@chromium.org> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com> Acked-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Benson Leung <bleung@chromium.org>
This commit is contained in:
Родитель
32c1431eea
Коммит
68c35ea25b
|
@ -494,3 +494,23 @@ int cros_ec_get_next_event(struct cros_ec_device *ec_dev)
|
|||
return get_keyboard_state_event(ec_dev);
|
||||
}
|
||||
EXPORT_SYMBOL(cros_ec_get_next_event);
|
||||
|
||||
u32 cros_ec_get_host_event(struct cros_ec_device *ec_dev)
|
||||
{
|
||||
u32 host_event;
|
||||
|
||||
BUG_ON(!ec_dev->mkbp_event_supported);
|
||||
|
||||
if (ec_dev->event_data.event_type != EC_MKBP_EVENT_HOST_EVENT)
|
||||
return 0;
|
||||
|
||||
if (ec_dev->event_size != sizeof(host_event)) {
|
||||
dev_warn(ec_dev->dev, "Invalid host event size\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
host_event = get_unaligned_le32(&ec_dev->event_data.data.host_event);
|
||||
|
||||
return host_event;
|
||||
}
|
||||
EXPORT_SYMBOL(cros_ec_get_host_event);
|
||||
|
|
|
@ -300,6 +300,16 @@ int cros_ec_query_all(struct cros_ec_device *ec_dev);
|
|||
*/
|
||||
int cros_ec_get_next_event(struct cros_ec_device *ec_dev);
|
||||
|
||||
/**
|
||||
* cros_ec_get_host_event - Return a mask of event set by the EC.
|
||||
*
|
||||
* When MKBP is supported, when the EC raises an interrupt,
|
||||
* We collect the events raised and call the functions in the ec notifier.
|
||||
*
|
||||
* This function is a helper to know which events are raised.
|
||||
*/
|
||||
u32 cros_ec_get_host_event(struct cros_ec_device *ec_dev);
|
||||
|
||||
/* sysfs stuff */
|
||||
extern struct attribute_group cros_ec_attr_group;
|
||||
extern struct attribute_group cros_ec_lightbar_attr_group;
|
||||
|
|
Загрузка…
Ссылка в новой задаче