usb: typec: tcpm: properly deliver cable vdms to altmode drivers
authorRD Babiera <rdbabiera@google.com>
Thu, 21 Aug 2025 20:37:57 +0000 (20:37 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 6 Sep 2025 13:30:26 +0000 (15:30 +0200)
commitf34bfcc77b18375a87091c289c2eb53c249787b4
tree087ef632524eee825e741f71de6f7c8ff7010717
parent8d63c83d8eb922f6c316320f50c82fa88d099bea
usb: typec: tcpm: properly deliver cable vdms to altmode drivers

tcpm_handle_vdm_request delivers messages to the partner altmode or the
cable altmode depending on the SVDM response type, which is incorrect.
The partner or cable should be chosen based on the received message type
instead.

Also add this filter to ADEV_NOTIFY_USB_AND_QUEUE_VDM, which is used when
the Enter Mode command is responded to by a NAK on SOP or SOP' and when
the Exit Mode command is responded to by an ACK on SOP.

Fixes: 7e7877c55eb1 ("usb: typec: tcpm: add alt mode enter/exit/vdm support for sop'")
Cc: stable@vger.kernel.org
Signed-off-by: RD Babiera <rdbabiera@google.com>
Reviewed-by: Badhri Jagan Sridharan <badhri@google.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20250821203759.1720841-2-rdbabiera@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/tcpm/tcpm.c