summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWai-Hong Tam <waihong@google.com>2020-03-30 16:06:13 -0700
committerCommit Bot <commit-bot@chromium.org>2020-03-31 19:13:42 +0000
commit721d3599880a4d9ec55c34bef806a710645cf0ce (patch)
tree3baa954fcc5ee8a71e4eb347c4891e3285090db8
parent80f3f86932805b824473d3a4ff1cfe3f2c040012 (diff)
downloadchrome-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.c4
-rw-r--r--common/usbc/usb_tc_drp_acc_trysrc_sm.c7
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)