diff options
author | Denis Brockus <dbrockus@google.com> | 2021-02-24 11:15:55 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-03-02 00:14:22 +0000 |
commit | 80c386da0c48318859dbdcef0f471e302d63c770 (patch) | |
tree | 75ed4cb7f1302282de78ef718c5c07aa49fffe18 /common/usbc/usb_pe_drp_sm.c | |
parent | 7139f9bdf56ad84b1b189a221cbc9de05a593138 (diff) | |
download | chrome-ec-80c386da0c48318859dbdcef0f471e302d63c770.tar.gz |
TCPMv2: PD Timers - Add PE PRSwapWait to framework
BUG=b:178029034
BRANCH=none
TEST=make runtests
Signed-off-by: Denis Brockus <dbrockus@google.com>
Change-Id: I06533a967224d06dbd85459c6eed816d6d354158
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2718385
Commit-Queue: Denis Brockus <dbrockus@chromium.org>
Tested-by: Denis Brockus <dbrockus@chromium.org>
Reviewed-by: Diana Z <dzigterman@chromium.org>
Diffstat (limited to 'common/usbc/usb_pe_drp_sm.c')
-rw-r--r-- | common/usbc/usb_pe_drp_sm.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/common/usbc/usb_pe_drp_sm.c b/common/usbc/usb_pe_drp_sm.c index a585e02750..f05e96b44f 100644 --- a/common/usbc/usb_pe_drp_sm.c +++ b/common/usbc/usb_pe_drp_sm.c @@ -603,12 +603,6 @@ static struct policy_engine { */ uint64_t discover_identity_timer; - /* - * This timer tracks the time after receiving a Wait message in response - * to a PR_Swap message. - */ - uint64_t pr_swap_wait_timer; - /* Counters */ /* @@ -2675,7 +2669,7 @@ static void pe_src_ready_run(int port) } if (PE_CHK_FLAG(port, PE_FLAGS_WAITING_PR_SWAP) && - get_time().val > pe[port].pr_swap_wait_timer) { + pd_timer_is_expired(port, PE_TIMER_PR_SWAP_WAIT)) { PE_CLR_FLAG(port, PE_FLAGS_WAITING_PR_SWAP); PE_SET_DPM_REQUEST(port, DPM_REQUEST_PR_SWAP); } @@ -4432,6 +4426,9 @@ static void pe_prs_src_snk_send_swap_entry(int port) { print_current_state(port); + /* Making an attempt to PR_Swap, clear we were possibly waiting */ + pd_timer_disable(port, PE_TIMER_PR_SWAP_WAIT); + /* Request the Protocol Layer to send a PR_Swap Message. */ send_ctrl_msg(port, TCPC_TX_SOP, PD_CTRL_PR_SWAP); pe_sender_response_msg_entry(port); @@ -4479,9 +4476,9 @@ static void pe_prs_src_snk_send_swap_run(int port) N_SNK_SRC_PR_SWAP_COUNT) { PE_SET_FLAG(port, PE_FLAGS_WAITING_PR_SWAP); - pe[port].pr_swap_wait_timer = - get_time().val + - PD_T_PR_SWAP_WAIT; + pd_timer_enable(port, + PE_TIMER_PR_SWAP_WAIT, + PD_T_PR_SWAP_WAIT); } pe[port].src_snk_pr_swap_counter++; set_state_pe(port, PE_SRC_READY); |