summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatryk Duda <pdk@semihalf.com>2020-06-17 15:55:59 +0200
committerCommit Bot <commit-bot@chromium.org>2020-06-22 13:08:26 +0000
commite2cbaec65479a7bb80afc773002a25d3ec3ee322 (patch)
tree6f1845c6fcf98e2bc3019d7d73140dd7aa46d2b0
parent23f039077e86e6da42705f8e7305c2627bac54db (diff)
downloadchrome-ec-e2cbaec65479a7bb80afc773002a25d3ec3ee322.tar.gz
TCPMv2: Do not initialize port which is not available
If port doesn't exist there is no reason to initialize anything. Go directly to Disabled state and set flags to disable PE and PRL state machines too. BUG=b:154602760 BRANCH=none TEST=Flash casta. EC RW should report port 1 transition to Disabled state Signed-off-by: Patryk Duda <pdk@semihalf.com> Change-Id: I4d90324842363a5b714ee2e2953edffb30c6009f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2250680 Reviewed-by: Diana Z <dzigterman@chromium.org>
-rw-r--r--common/usbc/usb_tc_drp_acc_trysrc_sm.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/common/usbc/usb_tc_drp_acc_trysrc_sm.c b/common/usbc/usb_tc_drp_acc_trysrc_sm.c
index 9c3e732634..250700209b 100644
--- a/common/usbc/usb_tc_drp_acc_trysrc_sm.c
+++ b/common/usbc/usb_tc_drp_acc_trysrc_sm.c
@@ -1160,6 +1160,15 @@ static void restart_tc_sm(int port, enum usb_tc_state start_state)
void tc_state_init(int port)
{
+ /* If port is not available, there is nothing to initialize */
+ if (port >= board_get_usb_pd_port_count()) {
+ tc_enable_pd(port, 0);
+ tc_pause_event_loop(port);
+ TC_SET_FLAG(port, TC_FLAGS_SUSPEND);
+ set_state_tc(port, TC_DISABLED);
+ return;
+ }
+
/* Default to not jumping warm to ATTACHED_SNK */
TC_CLR_FLAG(port, TC_FLAGS_TC_WARM_ATTACHED_SNK);