[U-Boot] [PATCH 06/11] usb: dwc3: add a workaround for too small OUT requests

Kishon Vijay Abraham I kishon at ti.com
Mon Feb 23 15:24:43 CET 2015


Hi,

On Monday 23 February 2015 07:32 PM, Lukasz Majewski wrote:
> From: Marek Szyprowski <m.szyprowski at samsung.com>
>
> DWC3 hangs on OUT requests smaller than maxpacket size,
> so HACK the request length to be at least equal to maxpacket size.

Curious to know using which gadget this issue was seen.

Thanks
Kishon

>
> Signed-off-by: Marek Szyprowski <m.szyprowski at samsung.com>
> ---
>   drivers/usb/dwc3/gadget.c | 6 ++++++
>   1 file changed, 6 insertions(+)
>
> diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
> index 01bc83b..f8a75d3 100644
> --- a/drivers/usb/dwc3/gadget.c
> +++ b/drivers/usb/dwc3/gadget.c
> @@ -974,6 +974,12 @@ static int __dwc3_gadget_ep_queue(struct dwc3_ep *dep, struct dwc3_request *req)
>   	req->direction		= dep->direction;
>   	req->epnum		= dep->number;
>
> +	/* DWC3 hangs on OUT requests smaller than maxpacket size,
> +	   so HACK the request length */
> +	if (dep->direction == 0 &&
> +	    req->request.length < dep->endpoint.maxpacket)
> +		req->request.length = dep->endpoint.maxpacket;
> +
>   	/*
>   	 * We only add to our list of requests now and
>   	 * start consuming the list once we get XferNotReady
>


More information about the U-Boot mailing list