summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbe Levkoy <alevkoy@chromium.org>2022-05-03 11:52:11 -0600
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-05-09 19:09:56 +0000
commit181ad49b51a7a5468235e6a4ea32f44a41824fa1 (patch)
treeeb630fc2d10cd5ccdb0e42e0cda6ad842b64413c
parent205ee1bb1bc98527af99155854c795544713ba1e (diff)
downloadchrome-ec-181ad49b51a7a5468235e6a4ea32f44a41824fa1.tar.gz
TCPMv2: Clear flags during Data Reset
Clear PE flags for protocol error and discard while processing them instead of waiting for Error Recovery to reinitialize the PE. BUG=b:209624473,b:209625351 TEST=make buildall BRANCH=none Signed-off-by: Abe Levkoy <alevkoy@chromium.org> Change-Id: I90102bfa5ab591124ce73b670785c66129e23e4e Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3624939 Reviewed-by: Diana Z <dzigterman@chromium.org>
-rw-r--r--common/usbc/usb_pe_drp_sm.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/common/usbc/usb_pe_drp_sm.c b/common/usbc/usb_pe_drp_sm.c
index f38a2bd1de..bafbbbdbad 100644
--- a/common/usbc/usb_pe_drp_sm.c
+++ b/common/usbc/usb_pe_drp_sm.c
@@ -7644,10 +7644,13 @@ static void pe_ddr_perform_data_reset_run(int port)
* make sure the port partner receives it before returning to a
* ready state.
*/
- if (PE_CHK_FLAG(port, PE_FLAGS_MSG_DISCARDED))
+ if (PE_CHK_FLAG(port, PE_FLAGS_MSG_DISCARDED)) {
+ PE_CLR_FLAG(port, PE_FLAGS_MSG_DISCARDED);
set_state_pe(port, PE_WAIT_FOR_ERROR_RECOVERY);
- else if (PE_CHK_FLAG(port, PE_FLAGS_TX_COMPLETE))
+ } else if (PE_CHK_FLAG(port, PE_FLAGS_TX_COMPLETE)) {
+ PE_CLR_FLAG(port, PE_FLAGS_TX_COMPLETE);
pe_set_ready_state(port);
+ }
return;
} else if (pd_timer_is_expired(port, PE_TIMER_DATA_RESET_FAIL) ||
PE_CHK_FLAG(port, PE_FLAGS_PROTOCOL_ERROR)) {