Commit 12ebc8a5 authored by Bill Richardson's avatar Bill Richardson Committed by Lee Jones

mfd: cros_ec: ec_dev->cmd_xfer() returns number of bytes received from EC

When communicating with the EC, the cmd_xfer() function should return the
number of bytes it received from the EC, or negative on error.
Signed-off-by: default avatarBill Richardson <wfrichar@chromium.org>
Signed-off-by: default avatarDoug Anderson <dianders@chromium.org>
Reviewed-by: default avatarSimon Glass <sjg@chromium.org>
Acked-by: default avatarWolfram Sang <wsa@the-dreams.de>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
parent 6db07b63
...@@ -228,7 +228,7 @@ static int ec_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg i2c_msgs[], ...@@ -228,7 +228,7 @@ static int ec_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg i2c_msgs[],
msg.insize = response_len; msg.insize = response_len;
result = bus->ec->cmd_xfer(bus->ec, &msg); result = bus->ec->cmd_xfer(bus->ec, &msg);
if (result) if (result < 0)
goto exit; goto exit;
result = ec_i2c_parse_response(response, i2c_msgs, &num); result = ec_i2c_parse_response(response, i2c_msgs, &num);
......
...@@ -111,7 +111,7 @@ static int cros_ec_cmd_xfer_i2c(struct cros_ec_device *ec_dev, ...@@ -111,7 +111,7 @@ static int cros_ec_cmd_xfer_i2c(struct cros_ec_device *ec_dev,
goto done; goto done;
} }
ret = 0; ret = i2c_msg[1].buf[1];
done: done:
kfree(in_buf); kfree(in_buf);
kfree(out_buf); kfree(out_buf);
......
...@@ -320,7 +320,7 @@ static int cros_ec_cmd_xfer_spi(struct cros_ec_device *ec_dev, ...@@ -320,7 +320,7 @@ static int cros_ec_cmd_xfer_spi(struct cros_ec_device *ec_dev,
goto exit; goto exit;
} }
ret = 0; ret = len;
exit: exit:
mutex_unlock(&ec_spi->lock); mutex_unlock(&ec_spi->lock);
return ret; return ret;
......
...@@ -41,7 +41,7 @@ enum { ...@@ -41,7 +41,7 @@ enum {
* @outdata: Outgoing data to EC * @outdata: Outgoing data to EC
* @outsize: Outgoing length in bytes * @outsize: Outgoing length in bytes
* @indata: Where to put the incoming data from EC * @indata: Where to put the incoming data from EC
* @insize: Incoming length in bytes (filled in by EC) * @insize: Max number of bytes to accept from EC
* @result: EC's response to the command (separate from communication failure) * @result: EC's response to the command (separate from communication failure)
*/ */
struct cros_ec_command { struct cros_ec_command {
...@@ -64,9 +64,9 @@ struct cros_ec_command { ...@@ -64,9 +64,9 @@ struct cros_ec_command {
* sleep at the last suspend * sleep at the last suspend
* @event_notifier: interrupt event notifier for transport devices * @event_notifier: interrupt event notifier for transport devices
* @cmd_xfer: send command to EC and get response * @cmd_xfer: send command to EC and get response
* Returns 0 if the communication succeeded, but that doesn't mean the EC * Returns the number of bytes received if the communication succeeded, but
* was happy with the command it got. Caller should check msg.result for * that doesn't mean the EC was happy with the command. The caller
* the EC's result code. * should check msg.result for the EC's result code.
* *
* @priv: Private data * @priv: Private data
* @irq: Interrupt to use * @irq: Interrupt to use
......
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