From a91961401c41406bf08ff7e7e5da29be0c11c4f6 Mon Sep 17 00:00:00 2001 From: Abe Levkoy Date: Wed, 29 Apr 2020 00:20:07 -0600 Subject: TCPMv2: Discover cable plug modes Enter PE_INIT_VDM_Modes_Request with transmit type SOP', following cable-plug (SOP') SVID discovery. BUG=b:152420269,b:152419795 TEST=Attach port partner via cable; TCPM sends SOP' modes request and TEST=then continues with mode entry. BRANCH=none Change-Id: I62be147e7809ee3955c1db7704e965f576176f67 Signed-off-by: Abe Levkoy Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2174468 Reviewed-by: Diana Z --- common/usbc/usb_pe_drp_sm.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/common/usbc/usb_pe_drp_sm.c b/common/usbc/usb_pe_drp_sm.c index 1560eee817..5a3fa20d43 100644 --- a/common/usbc/usb_pe_drp_sm.c +++ b/common/usbc/usb_pe_drp_sm.c @@ -1310,6 +1310,12 @@ static bool pe_attempt_port_discovery(int port) pe[port].tx_type = TCPC_TX_SOP_PRIME; set_state_pe(port, PE_INIT_VDM_SVIDS_REQUEST); return true; + } else if (pd_get_modes_discovery(port, TCPC_TX_SOP_PRIME) == + PD_DISC_NEEDED && + pe_can_send_sop_prime(port)) { + pe[port].tx_type = TCPC_TX_SOP_PRIME; + set_state_pe(port, PE_INIT_VDM_MODES_REQUEST); + return true; /* * Note: determine if next VDM can be sent by taking advantage * of discovery following the VDM command enum ordering. -- cgit v1.2.1