summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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.