am7xxx: mention open_device() in the comment about scan_devices()
[libam7xxx.git] / src / am7xxx.c
index 006b216..8837e41 100644 (file)
@@ -747,12 +747,15 @@ static int open_device(am7xxx_context *ctx,
                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 {
@@ -769,8 +772,9 @@ typedef enum {
  *
  * 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 and
+ * a negative value on error.
  *
  * NOTES:
  * if scan_devices() fails when called with 'op' == SCAN_OP_BUILD_DEVLIST,
@@ -837,11 +841,12 @@ static int scan_devices(am7xxx_context *ctx, scan_op op,
                                                          open_device_index,
                                                          list[i],
                                                          dev);
-                                       if (ret < 0) {
+                                       if (ret < 0)
                                                debug(ctx, "open_device failed\n");
-                                               goto out;
-                                       }
 
+                                       /* exit the loop unconditionally after
+                                        * attempting to open the device
+                                        * requested by the user */
                                        goto out;
                                }
                                current_index++;