From: Heikki Krogerus <heikki.krogerus@linux.intel.com>
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Guenter Roeck <linux@roeck-us.net>,
Bjorn Andersson <andersson@kernel.org>,
Neil Armstrong <neil.armstrong@linaro.org>,
Konrad Dybcio <konrad.dybcio@linaro.org>,
Johan Hovold <johan+linaro@kernel.org>,
linux-usb@vger.kernel.org, linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH 3/7] usb: typec: ucsi: make ACK_CC_CI rules more obvious
Date: Mon, 18 Mar 2024 12:48:47 +0200 [thread overview]
Message-ID: <ZfgcD2b0ovU9BPiC@kuha.fi.intel.com> (raw)
In-Reply-To: <20240313-qcom-ucsi-fixes-v1-3-74d90cb48a00@linaro.org>
On Wed, Mar 13, 2024 at 05:54:13AM +0200, Dmitry Baryshkov wrote:
> It is pretty easy to miss a call to usb_acknowledge_command() in
> the error handling inside ucsi_exec_command(). For example
> UCSI_CCI_ERROR had this call hidden inside ucsi_read_error().
>
> Move this call and add a comment to make the rules regarding
> usb_acknowledge_command() calls more obvious.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
> ---
> drivers/usb/typec/ucsi/ucsi.c | 18 +++++++++++++-----
> 1 file changed, 13 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c
> index bde4f03b9aa2..05a44e346e85 100644
> --- a/drivers/usb/typec/ucsi/ucsi.c
> +++ b/drivers/usb/typec/ucsi/ucsi.c
> @@ -92,11 +92,6 @@ static int ucsi_read_error(struct ucsi *ucsi)
> u16 error;
> int ret;
>
> - /* Acknowledge the command that failed */
> - ret = ucsi_acknowledge_command(ucsi);
> - if (ret)
> - return ret;
> -
> ret = ucsi_exec_command(ucsi, UCSI_GET_ERROR_STATUS);
> if (ret < 0)
> return ret;
> @@ -167,14 +162,27 @@ static int ucsi_exec_command(struct ucsi *ucsi, u64 cmd)
> if (!(cci & UCSI_CCI_COMMAND_COMPLETE))
> return -EIO;
>
> + /*
> + * All error cases below must acknowledge the command completion,
> + * otherwise PPM will be stuck and won't process commands anymore.
> + *
> + * In non-error case the command is acknowledged after reading Data
> + * from the controller.
> + */
> +
> if (cci & UCSI_CCI_NOT_SUPPORTED) {
> ret = ucsi_acknowledge_command(ucsi);
> return ret ? ret : -EOPNOTSUPP;
> }
>
> if (cci & UCSI_CCI_ERROR) {
> + ret = ucsi_acknowledge_command(ucsi);
> + if (ret)
> + return ret;
> +
> if (cmd == UCSI_GET_ERROR_STATUS)
> return -EIO;
> +
> return ucsi_read_error(ucsi);
> }
>
>
> --
> 2.39.2
--
heikki
next prev parent reply other threads:[~2024-03-18 10:48 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-13 3:54 [PATCH 0/7] usb: typec: ucsi: fix several issues manifesting on Qualcomm platforms Dmitry Baryshkov
2024-03-13 3:54 ` [PATCH 1/7] usb: typec: ucsi: fix race condition in connection change ACK'ing Dmitry Baryshkov
2024-03-18 10:43 ` Heikki Krogerus
2024-03-13 3:54 ` [PATCH 2/7] usb: typec: ucsi: acknowledge the UCSI_CCI_NOT_SUPPORTED Dmitry Baryshkov
2024-03-18 10:45 ` Heikki Krogerus
2024-03-13 3:54 ` [PATCH 3/7] usb: typec: ucsi: make ACK_CC_CI rules more obvious Dmitry Baryshkov
2024-03-18 10:48 ` Heikki Krogerus [this message]
2024-03-13 3:54 ` [PATCH 4/7] usb: typec: ucsi: allow non-partner GET_PDOS for Qualcomm devices Dmitry Baryshkov
2024-03-18 10:49 ` Heikki Krogerus
2024-03-13 3:54 ` [PATCH 5/7] usb: typec: ucsi: limit the UCSI_NO_PARTNER_PDOS even further Dmitry Baryshkov
2024-03-18 10:52 ` Heikki Krogerus
2024-03-13 3:54 ` [PATCH 6/7] usb: typec: ucsi: properly register partner's PD device Dmitry Baryshkov
2024-03-18 10:53 ` Heikki Krogerus
2024-03-13 3:54 ` [PATCH 7/7] soc: qcom: pmic_glink: reenable UCSI on sc8280xp Dmitry Baryshkov
2024-03-18 10:54 ` Heikki Krogerus
2024-03-22 12:17 ` [PATCH 0/7] usb: typec: ucsi: fix several issues manifesting on Qualcomm platforms Johan Hovold
2024-03-22 13:39 ` Dmitry Baryshkov
2024-03-22 14:10 ` Johan Hovold
2024-03-25 20:56 ` Dmitry Baryshkov
2024-03-26 8:41 ` Johan Hovold
2024-03-26 10:22 ` Dmitry Baryshkov
2024-03-26 11:44 ` Dmitry Baryshkov
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=ZfgcD2b0ovU9BPiC@kuha.fi.intel.com \
--to=heikki.krogerus@linux.intel.com \
--cc=andersson@kernel.org \
--cc=dmitry.baryshkov@linaro.org \
--cc=gregkh@linuxfoundation.org \
--cc=johan+linaro@kernel.org \
--cc=konrad.dybcio@linaro.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=neil.armstrong@linaro.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox