@@ -138,7 +138,7 @@ static int cros_ec_wait_until_complete(struct cros_ec_device *ec_dev, uint32_t *
{
struct cros_ec_command *msg;
struct ec_response_get_comms_status *status;
- int ret = 0, i;
+ int ret = 0, i, mapped;
msg = kzalloc(sizeof(*msg) + sizeof(*status), GFP_KERNEL);
if (!msg)
@@ -160,8 +160,11 @@ static int cros_ec_wait_until_complete(struct cros_ec_device *ec_dev, uint32_t *
break;
*result = msg->result;
- if (msg->result != EC_RES_SUCCESS)
+ mapped = cros_ec_map_error(msg->result);
+ if (mapped) {
+ ret = mapped;
break;
+ }
if (!(status->flags & EC_COMMS_STATUS_PROCESSING))
break;
cros_ec_wait_until_complete() checks `msg->result` for EC_CMD_GET_COMMS_STATUS. However, it doesn't return standard error codes like most of others. Use cros_ec_map_error() to align them. Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org> --- drivers/platform/chrome/cros_ec_proto.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)