diff options
-rw-r--r-- | src/usb.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -31,6 +31,7 @@ int usb_open(struct context *context, struct omap_description **descriptions, si struct libusb_device_handle *handle = NULL; struct libusb_device_descriptor descriptor; int configuration; + int speed; char device_name[32]; size_t count; size_t i; @@ -66,6 +67,12 @@ int usb_open(struct context *context, struct omap_description **descriptions, si for (j = 0; j < descriptions_count; j++) { for (k = 0; k < descriptions[j]->usb_device_ids_count; k++) { if (descriptions[j]->usb_device_ids[k].vendor_id == descriptor.idVendor && descriptions[j]->usb_device_ids[k].product_id == descriptor.idProduct) { + speed = libusb_get_device_speed(list[i]); + if (speed != LIBUSB_SPEED_HIGH) { + fprintf(stderr, "Configuring High-Speed failed\n"); + goto error; + } + rc = libusb_open(list[i], &handle); if (rc < 0) { fprintf(stderr, "Opening USB device failed\n"); |