Re: [PATCH 1/3] usb: dwc3: gadget: Properly handle failed kick_transfer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux