All of lore.kernel.org
 help / color / mirror / Atom feed
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: [RESEND PATCH 07/11] platform/chrome: cros_ec_proto: return -EAGAIN when retries timed out
Date: Thu, 14 Jul 2022 03:41:27 +0000	[thread overview]
Message-ID: <Ys+QZyOdIT8d1rvW@google.com> (raw)
In-Reply-To: <CABXOdTft0Nu_hJQuXwepBXE3tWZf7jaidGE5mamq_=1Zi4hevg@mail.gmail.com>

On Wed, Jul 13, 2022 at 11:18:32AM -0700, Guenter Roeck wrote:
> On Mon, Jun 27, 2022 at 7:49 PM Tzung-Bi Shih <tzungbi@kernel.org> wrote:
> >
> > While EC_COMMS_STATUS_PROCESSING flag is still on after it tries
> > EC_COMMAND_RETRIES times for sending EC_CMD_GET_COMMS_STATUS,
> > cros_ec_wait_until_complete() doesn't return an error code.
> >
> > Return -EAGAIN in the case instead.
> 
> Does this make sense, or should it be -ETIMEDOUT ? What does the EC do
> if it is still busy (stuck ?) with executing a command and it gets
> another one ?

AFAIK, most existing ECs use single task for host command[1][2].  As a
result, EC won't reply if it was busying on executing a host command.
Not sure if it would change after leveraging Zephyr (if enabling multi-core
support).

EC_CMD_GET_COMMS_STATUS is the only exception.  EC executes the command in
interrupt context[3].  That's why AP can use EC_CMD_GET_COMMS_STATUS to query
the status while EC was busying on another host command.

I have no strong preference for the return code but tried to align to another
timeout case (when cros_ec_xfer_command() returned -EAGAIN for
EC_COMMAND_RETRIES times).  Do we want to separate the cases: one for -EAGAIN
and another one for -ETIMEDOUT?

[1]: https://crrev.com/4c0ae8814a68f2c2655ebb0b3b80ec4529d07cb3/common/host_command.c#428
[2]: https://crrev.com/4c0ae8814a68f2c2655ebb0b3b80ec4529d07cb3/board/volteer/ec.tasklist#20
[3]: https://crrev.com/4c0ae8814a68f2c2655ebb0b3b80ec4529d07cb3/common/host_command.c#176

  reply	other threads:[~2022-07-14  3:41 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-28  2:49 [RESEND PATCH 00/11] platform/chrome: Kunit tests and refactor for cros_ec_cmd_xfer() Tzung-Bi Shih
2022-06-28  2:49 ` [RESEND PATCH 01/11] platform/chrome: cros_ec_proto: add "cros_ec_" prefix to send_command() Tzung-Bi Shih
2022-06-28  2:49 ` [RESEND PATCH 02/11] platform/chrome: cros_ec_proto: add Kunit tests for cros_ec_cmd_xfer() Tzung-Bi Shih
2022-06-28  2:49 ` [RESEND PATCH 03/11] platform/chrome: cros_ec_proto: add Kunit tests for cros_ec_send_command() Tzung-Bi Shih
2022-06-28  2:49 ` [RESEND PATCH 04/11] platform/chrome: cros_ec_proto: separate cros_ec_xfer_command() Tzung-Bi Shih
2022-06-28  2:49 ` [RESEND PATCH 05/11] platform/chrome: cros_ec_proto: separate cros_ec_wait_until_complete() Tzung-Bi Shih
2022-07-04  6:32   ` Tzung-Bi Shih
2022-07-13 18:15   ` Guenter Roeck
2022-07-14  3:33     ` Tzung-Bi Shih
2022-07-14 14:29       ` Guenter Roeck
2022-07-18  3:50         ` Tzung-Bi Shih
2022-06-28  2:49 ` [RESEND PATCH 06/11] platform/chrome: cros_ec_proto: change Kunit expectation when timed out Tzung-Bi Shih
2022-07-13 18:16   ` Guenter Roeck
2022-06-28  2:49 ` [RESEND PATCH 07/11] platform/chrome: cros_ec_proto: return -EAGAIN when retries " Tzung-Bi Shih
2022-07-13 18:18   ` Guenter Roeck
2022-07-14  3:41     ` Tzung-Bi Shih [this message]
2022-07-14 14:15       ` Guenter Roeck
2022-06-28  2:49 ` [RESEND PATCH 08/11] platform/chrome: cros_ec_proto: change Kunit expectation for EC errors Tzung-Bi Shih
2022-07-13 18:18   ` Guenter Roeck
2022-06-28  2:49 ` [RESEND PATCH 09/11] platform/chrome: cros_ec_proto: return standard error codes " Tzung-Bi Shih
2022-07-13 18:23   ` Guenter Roeck
2022-07-14  3:41     ` Tzung-Bi Shih
2022-06-28  2:49 ` [RESEND PATCH 10/11] platform/chrome: cros_ec_proto: add Kunit test for empty payload Tzung-Bi Shih
2022-06-28  2:49 ` [RESEND PATCH 11/11] platform/chrome: cros_ec_proto: return -EPROTO if " Tzung-Bi Shih
2022-07-13 18:25   ` Guenter Roeck

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=Ys+QZyOdIT8d1rvW@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.