diff options
author | Diana Z <dzigterman@chromium.org> | 2021-06-03 13:34:18 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-06-04 20:55:18 +0000 |
commit | 0716683f2d0fda8aad6ec4e6634a723d33ebbf42 (patch) | |
tree | 6ebeb4cb8213a23148c74ad16f87af34380a7d8b /common/usbc | |
parent | 556ca6009a141c23ab8f20d25202d9c13b60904e (diff) | |
download | chrome-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.c | 19 |
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, |