aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuenter Roeck <[email protected]>2020-08-22 08:08:52 -0700
committerEnric Balletbo i Serra <[email protected]>2020-08-24 11:37:34 +0200
commit064df8851f4ac25f64c0323fc93c3f9705e1702d (patch)
treef248a66c7a56c8c1a636638f2e9c9d0bd04d93a5
parent1716420e8de2705cd16905134d1eaeda94272a17 (diff)
cros_ec_lightbar: Accept more error codes from cros_ec_cmd_xfer_status
Since commit c5cd2b47b203 ("platform/chrome: cros_ec_proto: Report command not supported") we can no longer assume that cros_ec_cmd_xfer_status() reports -EPROTO for all errors returned by the EC itself. A follow-up patch will change cros_ec_cmd_xfer_status() to report additional errors reported by the EC as distinguished Linux error codes. Handle this change by no longer assuming that -EPROTO is used to report all errors returned by the EC itself. Since errors reported by the EC are already reported in text form through sysfs attributes, extend this form of error reporting to all errors reported by cros_ec_cmd_xfer_status(). Cc: Gwendal Grignou <[email protected]> Cc: Yu-Hsuan Hsu <[email protected]> Cc: Prashant Malani <[email protected]> Cc: Brian Norris <[email protected]> Reviewed-by: Brian Norris <[email protected]> Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Enric Balletbo i Serra <[email protected]>
-rw-r--r--drivers/platform/chrome/cros_ec_lightbar.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/platform/chrome/cros_ec_lightbar.c b/drivers/platform/chrome/cros_ec_lightbar.c
index b59180bff5a3..8445cda57927 100644
--- a/drivers/platform/chrome/cros_ec_lightbar.c
+++ b/drivers/platform/chrome/cros_ec_lightbar.c
@@ -117,7 +117,7 @@ static int get_lightbar_version(struct cros_ec_dev *ec,
param = (struct ec_params_lightbar *)msg->data;
param->cmd = LIGHTBAR_CMD_VERSION;
ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg);
- if (ret < 0) {
+ if (ret < 0 && ret != -EINVAL) {
ret = 0;
goto exit;
}
@@ -298,11 +298,9 @@ static ssize_t sequence_show(struct device *dev,
goto exit;
ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg);
- if (ret == -EPROTO) {
- ret = scnprintf(buf, PAGE_SIZE,
- "ERROR: EC returned %d\n", msg->result);
- goto exit;
- } else if (ret < 0) {
+ if (ret < 0) {
+ ret = scnprintf(buf, PAGE_SIZE, "XFER / EC ERROR %d / %d\n",
+ ret, msg->result);
goto exit;
}