summaryrefslogtreecommitdiff
path: root/common/usb_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/usb_common.c')
-rw-r--r--common/usb_common.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/common/usb_common.c b/common/usb_common.c
index 4f9e17fa4f..dc8fb21e0a 100644
--- a/common/usb_common.c
+++ b/common/usb_common.c
@@ -481,10 +481,17 @@ mux_state_t get_mux_mode_to_set(int port)
/*
* If the power role is sink and the PD partner device is not capable
* of USB communication then disconnect.
+ *
+ * On an entry into Unattached.SNK, the partner may be PD capable but
+ * hasn't yet sent source capabilities. In this case, hold off enabling
+ * USB3 termination until the PD capability is resolved.
+ *
+ * TODO(b/188588458): TCPMv2: Delay enabling USB3 termination when USB4
+ * is supported.
*/
if (IS_ENABLED(CONFIG_USB_PD_DUAL_ROLE) &&
pd_get_power_role(port) == PD_ROLE_SINK &&
- pd_capable(port) &&
+ (pd_capable(port) || pd_waiting_on_partner_src_caps(port)) &&
!pd_get_partner_usb_comm_capable(port))
return USB_PD_MUX_NONE;