From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751771AbdAMNSx (ORCPT ); Fri, 13 Jan 2017 08:18:53 -0500 Received: from mail-wm0-f52.google.com ([74.125.82.52]:37855 "EHLO mail-wm0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751406AbdAMNSv (ORCPT ); Fri, 13 Jan 2017 08:18:51 -0500 Date: Fri, 13 Jan 2017 13:22:38 +0000 From: Lee Jones To: Enric Balletbo i Serra Cc: linux-kernel@vger.kernel.org, rtc-linux@googlegroups.com, Olof Johansson , Alessandro Zummo , Alexandre Belloni , Stephen Barber , Gwendal Grignou Subject: Re: [PATCH 1/4] mfd: cros_ec: Add helper for event notifier. Message-ID: <20170113132238.GB6864@dell> References: <20170111165221.17337-1-enric.balletbo@collabora.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20170111165221.17337-1-enric.balletbo@collabora.com> User-Agent: Mutt/1.6.2 (2016-07-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 11 Jan 2017, Enric Balletbo i Serra wrote: > From: Gwendal Grignou > > Add cros_ec_get_event() entry point to retrieve event within functions > called by the notifier. > > Signed-off-by: Gwendal Grignou > Signed-off-by: Enric Balletbo i Serra > --- > drivers/platform/chrome/cros_ec_proto.c | 20 ++++++++++++++++++++ > include/linux/mfd/cros_ec.h | 10 ++++++++++ Acked-by: Lee Jones > 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