Hi Felipe, Felipe Balbi wrote: > Hi Thinh, > > Thinh Nguyen <Thinh.Nguyen@xxxxxxxxxxxx> writes: >> If dwc3 fails to issue START_TRANSFER/UPDATE_TRANSFER command, then we >> should properly end an active transfer and give back all the started >> requests. However if it's for an isoc endpoint, the failure maybe due to >> bus-expiry status. In this case, don't give back the requests and wait >> for the next retry. >> >> Fixes: 72246da40f37 ("usb: Introduce DesignWare USB3 DRD Driver") >> Signed-off-by: Thinh Nguyen <thinhn@xxxxxxxxxxxx> > could you give some details regarding when does this happen? > So, here are the scenarios in which dwc3_send_gadget_ep_cmd() may return a negative errno: * -EAGAIN: Isoc bus-expiry status As you already know, this occurs when we try to schedule isoc too late. If we're going to retry the request, don't unmap it. * -EINVAL: No resource due to issuing START_TRANSFER to an already started endpoint This happens generally because of SW programming error * -ETIMEDOUT: Polling for CMDACT timed out This should not happen unless the controller is dead or in some bad state BR, Thinh