summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Brockus <dbrockus@chromium.org>2019-10-15 06:53:06 -0600
committerCommit Bot <commit-bot@chromium.org>2019-10-16 08:42:17 +0000
commit2dd2eecaa743a65d8369c7799bbc1450b0d91d0e (patch)
tree9271744f71b15711695eeece9ea92aaa52807755
parent5bcfbb8956b19b327eb314cc921e6877be295a2b (diff)
downloadchrome-ec-2dd2eecaa743a65d8369c7799bbc1450b0d91d0e.tar.gz
pd: fix timer issue on pe_prs_snk_src_source_on_run
BUG=none BRANCH=none TEST=make buildall -j Change-Id: I12fbeb0a85d45bce8173c0c3831f663f5b618cc8 Signed-off-by: Denis Brockus <dbrockus@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1862621 Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-by: Edward Hill <ecgh@chromium.org>
-rw-r--r--common/usbc/usb_pe_drp_sm.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/common/usbc/usb_pe_drp_sm.c b/common/usbc/usb_pe_drp_sm.c
index d0e91e5098..abd5e5bb6b 100644
--- a/common/usbc/usb_pe_drp_sm.c
+++ b/common/usbc/usb_pe_drp_sm.c
@@ -3069,15 +3069,14 @@ static void pe_prs_snk_src_source_on_entry(int port)
static void pe_prs_snk_src_source_on_run(int port)
{
/* Wait until power supply turns on */
- if (get_time().val < pe[port].ps_source_timer)
- return;
-
- if (pe[port].ps_source_timer != 0) {
- /* update pe power role */
- pe[port].power_role = tc_get_power_role(port);
- prl_send_ctrl_msg(port, TCPC_TX_SOP, PD_CTRL_PS_RDY);
- /* reset timer so PD_CTRL_PS_RDY isn't sent again */
- pe[port].ps_source_timer = TIMER_DISABLED;
+ if (pe[port].ps_source_timer != TIMER_DISABLED) {
+ if (get_time().val >= pe[port].ps_source_timer) {
+ /* update pe power role */
+ pe[port].power_role = tc_get_power_role(port);
+ prl_send_ctrl_msg(port, TCPC_TX_SOP, PD_CTRL_PS_RDY);
+ /* reset timer so PD_CTRL_PS_RDY isn't sent again */
+ pe[port].ps_source_timer = TIMER_DISABLED;
+ }
}
/*