summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTing Shen <phoenixshen@google.com>2019-10-23 14:49:53 +0800
committerCommit Bot <commit-bot@chromium.org>2020-07-07 10:45:47 +0000
commita99ca653c102ca7a8fcc047e513bd9a41b1f3645 (patch)
treef93a86dbe0ff41d24ad07684da38b3f63148d00b
parented843d608796612b5515ae42d7ed1ff9ab23300d (diff)
downloadchrome-ec-a99ca653c102ca7a8fcc047e513bd9a41b1f3645.tar.gz
usb_pd: return to correct state after tcpc reset
Currently tcpc reset always let usb pd state machine goes back to PD_DEFAULT_STATE, which is SNK_DISCONNECTED if USB_PD_DUAL_ROLE enabled, and stay at sink even if PD_DRP_FORCE_SOURCE flag turned on. We should follow the drp_state setting after reset. BUG=b:138803492 TEST=test_that --fast --board=atlas $DUT_IP firmware_PDConnect \ firmware_PDTrySrc firmware_PDDataSwap BRANCH=firmware-atlas-11827.B Change-Id: I2ef59214fc63f253488789f1dc820576497e20ad Signed-off-by: Ting Shen <phoenixshen@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1873859 Reviewed-by: Eric Yilun Lin <yllin@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org> Commit-Queue: Ting Shen <phoenixshen@chromium.org> Tested-by: Ting Shen <phoenixshen@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2279821 Tested-by: Dawid Niedźwiecki <dn@semihalf.com> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
-rw-r--r--common/usb_pd_protocol.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/common/usb_pd_protocol.c b/common/usb_pd_protocol.c
index 1e33b9ef2b..ea22a11120 100644
--- a/common/usb_pd_protocol.c
+++ b/common/usb_pd_protocol.c
@@ -2940,6 +2940,9 @@ void pd_task(void *u)
pd_set_power_role(port, PD_ROLE_DEFAULT(port));
pd[port].vdm_state = VDM_STATE_DONE;
set_state(port, PD_DEFAULT_STATE(port));
+#ifdef CONFIG_USB_PD_DUAL_ROLE
+ pd_update_dual_role_config(port);
+#endif
}
}
#endif