diff options
author | Sam Hurst <shurst@google.com> | 2020-05-04 11:49:39 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-05-09 02:42:22 +0000 |
commit | 4b38876725070d564ea784f08aa1f1c816230849 (patch) | |
tree | 6b6f78ea8251b1706ad6fe1800530e04cbe76b23 | |
parent | dd5c0437677814b24f24628da23725ea731db03c (diff) | |
download | chrome-ec-4b38876725070d564ea784f08aa1f1c816230849.tar.gz |
TCPMv2: Guard all VCONN function with CONFIG_USBC_VCONN macro
Guard all VCONN related function that are ued in
the Policy Engine with the CONFIG_USBC_VCONN macro.
BUG=b:155656668
BRANCH=none
TEST=make -j buildall
Signed-off-by: Sam Hurst <shurst@google.com>
Change-Id: Ib46622126a577950d46b15af649c260a0790634a
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2180426
Reviewed-by: Jett Rink <jettrink@chromium.org>
Reviewed-by: Denis Brockus <dbrockus@chromium.org>
-rw-r--r-- | common/usbc/usb_pe_drp_sm.c | 54 | ||||
-rw-r--r-- | common/usbc/usb_tc_drp_acc_trysrc_sm.c | 7 | ||||
-rw-r--r-- | include/usb_tc_sm.h | 3 |
3 files changed, 45 insertions, 19 deletions
diff --git a/common/usbc/usb_pe_drp_sm.c b/common/usbc/usb_pe_drp_sm.c index 1f3528788f..6e3e76764c 100644 --- a/common/usbc/usb_pe_drp_sm.c +++ b/common/usbc/usb_pe_drp_sm.c @@ -340,6 +340,21 @@ static const char * const pe_state_names[] = { extern const char **pe_state_names; #endif +#ifndef CONFIG_USBC_VCONN +enum usb_pe_state PE_VCS_EVALUATE_SWAP_NOT_SUPPORTED; +enum usb_pe_state PE_VCS_SEND_SWAP_NOT_SUPPORTED; +enum usb_pe_state PE_VCS_WAIT_FOR_VCONN_SWAP_NOT_SUPPORTED; +enum usb_pe_state PE_VCS_TURN_ON_VCONN_SWAP_NOT_SUPPORTED; +enum usb_pe_state PE_VCS_TURN_OFF_VCONN_SWAP_NOT_SUPPORTED; +enum usb_pe_state PE_VCS_SEND_PS_RDY_SWAP_NOT_SUPPORTED; +#define PE_VCS_EVALUATE_SWAP PE_VCS_EVALUATE_SWAP_NOT_SUPPORTED +#define PE_VCS_SEND_SWAP PE_VCS_SEND_SWAP_NOT_SUPPORTED +#define PE_VCS_WAIT_FOR_VCONN_SWAP PE_VCS_WAIT_FOR_VCONN_SWAP_NOT_SUPPORTED +#define PE_VCS_TURN_ON_VCONN_SWAP PE_VCS_TURN_ON_VCONN_SWAP_NOT_SUPPORTED +#define PE_VCS_TURN_OFF_VCONN_SWAP PE_VCS_TURN_OFF_VCONN_SWAP_NOT_SUPPORTED +#define PE_VCS_SEND_PS_RDY_SWAP PE_VCS_SEND_PS_RDY_SWAP_NOT_SUPPORTED +#endif /* CONFIG_USBC_VCONN */ + /* * NOTE: * DO_PORT_DISCOVERY_START is not actually a vdm command. It is used @@ -775,15 +790,20 @@ void pe_invalidate_explicit_contract(int port) */ static bool pe_can_send_sop_prime(int port) { - if (PE_CHK_FLAG(port, PE_FLAGS_EXPLICIT_CONTRACT)) - if (prl_get_rev(port, TCPC_TX_SOP) == PD_REV20) + if (IS_ENABLED(CONFIG_USBC_VCONN)) { + if (PE_CHK_FLAG(port, PE_FLAGS_EXPLICIT_CONTRACT)) { + if (prl_get_rev(port, TCPC_TX_SOP) == PD_REV20) + return tc_is_vconn_src(port) && + pe[port].data_role == PD_ROLE_DFP; + else + return tc_is_vconn_src(port); + } else { return tc_is_vconn_src(port) && - pe[port].data_role == PD_ROLE_DFP; - else - return tc_is_vconn_src(port); - else - return tc_is_vconn_src(port) && - pe[port].power_role == PD_ROLE_SOURCE; + pe[port].power_role == PD_ROLE_SOURCE; + } + } else { + return false; + } } /* @@ -851,14 +871,16 @@ void pe_report_error(int port, enum pe_error e, enum tcpm_transmit_type type) * * TODO(b/150774779): TCPMv2: Improve pe_error documentation */ - if (get_state_pe(port) == PE_SRC_SEND_CAPABILITIES || + if ((get_state_pe(port) == PE_SRC_SEND_CAPABILITIES || get_state_pe(port) == PE_SRC_TRANSITION_SUPPLY || get_state_pe(port) == PE_PRS_SRC_SNK_WAIT_SOURCE_ON || get_state_pe(port) == PE_SRC_DISABLED || get_state_pe(port) == PE_SRC_DISCOVERY || get_state_pe(port) == PE_VDM_REQUEST || - get_state_pe(port) == PE_VDM_IDENTITY_REQUEST_CBL || - get_state_pe(port) == PE_VCS_SEND_PS_RDY_SWAP) { + get_state_pe(port) == PE_VDM_IDENTITY_REQUEST_CBL) || + (IS_ENABLED(CONFIG_USBC_VCONN) && + get_state_pe(port) == PE_VCS_SEND_PS_RDY_SWAP) + ) { PE_SET_FLAG(port, PE_FLAGS_PROTOCOL_ERROR); return; } @@ -987,7 +1009,8 @@ test_export_static enum usb_pe_state get_state_pe(const int port) static bool common_src_snk_dpm_requests(int port) { - if (PE_CHK_DPM_REQUEST(port, DPM_REQUEST_VCONN_SWAP)) { + if (IS_ENABLED(CONFIG_USBC_VCONN) && + PE_CHK_DPM_REQUEST(port, DPM_REQUEST_VCONN_SWAP)) { PE_CLR_DPM_REQUEST(port, DPM_REQUEST_VCONN_SWAP); set_state_pe(port, PE_VCS_SEND_SWAP); return true; @@ -1230,7 +1253,8 @@ static bool pe_attempt_port_discovery(int port) } } - if (PE_CHK_FLAG(port, PE_FLAGS_VCONN_SWAP_TO_ON)) { + if (IS_ENABLED(CONFIG_USBC_VCONN) && + PE_CHK_FLAG(port, PE_FLAGS_VCONN_SWAP_TO_ON)) { PE_CLR_FLAG(port, PE_FLAGS_VCONN_SWAP_TO_ON); if (!tc_is_vconn_src(port)) { @@ -4792,6 +4816,7 @@ static void pe_vdm_response_exit(int port) PE_CLR_FLAG(port, PE_FLAGS_INTERRUPTIBLE_AMS); } +#ifdef CONFIG_USBC_VCONN /* * PE_VCS_Evaluate_Swap */ @@ -5141,6 +5166,7 @@ static void pe_vcs_send_ps_rdy_swap_run(int port) } } } +#endif /* CONFIG_USBC_VCONN */ /* * PE_DR_SNK_Get_Sink_Cap @@ -5472,6 +5498,7 @@ static const struct usb_state pe_states[] = { .entry = pe_frs_snk_src_start_ams_entry, .parent = &pe_states[PE_PRS_FRS_SHARED], }, +#ifdef CONFIG_USBC_VCONN [PE_VCS_EVALUATE_SWAP] = { .entry = pe_vcs_evaluate_swap_entry, .run = pe_vcs_evaluate_swap_run, @@ -5496,6 +5523,7 @@ static const struct usb_state pe_states[] = { .entry = pe_vcs_send_ps_rdy_swap_entry, .run = pe_vcs_send_ps_rdy_swap_run, }, +#endif /* CONFIG_USBC_VCONN */ [PE_DO_PORT_DISCOVERY] = { .entry = pe_do_port_discovery_entry, .run = pe_do_port_discovery_run, diff --git a/common/usbc/usb_tc_drp_acc_trysrc_sm.c b/common/usbc/usb_tc_drp_acc_trysrc_sm.c index 88b42e0343..dde26301a9 100644 --- a/common/usbc/usb_tc_drp_acc_trysrc_sm.c +++ b/common/usbc/usb_tc_drp_acc_trysrc_sm.c @@ -1412,12 +1412,13 @@ void pd_request_vconn_swap(int port) } #endif -#ifdef CONFIG_USBC_VCONN int tc_is_vconn_src(int port) { - return TC_CHK_FLAG(port, TC_FLAGS_VCONN_ON); + if (IS_ENABLED(CONFIG_USBC_VCONN)) + return TC_CHK_FLAG(port, TC_FLAGS_VCONN_ON); + else + return 0; } -#endif static __maybe_unused int reset_device_and_notify(int port) { diff --git a/include/usb_tc_sm.h b/include/usb_tc_sm.h index 7f5ae8bde7..b6ed917d4d 100644 --- a/include/usb_tc_sm.h +++ b/include/usb_tc_sm.h @@ -232,7 +232,6 @@ int tc_src_power_on(int port); */ int tc_check_vconn_swap(int port); -#ifdef CONFIG_USBC_VCONN /** * Checks if VCONN is being sourced. * @@ -258,8 +257,6 @@ void pd_request_vconn_swap_on(int port); * @param port USB_C port number */ void pd_request_vconn_swap_off(int port); -#endif - /** * Returns the polarity of a Sink. |