All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] usb: typec: ucsi: displayport: Current CAM OOB index fixup
@ 2026-09-11 19:32 Jameson Thies
  0 siblings, 0 replies; only message in thread
From: Jameson Thies @ 2026-09-11 19:32 UTC (permalink / raw)
  To: heikki.krogerus, linux-usb, linux-kernel
  Cc: bleung, gregkh, akuchynski, Jameson Thies

Update ucsi_displayport_enter() to return invalid error when the PPM
reports an current alternate mode greater than or equal to
UCSI_MAX_ALTMODES. While here, remove 0xff current cam assignment on
failed GET_CURRENT_CAM response.

Signed-off-by: Jameson Thies <jthies@google.com>
---
Original patch didn't incorporate reviewer feedback. This is a fixup
to be amended to:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=04cec690b1fd9d1c4c314b91a10d8c68a3acfe18

 drivers/usb/typec/ucsi/displayport.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/typec/ucsi/displayport.c b/drivers/usb/typec/ucsi/displayport.c
index 8d2032d0762c..572da7bbd29c 100644
--- a/drivers/usb/typec/ucsi/displayport.c
+++ b/drivers/usb/typec/ucsi/displayport.c
@@ -71,11 +71,14 @@ static int ucsi_displayport_enter(struct typec_altmode *alt, u32 *vdo)
 	if (ret < 0) {
 		if (ucsi->version > 0x0100)
 			goto err_unlock;
-		cur = 0xff;
 	}
 
-	if (cur < UCSI_MAX_ALTMODES) {
-		ret = dp->con->port_altmode[cur] == alt ? 0 : -EBUSY;
+	if (cur != 0xff) {
+		if (cur < UCSI_MAX_ALTMODES)
+			ret = dp->con->port_altmode[cur] == alt ? 0 : -EBUSY;
+		else
+			ret = -EINVAL;
+
 		goto err_unlock;
 	}
 

base-commit: ed2050bc671b44b2c948dbd4347cc534d44ccc9f
-- 
2.55.0.1007.g17ff1f9808-goog


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-09-11 19:32 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-11 19:32 [PATCH] usb: typec: ucsi: displayport: Current CAM OOB index fixup Jameson Thies

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.