diff --git a/board/dingdong/usb_pd_policy.c b/board/dingdong/usb_pd_policy.c index cf151a700b..85eb07020f 100644 --- a/board/dingdong/usb_pd_policy.c +++ b/board/dingdong/usb_pd_policy.c @@ -230,8 +230,8 @@ const struct svdm_response svdm_rsp = { .exit_mode = &svdm_exit_mode, }; -static int pd_custom_vdm(int port, int cnt, uint32_t *payload, - uint32_t **rpayload) +int pd_custom_vdm(int port, int cnt, uint32_t *payload, + uint32_t **rpayload) { int rsize; @@ -249,11 +249,3 @@ static int pd_custom_vdm(int port, int cnt, uint32_t *payload, return rsize; } - -int pd_vdm(int port, int cnt, uint32_t *payload, uint32_t **rpayload) -{ - if (PD_VDO_SVDM(payload[0])) - return pd_svdm(port, cnt, payload, rpayload); - else - return pd_custom_vdm(port, cnt, payload, rpayload); -} diff --git a/board/firefly/usb_pd_policy.c b/board/firefly/usb_pd_policy.c index 412ca105ed..45042cd35a 100644 --- a/board/firefly/usb_pd_policy.c +++ b/board/firefly/usb_pd_policy.c @@ -128,3 +128,9 @@ void pd_new_contract(int port, int pr_role, int dr_role, int partner_pr_swap, int partner_dr_swap) { } + +int pd_custom_vdm(int port, int cnt, uint32_t *payload, + uint32_t **rpayload) +{ + return 0; +} diff --git a/board/fruitpie/usb_pd_policy.c b/board/fruitpie/usb_pd_policy.c index e9c3b25ac4..cf0b740260 100644 --- a/board/fruitpie/usb_pd_policy.c +++ b/board/fruitpie/usb_pd_policy.c @@ -122,8 +122,8 @@ const struct svdm_response svdm_rsp = { .modes = NULL, }; -static int pd_custom_vdm(int port, int cnt, uint32_t *payload, - uint32_t **rpayload) +int pd_custom_vdm(int port, int cnt, uint32_t *payload, + uint32_t **rpayload) { int cmd = PD_VDO_CMD(payload[0]); uint16_t dev_id = 0; @@ -160,14 +160,6 @@ static int pd_custom_vdm(int port, int cnt, uint32_t *payload, return 0; } -int pd_vdm(int port, int cnt, uint32_t *payload, uint32_t **rpayload) -{ - if (PD_VDO_SVDM(payload[0])) - return pd_svdm(port, cnt, payload, rpayload); - else - return pd_custom_vdm(port, cnt, payload, rpayload); -} - static int svdm_enter_dp_mode(int port, uint32_t mode_caps) { /* Only enter mode if device is DFP_D capable */ diff --git a/board/hoho/usb_pd_policy.c b/board/hoho/usb_pd_policy.c index 204fb0d70f..8252e03d49 100644 --- a/board/hoho/usb_pd_policy.c +++ b/board/hoho/usb_pd_policy.c @@ -229,8 +229,8 @@ const struct svdm_response svdm_rsp = { .exit_mode = &svdm_exit_mode, }; -static int pd_custom_vdm(int port, int cnt, uint32_t *payload, - uint32_t **rpayload) +int pd_custom_vdm(int port, int cnt, uint32_t *payload, + uint32_t **rpayload) { int rsize; @@ -248,11 +248,3 @@ static int pd_custom_vdm(int port, int cnt, uint32_t *payload, return rsize; } - -int pd_vdm(int port, int cnt, uint32_t *payload, uint32_t **rpayload) -{ - if (PD_VDO_SVDM(payload[0])) - return pd_svdm(port, cnt, payload, rpayload); - else - return pd_custom_vdm(port, cnt, payload, rpayload); -} diff --git a/board/plankton/usb_pd_policy.c b/board/plankton/usb_pd_policy.c index 286e69229c..ff6de38654 100644 --- a/board/plankton/usb_pd_policy.c +++ b/board/plankton/usb_pd_policy.c @@ -141,3 +141,8 @@ void pd_new_contract(int port, int pr_role, int dr_role, int partner_pr_swap, int partner_dr_swap) { } + +int pd_custom_vdm(int port, int cnt, uint32_t *payload, uint32_t **rpayload) +{ + return 0; +} diff --git a/board/ryu/usb_pd_policy.c b/board/ryu/usb_pd_policy.c index 8c5b1aa85a..aa2f62704b 100644 --- a/board/ryu/usb_pd_policy.c +++ b/board/ryu/usb_pd_policy.c @@ -113,3 +113,9 @@ void pd_execute_data_swap(int port, int data_role) { /* TODO: what do we need to do to change host controller data role? */ } + +int pd_custom_vdm(int port, int cnt, uint32_t *payload, + uint32_t **rpayload) +{ + return 0; +} diff --git a/board/ryu_p1/usb_pd_policy.c b/board/ryu_p1/usb_pd_policy.c index e292f84ba8..e801cf49c2 100644 --- a/board/ryu_p1/usb_pd_policy.c +++ b/board/ryu_p1/usb_pd_policy.c @@ -116,7 +116,7 @@ void pd_execute_data_swap(int port, int data_role) } /* ----------------- Vendor Defined Messages ------------------ */ -static int pd_custom_vdm(int port, int cnt, uint32_t *payload, +int pd_custom_vdm(int port, int cnt, uint32_t *payload, uint32_t **rpayload) { int cmd = PD_VDO_CMD(payload[0]); @@ -160,11 +160,3 @@ static int pd_custom_vdm(int port, int cnt, uint32_t *payload, return 0; } - -int pd_vdm(int port, int cnt, uint32_t *payload, uint32_t **rpayload) -{ - if (PD_VDO_SVDM(payload[0])) - return pd_svdm(port, cnt, payload, rpayload); - else - return pd_custom_vdm(port, cnt, payload, rpayload); -} diff --git a/board/samus_pd/usb_pd_policy.c b/board/samus_pd/usb_pd_policy.c index 50aaceacde..ecf2df31cc 100644 --- a/board/samus_pd/usb_pd_policy.c +++ b/board/samus_pd/usb_pd_policy.c @@ -153,8 +153,8 @@ const struct svdm_response svdm_rsp = { .modes = NULL, }; -static int pd_custom_vdm(int port, int cnt, uint32_t *payload, - uint32_t **rpayload) +int pd_custom_vdm(int port, int cnt, uint32_t *payload, + uint32_t **rpayload) { int cmd = PD_VDO_CMD(payload[0]); uint16_t dev_id = 0; @@ -204,14 +204,6 @@ static int pd_custom_vdm(int port, int cnt, uint32_t *payload, return 0; } -int pd_vdm(int port, int cnt, uint32_t *payload, uint32_t **rpayload) -{ - if (PD_VDO_SVDM(payload[0])) - return pd_svdm(port, cnt, payload, rpayload); - else - return pd_custom_vdm(port, cnt, payload, rpayload); -} - static void svdm_safe_dp_mode(int port) { /* make DP interface safe until configure */ diff --git a/board/zinger/usb_pd_policy.c b/board/zinger/usb_pd_policy.c index 22274f1569..09c52332f9 100644 --- a/board/zinger/usb_pd_policy.c +++ b/board/zinger/usb_pd_policy.c @@ -491,8 +491,8 @@ const struct svdm_response svdm_rsp = { .exit_mode = &svdm_exit_mode, }; -static int pd_custom_vdm(int port, int cnt, uint32_t *payload, - uint32_t **rpayload) +int pd_custom_vdm(int port, int cnt, uint32_t *payload, + uint32_t **rpayload) { int cmd = PD_VDO_CMD(payload[0]); int rsize; @@ -527,11 +527,3 @@ static int pd_custom_vdm(int port, int cnt, uint32_t *payload, return rsize; } - -int pd_vdm(int port, int cnt, uint32_t *payload, uint32_t **rpayload) -{ - if (PD_VDO_SVDM(payload[0])) - return pd_svdm(port, cnt, payload, rpayload); - else - return pd_custom_vdm(port, cnt, payload, rpayload); -} diff --git a/common/usb_pd_protocol.c b/common/usb_pd_protocol.c index 97afce801f..0dcec9bec2 100644 --- a/common/usb_pd_protocol.c +++ b/common/usb_pd_protocol.c @@ -715,7 +715,11 @@ static void handle_vdm_request(int port, int cnt, uint32_t *payload) CPRINTF("\n"); } - rlen = pd_vdm(port, cnt, payload, &rdata); + if (PD_VDO_SVDM(payload[0])) + rlen = pd_svdm(port, cnt, payload, &rdata); + else + rlen = pd_custom_vdm(port, cnt, payload, &rdata); + if (rlen > 0) { queue_vdm(port, rdata, &rdata[1], rlen - 1); return; diff --git a/include/usb_pd.h b/include/usb_pd.h index 003698b027..0a11ffbaea 100644 --- a/include/usb_pd.h +++ b/include/usb_pd.h @@ -842,7 +842,7 @@ void pd_get_info(uint32_t *info_data); * @param rpayload pointer to the data to send back. * @return if >0, number of VDOs to send back. */ -int pd_vdm(int port, int cnt, uint32_t *payload, uint32_t **rpayload); +int pd_custom_vdm(int port, int cnt, uint32_t *payload, uint32_t **rpayload); /** * Handle Structured Vendor Defined Messages