[U-Boot] [PATCH v3] usb_storage : scan all interfaces to find a storage device

Franck Jullien franck.jullien at gmail.com
Fri Apr 17 23:09:38 CEST 2015


Hi Simon,

2015-04-17 18:33 GMT+02:00 Simon Glass <sjg at chromium.org>:
> +Tom
>
> Hi Franck,
>
> On 4 March 2015 at 13:07,  <franck.jullien at gmail.com> wrote:
>> From: Franck Jullien <franck.jullien at 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 at gmail.com>
>> ---
>>
>> v2: create a new function to improve indentation
>>
>> v3: more indentation improvement
>>
>>  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..05c96a8 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]))
>> +               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++;
>
> Should start or usb_max_devs increase here? This will use the same
> block_dev_desc_t for each device, won't it?
>

Good catch. I'll write a patch when I have some time (or someone can do that).
However, I won't be able to test it on hardware because I don't have
access to it anymore.

We could also revert this patch. Sorry for my mistake.

Franck.


More information about the U-Boot mailing list