struct jtag_libusb_device_handle **out)
{
int cnt, idx, errCode;
- int retval = -ENODEV;
+ int retval = ERROR_FAIL;
struct jtag_libusb_device_handle *libusb_handle = NULL;
if (libusb_init(&jtag_libusb_context) < 0)
- return -ENODEV;
+ return ERROR_FAIL;
cnt = libusb_get_device_list(jtag_libusb_context, &devs);
/* Success. */
*out = libusb_handle;
- retval = 0;
+ retval = ERROR_OK;
break;
}
if (cnt >= 0)
int jtag_libusb_choose_interface(struct jtag_libusb_device_handle *devh,
unsigned int *usb_read_ep,
unsigned int *usb_write_ep,
- int bclass, int subclass, int protocol)
+ int bclass, int subclass, int protocol, int trans_type)
{
struct jtag_libusb_device *udev = jtag_libusb_get_device(devh);
const struct libusb_interface *inter;
continue;
epdesc = &interdesc->endpoint[k];
+ if (trans_type > 0 && (epdesc->bmAttributes & 0x3) != trans_type)
+ continue;
uint8_t epnum = epdesc->bEndpointAddress;
bool is_input = epnum & 0x80;