From e925194f41077344ccd3d1f815c69be0d1b3cad1 Mon Sep 17 00:00:00 2001 From: Poornima Tom Date: Thu, 29 Oct 2020 00:50:52 +0530 Subject: Tcpmv2: Handle transmission delay after Vccon swap While in PE state - PE_VCS_Send_Ps_Rdy_Swap,after successful vconn swap, it is expected to reset cable & receive the Accept/Reject Response. In case of more transmission delays, response_timer must be set, inorder to set the PE_FLAGS_TX_COMPLETE flag. BRANCH=None BUG=none TEST=Tested on ADL-RVP Signed-off-by: Poornima Tom Change-Id: Ia7f7f183ad51c7500b4dc4629e6d2b17dddc8163 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2505399 Tested-by: Vijay P Hiremath Commit-Queue: Keith Short Reviewed-by: Keith Short --- common/usbc/usb_pe_drp_sm.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/common/usbc/usb_pe_drp_sm.c b/common/usbc/usb_pe_drp_sm.c index 117572ac82..bffba90088 100644 --- a/common/usbc/usb_pe_drp_sm.c +++ b/common/usbc/usb_pe_drp_sm.c @@ -5938,6 +5938,13 @@ static void pe_vcs_send_ps_rdy_swap_run(int port) send_ctrl_msg(port, TCPC_TX_SOP_PRIME, PD_CTRL_SOFT_RESET); + /* + * Ensures enough time for transmission completion, + * in the case of more delays. + */ + pe[port].sender_response_timer = get_time().val + + PD_T_SENDER_RESPONSE; + pe[port].sub = PE_SUB1; } break; -- cgit v1.2.1