• Felipe Balbi's avatar
    usb: dwc3: gadget: fix 'endpoint always busy' bug · 041d81f4
    Felipe Balbi authored
    If a USB transfer has already been started, meaning
    we have already issued StartTransfer command to that
    particular endpoint, DWC3_EP_BUSY flag has also
    already been set.
    
    When we try to cancel this transfer which is already
    in controller's cache, we will not receive XferComplete
    event and we must clear DWC3_EP_BUSY in order to allow
    subsequent requests to be properly started.
    
    The best place to clear that flag is right after issuing
    DWC3_DEPCMD_ENDTRANSFER.
    
    Cc: stable@vger.kernel.org # v3.4 v3.5 v3.6
    Reported-by: default avatarMoiz Sonasath <m-sonasath@ti.com>
    Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
    041d81f4
gadget.c 62.1 KB