diff options
author | Ting Shen <phoenixshen@google.com> | 2019-10-23 14:49:53 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-07-07 10:45:47 +0000 |
commit | a99ca653c102ca7a8fcc047e513bd9a41b1f3645 (patch) | |
tree | f93a86dbe0ff41d24ad07684da38b3f63148d00b | |
parent | ed843d608796612b5515ae42d7ed1ff9ab23300d (diff) | |
download | chrome-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.c | 3 |
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 |