Re: [PATCH v2] usb: gadget: uvc: queue empty isoc requests if no video buffer is available

From: Thinh Nguyen
Date: Fri Jun 02 2023 - 17:16:27 EST


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