|
@@ -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",
|