@@ -91,9 +91,9 @@ static bool acm_set_baudrate(cdch_interface_t* p_cdc, uint32_t baudrate, tuh_xfe
9191#if CFG_TUH_CDC_FTDI
9292#include "serial/ftdi_sio.h"
9393
94- static uint16_t const ftdi_pids [] = { CFG_TUH_CDC_FTDI_PID_LIST };
94+ static uint16_t const ftdi_vid_pid_list [][ 2 ] = {CFG_TUH_CDC_FTDI_VID_PID_LIST };
9595enum {
96- FTDI_PID_COUNT = sizeof (ftdi_pids ) / sizeof (ftdi_pids [0 ])
96+ FTDI_PID_COUNT = sizeof (ftdi_vid_pid_list ) / sizeof (ftdi_vid_pid_list [0 ])
9797};
9898
9999// Store last request baudrate since divisor to baudrate is not easy
@@ -110,9 +110,9 @@ static bool ftdi_sio_set_baudrate(cdch_interface_t* p_cdc, uint32_t baudrate, tu
110110#if CFG_TUH_CDC_CP210X
111111#include "serial/cp210x.h"
112112
113- static uint16_t const cp210x_pids [] = { CFG_TUH_CDC_CP210X_PID_LIST };
113+ static uint16_t const cp210x_vid_pid_list [][ 2 ] = {CFG_TUH_CDC_CP210X_VID_PID_LIST };
114114enum {
115- CP210X_PID_COUNT = sizeof (cp210x_pids ) / sizeof (cp210x_pids [0 ])
115+ CP210X_PID_COUNT = sizeof (cp210x_vid_pid_list ) / sizeof (cp210x_vid_pid_list [0 ])
116116};
117117
118118static bool cp210x_open (uint8_t daddr , tusb_desc_interface_t const * itf_desc , uint16_t max_len );
@@ -647,21 +647,17 @@ bool cdch_open(uint8_t rhport, uint8_t daddr, tusb_desc_interface_t const *itf_d
647647 TU_VERIFY (tuh_vid_pid_get (daddr , & vid , & pid ));
648648
649649 #if CFG_TUH_CDC_FTDI
650- if (TU_FTDI_VID == vid ) {
651- for (size_t i = 0 ; i < FTDI_PID_COUNT ; i ++ ) {
652- if (ftdi_pids [i ] == pid ) {
653- return ftdi_open (daddr , itf_desc , max_len );
654- }
650+ for (size_t i = 0 ; i < FTDI_PID_COUNT ; i ++ ) {
651+ if (ftdi_vid_pid_list [i ][0 ] == vid && ftdi_vid_pid_list [i ][1 ] == pid ) {
652+ return ftdi_open (daddr , itf_desc , max_len );
655653 }
656654 }
657655 #endif
658656
659657 #if CFG_TUH_CDC_CP210X
660- if (TU_CP210X_VID == vid ) {
661- for (size_t i = 0 ; i < CP210X_PID_COUNT ; i ++ ) {
662- if (cp210x_pids [i ] == pid ) {
663- return cp210x_open (daddr , itf_desc , max_len );
664- }
658+ for (size_t i = 0 ; i < CP210X_PID_COUNT ; i ++ ) {
659+ if (cp210x_vid_pid_list [i ][0 ] == vid && cp210x_vid_pid_list [i ][1 ] == pid ) {
660+ return cp210x_open (daddr , itf_desc , max_len );
665661 }
666662 }
667663 #endif
0 commit comments