[U-Boot] [PATCH 4/7] usb: Wait after sending Set Configuration request

Stefan Roese sr at denx.de
Wed May 4 09:41:50 CEST 2016


On 03.05.2016 22:51, Marek Vasut wrote:
> Some devices, like the SanDisk Cruzer Pop need some time to process
> the Set Configuration request, so wait a little until they are ready.
>
> Signed-off-by: Marek Vasut <marex at denx.de>
> Cc: Chin Liang See <clsee at altera.com>
> Cc: Dinh Nguyen <dinguyen at opensource.altera.com>
> Cc: Hans de Goede <hdegoede at redhat.com>
> Cc: Stefan Roese <sr at denx.de>
> Cc: Stephen Warren <swarren at nvidia.com>
> ---
>   common/usb.c | 8 ++++++++
>   1 file changed, 8 insertions(+)
>
> diff --git a/common/usb.c b/common/usb.c
> index 63429d4..205041b 100644
> --- a/common/usb.c
> +++ b/common/usb.c
> @@ -1107,6 +1107,14 @@ int usb_select_config(struct usb_device *dev)
>   			"len %d, status %lX\n", dev->act_len, dev->status);
>   		return err;
>   	}
> +
> +	/*
> +	 * Wait until the Set Configuration request gets processed by the
> +	 * device. This is required by at least SanDisk Cruzer Pop USB 2.0
> +	 * and Kingston DT Ultimate 32GB USB 3.0 on DWC2 OTG controller.
> +	 */
> +	mdelay(10);
> +
>   	debug("new device strings: Mfr=%d, Product=%d, SerialNumber=%d\n",
>   	      dev->descriptor.iManufacturer, dev->descriptor.iProduct,
>   	      dev->descriptor.iSerialNumber);
>

As you might have expected, I'm not a fan of adding new delays to
the common USB code. As this negatively affects all platforms. Did
you test these two sticks that require this delay on other platforms
than SoCFPGA? I would be very interested to know, if these keys are
successfully detected without this patch on other platforms. I
don't have access to these USB keys, so I can't test it on my
platforms.

Thanks,
Stefan


More information about the U-Boot mailing list