summaryrefslogtreecommitdiffstats
path: root/drivers/mfd/cros_ec_i2c.c
diff options
context:
space:
mode:
authorBill Richardson <wfrichar@chromium.org>2014-06-18 20:14:05 +0200
committerLee Jones <lee.jones@linaro.org>2014-07-09 15:58:19 +0200
commit6db07b6336589ff480528173e41f8f6af3f0097f (patch)
tree306bf3f92d5bc8920c8ae668e3e8c93534351d85 /drivers/mfd/cros_ec_i2c.c
parentmfd: cros_ec: cleanup: Remove EC wrapper functions (diff)
downloadlinux-6db07b6336589ff480528173e41f8f6af3f0097f.tar.xz
linux-6db07b6336589ff480528173e41f8f6af3f0097f.zip
mfd: cros_ec: Check result code from EC messages
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. [dianders: Added common function to cros_ec.c] Signed-off-by: Bill Richardson <wfrichar@chromium.org> Signed-off-by: Doug Anderson <dianders@chromium.org> Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'drivers/mfd/cros_ec_i2c.c')
-rw-r--r--drivers/mfd/cros_ec_i2c.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/mfd/cros_ec_i2c.c b/drivers/mfd/cros_ec_i2c.c
index 5bb32f5550b3..189e7d1d7742 100644
--- a/drivers/mfd/cros_ec_i2c.c
+++ b/drivers/mfd/cros_ec_i2c.c
@@ -92,12 +92,10 @@ 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];
+ ret = cros_ec_check_result(ec_dev, msg);
+ if (ret)
goto done;
- }
/* copy response packet payload and compute checksum */
sum = in_buf[0] + in_buf[1];