summaryrefslogtreecommitdiff
path: root/board/hoho
diff options
context:
space:
mode:
Diffstat (limited to 'board/hoho')
-rw-r--r--board/hoho/usb_pd_policy.c23
1 files changed, 9 insertions, 14 deletions
diff --git a/board/hoho/usb_pd_policy.c b/board/hoho/usb_pd_policy.c
index 50792a0e68..c9525f2ebe 100644
--- a/board/hoho/usb_pd_policy.c
+++ b/board/hoho/usb_pd_policy.c
@@ -286,23 +286,18 @@ static int pd_custom_vdm(int port, int cnt, uint32_t *payload,
uint32_t **rpayload)
{
int cmd = PD_VDO_CMD(payload[0]);
- int rsize = 1;
+ int rsize;
+
+ if (PD_VDO_VID(payload[0]) != USB_VID_GOOGLE || !gfu_mode)
+ return 0;
+
CPRINTF("VDM/%d [%d] %08x\n", cnt, cmd, payload[0]);
*rpayload = payload;
- switch (cmd) {
- case VDO_CMD_VERSION:
- memcpy(payload + 1, &version_data.version, 24);
- rsize = 7;
- break;
- case VDO_CMD_READ_INFO:
- /* copy info into response */
- pd_get_info(payload + 1);
- rsize = 7;
- break;
- default:
- rsize = 0;
- }
+
+ rsize = pd_custom_flash_vdm(port, cnt, payload);
+ if (!rsize)
+ return 0;
CPRINTS("DONE");
/* respond (positively) to the request */