Skip to content

Commit e8557ac

Browse files
RD Babieragregkh
authored andcommitted
usb: typec: altmode/displayport: set displayport signaling rate in configure message
dp_altmode_configure sets the signaling rate to the current configuration's rate and then shifts the value to the Select Configuration bitfield. On the initial configuration, dp->data.conf is 0 to begin with, so the signaling rate field is never set, which leads to some DisplayPort Alt Mode partners sending NAK to the Configure message. Set the signaling rate to the capabilities supported by both the port and the port partner. If the cable supports DisplayPort Alt Mode, then include its capabilities as well. Fixes: a17fae8 ("usb: typec: Add Displayport Alternate Mode 2.1 Support") Cc: stable <stable@kernel.org> Signed-off-by: RD Babiera <rdbabiera@google.com> Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Link: https://patch.msgid.link/20260310204106.3939862-2-rdbabiera@google.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 17ab4d4 commit e8557ac

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

drivers/usb/typec/altmodes/displayport.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,14 @@ static int dp_altmode_configure(struct dp_altmode *dp, u8 con)
100100
{
101101
u8 pin_assign = 0;
102102
u32 conf;
103+
u32 signal;
103104

104105
/* DP Signalling */
105-
conf = (dp->data.conf & DP_CONF_SIGNALLING_MASK) >> DP_CONF_SIGNALLING_SHIFT;
106+
signal = DP_CAP_DP_SIGNALLING(dp->port->vdo) & DP_CAP_DP_SIGNALLING(dp->alt->vdo);
107+
if (dp->plug_prime)
108+
signal &= DP_CAP_DP_SIGNALLING(dp->plug_prime->vdo);
109+
110+
conf = signal << DP_CONF_SIGNALLING_SHIFT;
106111

107112
switch (con) {
108113
case DP_STATUS_CON_DISABLED:

0 commit comments

Comments
 (0)