]> git.ipfire.org Git - people/ms/u-boot.git/commitdiff
Revert "usb_storage : scan all interfaces to find a storage device"
authorSimon Glass <sjg@chromium.org>
Thu, 16 Apr 2015 23:27:34 +0000 (17:27 -0600)
committerSimon Glass <sjg@chromium.org>
Sat, 18 Apr 2015 17:11:22 +0000 (11:11 -0600)
This reverts commit cd749658d5994978579628a6333e5c2a6c8ec632.

The conflicts with this commit are hard for me to figure out. I will re-apply
it later.

common/usb_storage.c

index f190d8a6c40bad11a9831183e8ae0df5aa6e5661..5ff4337de07bf66d94e9db7785dd61f89a737588 100644 (file)
@@ -168,30 +168,6 @@ static unsigned int usb_get_max_lun(struct us_data *us)
        return (len > 0) ? *result : 0;
 }
 
-static int usb_storage_register(struct usb_device *dev, unsigned char iface)
-{
-       int lun, max_lun, start = usb_max_devs;
-       int nb_dev = 0;
-
-       if (!usb_storage_probe(dev, iface, &usb_stor[usb_max_devs]))
-               return nb_dev;
-
-       /*
-        * OK, it's a storage device.  Iterate over its LUNs
-        * and populate `usb_dev_desc'.
-        */
-       max_lun = usb_get_max_lun(&usb_stor[usb_max_devs]);
-       for (lun = 0; lun <= max_lun && usb_max_devs < USB_MAX_STOR_DEV; lun++) {
-               usb_dev_desc[usb_max_devs].lun = lun;
-               if (usb_stor_get_info(dev, &usb_stor[start],
-                   &usb_dev_desc[usb_max_devs]) == 1) {
-                       nb_dev++;
-               }
-       }
-
-       return nb_dev;
-}
-
 /*******************************************************************************
  * scan the usb and reports device info
  * to the user if mode = 1
@@ -199,7 +175,7 @@ static int usb_storage_register(struct usb_device *dev, unsigned char iface)
  */
 int usb_stor_scan(int mode)
 {
-       unsigned char i, iface;
+       unsigned char i;
        struct usb_device *dev;
 
        if (mode == 1)
@@ -225,10 +201,23 @@ int usb_stor_scan(int mode)
                if (dev == NULL)
                        break; /* no more devices available */
 
-               for (iface = 0; iface < dev->config.no_of_if; iface++) {
-                       usb_max_devs += usb_storage_register(dev, iface);
+               if (usb_storage_probe(dev, 0, &usb_stor[usb_max_devs])) {
+                       /* OK, it's a storage device.  Iterate over its LUNs
+                        * and populate `usb_dev_desc'.
+                        */
+                       int lun, max_lun, start = usb_max_devs;
+
+                       max_lun = usb_get_max_lun(&usb_stor[usb_max_devs]);
+                       for (lun = 0;
+                            lun <= max_lun && usb_max_devs < USB_MAX_STOR_DEV;
+                            lun++) {
+                               usb_dev_desc[usb_max_devs].lun = lun;
+                               if (usb_stor_get_info(dev, &usb_stor[start],
+                                   &usb_dev_desc[usb_max_devs]) == 1) {
+                                       usb_max_devs++;
+                               }
+                       }
                }
-
                /* if storage device */
                if (usb_max_devs == USB_MAX_STOR_DEV) {
                        printf("max USB Storage Device reached: %d stopping\n",