Commit 68c35ea2 authored by Gwendal Grignou's avatar Gwendal Grignou Committed by Benson Leung
Browse files

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: default avatarGwendal Grignou <gwendal@chromium.org>
Signed-off-by: default avatarEnric Balletbo i Serra <enric.balletbo@collabora.com>
Acked-by: default avatarLee Jones <lee.jones@linaro.org>
Signed-off-by: default avatarBenson Leung <bleung@chromium.org>
parent 32c1431e
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -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);
+10 −0
Original line number Diff line number Diff line
@@ -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;