All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 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.