summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbe Levkoy <alevkoy@chromium.org>2020-04-29 00:20:07 -0600
committerCommit Bot <commit-bot@chromium.org>2020-05-12 01:03:15 +0000
commita91961401c41406bf08ff7e7e5da29be0c11c4f6 (patch)
tree83e3026e56ebcd15928057c1e26c785aee551de9
parent38a2b2521ac066d24a7a5ba85ab17112a60abe0e (diff)
downloadchrome-ec-a91961401c41406bf08ff7e7e5da29be0c11c4f6.tar.gz
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 <alevkoy@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2174468 Reviewed-by: Diana Z <dzigterman@chromium.org>
-rw-r--r--common/usbc/usb_pe_drp_sm.c6
1 files changed, 6 insertions, 0 deletions
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.