diff options
Diffstat (limited to 'common/usb_common.c')
-rw-r--r-- | common/usb_common.c | 9 |
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; |