- if (!(devc = sdi->priv)) {
- sr_err("%s: sdi->priv was NULL", __func__);
- return SR_ERR_ARG;
- }
-
- device_count = libusb_get_device_list(drvc->sr_ctx->libusb_ctx,
- &devlist);
- if (device_count < 0) {
- sr_err("Failed to retrieve device list.");
- return SR_ERR;
- }
-
- dev = NULL;
- for (i = 0; i < device_count; i++) {
- if ((ret = libusb_get_device_descriptor(devlist[i], &des))) {
- sr_err("Failed to get device descriptor: %s.",
- libusb_error_name(ret));
- continue;
- }
- if (libusb_get_bus_number(devlist[i]) == usb->bus
- && libusb_get_device_address(devlist[i]) == usb->address) {
- dev = devlist[i];
- break;
- }
- }
- if (!dev) {
- sr_err("Device on bus %d address %d disappeared!",
- usb->bus, usb->address);
- return SR_ERR;
- }
-
- if (!(ret = libusb_open(dev, &(usb->devhdl)))) {
- sdi->status = SR_ST_ACTIVE;
- sr_info("Opened device %d on %d.%d interface %d.",
- sdi->index, usb->bus, usb->address, USB_INTERFACE);
- } else {
- sr_err("Failed to open device: %s.", libusb_error_name(ret));
- return SR_ERR;
- }