diff options
author | Wai-Hong Tam <waihong@google.com> | 2020-03-30 16:06:13 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-03-31 19:13:42 +0000 |
commit | 721d3599880a4d9ec55c34bef806a710645cf0ce (patch) | |
tree | 3baa954fcc5ee8a71e4eb347c4891e3285090db8 | |
parent | 80f3f86932805b824473d3a4ff1cfe3f2c040012 (diff) | |
download | chrome-ec-721d3599880a4d9ec55c34bef806a710645cf0ce.tar.gz |
TCPMv2: Treat more Type-C states, like TC_DBG_ACC_SNK, as connected
Some Type-C states are connected states, like TC_DBG_ACC_SNK, but have
not been put into the conditions. This resulted the TCPC not ack and
receive any PD message; so failed to do any PD negotiation.
BRANCH=None
BUG=b:152650710
TEST=Connected Trogdor to Servo v4 with dts-mode enabled. They
negotiated to 20V.
Change-Id: I04bb5dc62721963c0fc3ea4aae9446c55ea6ae5e
Signed-off-by: Wai-Hong Tam <waihong@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2128689
Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
-rw-r--r-- | common/usbc/usb_tc_ctvpd_sm.c | 4 | ||||
-rw-r--r-- | common/usbc/usb_tc_drp_acc_trysrc_sm.c | 7 |
2 files changed, 9 insertions, 2 deletions
diff --git a/common/usbc/usb_tc_ctvpd_sm.c b/common/usbc/usb_tc_ctvpd_sm.c index 804c733485..d763b8d137 100644 --- a/common/usbc/usb_tc_ctvpd_sm.c +++ b/common/usbc/usb_tc_ctvpd_sm.c @@ -225,7 +225,9 @@ test_mockable_static void print_current_state(const int port) int pd_is_connected(int port) { return (get_state_tc(port) == TC_ATTACHED_SNK) || - (get_state_tc(port) == TC_ATTACHED_SRC); + (get_state_tc(port) == TC_ATTACHED_SRC) || + (get_state_tc(port) == TC_CT_ATTACHED_UNSUPPORTED) || + (get_state_tc(port) == TC_CT_ATTACHED_VPD); } bool pd_is_disconnected(int port) diff --git a/common/usbc/usb_tc_drp_acc_trysrc_sm.c b/common/usbc/usb_tc_drp_acc_trysrc_sm.c index 82504919c1..a3aa63f83c 100644 --- a/common/usbc/usb_tc_drp_acc_trysrc_sm.c +++ b/common/usbc/usb_tc_drp_acc_trysrc_sm.c @@ -827,7 +827,12 @@ void pd_vbus_low(int port) int pd_is_connected(int port) { return (get_state_tc(port) == TC_ATTACHED_SNK) || - (get_state_tc(port) == TC_ATTACHED_SRC); + (get_state_tc(port) == TC_ATTACHED_SRC) || +#ifdef CONFIG_USB_PE_SM + (get_state_tc(port) == TC_CT_ATTACHED_SNK) || +#endif + (get_state_tc(port) == TC_DBG_ACC_SNK) || + (get_state_tc(port) == TC_UNORIENTED_DBG_ACC_SRC); } bool pd_is_disconnected(int port) |