From: Tzung-Bi Shih <tzungbi@kernel.org>
To: Guenter Roeck <groeck@google.com>
Cc: Benson Leung <bleung@chromium.org>,
Guenter Roeck <groeck@chromium.org>,
"open list:CHROME HARDWARE PLATFORM SUPPORT"
<chrome-platform@lists.linux.dev>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 05/11] platform/chrome: cros_ec_proto: separate cros_ec_wait_until_complete()
Date: Fri, 24 Jun 2022 03:39:01 +0000 [thread overview]
Message-ID: <YrUx1UXR4OnuTgAN@google.com> (raw)
In-Reply-To: <CABXOdTeYf=KsaMeEMOcevRjitvkLDKPeTELfDSmCxyG0OWWjgQ@mail.gmail.com>
On Wed, Jun 15, 2022 at 01:50:26PM -0700, Guenter Roeck wrote:
> On Tue, Jun 14, 2022 at 10:13 PM Tzung-Bi Shih <tzungbi@kernel.org> wrote:
> > -static int cros_ec_send_command(struct cros_ec_device *ec_dev, struct cros_ec_command *msg)
> > +static int cros_ec_wait_until_complete(struct cros_ec_device *ec_dev, uint32_t *result)
> > {
> > - int ret = cros_ec_xfer_command(ec_dev, msg);
> > + struct cros_ec_command *msg;
> > + struct ec_response_get_comms_status *status;
> > + int ret = 0, i;
> > +
> > + msg = kzalloc(sizeof(*msg) + sizeof(*status), GFP_KERNEL);
> > + if (!msg)
> > + return -ENOMEM;
> >
> > - if (msg->result == EC_RES_IN_PROGRESS) {
> > - int i;
> > - struct cros_ec_command *status_msg;
> > - struct ec_response_get_comms_status *status;
> > + msg->command = EC_CMD_GET_COMMS_STATUS;
> > + msg->insize = sizeof(*status);
> >
> > - status_msg = kmalloc(sizeof(*status_msg) + sizeof(*status),
> > - GFP_KERNEL);
> > - if (!status_msg)
> > - return -ENOMEM;
> > + status = (struct ec_response_get_comms_status *)msg->data;
> >
> > - status_msg->version = 0;
> > - status_msg->command = EC_CMD_GET_COMMS_STATUS;
> > - status_msg->insize = sizeof(*status);
> > - status_msg->outsize = 0;
> > + /* Query the EC's status until it's no longer busy or we encounter an error. */
> > + for (i = 0; i < EC_COMMAND_RETRIES; ++i) {
> > + usleep_range(10000, 11000);
> >
> > - /*
> > - * Query the EC's status until it's no longer busy or
> > - * we encounter an error.
> > - */
> > - for (i = 0; i < EC_COMMAND_RETRIES; i++) {
> > - usleep_range(10000, 11000);
> > -
> > - trace_cros_ec_request_start(status_msg);
> > - ret = (*xfer_fxn)(ec_dev, status_msg);
> > - trace_cros_ec_request_done(status_msg, ret);
>
> I'll have to spend more time on this; I don't immediately see (from
> the diff) the replacement for the traces, and I don't see what
> happened with xfer_fxn.
They are replaced by calling cros_ec_xfer_command() (see below) which does the
same things.
> > - if (ret == -EAGAIN)
> > - continue;
> > - if (ret < 0)
> > - break;
> > -
> > - msg->result = status_msg->result;
> > - if (status_msg->result != EC_RES_SUCCESS)
> > - break;
> > -
> > - status = (struct ec_response_get_comms_status *)
> > - status_msg->data;
> > - if (!(status->flags & EC_COMMS_STATUS_PROCESSING))
> > - break;
> > - }
> > + ret = cros_ec_xfer_command(ec_dev, msg);
> > + if (ret == -EAGAIN)
> > + continue;
> > + if (ret < 0)
> > + break;
next prev parent reply other threads:[~2022-06-24 3:39 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-15 5:12 [PATCH 00/11] platform/chrome: Kunit tests and refactor for cros_ec_cmd_xfer() Tzung-Bi Shih
2022-06-15 5:12 ` [PATCH 01/11] platform/chrome: cros_ec_proto: add "cros_ec_" prefix to send_command() Tzung-Bi Shih
2022-06-15 16:34 ` Guenter Roeck
2022-06-15 5:12 ` [PATCH 02/11] platform/chrome: cros_ec_proto: add Kunit tests for cros_ec_cmd_xfer() Tzung-Bi Shih
2022-06-15 16:35 ` Guenter Roeck
2022-06-15 5:12 ` [PATCH 03/11] platform/chrome: cros_ec_proto: add Kunit tests for cros_ec_send_command() Tzung-Bi Shih
2022-06-15 16:38 ` Guenter Roeck
2022-06-15 5:12 ` [PATCH 04/11] platform/chrome: cros_ec_proto: separate cros_ec_xfer_command() Tzung-Bi Shih
2022-06-15 16:35 ` Guenter Roeck
2022-06-15 5:12 ` [PATCH 05/11] platform/chrome: cros_ec_proto: separate cros_ec_wait_until_complete() Tzung-Bi Shih
2022-06-15 20:50 ` Guenter Roeck
2022-06-24 3:39 ` Tzung-Bi Shih [this message]
2022-06-15 5:12 ` [PATCH 06/11] platform/chrome: cros_ec_proto: change Kunit expectation when timed out Tzung-Bi Shih
2022-06-15 5:12 ` [PATCH 07/11] platform/chrome: cros_ec_proto: return -EAGAIN when retries " Tzung-Bi Shih
2022-06-15 5:12 ` [PATCH 08/11] platform/chrome: cros_ec_proto: change Kunit expectation for EC errors Tzung-Bi Shih
2022-06-15 5:12 ` [PATCH 09/11] platform/chrome: cros_ec_proto: return standard error codes " Tzung-Bi Shih
2022-06-15 5:12 ` [PATCH 10/11] platform/chrome: cros_ec_proto: add Kunit test for empty payload Tzung-Bi Shih
2022-06-15 5:12 ` [PATCH 11/11] platform/chrome: cros_ec_proto: return -EPROTO if " Tzung-Bi Shih
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YrUx1UXR4OnuTgAN@google.com \
--to=tzungbi@kernel.org \
--cc=bleung@chromium.org \
--cc=chrome-platform@lists.linux.dev \
--cc=groeck@chromium.org \
--cc=groeck@google.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.