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

Lukasz Majewski l.majewski at samsung.com
Mon Feb 23 15:44:22 CET 2015


Hi Kishon,

> 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.

We have been testing this code with USB Mass Storage, Thor and DFU
gadgets.

In the v2 commit letter you have stated that this code was tested with
DFU MMC:

>> Testing:
>> *) tested DFU RAM and DFU MMC in dra7xx and am43xx

Have you tried to run test at ./test/dfu directory?

> 
> 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
> >



-- 
Best regards,

Lukasz Majewski

Samsung R&D Institute Poland (SRPOL) | Linux Platform Group


More information about the U-Boot mailing list