diff options
author | Patryk Duda <pdk@semihalf.com> | 2020-06-17 15:55:59 +0200 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-06-22 13:08:26 +0000 |
commit | e2cbaec65479a7bb80afc773002a25d3ec3ee322 (patch) | |
tree | 6f1845c6fcf98e2bc3019d7d73140dd7aa46d2b0 | |
parent | 23f039077e86e6da42705f8e7305c2627bac54db (diff) | |
download | chrome-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.c | 9 |
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); |