if (ret != SR_OK)
return ret;
+ /* Set the configuration twice to trigger a lightweight reset.
+ */
+ ret = libusb_set_configuration(usb->devhdl, USB_CONFIG);
+ if (ret == 0)
+ ret = libusb_set_configuration(usb->devhdl, USB_CONFIG);
+ if (ret != 0) {
+ sr_err("Failed to set USB configuration: %s.",
+ libusb_error_name(ret));
+ sr_usb_close(usb);
+ return SR_ERR;
+ }
+
ret = libusb_claim_interface(usb->devhdl, USB_INTERFACE);
if (ret < 0) {
sr_err("Failed to claim interface: %s.",