platform/chrome: cros_ec_lightbar: Use cros_ec_cmd_xfer_status helper

This patch makes use of cros_ec_cmd_xfer_status() instead of
cros_ec_cmd_xfer(). It allows us to remove some redundand code. In this
case, though, we are changing a bit the behaviour because of returning
-EINVAL on protocol error we propagate the error return for
cros_ec_cmd_xfer_status() function, but I think it will be fine, even
more clear as we don't mask the Linux error code.
Signed-off-by: default avatarEnric Balletbo i Serra <enric.balletbo@collabora.com>
Tested-by: default avatarPrashant Malani <pmalani@chromium.org>
parent 72540a57
...@@ -116,7 +116,7 @@ static int get_lightbar_version(struct cros_ec_dev *ec, ...@@ -116,7 +116,7 @@ static int get_lightbar_version(struct cros_ec_dev *ec,
param = (struct ec_params_lightbar *)msg->data; param = (struct ec_params_lightbar *)msg->data;
param->cmd = LIGHTBAR_CMD_VERSION; param->cmd = LIGHTBAR_CMD_VERSION;
ret = cros_ec_cmd_xfer(ec->ec_dev, msg); ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg);
if (ret < 0) { if (ret < 0) {
ret = 0; ret = 0;
goto exit; goto exit;
...@@ -193,15 +193,10 @@ static ssize_t brightness_store(struct device *dev, ...@@ -193,15 +193,10 @@ static ssize_t brightness_store(struct device *dev,
if (ret) if (ret)
goto exit; goto exit;
ret = cros_ec_cmd_xfer(ec->ec_dev, msg); ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg);
if (ret < 0) if (ret < 0)
goto exit; goto exit;
if (msg->result != EC_RES_SUCCESS) {
ret = -EINVAL;
goto exit;
}
ret = count; ret = count;
exit: exit:
kfree(msg); kfree(msg);
...@@ -258,13 +253,10 @@ static ssize_t led_rgb_store(struct device *dev, struct device_attribute *attr, ...@@ -258,13 +253,10 @@ static ssize_t led_rgb_store(struct device *dev, struct device_attribute *attr,
goto exit; goto exit;
} }
ret = cros_ec_cmd_xfer(ec->ec_dev, msg); ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg);
if (ret < 0) if (ret < 0)
goto exit; goto exit;
if (msg->result != EC_RES_SUCCESS)
goto exit;
i = 0; i = 0;
ok = 1; ok = 1;
} }
...@@ -305,14 +297,13 @@ static ssize_t sequence_show(struct device *dev, ...@@ -305,14 +297,13 @@ static ssize_t sequence_show(struct device *dev,
if (ret) if (ret)
goto exit; goto exit;
ret = cros_ec_cmd_xfer(ec->ec_dev, msg); ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg);
if (ret < 0) if (ret == -EPROTO) {
goto exit;
if (msg->result != EC_RES_SUCCESS) {
ret = scnprintf(buf, PAGE_SIZE, ret = scnprintf(buf, PAGE_SIZE,
"ERROR: EC returned %d\n", msg->result); "ERROR: EC returned %d\n", msg->result);
goto exit; goto exit;
} else if (ret < 0) {
goto exit;
} }
resp = (struct ec_response_lightbar *)msg->data; resp = (struct ec_response_lightbar *)msg->data;
...@@ -344,13 +335,10 @@ static int lb_send_empty_cmd(struct cros_ec_dev *ec, uint8_t cmd) ...@@ -344,13 +335,10 @@ static int lb_send_empty_cmd(struct cros_ec_dev *ec, uint8_t cmd)
if (ret) if (ret)
goto error; goto error;
ret = cros_ec_cmd_xfer(ec->ec_dev, msg); ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg);
if (ret < 0) if (ret < 0)
goto error; goto error;
if (msg->result != EC_RES_SUCCESS) {
ret = -EINVAL;
goto error;
}
ret = 0; ret = 0;
error: error:
kfree(msg); kfree(msg);
...@@ -377,13 +365,10 @@ static int lb_manual_suspend_ctrl(struct cros_ec_dev *ec, uint8_t enable) ...@@ -377,13 +365,10 @@ static int lb_manual_suspend_ctrl(struct cros_ec_dev *ec, uint8_t enable)
if (ret) if (ret)
goto error; goto error;
ret = cros_ec_cmd_xfer(ec->ec_dev, msg); ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg);
if (ret < 0) if (ret < 0)
goto error; goto error;
if (msg->result != EC_RES_SUCCESS) {
ret = -EINVAL;
goto error;
}
ret = 0; ret = 0;
error: error:
kfree(msg); kfree(msg);
...@@ -425,15 +410,10 @@ static ssize_t sequence_store(struct device *dev, struct device_attribute *attr, ...@@ -425,15 +410,10 @@ static ssize_t sequence_store(struct device *dev, struct device_attribute *attr,
if (ret) if (ret)
goto exit; goto exit;
ret = cros_ec_cmd_xfer(ec->ec_dev, msg); ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg);
if (ret < 0) if (ret < 0)
goto exit; goto exit;
if (msg->result != EC_RES_SUCCESS) {
ret = -EINVAL;
goto exit;
}
ret = count; ret = count;
exit: exit:
kfree(msg); kfree(msg);
...@@ -487,13 +467,9 @@ static ssize_t program_store(struct device *dev, struct device_attribute *attr, ...@@ -487,13 +467,9 @@ static ssize_t program_store(struct device *dev, struct device_attribute *attr,
*/ */
msg->outsize = count + extra_bytes; msg->outsize = count + extra_bytes;
ret = cros_ec_cmd_xfer(ec->ec_dev, msg); ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg);
if (ret < 0) if (ret < 0)
goto exit; goto exit;
if (msg->result != EC_RES_SUCCESS) {
ret = -EINVAL;
goto exit;
}
ret = count; ret = count;
exit: exit:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment