diff options
author | Simon Glass <sjg@chromium.org> | 2015-04-16 17:27:34 -0600 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2015-04-18 11:11:22 -0600 |
commit | 7fc2c1ea7bbb321e2dbd7dc4ab099ce970eab482 (patch) | |
tree | ab4c95780da2618efb6ac2cbe57ab75359900316 /common/usb_storage.c | |
parent | 051081323fbc444f5a57ffb3e0178236ba59f77a (diff) |
Revert "usb_storage : scan all interfaces to find a storage device"
This reverts commit cd749658d5994978579628a6333e5c2a6c8ec632.
The conflicts with this commit are hard for me to figure out. I will re-apply
it later.
Diffstat (limited to 'common/usb_storage.c')
-rw-r--r-- | common/usb_storage.c | 45 |
1 files changed, 17 insertions, 28 deletions
diff --git a/common/usb_storage.c b/common/usb_storage.c index f190d8a6c4..5ff4337de0 100644 --- a/common/usb_storage.c +++ b/common/usb_storage.c @@ -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", |