Files
linux/drivers
William Wu cb3db5f6a5 usb: dwc3: gadget: fix isoc in transfer issue
When I test the uvc gadget function, I find that the uvc
gadget can only transfer the first frame image and then
stop unexpectedly.

Without this patch, the isochronous endpoints doesn't wait
for a XferNotReady event to start the next frame image, and
fail to transfer data. In this case, we will get an endpoint
event DWC3_DEPEVT_XFERINPROGRESS and the event status is
DEPEVT_STATUS_MISSED_ISOC, and the original code try to
issue an EndTransfer command if the started_list is empty.
However, the started_list is never empty, so it doesn't issue
an EndTransfer command and not XferNotReady event happens.

To fix this problem, this patch firstly checks if the event
status is DEPEVT_STATUS_MISSED_ISOC and then unmap the isoc
request and move the request to the pending list. Then it
issue an EndTransfer command if the started_list is empty.
After the EndTransfer is completed, we will get a XferNotReady
event and it can start the isoc requests again.

Change-Id: Ieac3ca9a177bc7599b29ae30bee243e47b3ba7c9
Signed-off-by: William Wu <william.wu@rock-chips.com>
2020-03-24 09:10:54 +08:00
..
2020-03-05 17:40:55 +01:00
2020-03-18 08:19:47 +01:00
2019-12-18 09:03:30 +01:00
2020-03-11 14:14:45 +01:00
2020-03-11 17:10:39 +01:00
2020-02-05 19:20:26 +00:00
2020-01-27 15:55:44 +01:00
2020-03-05 17:40:55 +01:00
2020-02-24 08:34:47 +01:00