From: Doug Anderson <dianders@chromium.org>
To: Lee Jones <lee.jones@linaro.org>
Cc: Andrew Bresticker <abrestic@chromium.org>,
swarren@wwwdotorg.org, olof@lixom.net,
Sonny Rao <sonnyrao@chromium.org>,
linux-samsung-soc@vger.kernel.org,
Javier Martinez Canillas <javier.martinez@collabora.co.uk>,
Bill Richardson <wfrichar@chromium.org>,
sjg@chromium.org, Wolfram Sang <wsa@the-dreams.de>,
broonie@kernel.org, Doug Anderson <dianders@chromium.org>,
sameo@linux.intel.com, linux-kernel@vger.kernel.org
Subject: [PATCH 09/10] mfd: cros_ec: Check result code from EC messages
Date: Mon, 16 Jun 2014 14:39:59 -0700 [thread overview]
Message-ID: <1402954800-28215-10-git-send-email-dianders@chromium.org> (raw)
In-Reply-To: <1402954800-28215-1-git-send-email-dianders@chromium.org>
From: Bill Richardson <wfrichar@chromium.org>
Just because the host was able to talk to the EC doesn't mean that the EC
was happy with what it was told. Errors in communincation are not the same
as error messages from the EC itself.
This change lets the EC report its errors separately.
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Signed-off-by: Doug Anderson <dianders@chromium.org>
---
drivers/mfd/cros_ec_i2c.c | 15 +++++++++++----
drivers/mfd/cros_ec_spi.c | 26 ++++++++++++++------------
2 files changed, 25 insertions(+), 16 deletions(-)
diff --git a/drivers/mfd/cros_ec_i2c.c b/drivers/mfd/cros_ec_i2c.c
index 5bb32f5..2276096 100644
--- a/drivers/mfd/cros_ec_i2c.c
+++ b/drivers/mfd/cros_ec_i2c.c
@@ -92,11 +92,18 @@ static int cros_ec_cmd_xfer_i2c(struct cros_ec_device *ec_dev,
}
/* check response error code */
- if (i2c_msg[1].buf[0]) {
- dev_warn(ec_dev->dev, "command 0x%02x returned an error %d\n",
- msg->command, i2c_msg[1].buf[0]);
- ret = -EINVAL;
+ msg->result = i2c_msg[1].buf[0];
+ switch (msg->result) {
+ case EC_RES_SUCCESS:
+ break;
+ case EC_RES_IN_PROGRESS:
+ ret = -EAGAIN;
+ dev_dbg(ec_dev->dev, "command 0x%02x in progress\n",
+ msg->command);
goto done;
+ default:
+ dev_warn(ec_dev->dev, "command 0x%02x returned %d\n",
+ msg->command, msg->result);
}
/* copy response packet payload and compute checksum */
diff --git a/drivers/mfd/cros_ec_spi.c b/drivers/mfd/cros_ec_spi.c
index 09ca789..4d34f1c 100644
--- a/drivers/mfd/cros_ec_spi.c
+++ b/drivers/mfd/cros_ec_spi.c
@@ -289,21 +289,23 @@ static int cros_ec_cmd_xfer_spi(struct cros_ec_device *ec_dev,
goto exit;
}
- /* check response error code */
ptr = ec_dev->din;
- if (ptr[0]) {
- if (ptr[0] == EC_RES_IN_PROGRESS) {
- dev_dbg(ec_dev->dev, "command 0x%02x in progress\n",
- ec_msg->command);
- ret = -EAGAIN;
- goto exit;
- }
- dev_warn(ec_dev->dev, "command 0x%02x returned an error %d\n",
- ec_msg->command, ptr[0]);
- debug_packet(ec_dev->dev, "in_err", ptr, len);
- ret = -EINVAL;
+
+ /* check response error code */
+ ec_msg->result = ptr[0];
+ switch (ec_msg->result) {
+ case EC_RES_SUCCESS:
+ break;
+ case EC_RES_IN_PROGRESS:
+ ret = -EAGAIN;
+ dev_dbg(ec_dev->dev, "command 0x%02x in progress\n",
+ ec_msg->command);
goto exit;
+ default:
+ dev_warn(ec_dev->dev, "command 0x%02x returned %d\n",
+ ec_msg->command, ec_msg->result);
}
+
len = ptr[1];
sum = ptr[0] + ptr[1];
if (len > ec_msg->insize) {
--
2.0.0.526.g5318336
next prev parent reply other threads:[~2014-06-16 21:41 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-16 21:39 [PATCH 0/10] Batch of cleanup patches for cros_ec Doug Anderson
2014-06-16 21:39 ` [PATCH 01/10] mfd: cros_ec: Fix the comment on cros_ec_remove() Doug Anderson
2014-06-18 7:57 ` Lee Jones
2014-06-18 16:26 ` Doug Anderson
2014-06-18 16:39 ` Lee Jones
2014-06-16 21:39 ` [PATCH 02/10] mfd: cros_ec: IRQs for cros_ec should be optional Doug Anderson
2014-06-18 3:29 ` Simon Glass
2014-06-18 7:55 ` Lee Jones
2014-06-18 16:23 ` Doug Anderson
2014-06-18 16:46 ` Lee Jones
2014-06-18 17:45 ` Doug Anderson
2014-06-16 21:39 ` [PATCH 03/10] mfd: cros_ec: Allow static din/dout buffers with cros_ec_register() Doug Anderson
2014-06-18 3:29 ` Simon Glass
2014-06-18 7:53 ` Lee Jones
2014-06-18 16:35 ` Doug Anderson
2014-06-16 21:39 ` [PATCH 04/10] mfd: cros_ec: Tweak struct cros_ec_device for clarity Doug Anderson
2014-06-18 3:35 ` Simon Glass
2014-06-18 4:16 ` Doug Anderson
2014-06-18 7:49 ` Lee Jones
2014-06-16 21:39 ` [PATCH 05/10] mdf: cros_ec: Detect in-progress commands Doug Anderson
2014-06-18 7:46 ` Lee Jones
2014-06-16 21:39 ` [PATCH 06/10] mfd: cros_ec: Use struct cros_ec_command to communicate with the EC Doug Anderson
2014-06-18 7:45 ` Lee Jones
2014-06-16 21:39 ` [PATCH 07/10] mfd: cros_ec: cleanup: remove unused fields from struct cros_ec_device Doug Anderson
2014-06-18 3:39 ` Simon Glass
2014-06-18 4:22 ` Doug Anderson
2014-06-18 4:25 ` Simon Glass
2014-06-18 4:30 ` Doug Anderson
2014-06-18 7:41 ` Lee Jones
2014-06-16 21:39 ` [PATCH 08/10] mfd: cros_ec: cleanup: Remove EC wrapper functions Doug Anderson
2014-06-18 3:42 ` Simon Glass
2014-06-18 4:27 ` Doug Anderson
2014-06-18 5:05 ` Simon Glass
2014-06-18 7:40 ` Lee Jones
2014-06-16 21:39 ` Doug Anderson [this message]
2014-06-18 3:43 ` [PATCH 09/10] mfd: cros_ec: Check result code from EC messages Simon Glass
2014-06-18 4:44 ` Doug Anderson
2014-06-18 7:35 ` Lee Jones
2014-06-16 21:40 ` [PATCH 10/10] mfd: cros_ec: ec_dev->cmd_xfer() returns number of bytes received from EC Doug Anderson
2014-06-18 3:46 ` Simon Glass
2014-06-18 4:54 ` Doug Anderson
2014-06-18 5:07 ` Simon Glass
2014-06-18 7:34 ` Lee Jones
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=1402954800-28215-10-git-send-email-dianders@chromium.org \
--to=dianders@chromium.org \
--cc=abrestic@chromium.org \
--cc=broonie@kernel.org \
--cc=javier.martinez@collabora.co.uk \
--cc=lee.jones@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=olof@lixom.net \
--cc=sameo@linux.intel.com \
--cc=sjg@chromium.org \
--cc=sonnyrao@chromium.org \
--cc=swarren@wwwdotorg.org \
--cc=wfrichar@chromium.org \
--cc=wsa@the-dreams.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).