All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tomeu Vizoso <tomeu.vizoso@collabora.com>
To: linux-kernel@vger.kernel.org
Cc: "Sameer Nanda" <snanda@chromium.org>,
	"Javier Martinez Canillas" <javier@osg.samsung.com>,
	"Lee Jones" <lee.jones@linaro.org>,
	"Benson Leung" <bleung@chromium.org>,
	"Enric Balletbò" <enric.balletbo@collabora.co.uk>,
	"Vic Yang" <victoryang@chromium.org>,
	"Stephen Boyd" <sboyd@codeaurora.org>,
	"Vincent Palatin" <vpalatin@chromium.org>,
	"Randall Spangler" <rspangler@chromium.org>,
	"Todd Broch" <tbroch@chromium.org>,
	"Gwendal Grignou" <gwendal@chromium.org>,
	"Tomeu Vizoso" <tomeu.vizoso@collabora.com>,
	"Olof Johansson" <olof@lixom.net>
Subject: [PATCH v8 4/7] mfd: cros_ec: Add cros_ec_get_host_event
Date: Tue, 12 Apr 2016 14:32:27 +0200	[thread overview]
Message-ID: <1460464350-30414-5-git-send-email-tomeu.vizoso@collabora.com> (raw)
In-Reply-To: <1460464350-30414-1-git-send-email-tomeu.vizoso@collabora.com>

This function returns the code for the host event that triggered the
interrupt that is being currently handled.

Is to be used by observers of the event_notifier in the EC device.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
---

Changes in v8:
- Remove unnecessary variable host_event

Changes in v7: None
Changes in v6:
- Return 0 if the EC doesn't support MKBP, as expected by callers.

Changes in v5: None
Changes in v4: None
Changes in v3: None
Changes in v2: None

 drivers/platform/chrome/cros_ec_proto.c | 20 ++++++++++++++++++++
 include/linux/mfd/cros_ec.h             |  9 +++++++++
 2 files changed, 29 insertions(+)

diff --git a/drivers/platform/chrome/cros_ec_proto.c b/drivers/platform/chrome/cros_ec_proto.c
index f9677747cb3e..da4188eecea4 100644
--- a/drivers/platform/chrome/cros_ec_proto.c
+++ b/drivers/platform/chrome/cros_ec_proto.c
@@ -487,3 +487,23 @@ int cros_ec_cmd_xfer_status(struct cros_ec_device *ec_dev,
 	return ret;
 }
 EXPORT_SYMBOL(cros_ec_cmd_xfer_status);
+
+u32 cros_ec_get_host_event(struct cros_ec_device *ec_dev)
+{
+	if (!ec_dev->mkbp_event_supported) {
+		dev_warn(ec_dev->dev,
+			 "This EC does not support EC_MKBP_EVENT_HOST_EVENT");
+		return 0;
+	}
+
+	if (ec_dev->event_data.event_type != EC_MKBP_EVENT_HOST_EVENT)
+		return 0;
+
+	if (ec_dev->event_size != sizeof(ec_dev->event_data.data.host_event)) {
+		dev_warn(ec_dev->dev, "Invalid host event size\n");
+		return 0;
+	}
+
+	return get_unaligned_le32(&ec_dev->event_data.data.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 5d965aff5065..a39ed030d34f 100644
--- a/include/linux/mfd/cros_ec.h
+++ b/include/linux/mfd/cros_ec.h
@@ -288,6 +288,15 @@ 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.
+ *
+ * @ec_dev: Device to fetch event from
+ *
+ * Returns: event mask of the event that caused the last interrupt to be raised
+ */
+uint32_t 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;
-- 
2.5.5

  parent reply	other threads:[~2016-04-12 12:33 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-12 12:32 [PATCH v8 0/7] EC-based USB Power Delivery support for Chrome machines Tomeu Vizoso
2016-04-12 12:32 ` [PATCH v8 1/7] mfd: cros_ec: Add MKBP event support Tomeu Vizoso
2016-04-12 12:32 ` [PATCH v8 2/7] Input: cros_ec_keyb - Stop handling interrupts directly Tomeu Vizoso
2016-04-25 21:17   ` Dmitry Torokhov
2016-04-26  6:34     ` Tomeu Vizoso
2016-04-26  6:57       ` Lee Jones
2016-04-26  6:57         ` Lee Jones
2016-04-26  7:06         ` Tomeu Vizoso
2016-07-01  8:49           ` Enric Balletbo Serra
2016-07-04 11:23             ` Tomeu Vizoso
2016-04-12 12:32 ` [PATCH v8 3/7] mfd: cros_ec: Add cros_ec_cmd_xfer_status helper Tomeu Vizoso
2016-04-12 12:32 ` Tomeu Vizoso [this message]
2016-04-12 12:32 ` [PATCH v8 5/7] mfd: cros_ec: Add more definitions for PD commands Tomeu Vizoso
2016-04-12 12:32 ` [PATCH v8 6/7] power: cros_usbpd-charger: Add EC-based USB PD charger driver Tomeu Vizoso
2016-04-20  7:42   ` Tomeu Vizoso
2016-04-26 10:47     ` Enric Balletbo i Serra
2016-05-09 12:59       ` Tomeu Vizoso
2016-04-12 12:32 ` [PATCH v8 7/7] platform/chrome: Register USB PD charger device Tomeu Vizoso

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1460464350-30414-5-git-send-email-tomeu.vizoso@collabora.com \
    --to=tomeu.vizoso@collabora.com \
    --cc=bleung@chromium.org \
    --cc=enric.balletbo@collabora.co.uk \
    --cc=gwendal@chromium.org \
    --cc=javier@osg.samsung.com \
    --cc=lee.jones@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=olof@lixom.net \
    --cc=rspangler@chromium.org \
    --cc=sboyd@codeaurora.org \
    --cc=snanda@chromium.org \
    --cc=tbroch@chromium.org \
    --cc=victoryang@chromium.org \
    --cc=vpalatin@chromium.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.