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 Reviewed-by: Benson Leung > --- > 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 >