Commit 1dc2527c authored by Michal Grzeschik's avatar Michal Grzeschik Committed by Greg Kroah-Hartman
Browse files

usb: gadget: uvc: set nbuffers to minimum STREAMING_MIN_BUFFERS in uvc_queue_setup



We set the minimum amount of v4l2 buffers that is possibly be pending
to UVCG_STREAMING_MIN_BUFFERS which is two. This way the driver will
always have at least one frame pending to be encoded while the other
is being enqueued in the hardware.

Signed-off-by: default avatarMichael Grzeschik <m.grzeschik@pengutronix.de>
Link: https://lore.kernel.org/r/20240403-uvc_request_length_by_interval-v7-7-e224bb1035f0@pengutronix.de


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 98ad0329
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -74,6 +74,8 @@ extern unsigned int uvc_gadget_trace_param;
#define UVCG_REQ_MAX_INT_COUNT			16
#define UVCG_REQ_MAX_ZERO_COUNT			(2 * UVCG_REQ_MAX_INT_COUNT)

#define UVCG_STREAMING_MIN_BUFFERS		2

/* ------------------------------------------------------------------------
 * Structures
 */
+3 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@
#include <media/videobuf2-vmalloc.h>

#include "uvc.h"
#include "uvc_video.h"

/* ------------------------------------------------------------------------
 * Video buffers queue management.
@@ -47,6 +48,8 @@ static int uvc_queue_setup(struct vb2_queue *vq,

	if (*nbuffers > UVC_MAX_VIDEO_BUFFERS)
		*nbuffers = UVC_MAX_VIDEO_BUFFERS;
	if (*nbuffers < UVCG_STREAMING_MIN_BUFFERS)
		*nbuffers = UVCG_STREAMING_MIN_BUFFERS;

	*nplanes = 1;