On Wed, 11 Jan 2017, Enric Balletbo i Serra wrote:

> From: Gwendal Grignou <gwen...@chromium.org>
> 
> Add cros_ec_get_event() entry point to retrieve event within functions
> called by the notifier.
> 
> Signed-off-by: Gwendal Grignou <gwen...@chromium.org>
> Signed-off-by: Enric Balletbo i Serra <enric.balle...@collabora.com>
> ---
>  drivers/platform/chrome/cros_ec_proto.c | 20 ++++++++++++++++++++

>  include/linux/mfd/cros_ec.h             | 10 ++++++++++

Acked-by: Lee Jones <lee.jo...@linaro.org>

>  2 files changed, 30 insertions(+)
> 
> diff --git a/drivers/platform/chrome/cros_ec_proto.c 
> b/drivers/platform/chrome/cros_ec_proto.c
> index ed5dee7..7428c2b 100644
> --- a/drivers/platform/chrome/cros_ec_proto.c
> +++ b/drivers/platform/chrome/cros_ec_proto.c
> @@ -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);
> diff --git a/include/linux/mfd/cros_ec.h b/include/linux/mfd/cros_ec.h
> index b3d04de..be2c4eb 100644
> --- a/include/linux/mfd/cros_ec.h
> +++ b/include/linux/mfd/cros_ec.h
> @@ -299,6 +299,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;

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

-- 
You received this message because you are subscribed to "rtc-linux".
Membership options at http://groups.google.com/group/rtc-linux .
Please read http://groups.google.com/group/rtc-linux/web/checklist
before submitting a driver.
--- 
You received this message because you are subscribed to the Google Groups 
"rtc-linux" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rtc-linux+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to