diff options
author | Vijay Hiremath <vijay.p.hiremath@intel.com> | 2020-01-30 15:08:26 -0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-02-04 04:07:51 +0000 |
commit | 1c5d43dd90a55dc3e5a61447aaa8e0441b13b236 (patch) | |
tree | 2422948d19d949585f12cfc44167b752edc7f1af | |
parent | a14f04dd9525b4e59c549bc6cdc193da45423b0c (diff) | |
download | chrome-ec-1c5d43dd90a55dc3e5a61447aaa8e0441b13b236.tar.gz |
TCPMv1/v2: Move dfp_consume_identity() to common file
BUG=b:148528713
BRANCH=none
TEST=make buildall -j
Change-Id: I5b0bbd553cbe4fc76478b1c89b0f3f391f074a27
Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2032158
Reviewed-by: Keith Short <keithshort@chromium.org>
-rw-r--r-- | common/usb_pd_alt_mode_dfp.c | 29 | ||||
-rw-r--r-- | common/usb_pd_policy.c | 27 | ||||
-rw-r--r-- | common/usbc/usb_pe_drp_sm.c | 29 | ||||
-rw-r--r-- | common/usbc/usb_tc_drp_acc_trysrc_sm.c | 2 | ||||
-rw-r--r-- | fuzz/usb_tcpm_v2_fuzz.c | 4 | ||||
-rw-r--r-- | include/usb_pd.h | 9 | ||||
-rw-r--r-- | include/usb_tc_sm.h | 7 |
7 files changed, 39 insertions, 68 deletions
diff --git a/common/usb_pd_alt_mode_dfp.c b/common/usb_pd_alt_mode_dfp.c index a5371f8c78..a8551ccc2e 100644 --- a/common/usb_pd_alt_mode_dfp.c +++ b/common/usb_pd_alt_mode_dfp.c @@ -233,3 +233,32 @@ void dfp_consume_attention(int port, uint32_t *payload) if (modep->fx->attention) modep->fx->attention(port, payload); } + +void dfp_consume_identity(int port, int cnt, uint32_t *payload) +{ + int ptype = PD_IDH_PTYPE(payload[VDO_I(IDH)]); + struct pd_policy *pe = pd_get_am_policy(port); + size_t identity_size = MIN(sizeof(pe->identity), + (cnt - 1) * sizeof(uint32_t)); + pd_dfp_pe_init(port); + memcpy(pe->identity, payload + 1, identity_size); + + switch (ptype) { + case IDH_PTYPE_AMA: + /* Leave vbus ON if the following macro is false */ + if (IS_ENABLED(CONFIG_USB_PD_DUAL_ROLE) && + IS_ENABLED(CONFIG_USBC_VCONN_SWAP)) { + /* Adapter is requesting vconn, try to supply it */ + if (PD_VDO_AMA_VCONN_REQ(payload[VDO_I(AMA)])) + pd_try_vconn_src(port); + + /* Only disable vbus if vconn was requested */ + if (PD_VDO_AMA_VCONN_REQ(payload[VDO_I(AMA)]) && + !PD_VDO_AMA_VBUS_REQ(payload[VDO_I(AMA)])) + pd_power_supply_reset(port); + } + break; + default: + break; + } +} diff --git a/common/usb_pd_policy.c b/common/usb_pd_policy.c index 10264e1f0e..49d5f1a607 100644 --- a/common/usb_pd_policy.c +++ b/common/usb_pd_policy.c @@ -633,33 +633,6 @@ void pd_dfp_pe_init(int port) memset(&pe[port], 0, sizeof(struct pd_policy)); } -static void dfp_consume_identity(int port, int cnt, uint32_t *payload) -{ - int ptype = PD_IDH_PTYPE(payload[VDO_I(IDH)]); - size_t identity_size = MIN(sizeof(pe[port].identity), - (cnt - 1) * sizeof(uint32_t)); - pd_dfp_pe_init(port); - memcpy(&pe[port].identity, payload + 1, identity_size); - - switch (ptype) { - case IDH_PTYPE_AMA: -/* Leave vbus ON if the following macro is false */ -#if defined(CONFIG_USB_PD_DUAL_ROLE) && defined(CONFIG_USBC_VCONN_SWAP) - /* Adapter is requesting vconn, try to supply it */ - if (PD_VDO_AMA_VCONN_REQ(payload[VDO_I(AMA)])) - pd_try_vconn_src(port); - - /* Only disable vbus if vconn was requested */ - if (PD_VDO_AMA_VCONN_REQ(payload[VDO_I(AMA)]) && - !PD_VDO_AMA_VBUS_REQ(payload[VDO_I(AMA)])) - pd_power_supply_reset(port); -#endif - break; - default: - break; - } -} - static void dfp_consume_cable_response(int port, int cnt, uint32_t *payload, uint16_t head) { diff --git a/common/usbc/usb_pe_drp_sm.c b/common/usbc/usb_pe_drp_sm.c index 1b5783a9d6..2b5da3119b 100644 --- a/common/usbc/usb_pe_drp_sm.c +++ b/common/usbc/usb_pe_drp_sm.c @@ -490,7 +490,6 @@ static unsigned int max_request_mv = PD_MAX_VOLTAGE_MV; * Private VDM utility functions */ #ifdef CONFIG_USB_PD_ALT_MODE_DFP -static void dfp_consume_identity(int port, int cnt, uint32_t *payload); static void dfp_consume_svids(int port, int cnt, uint32_t *payload); static int dfp_discover_modes(int port, uint32_t *payload); static void dfp_consume_modes(int port, int cnt, uint32_t *payload); @@ -4606,34 +4605,6 @@ void pd_dfp_pe_init(int port) } #ifdef CONFIG_USB_PD_ALT_MODE_DFP -static void dfp_consume_identity(int port, int cnt, uint32_t *payload) -{ - int ptype = PD_IDH_PTYPE(payload[VDO_I(IDH)]); - size_t identity_size = MIN(sizeof(pe[port].am_policy.identity), - (cnt - 1) * sizeof(uint32_t)); - - pd_dfp_pe_init(port); - memcpy(&pe[port].am_policy.identity, payload + 1, identity_size); - - switch (ptype) { - case IDH_PTYPE_AMA: -/* Leave vbus ON if the following macro is false */ -#if defined(CONFIG_USB_PD_DUAL_ROLE) && defined(CONFIG_USBC_VCONN_SWAP) - /* Adapter is requesting vconn, try to supply it */ - if (PD_VDO_AMA_VCONN_REQ(payload[VDO_I(AMA)])) - tc_vconn_on(port); - - /* Only disable vbus if vconn was requested */ - if (PD_VDO_AMA_VCONN_REQ(payload[VDO_I(AMA)]) && - !PD_VDO_AMA_VBUS_REQ(payload[VDO_I(AMA)])) - pd_power_supply_reset(port); -#endif - break; - default: - break; - } -} - static void dfp_consume_svids(int port, int cnt, uint32_t *payload) { int i; diff --git a/common/usbc/usb_tc_drp_acc_trysrc_sm.c b/common/usbc/usb_tc_drp_acc_trysrc_sm.c index 698aca248e..177518dd34 100644 --- a/common/usbc/usb_tc_drp_acc_trysrc_sm.c +++ b/common/usbc/usb_tc_drp_acc_trysrc_sm.c @@ -544,7 +544,7 @@ void tc_ctvpd_detected(int port) TC_SET_FLAG(port, TC_FLAGS_CTVPD_DETECTED); } -void tc_vconn_on(int port) +void pd_try_vconn_src(int port) { set_vconn(port, 1); } diff --git a/fuzz/usb_tcpm_v2_fuzz.c b/fuzz/usb_tcpm_v2_fuzz.c index 88b4362f8e..70a8f15f5f 100644 --- a/fuzz/usb_tcpm_v2_fuzz.c +++ b/fuzz/usb_tcpm_v2_fuzz.c @@ -19,7 +19,3 @@ int pd_check_vconn_swap(int port) { return 1; } - -__override void pd_try_vconn_src(int port) -{ -} diff --git a/include/usb_pd.h b/include/usb_pd.h index 7b2e228b31..40029a30ff 100644 --- a/include/usb_pd.h +++ b/include/usb_pd.h @@ -1637,6 +1637,15 @@ int pd_dfp_exit_mode(int port, uint16_t svid, int opos); void dfp_consume_attention(int port, uint32_t *payload); /** + * Consume the discover identity message + * + * @param port USB-C port number + * @param cnt number of data objects in payload + * @param payload payload data. + */ +void dfp_consume_identity(int port, int cnt, uint32_t *payload); + +/** * Initialize policy engine for DFP * * @param port USB-C port number diff --git a/include/usb_tc_sm.h b/include/usb_tc_sm.h index 3c6d95fc33..322d3b3224 100644 --- a/include/usb_tc_sm.h +++ b/include/usb_tc_sm.h @@ -308,13 +308,6 @@ void tc_event_check(int port, int evt); void tc_run(const int port); /** - * Attempt to activate VCONN - * - * @param port USB-C port number - */ -void tc_vconn_on(int port); - -/** * Start error recovery * * @param port USB-C port number |