summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Brockus <dbrockus@google.com>2021-02-24 11:15:55 -0700
committerCommit Bot <commit-bot@chromium.org>2021-03-02 00:14:22 +0000
commit80c386da0c48318859dbdcef0f471e302d63c770 (patch)
tree75ed4cb7f1302282de78ef718c5c07aa49fffe18
parent7139f9bdf56ad84b1b189a221cbc9de05a593138 (diff)
downloadchrome-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>
-rw-r--r--common/usbc/usb_pe_drp_sm.c17
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);