Message ID | 1425468362-2560-1-git-send-email-franck.jullien@gmail.com |
---|---|
State | Superseded |
Delegated to: | Marek Vasut |
Headers | show |
On Wednesday, March 04, 2015 at 12:26:02 PM, franck.jullien@gmail.com wrote: > From: Franck Jullien <franck.jullien@gmail.com> > > Mass storage is not necessary present on interface 0. This > patch allow usb_stor_scan to look in every available interface. > > Signed-off-by: Franck Jullien <franck.jullien@gmail.com> > --- > > v2: create a new function to improve indentation Hi! > common/usb_storage.c | 45 ++++++++++++++++++++++++++++----------------- > 1 files changed, 28 insertions(+), 17 deletions(-) > > diff --git a/common/usb_storage.c b/common/usb_storage.c > index 1411737..8a490d3 100644 > --- a/common/usb_storage.c > +++ b/common/usb_storage.c > @@ -208,6 +208,30 @@ 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])) { In case you invert this condition here, you can even trim the indent further. Like this: if (!usb..........) return nb_dev; /* * OK, it's.......... ......... return nb_dev; } > + /* OK, it's a storage device. Iterate over its LUNs > + * and populate `usb_dev_desc'. > + */ Please fix the comment so that it matches the coding style for multiline comments, like this. /* * foo * bar */ > + 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++) { You should be able to put this for () on a single line once you invert the condition above :) > + 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; > +} Sorry for pushing you some more, I believe V3 will be the final one. Thank you!
diff --git a/common/usb_storage.c b/common/usb_storage.c index 1411737..8a490d3 100644 --- a/common/usb_storage.c +++ b/common/usb_storage.c @@ -208,6 +208,30 @@ 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])) { + /* 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 @@ -215,7 +239,7 @@ static unsigned int usb_get_max_lun(struct us_data *us) */ int usb_stor_scan(int mode) { - unsigned char i; + unsigned char i, iface; struct usb_device *dev; if (mode == 1) @@ -241,23 +265,10 @@ int usb_stor_scan(int mode) if (dev == NULL) break; /* no more devices available */ - 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++; - } - } + for (iface = 0; iface < dev->config.no_of_if; iface++) { + usb_max_devs += usb_storage_register(dev, iface); } + /* if storage device */ if (usb_max_devs == USB_MAX_STOR_DEV) { printf("max USB Storage Device reached: %d stopping\n",