debug(ctx, "libusb_claim_interface failed\n");
debug(ctx, "Cannot claim interface %hhu\n",
(*dev)->desc->interface_number);
-out_libusb_close:
- libusb_close((*dev)->usb_device);
- (*dev)->usb_device = NULL;
+ goto out_libusb_close;
}
out:
return ret;
+
+out_libusb_close:
+ libusb_close((*dev)->usb_device);
+ (*dev)->usb_device = NULL;
+ return ret;
}
typedef enum {
* This is where the central logic of multi-device support is.
*
* When 'op' == SCAN_OP_BUILD_DEVLIST the parameters 'open_device_index' and
- * 'dev' are ignored; the function returns 0 on success and a negative value
+ * 'dev' are ignored; the function returns 0 on success or a negative value
* on error.
*
* When 'op' == SCAN_OP_OPEN_DEVICE the function opens the supported USB
* device with index 'open_device_index' and returns the correspondent
- * am7xxx_device in the 'dev' parameter; the function returns 0 on success,
- * 1 if the device was already open and a negative value on error.
+ * am7xxx_device in the 'dev' parameter; the function returns the value from
+ * open_device(), which is 0 on success, 1 if the device was already open or
+ * a negative value on error.
*
* NOTES:
* if scan_devices() fails when called with 'op' == SCAN_OP_BUILD_DEVLIST,