Hi Hans, Please let me know if you expect a pull request, otherwise I'll consider you will take this in your tree. 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 -- Regards, Laurent Pinchart