diff options
-rw-r--r-- | common/usb_common.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/common/usb_common.c b/common/usb_common.c index f640b9d0fd..9a467ed96d 100644 --- a/common/usb_common.c +++ b/common/usb_common.c @@ -336,6 +336,13 @@ enum pd_drp_next_states drp_auto_toggle_next_state( return DRP_TC_UNATTACHED_SRC; case PD_DRP_TOGGLE_ON: default: + if (!auto_toggle_supported) { + if (power_role == PD_ROLE_SINK) + return DRP_TC_UNATTACHED_SNK; + else + return DRP_TC_UNATTACHED_SRC; + } + return DRP_TC_DRP_AUTO_TOGGLE; } } else if ((cc_is_rp(cc1) || cc_is_rp(cc2)) && @@ -375,6 +382,13 @@ enum pd_drp_next_states drp_auto_toggle_next_state( } } else { /* Anything else, keep toggling */ + if (!auto_toggle_supported) { + if (power_role == PD_ROLE_SINK) + return DRP_TC_UNATTACHED_SNK; + else + return DRP_TC_UNATTACHED_SRC; + } + return DRP_TC_DRP_AUTO_TOGGLE; } } |