Re: [PATCH v2] usb: gadget: uvc: Improve error checking and tagging

From: Greg Kroah-Hartman
Date: Wed Jul 31 2024 - 04:31:01 EST


On Fri, Apr 05, 2024 at 09:44:56AM +0200, Michael Grzeschik wrote:
> Right now after one transfer was completed with EXDEV the currently
> encoded frame will get the UVC_STREAM_ERR tag attached. Since the
> complete and encode path are handling separate requests from different
> threads, there is no direct correspondence between the missed transfer
> of one request and the currently encoded request which might already
> belong to an completely different frame.
>
> When queueing requests into the hardware by calling ep_queue the
> underlying ringbuffer of the usb driver will be filled. However when
> one of these requests will have some issue while transfer the hardware
> will trigger an interrupt but will continue transferring the pending
> requests in the ringbuffer. This interrupt-latency will make it
> impossible to react in time to tag the fully enqueued frame with the
> UVC_STREAM_ERR in the header.
>
> This patch is also addressing this particular issue by delaying the
> transmit of the EOF/ERR tagged header by waiting for the last enqueued
> buffer of the frame to be completed. This way it is possible to react to
> send the EOF/ERR tag depending on the whole frame transfer status.
>
> Signed-off-by: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx>
> ---
> Changes in v2:
> - removed unnecessary uvc_gadget_errorcheck_param module parameter
> - Link to v1: https://lore.kernel.org/r/20240324-uvc-gadget-errorcheck-v1-1-5538c57bbeba@xxxxxxxxxxxxxx
> ---
> drivers/usb/gadget/function/uvc.h | 2 +
> drivers/usb/gadget/function/uvc_video.c | 69 ++++++++++++++++++++++++++++-----
> 2 files changed, 61 insertions(+), 10 deletions(-)

Same here, can you rebase and resubmit if still needed?

thanks,

greg k-h