Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

usb: typec: ucsi: Set usb mode on partner change

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@google.com>
Reviewed-by: Benson Leung <bleung@chromium.org>
Link: https://patch.msgid.link/20260402182438.867396-1-jthies@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Jameson Thies and committed by
Greg Kroah-Hartman
1ace770f f58752eb

+6
+6
drivers/usb/typec/ucsi/ucsi.c
··· 1187 1187 if (UCSI_CONSTAT(con, PARTNER_FLAG_USB)) 1188 1188 typec_set_mode(con->port, TYPEC_STATE_USB); 1189 1189 } 1190 + 1191 + if (((con->ucsi->version >= UCSI_VERSION_3_0 && 1192 + UCSI_CONSTAT(con, PARTNER_FLAG_USB4_GEN4)) || 1193 + (con->ucsi->version >= UCSI_VERSION_2_0 && 1194 + UCSI_CONSTAT(con, PARTNER_FLAG_USB4_GEN3))) && con->partner) 1195 + typec_partner_set_usb_mode(con->partner, USB_MODE_USB4); 1190 1196 } 1191 1197 1192 1198 if ((!UCSI_CONSTAT(con, PARTNER_FLAG_USB)) &&