summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVijay Hiremath <vijay.p.hiremath@intel.com>2020-01-30 15:08:26 -0800
committerCommit Bot <commit-bot@chromium.org>2020-02-04 04:07:51 +0000
commit1c5d43dd90a55dc3e5a61447aaa8e0441b13b236 (patch)
tree2422948d19d949585f12cfc44167b752edc7f1af
parenta14f04dd9525b4e59c549bc6cdc193da45423b0c (diff)
downloadchrome-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.c29
-rw-r--r--common/usb_pd_policy.c27
-rw-r--r--common/usbc/usb_pe_drp_sm.c29
-rw-r--r--common/usbc/usb_tc_drp_acc_trysrc_sm.c2
-rw-r--r--fuzz/usb_tcpm_v2_fuzz.c4
-rw-r--r--include/usb_pd.h9
-rw-r--r--include/usb_tc_sm.h7
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