summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiana Z <dzigterman@chromium.org>2021-03-19 14:33:25 -0600
committerCommit Bot <commit-bot@chromium.org>2021-03-23 22:24:21 +0000
commit9ab043078548fd30c010b7c3d5dd394e29096491 (patch)
treeb72e8964b45a4fb0070cab9869b9d9d656388028
parentb505164da7edb881c87dd5381eb09fb41b18a05a (diff)
downloadchrome-ec-9ab043078548fd30c010b7c3d5dd394e29096491.tar.gz
TCPMv2: Increment Vconn swap counter after send
During initial connection, Vconn swaps may be discarded without sending. Only count a Vconn swap for the purposes of the counter when the swap was successfully sent. BRANCH=Volteer BUG=b:182885623 TEST=verify two Voxels connected together are reliably able to enter TBT mode Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: Ia76f03ee4c517d297061bda9dc9b5bfbf5990485 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2776213 Reviewed-by: Abe Levkoy <alevkoy@chromium.org>
-rw-r--r--common/usbc/usb_pe_drp_sm.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/common/usbc/usb_pe_drp_sm.c b/common/usbc/usb_pe_drp_sm.c
index e8610f3c75..93e9ff3bb6 100644
--- a/common/usbc/usb_pe_drp_sm.c
+++ b/common/usbc/usb_pe_drp_sm.c
@@ -1780,7 +1780,6 @@ int pd_is_port_partner_dualrole(int port)
static bool port_try_vconn_swap(int port)
{
if (pe[port].vconn_swap_counter < N_VCONN_SWAP_COUNT) {
- pe[port].vconn_swap_counter++;
PE_SET_FLAG(port, PE_FLAGS_VCONN_SWAP_TO_ON);
set_state_pe(port, get_last_state_pe(port));
return true;
@@ -6248,6 +6247,9 @@ static void pe_vcs_send_swap_run(int port)
PE_CHK_FLAG(port, PE_FLAGS_MSG_RECEIVED)) {
PE_CLR_FLAG(port, PE_FLAGS_MSG_RECEIVED);
+ /* Increment once message has successfully sent */
+ pe[port].vconn_swap_counter++;
+
type = PD_HEADER_TYPE(rx_emsg[port].header);
cnt = PD_HEADER_CNT(rx_emsg[port].header);
sop = PD_HEADER_GET_SOP(rx_emsg[port].header);