Hi, On Fri, Jun 02, 2023, Avichal Rakesh wrote: > ISOC transfers expect a certain cadence of requests being queued. Not > keeping up with the expected rate of requests results in missed ISOC > transfers (EXDEV). The application layer is not required to produce video > frames to match this expectation, so uvc gadget driver must not rely > on data from application layer to maintain the ISOC cadence. > > Currently, uvc gadget driver waits for new video buffer to become available > before queuing up usb requests. With this patch the gadget driver queues up > 0 length usb requests whenever there are no video buffers available. The > USB controller's complete callback is used as the limiter for how quickly > the 0 length packets will be queued. Video buffers are still queued as > soon as they become available. > > Link: https://urldefense.com/v3/__https://lore.kernel.org/CAMHf4WKbi6KBPQztj9FA4kPvESc1fVKrC8G73-cs6tTeQby9=w@xxxxxxxxxxxxxx/__;!!A4F2R9G_pg!e7A68uURThH2e8LnLybftBxZWaUVl5ewWfGl1wIDUqAvVQwWi_KE2rOUZFoDf__pq05pX3JXC3iGYiQjSInk$ > Signed-off-by: Avichal Rakesh <arakesh@xxxxxxxxxx> > --- > Changelog: > v2: > - Updated commit message to make it clear that userspace application is not > required to match the ISOC rate. > - Styling and comment revision based on review > BTW, your previous version is already in Greg's usb-next branch. Any new change should be rebased on his usb-next. Thanks, Thinh