summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiana Z <dzigterman@chromium.org>2021-01-27 21:54:04 -0700
committerCommit Bot <commit-bot@chromium.org>2021-01-29 21:49:39 +0000
commitf4e144b2ff9c5ced820013588da505179eaa10b8 (patch)
treecd24bf688461460b1f0440fb4fcc5104ae760b85
parent56340fe4f539e8ec5f82aedeea0b7ab7cd35b1fd (diff)
downloadchrome-ec-f4e144b2ff9c5ced820013588da505179eaa10b8.tar.gz
TCPMv2: Check message discard sending Vconn swap PS_RDY
Incoming messages may cause the PS_RDY message from a Vconn swap to be discarded. Check for this condition and soft reset using the SOP* of the incoming message. BRANCH=None BUG=b:157228506,b:174726240 TEST=on galtic, verify after reboot phone is able to charge Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: Ic74d490ab2c1450851b795249f2e57322461ad2b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2653794 Reviewed-by: Denis Brockus <dbrockus@chromium.org>
-rw-r--r--common/usbc/usb_pe_drp_sm.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/common/usbc/usb_pe_drp_sm.c b/common/usbc/usb_pe_drp_sm.c
index 72e09e8b68..df2ce018a8 100644
--- a/common/usbc/usb_pe_drp_sm.c
+++ b/common/usbc/usb_pe_drp_sm.c
@@ -6334,6 +6334,9 @@ static void pe_vcs_send_ps_rdy_swap_run(int port)
pe_set_ready_state(port);
}
+ if (pe_check_outgoing_discard(port))
+ return;
+
if (PE_CHK_FLAG(port, PE_FLAGS_PROTOCOL_ERROR)) {
PE_CLR_FLAG(port, PE_FLAGS_PROTOCOL_ERROR);
/* PS_RDY didn't send, soft reset */