summaryrefslogtreecommitdiff
path: root/common/usbc
diff options
context:
space:
mode:
authorDiana Z <dzigterman@chromium.org>2021-06-03 13:34:18 -0600
committerCommit Bot <commit-bot@chromium.org>2021-06-04 20:55:18 +0000
commit0716683f2d0fda8aad6ec4e6634a723d33ebbf42 (patch)
tree6ebeb4cb8213a23148c74ad16f87af34380a7d8b /common/usbc
parent556ca6009a141c23ab8f20d25202d9c13b60904e (diff)
downloadchrome-ec-0716683f2d0fda8aad6ec4e6634a723d33ebbf42.tar.gz
TCPMv2: Don't delay ready transition turning off Vconn
Since Vconn is make before break, it makes no sense to delay transitioning back to ready since Vconn isn't discharging. Waiting extra time in the state translates to taking more time to process the next messages after a Vconn swap. BRANCH=None BUG=b:181087216 TEST=on storo, confirm that we don't miss replying to PR swap following a Vconn swap connected to another DUT Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: I0d551d0cac34f8157c7fe2b272c2450d6da3ca17 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2937108 Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Commit-Queue: Abe Levkoy <alevkoy@chromium.org>
Diffstat (limited to 'common/usbc')
-rw-r--r--common/usbc/usb_pe_drp_sm.c19
1 files changed, 3 insertions, 16 deletions
diff --git a/common/usbc/usb_pe_drp_sm.c b/common/usbc/usb_pe_drp_sm.c
index 90fe07470b..ca03d02cf0 100644
--- a/common/usbc/usb_pe_drp_sm.c
+++ b/common/usbc/usb_pe_drp_sm.c
@@ -6455,14 +6455,9 @@ static void pe_vcs_turn_off_vconn_swap_entry(int port)
static void pe_vcs_turn_off_vconn_swap_run(int port)
{
/* Wait for VCONN to turn off */
- if (pd_timer_is_disabled(port, PE_TIMER_TIMEOUT) &&
- PE_CHK_FLAG(port, PE_FLAGS_VCONN_SWAP_COMPLETE)) {
+ if (PE_CHK_FLAG(port, PE_FLAGS_VCONN_SWAP_COMPLETE)) {
PE_CLR_FLAG(port, PE_FLAGS_VCONN_SWAP_COMPLETE);
- pd_timer_enable(port, PE_TIMER_TIMEOUT,
- CONFIG_USBC_VCONN_SWAP_DELAY_US);
- }
- if (pd_timer_is_expired(port, PE_TIMER_TIMEOUT)) {
/*
* A VCONN Swap Shall reset the DiscoverIdentityCounter
* to zero
@@ -6470,18 +6465,11 @@ static void pe_vcs_turn_off_vconn_swap_run(int port)
pe[port].discover_identity_counter = 0;
pe[port].dr_swap_attempt_counter = 0;
- if (pe[port].power_role == PD_ROLE_SOURCE)
- set_state_pe(port, PE_SRC_READY);
- else
- set_state_pe(port, PE_SNK_READY);
+ pe_set_ready_state(port);
+ return;
}
}
-static void pe_vcs_turn_off_vconn_swap_exit(int port)
-{
- pd_timer_disable(port, PE_TIMER_TIMEOUT);
-}
-
/*
* PE_VCS_Send_PS_Rdy_Swap
*/
@@ -7167,7 +7155,6 @@ static __const_data const struct usb_state pe_states[] = {
[PE_VCS_TURN_OFF_VCONN_SWAP] = {
.entry = pe_vcs_turn_off_vconn_swap_entry,
.run = pe_vcs_turn_off_vconn_swap_run,
- .exit = pe_vcs_turn_off_vconn_swap_exit,
},
[PE_VCS_SEND_PS_RDY_SWAP] = {
.entry = pe_vcs_send_ps_rdy_swap_entry,