diff options
author | Edward Hill <ecgh@chromium.org> | 2020-11-16 17:56:42 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-12-11 21:06:28 +0000 |
commit | 61502a458f6801080b0e4ee3bdea42ded4dd8dab (patch) | |
tree | 003a42e553a7df3b1bdf627112bf8deba3b7ef3a /common/usb_pd_protocol.c | |
parent | 99baad62068de522207a068e72122d94b59677b0 (diff) | |
download | chrome-ec-61502a458f6801080b0e4ee3bdea42ded4dd8dab.tar.gz |
usbc: Remove pd_ts_dts_plugged() check from PD_DRP_FORCE_SINK
PD_DRP_FORCE_SINK had an exception (since crrev.com/c/277275),
allowing role to remain source on S5 entry if DTS (debug accessory)
is connected. Remove this exception.
rddkeepalive on cr50 (set when servod starts) ensures CCD mode stays
enabled across power and role changes.
BUG=b:173457150
BRANCH=none
TEST=servo_v4_role:snk, AP S0/S5/G3, EC reboot/hibernate
-> CCD keeps working
Signed-off-by: Edward Hill <ecgh@chromium.org>
Change-Id: Iccdfb504c6269ee2ba072e9818920e3e10a56739
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2584857
Diffstat (limited to 'common/usb_pd_protocol.c')
-rw-r--r-- | common/usb_pd_protocol.c | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/common/usb_pd_protocol.c b/common/usb_pd_protocol.c index e09d37f759..4813f5dca9 100644 --- a/common/usb_pd_protocol.c +++ b/common/usb_pd_protocol.c @@ -339,15 +339,6 @@ int pd_is_connected(int port) pd[port].task_state != PD_STATE_SRC_DISCONNECTED_DEBOUNCE); } -/* - * Return true if partner port is a DTS or TS capable of entering debug - * mode (eg. is presenting Rp/Rp or Rd/Rd). - */ -int pd_ts_dts_plugged(int port) -{ - return pd[port].flags & PD_FLAGS_TS_DTS_PARTNER; -} - /* Return true if partner port is known to be PD capable. */ int pd_capable(int port) { @@ -2274,12 +2265,11 @@ static void pd_update_dual_role_config(int port) { /* * Change to sink if port is currently a source AND (new DRP - * state is force sink OR new DRP state is either toggle off - * or debug accessory toggle only and we are in the source - * disconnected state). + * state is force sink OR new DRP state is toggle off and we are in the + * source disconnected state). */ if (pd[port].power_role == PD_ROLE_SOURCE && - ((drp_state[port] == PD_DRP_FORCE_SINK && !pd_ts_dts_plugged(port)) + (drp_state[port] == PD_DRP_FORCE_SINK || (drp_state[port] == PD_DRP_TOGGLE_OFF && pd[port].task_state == PD_STATE_SRC_DISCONNECTED))) { pd_set_power_role(port, PD_ROLE_SINK); |