On 8/27/24 11:15, Laurent Pinchart wrote: > Hi Hans, > > Please let me know if you expect a pull request, otherwise I'll consider > you will take this in your tree. Can you add it to your "Miscellaneous V4L2 patches" PR and post a v2 of that today? Regards, Hans > > On Mon, Aug 26, 2024 at 08:31:13AM +0200, Hans Verkuil wrote: >> On 26/08/2024 01:24, Laurent Pinchart wrote: >>> When introducing the ability for drivers to indicate the minimum number >>> of buffers they require an application to allocate, commit 6662edcd32cc >>> ("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: 6662edcd32cc ("media: videobuf2: Add min_reqbufs_allocation field to vb2_queue structure") >>> Cc: stable@xxxxxxxxxxxxxxx >>> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx> >> >> Reviewed-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx> >> >>> --- >>> drivers/media/common/videobuf2/videobuf2-core.c | 7 ------- >>> 1 file changed, 7 deletions(-) >>> >>> diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c >>> index 500a4e0c84ab..29a8d876e6c2 100644 >>> --- a/drivers/media/common/videobuf2/videobuf2-core.c >>> +++ b/drivers/media/common/videobuf2/videobuf2-core.c >>> @@ -2632,13 +2632,6 @@ int vb2_core_queue_init(struct vb2_queue *q) >>> if (WARN_ON(q->supports_requests && q->min_queued_buffers)) >>> return -EINVAL; >>> >>> - /* >>> - * The minimum requirement is 2: one buffer is used >>> - * by the hardware while the other is being processed by userspace. >>> - */ >>> - if (q->min_reqbufs_allocation < 2) >>> - q->min_reqbufs_allocation = 2; >>> - >>> /* >>> * If the driver needs 'min_queued_buffers' in the queue before >>> * calling start_streaming() then the minimum requirement is >>> >>> base-commit: a043ea54bbb975ca9239c69fd17f430488d33522 >