[PATCH v2] usb: typec: ucsi: Pass full DP config payload in SET_NEW_CAM for DP alt mode

From: madhu . m

Date: Fri Jun 19 2026 - 11:09:23 EST


From: Madhu M <madhu.m@xxxxxxxxx>

In the UCSI Specification Revision 3.1 RC1, bits 32-63 of the SET_NEW_CAM
command hold the 32-bit Alternate Mode Specific (AMSpecific) field.

For DisplayPort Alternate Mode, this field must contain the full
32-bit DisplayPort configuration VDO payload that the OPM wants the
connector to operate in, rather than just the pin assignment value.
This AMSpecific value follows the DisplayPort Configurations defined
in the DisplayPort Alt Mode on USB Type-C Specification v2.1a,
Table 5-13: SOP DisplayPort Configurations.

Fixes: af8622f6a585 ("usb: typec: ucsi: Support for DisplayPort alt mode")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Madhu M <madhu.m@xxxxxxxxx>
Reviewed-by: Jameson Thies <jthies@xxxxxxxxxx>
Reviewed-by: Andrei Kuchynski <akuchynski@xxxxxxxxxxxx>
Reviewed-by: Heikki Krogerus <heikki.krogerus@xxxxxxxxxxxxxxx>
---
Changes in v2:
- Add Fixes: tag and Cc: stable; the bug (passing only the pin-assignment
value instead of the full DP configuration VDO) dates back to the initial
UCSI DisplayPort alt mode support in af8622f6a585.
drivers/usb/typec/ucsi/displayport.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/usb/typec/ucsi/displayport.c b/drivers/usb/typec/ucsi/displayport.c
index 67a0991a7b76..2e3d7c734d9f 100644
--- a/drivers/usb/typec/ucsi/displayport.c
+++ b/drivers/usb/typec/ucsi/displayport.c
@@ -185,13 +185,12 @@ static int ucsi_displayport_status_update(struct ucsi_dp *dp)

static int ucsi_displayport_configure(struct ucsi_dp *dp)
{
- u32 pins = DP_CONF_GET_PIN_ASSIGN(dp->data.conf);
u64 command;

if (!dp->override)
return 0;

- command = UCSI_CMD_SET_NEW_CAM(dp->con->num, 1, dp->offset, pins);
+ command = UCSI_CMD_SET_NEW_CAM(dp->con->num, 1, dp->offset, dp->data.conf);

return ucsi_send_command(dp->con->ucsi, command, NULL, 0);
}
--
2.34.1