diff options
author | Andrew McRae <amcrae@google.com> | 2020-05-27 14:29:40 +1000 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-05-30 01:48:11 +0000 |
commit | aa369444be02877172ce19c0a9a1fee43906c303 (patch) | |
tree | 969606b60146590b4894358f81e41f933abfeab6 | |
parent | 432ccd60474143259da309b75cfa915b56bd5d31 (diff) | |
download | chrome-ec-aa369444be02877172ce19c0a9a1fee43906c303.tar.gz |
TCPMv2: Ensure that error flags are cleared upon reset
Ensure that error flags are cleared upon hard reset.
BUG=b:156306710
TEST=USB-C Monitor is now seen after power-on.
BRANCH=none
Signed-off-by: Andrew McRae <amcrae@google.com>
Change-Id: Id70f209d1335ed260603d7aed15a3255ec832cbf
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2216099
Tested-by: Andrew McRae <amcrae@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
Reviewed-by: Diana Z <dzigterman@chromium.org>
Commit-Queue: Andrew McRae <amcrae@chromium.org>
-rw-r--r-- | common/usbc/usb_pe_drp_sm.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/common/usbc/usb_pe_drp_sm.c b/common/usbc/usb_pe_drp_sm.c index e32712ff6b..2b188bf547 100644 --- a/common/usbc/usb_pe_drp_sm.c +++ b/common/usbc/usb_pe_drp_sm.c @@ -2126,6 +2126,11 @@ static void pe_src_hard_reset_entry(int port) /* Start PSHardResetTimer */ pe[port].ps_hard_reset_timer = get_time().val + PD_T_PS_HARD_RESET; + + /* Clear error flags */ + PE_CLR_FLAG(port, PE_FLAGS_VDM_REQUEST_NAKED | + PE_FLAGS_PROTOCOL_ERROR | + PE_FLAGS_VDM_REQUEST_BUSY); } static void pe_src_hard_reset_run(int port) @@ -2813,7 +2818,10 @@ static void pe_snk_hard_reset_entry(int port) set_state_pe(port, PE_SRC_DISABLED); } - PE_CLR_FLAG(port, PE_FLAGS_SNK_WAIT_CAP_TIMEOUT); + PE_CLR_FLAG(port, PE_FLAGS_SNK_WAIT_CAP_TIMEOUT | + PE_FLAGS_VDM_REQUEST_NAKED | + PE_FLAGS_PROTOCOL_ERROR | + PE_FLAGS_VDM_REQUEST_BUSY); /* Request the generation of Hard Reset Signaling by the PHY Layer */ pe_prl_execute_hard_reset(port); |