[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CABXOdTeCFsXYdd6uVDYkOY-tGno_wW-ZyuMb44a63tFABic+NA@mail.gmail.com>
Date: Wed, 13 Jul 2022 11:23:58 -0700
From: Guenter Roeck <groeck@...gle.com>
To: Tzung-Bi Shih <tzungbi@...nel.org>
Cc: Benson Leung <bleung@...omium.org>,
Guenter Roeck <groeck@...omium.org>,
"open list:CHROME HARDWARE PLATFORM SUPPORT"
<chrome-platform@...ts.linux.dev>,
linux-kernel <linux-kernel@...r.kernel.org>
Subject: Re: [RESEND PATCH 09/11] platform/chrome: cros_ec_proto: return
standard error codes for EC errors
On Mon, Jun 27, 2022 at 7:49 PM Tzung-Bi Shih <tzungbi@...nel.org> wrote:
>
> 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.
The callers of cros_ec_send_command() do the mapping. I am not sure if
it is a good idea to change that; it may have undesired side effects
(such as changing the userspace ABI) for callers of
cros_ec_send_command() not expecting this change. It would also result
in double mapping in some situations.
Guenter
>
> Use cros_ec_map_error() to align them.
>
> Signed-off-by: Tzung-Bi Shih <tzungbi@...nel.org>
> ---
> drivers/platform/chrome/cros_ec_proto.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/platform/chrome/cros_ec_proto.c b/drivers/platform/chrome/cros_ec_proto.c
> index 49772a4c5353..5323edddb540 100644
> --- a/drivers/platform/chrome/cros_ec_proto.c
> +++ b/drivers/platform/chrome/cros_ec_proto.c
> @@ -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;
> --
> 2.37.0.rc0.161.g10f37bed90-goog
>
Powered by blists - more mailing lists