diff options
author | Denis Brockus <dbrockus@google.com> | 2020-04-21 15:11:23 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-04-22 01:09:42 +0000 |
commit | 7aee176c6ea1365603a36f2cd9e762c1354fbd03 (patch) | |
tree | 265e9a6fc9c79010b9dcaa114d643d62701ccc3e | |
parent | fb1a367fb4e2f3ee57383d2b4259db4b03b9aa08 (diff) | |
download | chrome-ec-7aee176c6ea1365603a36f2cd9e762c1354fbd03.tar.gz |
tcpmv2: transition from non-toggle to auto_toggle needs DRP
set_connection enables the TCPC DRP bit which is required for
a new connection to be detected when we are in auto toggle.
BUG=b:154590730
BRANCH=none
TEST=see bug for repro instructions
Signed-off-by: Denis Brockus <dbrockus@google.com>
Change-Id: I8621a8abf075c6255f3dbc22df9d5d58c26b0dd2
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2159852
Tested-by: Denis Brockus <dbrockus@chromium.org>
Auto-Submit: Denis Brockus <dbrockus@chromium.org>
Reviewed-by: Edward Hill <ecgh@chromium.org>
Commit-Queue: Edward Hill <ecgh@chromium.org>
-rw-r--r-- | common/usbc/usb_tc_drp_acc_trysrc_sm.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/common/usbc/usb_tc_drp_acc_trysrc_sm.c b/common/usbc/usb_tc_drp_acc_trysrc_sm.c index 8b65361462..586404cb42 100644 --- a/common/usbc/usb_tc_drp_acc_trysrc_sm.c +++ b/common/usbc/usb_tc_drp_acc_trysrc_sm.c @@ -2747,8 +2747,17 @@ static __maybe_unused void check_drp_connection(const int port) #ifdef CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE case DRP_TC_DRP_AUTO_TOGGLE: /* - * We are staying in PD_STATE_DRP_AUTO_TOGGLE + * We are staying in PD_STATE_DRP_AUTO_TOGGLE or moving + * from non-DRP to PD_STATE_DRP_AUTO_TOGGLE + * Set RC.DRP=1b (DRP) + * Set RC.CC1=10b or 01b (Rd or Rp) + * Set RC.CC2=10b or 01b (Rd or Rp) */ + tcpm_set_connection(port, + (PD_ROLE_DEFAULT(port) == PD_ROLE_SOURCE) + ? TYPEC_CC_RP + : TYPEC_CC_RD, + 0); set_state_tc(port, TC_DRP_AUTO_TOGGLE); break; #endif |