Extend the TCPM's functionality to include support for SOP' messages. This feature is opt-in: TCPCI chip drivers opt into sending and receiving SOP' messages. TCPCI drivers will also be expected to take the SOP frame type in order to process SOP' messages within the TCPM. The Maxim TCPCI driver implements this in Patch 2. Discover Identity, Discover SVIDs, Discover Modes, and Alt Mode SVDM support are included within the patchset. Because the port is expected to be the Vconn source in order to communicate with the cable, TCPCI chip drivers opt into performing a Vconn swap after Discover Identity on SOP before performing Discover Identity on SOP'. Alt Mode drivers can direct SVDMs towards the port partner or cable plug. DisplayPort Alt Mode adds support for Enter Mode, Configure, and Exit Mode commands over SOP' in Patch 10. RD Babiera (10): usb: typec: bus: provide transmit type for alternate mode drivers usb: typec: tcpci: enable reception of SOP' messages usb: typec: tcpm: process receive and transmission of sop' messages usb: typec: tcpm: add control message support for SOP' usb: typec: tcpci: add attempt_vconn_swap_discovery callback usb: typec: tcpm: add discover identity support for SOP' usb: typec: tcpm: add state machine support for SRC_VDM_IDENTITY_REQUEST usb: typec: tcpm: add mode data message support for SOP' usb: typec: altmodes: add typec_altmode_get_cable_svdm_version usb: typec: altmodes/displayport: add SOP' support drivers/platform/chrome/cros_typec_vdm.c | 12 +- drivers/usb/typec/altmodes/displayport.c | 175 +++- drivers/usb/typec/bus.c | 17 +- drivers/usb/typec/class.c | 42 +- drivers/usb/typec/class.h | 1 + drivers/usb/typec/tcpm/tcpci.c | 26 +- drivers/usb/typec/tcpm/tcpci_maxim.h | 1 + drivers/usb/typec/tcpm/tcpci_maxim_core.c | 37 +- drivers/usb/typec/tcpm/tcpm.c | 1014 ++++++++++++++++++--- drivers/usb/typec/ucsi/displayport.c | 18 +- include/linux/usb/pd.h | 1 + include/linux/usb/pd_vdo.h | 8 +- include/linux/usb/tcpci.h | 13 + include/linux/usb/tcpm.h | 16 +- include/linux/usb/typec.h | 3 + include/linux/usb/typec_altmode.h | 36 +- 16 files changed, 1214 insertions(+), 206 deletions(-) base-commit: 5e4c8814a431d21bfaf20b464134f40f2f81e152 -- 2.43.0.rc2.451.g8631bc7472-goog