[PATCH 0/2] usb: dwc3: gadget: improve isoc handling

From: Michael Olbrich
Date: Mon Nov 11 2019 - 10:27:02 EST


These two patches improve the isoc handling and make the dwc3 gadget driver
somewhat usable with the UVC gadget for isochronous endpoints.

The first patch makes starting isochronous transfers more reliable. I think
it's more less, what Thinh suggested some time ago[1]. It's still not
perfect because the first request must still be queued within 2 seconds but
it's a lot better than the current situation.

The second patch makes it possible to have gaps in the data stream. The UVC
gadget relies on such behaviour. Without this, using the UVC gadget with a
live stream stops after the first frame, because all later frames are
dropped.
I'm not sure if this is the correct solution, but all other drivers
currently work this way, from what I can tell.

Regards,
Michael

[1] https://marc.info/?l=linux-usb&m=156088170723824&w=4

Michael Olbrich (2):
usb: dwc3: gadget: make starting isoc transfers more robust
usb: dwc3: gadget: restart the transfer if a isoc request is queued
too late

drivers/usb/dwc3/core.h | 1 +
drivers/usb/dwc3/gadget.c | 39 +++++++++++++++++++++++++++++++--------
2 files changed, 32 insertions(+), 8 deletions(-)

--
2.20.1