On Wed, Nov 02, 2011 at 01:30:45PM +0100, Sebastian Andrzej Siewior wrote: > Since the re-worked ep0 handling (which uses HW's hints to recognize the ep0 > status) we lost the delayed status handling. This is used by the file and mass > storage gadget to gain some extra time so setup its internal status before it > can proceed further requests. > In particular the storage gadget does nothing on USB_REQ_SET_CONFIGURATION but > wakes up a thread which handles the request. If the udc driver continues ep0 > handling before the thread did its work then then endpoint is not yet > configured and further requests will fail. Once the gadget is ready, it will > enqueue an empty packet which is used for synchronization. > In order to fix this issue, the patch does the following: > Set ->delayed_status once the delayed_status has been notices and do not > continue on the next XferNotReady event. We will continues ep0 processing once > the gadget enqueued the zero packet for synchronization. > > A cleaner approach would be to enforce the gadget to enqueue an empty > (zero) request even for the status phase but this would do for now. > > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> applied, thanks -- balbi
Attachment:
signature.asc
Description: Digital signature