• Felipe Balbi's avatar
    usb: dwc3: ep0: fix for possible early delayed_status · 68d3e668
    Felipe Balbi authored
    There is a very small possibility (previously unimagined
    by us) that the whole Mass Storage delayed status happens
    rather early, before we even get our XferNotReady event.
    
    In that case, we will be queueing a request to ep0 while
    we're still on Setup Phase and we would be waiting for
    another usb_ep_queue() forever.
    
    Handle such cases by clearing dwc->delayed_status so that
    we start control status from the next XferNotReady like
    there was no wait for Delayed Status.
    
    Tested against Linux 3.2-rc3 and USB30CV tool from USB-IF
    (on a Windows XP with USB3 PCIe card).
    Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
    68d3e668
ep0.c 20.3 KB