X-Git-Url: http://developer.intra2net.com/git/?p=libftdi;a=blobdiff_plain;f=src%2Fftdi.c;h=4dc47bdf456b849cca8349c92a73532ab5bbcb8e;hp=57730d9a69d39119a978eaed055151c93b7cc53b;hb=7879216a49775d82f1abafc7463f0d83a3df905b;hpb=0c33162ce187821cb670013c2f903a0dbc4bf707 diff --git a/src/ftdi.c b/src/ftdi.c index 57730d9..4dc47bd 100644 --- a/src/ftdi.c +++ b/src/ftdi.c @@ -257,8 +257,10 @@ void ftdi_set_usbdev (struct ftdi_context *ftdi, libusb_device_handle *usb) /** - Finds all ftdi devices on the usb bus. Creates a new ftdi_device_list which - needs to be deallocated by ftdi_list_free() after use. + Finds all ftdi devices with given VID:PID on the usb bus. Creates a new + ftdi_device_list which needs to be deallocated by ftdi_list_free() after + use. With VID:PID 0:0, search for the default devices + (0x403:0x6001, 0x403:0x6010, 0x403:0x6011, 0x403:0x6014) \param ftdi pointer to ftdi_context \param devlist Pointer where to store list of found devices @@ -291,7 +293,9 @@ int ftdi_usb_find_all(struct ftdi_context *ftdi, struct ftdi_device_list **devli if (libusb_get_device_descriptor(dev, &desc) < 0) ftdi_error_return_free_device_list(-6, "libusb_get_device_descriptor() failed", devs); - if (desc.idVendor == vendor && desc.idProduct == product) + if ((vendor != 0 && product != 0 && desc.idVendor == vendor && desc.idProduct == product) || + ((desc.idVendor == 0x403) && (desc.idProduct == 0x6001 || desc.idProduct == 0x6010 + || desc.idProduct == 0x6011 || desc.idProduct == 0x6014))) { *curdev = (struct ftdi_device_list*)malloc(sizeof(struct ftdi_device_list)); if (!*curdev)