diff options
-rw-r--r-- | common/usbc/usb_tc_drp_acc_trysrc_sm.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/common/usbc/usb_tc_drp_acc_trysrc_sm.c b/common/usbc/usb_tc_drp_acc_trysrc_sm.c index 37eeffeb23..b0c321b27a 100644 --- a/common/usbc/usb_tc_drp_acc_trysrc_sm.c +++ b/common/usbc/usb_tc_drp_acc_trysrc_sm.c @@ -710,10 +710,13 @@ void tc_hard_reset_request(int port) */ void tc_hard_reset_allow_unattach(int port) { - TC_CLR_FLAG(port, TC_FLAGS_HARD_RESET_NO_UNATTACH); + /* Only deal with HardReset if we are currently doing HardReset */ + if (TC_CHK_FLAG(port, TC_FLAGS_HARD_RESET_NO_UNATTACH)) { + TC_CLR_FLAG(port, TC_FLAGS_HARD_RESET_NO_UNATTACH); - /* Enable AutoDischargeDisconnect */ - tcpm_enable_auto_discharge_disconnect(port, 1); + /* Enable AutoDischargeDisconnect */ + tcpm_enable_auto_discharge_disconnect(port, 1); + } } void tc_disc_ident_in_progress(int port) |