summaryrefslogtreecommitdiff
path: root/common/usb_pd_protocol.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/usb_pd_protocol.c')
-rw-r--r--common/usb_pd_protocol.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/common/usb_pd_protocol.c b/common/usb_pd_protocol.c
index e14e0547f4..71c85f5ecd 100644
--- a/common/usb_pd_protocol.c
+++ b/common/usb_pd_protocol.c
@@ -2687,6 +2687,15 @@ void pd_task(void *u)
this_state = PD_STATE_SOFT_RESET;
/*
+ * Re-discover any alternate modes we may have been
+ * using with this port partner. Note this may not work
+ * in all scenarios if the port partner was expecting an
+ * ExitMode before reset, but it does improve how often
+ * alternate modes can work after reset.
+ */
+ pd[port].flags |= PD_FLAGS_CHECK_IDENTITY;
+
+ /*
* Set the TCPC reset event such that we can set our CC
* terminations, determine polarity, and enable RX so we
* can hear back from our port partner.