Re: [PATCH v1] usb: typec: ucsi: Set usb mode on partner change

From: Benson Leung

Date: Thu Apr 02 2026 - 15:51:37 EST


Hi Jameson,

On Thu, Apr 02, 2026 at 06:24:38PM +0000, Jameson Thies wrote:
> Currently the partner usb_mode is only set in ucsi_register_partner().
> If the partner enters USB4 operation after it is registered, this is not
> reported to the typec class. The UCSI spec states that the Connector
> Partner Changed bit can represent a Connector Partner Flags change. When
> handling a UCSI partner change, check the partner flags for USB4
> operation.
>
> Signed-off-by: Jameson Thies <jthies@xxxxxxxxxx>

Reviewed-by: Benson Leung <bleung@xxxxxxxxxxxx>


> ---
> 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 fe1fb8a68a1d..e6fd2e2eba94 100644
> --- a/drivers/usb/typec/ucsi/ucsi.c
> +++ b/drivers/usb/typec/ucsi/ucsi.c
> @@ -1182,6 +1182,12 @@ static void ucsi_partner_change(struct ucsi_connector *con)
> if (UCSI_CONSTAT(con, PARTNER_FLAG_USB))
> typec_set_mode(con->port, TYPEC_STATE_USB);
> }
> +
> + if (((con->ucsi->version >= UCSI_VERSION_3_0 &&
> + UCSI_CONSTAT(con, PARTNER_FLAG_USB4_GEN4)) ||
> + (con->ucsi->version >= UCSI_VERSION_2_0 &&
> + UCSI_CONSTAT(con, PARTNER_FLAG_USB4_GEN3))) && con->partner)
> + typec_partner_set_usb_mode(con->partner, USB_MODE_USB4);
> }
>
> if ((!UCSI_CONSTAT(con, PARTNER_FLAG_USB)) &&
>
> base-commit: 81ebd43cc0d6d106ce7b6ccbf7b5e40ca7f5503d
> --
> 2.53.0.1213.gd9a14994de-goog
>

Attachment: signature.asc
Description: PGP signature