summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew McRae <amcrae@google.com>2020-05-27 14:29:40 +1000
committerCommit Bot <commit-bot@chromium.org>2020-05-30 01:48:11 +0000
commitaa369444be02877172ce19c0a9a1fee43906c303 (patch)
tree969606b60146590b4894358f81e41f933abfeab6
parent432ccd60474143259da309b75cfa915b56bd5d31 (diff)
downloadchrome-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.c10
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);