Skip to content
This repository was archived by the owner on Oct 31, 2024. It is now read-only.

Commit ea0202f

Browse files
Laurent Pinchartgregkh
Laurent Pinchart
authored andcommitted
media: videobuf2: Drop minimum allocation requirement of 2 buffers
commit e5700c9 upstream. When introducing the ability for drivers to indicate the minimum number of buffers they require an application to allocate, commit 6662edc ("media: videobuf2: Add min_reqbufs_allocation field to vb2_queue structure") also introduced a global minimum of 2 buffers. It turns out this breaks the Renesas R-Car VSP test suite, where a test that allocates a single buffer fails when two buffers are used. One may consider debatable whether test suite failures without failures in production use cases should be considered as a regression, but operation with a single buffer is a valid use case. While full frame rate can't be maintained, memory-to-memory devices can still be used with a decent efficiency, and requiring applications to allocate multiple buffers for single-shot use cases with capture devices would just waste memory. For those reasons, fix the regression by dropping the global minimum of buffers. Individual drivers can still set their own minimum. Fixes: 6662edc ("media: videobuf2: Add min_reqbufs_allocation field to vb2_queue structure") Cc: stable@vger.kernel.org Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Reviewed-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Acked-by: Tomasz Figa <tfiga@chromium.org> Link: https://lore.kernel.org/r/20240825232449.25905-1-laurent.pinchart+renesas@ideasonboard.com Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent a533603 commit ea0202f

File tree

1 file changed

+0
-7
lines changed

1 file changed

+0
-7
lines changed

drivers/media/common/videobuf2/videobuf2-core.c

-7
Original file line numberDiff line numberDiff line change
@@ -2601,13 +2601,6 @@ int vb2_core_queue_init(struct vb2_queue *q)
26012601
if (WARN_ON(q->supports_requests && q->min_queued_buffers))
26022602
return -EINVAL;
26032603

2604-
/*
2605-
* The minimum requirement is 2: one buffer is used
2606-
* by the hardware while the other is being processed by userspace.
2607-
*/
2608-
if (q->min_reqbufs_allocation < 2)
2609-
q->min_reqbufs_allocation = 2;
2610-
26112604
/*
26122605
* If the driver needs 'min_queued_buffers' in the queue before
26132606
* calling start_streaming() then the minimum requirement is

0 commit comments

Comments
 (0)