Message ID | 20231031163104.112469-46-benjamin.gaignard@collabora.com |
---|---|
State | Superseded |
Headers | show |
Series | Add DELETE_BUF ioctl | expand |
W dniu 31.10.2023 o 17:30, Benjamin Gaignard pisze: > Change the maximum number of buffers of some capture queues in order > to test max_num_buffers field. > > Allow to allocate up to: > - 64 buffers for video capture queue. > - 1024 buffers for sdr capture queue. > - 32768 buffers for vbi capture queue. > > Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com> Reviewed-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com> > --- > drivers/media/test-drivers/vivid/vivid-core.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/drivers/media/test-drivers/vivid/vivid-core.c b/drivers/media/test-drivers/vivid/vivid-core.c > index 394c9f81ea72..353f035fcd19 100644 > --- a/drivers/media/test-drivers/vivid/vivid-core.c > +++ b/drivers/media/test-drivers/vivid/vivid-core.c > @@ -876,6 +876,20 @@ static int vivid_create_queue(struct vivid_dev *dev, > q->type = buf_type; > q->io_modes = VB2_MMAP | VB2_DMABUF; > q->io_modes |= V4L2_TYPE_IS_OUTPUT(buf_type) ? VB2_WRITE : VB2_READ; > + > + /* > + * The maximum number of buffers is 32768 if PAGE_SHIFT == 12, > + * see also MAX_BUFFER_INDEX in videobuf2-core.c. It will be less if > + * PAGE_SHIFT > 12, but then max_num_buffers will be clamped by > + * videobuf2-core.c to MAX_BUFFER_INDEX. > + */ > + if (buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE) > + q->max_num_buffers = 64; > + if (buf_type == V4L2_BUF_TYPE_SDR_CAPTURE) > + q->max_num_buffers = 1024; > + if (buf_type == V4L2_BUF_TYPE_VBI_CAPTURE) > + q->max_num_buffers = 32768; > + > if (allocators[dev->inst] != 1) > q->io_modes |= VB2_USERPTR; > q->drv_priv = dev;
diff --git a/drivers/media/test-drivers/vivid/vivid-core.c b/drivers/media/test-drivers/vivid/vivid-core.c index 394c9f81ea72..353f035fcd19 100644 --- a/drivers/media/test-drivers/vivid/vivid-core.c +++ b/drivers/media/test-drivers/vivid/vivid-core.c @@ -876,6 +876,20 @@ static int vivid_create_queue(struct vivid_dev *dev, q->type = buf_type; q->io_modes = VB2_MMAP | VB2_DMABUF; q->io_modes |= V4L2_TYPE_IS_OUTPUT(buf_type) ? VB2_WRITE : VB2_READ; + + /* + * The maximum number of buffers is 32768 if PAGE_SHIFT == 12, + * see also MAX_BUFFER_INDEX in videobuf2-core.c. It will be less if + * PAGE_SHIFT > 12, but then max_num_buffers will be clamped by + * videobuf2-core.c to MAX_BUFFER_INDEX. + */ + if (buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE) + q->max_num_buffers = 64; + if (buf_type == V4L2_BUF_TYPE_SDR_CAPTURE) + q->max_num_buffers = 1024; + if (buf_type == V4L2_BUF_TYPE_VBI_CAPTURE) + q->max_num_buffers = 32768; + if (allocators[dev->inst] != 1) q->io_modes |= VB2_USERPTR; q->drv_priv = dev;
Change the maximum number of buffers of some capture queues in order to test max_num_buffers field. Allow to allocate up to: - 64 buffers for video capture queue. - 1024 buffers for sdr capture queue. - 32768 buffers for vbi capture queue. Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com> --- drivers/media/test-drivers/vivid/vivid-core.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)