summaryrefslogtreecommitdiff
path: root/common/usbc/usb_tc_drp_acc_trysrc_sm.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/usbc/usb_tc_drp_acc_trysrc_sm.c')
-rw-r--r--common/usbc/usb_tc_drp_acc_trysrc_sm.c9
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 a3aa63f83c..166815cd6c 100644
--- a/common/usbc/usb_tc_drp_acc_trysrc_sm.c
+++ b/common/usbc/usb_tc_drp_acc_trysrc_sm.c
@@ -2866,10 +2866,12 @@ static void tc_drp_auto_toggle_run(const int port)
}
}
+ if (next_state == DRP_TC_DEFAULT)
+ next_state = (PD_ROLE_DEFAULT(port) == PD_ROLE_SOURCE)
+ ? DRP_TC_UNATTACHED_SRC
+ : DRP_TC_UNATTACHED_SNK;
+
switch (next_state) {
- case DRP_TC_DEFAULT:
- set_state_tc(port, PD_DEFAULT_STATE(port));
- break;
case DRP_TC_UNATTACHED_SNK:
/*
* New SNK connection.
@@ -2891,6 +2893,7 @@ static void tc_drp_auto_toggle_run(const int port)
set_state_tc(port, TC_UNATTACHED_SRC);
break;
case DRP_TC_DRP_AUTO_TOGGLE:
+ default:
/*
* We are staying in PD_STATE_DRP_AUTO_TOGGLE
*/