Re: [PATCH] usb: typec: ucsi: Retry if notification enable timesout

Heikki Krogerus <[email protected]> Wed, 5 Aug 2026 14:03:19 +0200
Newsgroups org.kernel.vger.linux-usb,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On Wed, Jul 29, 2026 at 02:21:50PM -0400, Mark Pearson wrote:
> Found on Thinkpad E14 G8.
> When UCSI notifications are enabled the FW does not ack the enablement
> itself. Future commands will be acked correctly.
> 
> If this happens try enablement again and confirm acks are working
> correctly.
> 
> Signed-off-by: Mark Pearson <[email protected]>

Reviewed-by: Heikki Krogerus <[email protected]>

> ---
>  drivers/usb/typec/ucsi/ucsi.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c
> index 49f1c53721bb..ea25c44c2850 100644
> --- a/drivers/usb/typec/ucsi/ucsi.c
> +++ b/drivers/usb/typec/ucsi/ucsi.c
> @@ -2082,6 +2082,12 @@ static int ucsi_init(struct ucsi *ucsi)
>  	ntfy = UCSI_ENABLE_NTFY_CMD_COMPLETE | UCSI_ENABLE_NTFY_ERROR;
>  	command = UCSI_SET_NOTIFICATION_ENABLE | ntfy;
>  	ret = ucsi_send_command(ucsi, command, NULL, 0);
> +	/*
> +	 * Some FW may not ack the notification enable the first time.
> +	 * If this happens, repeat to confirm it is actually working
> +	 */
> +	if (ret == -ETIMEDOUT)
> +		ret = ucsi_send_command(ucsi, command, NULL, 0);
>  	if (ret < 0)
>  		goto err_reset;
>  
> -- 
> 2.43.0

-- 
heikki