From: Hans Verkuil <hverkuil-cisco@xs4all.nl>
To: Benjamin Gaignard <benjamin.gaignard@collabora.com>,
mchehab@kernel.org, tfiga@chromium.org, m.szyprowski@samsung.com,
ezequiel@vanguardiasur.com.ar, p.zabel@pengutronix.de,
nicolas@ndufresne.ca
Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-rockchip@lists.infradead.org, kernel@collabora.com
Subject: Re: [PATCH v21 3/9] media: test-drivers: Set REQBUFS minimum number of buffers
Date: Mon, 18 Mar 2024 14:06:33 +0100 [thread overview]
Message-ID: <00fe576e-df97-4cae-9937-d8e9272cf5e0@xs4all.nl> (raw)
In-Reply-To: <43d27ed7-94ff-4916-b1f3-07204b2f54ab@xs4all.nl>
On 18/03/2024 11:06 am, Hans Verkuil wrote:
> Hi Benjamin,
>
> On 14/03/2024 4:32 pm, Benjamin Gaignard wrote:
>> Instead of using 'min_queued_buffers' field to specify the
>> minimum number of buffers to be allocated when calling REQBUF
>> use 'min_reqbufs_allocation' field which is dedicated to this
>> purpose.
>>
>> While at it rename vivid_create_queue() parameter.
>>
>> Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
>> ---
>> drivers/media/test-drivers/vimc/vimc-capture.c | 2 +-
>> drivers/media/test-drivers/vivid/vivid-core.c | 4 ++--
>> 2 files changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/media/test-drivers/vimc/vimc-capture.c b/drivers/media/test-drivers/vimc/vimc-capture.c
>> index 2a2d19d23bab..97693561f1e4 100644
>> --- a/drivers/media/test-drivers/vimc/vimc-capture.c
>> +++ b/drivers/media/test-drivers/vimc/vimc-capture.c
>> @@ -432,7 +432,7 @@ static struct vimc_ent_device *vimc_capture_add(struct vimc_device *vimc,
>> q->mem_ops = vimc_allocator == VIMC_ALLOCATOR_DMA_CONTIG
>> ? &vb2_dma_contig_memops : &vb2_vmalloc_memops;
>> q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
>> - q->min_queued_buffers = 2;
>> + q->min_reqbufs_allocation = 2;
>> q->lock = &vcapture->lock;
>> q->dev = v4l2_dev->dev;
>>
>> diff --git a/drivers/media/test-drivers/vivid/vivid-core.c b/drivers/media/test-drivers/vivid/vivid-core.c
>> index 159c72cbb5bf..11b8520d9f57 100644
>> --- a/drivers/media/test-drivers/vivid/vivid-core.c
>> +++ b/drivers/media/test-drivers/vivid/vivid-core.c
>> @@ -861,7 +861,7 @@ static const struct media_device_ops vivid_media_ops = {
>> static int vivid_create_queue(struct vivid_dev *dev,
>> struct vb2_queue *q,
>> u32 buf_type,
>> - unsigned int min_queued_buffers,
>> + unsigned int min_reqbufs_allocation,
>> const struct vb2_ops *ops)
>> {
>> if (buf_type == V4L2_BUF_TYPE_VIDEO_CAPTURE && dev->multiplanar)
>> @@ -898,7 +898,7 @@ static int vivid_create_queue(struct vivid_dev *dev,
>> q->mem_ops = allocators[dev->inst] == 1 ? &vb2_dma_contig_memops :
>> &vb2_vmalloc_memops;
>> q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
>> - q->min_queued_buffers = supports_requests[dev->inst] ? 0 : min_queued_buffers;
>> + q->min_reqbufs_allocation = min_reqbufs_allocation;
>> q->lock = &dev->mutex;
>> q->dev = dev->v4l2_dev.dev;
>> q->supports_requests = supports_requests[dev->inst];
>
> How did you test this series? If I run the test-media script using the patch
> v4l2-compliance (the v9 series) I get two failures. Both are traced to code
> in vivid: meta_out_queue_setup() and touch_cap_queue_setup():
>
> Both have this code:
>
> if (*nplanes) {
> if (sizes[0] < size)
> return -EINVAL;
> } else {
> sizes[0] = size;
> }
>
> if (q_num_bufs + *nbuffers < 2)
> *nbuffers = 2 - q_num_bufs;
>
> *nplanes = 1;
> return 0;
>
> It's the *nbuffers assignment that is wrong. Looking at vivid-core.c I see
> that vivid_create_queue() is called with min_reqbufs_allocation set to 1 for
> these two devices. I think that should be 2, and then the code above can
> be dropped.
Note that if that 'if (q_num_bufs + *nbuffers < 2)' is dropped, then you
should also drop the q_num_bufs assignment at the beginning of the function
since that is now no longer used.
Regards,
Hans
>
> It is probably best to post a v21.1 3/9 patch only.
>
> Regards,
>
> Hans
>
>
>
next prev parent reply other threads:[~2024-03-18 13:06 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-14 15:32 [PATCH v21 0/9] Add REMOVE_BUF ioctl Benjamin Gaignard
2024-03-14 15:32 ` [PATCH v21 1/9] media: videobuf2: Update vb2_is_busy() logic Benjamin Gaignard
2024-03-21 13:49 ` Mauro Carvalho Chehab
2024-03-14 15:32 ` [PATCH v21 2/9] videobuf2: Add min_reqbufs_allocation field to vb2_queue structure Benjamin Gaignard
2024-03-21 13:52 ` Mauro Carvalho Chehab
2024-03-14 15:32 ` [PATCH v21 3/9] media: test-drivers: Set REQBUFS minimum number of buffers Benjamin Gaignard
2024-03-18 10:06 ` Hans Verkuil
2024-03-18 13:06 ` Hans Verkuil [this message]
2024-03-21 13:53 ` Mauro Carvalho Chehab
2024-03-14 15:32 ` [PATCH v21 4/9] media: core: Rework how create_buf index returned value is computed Benjamin Gaignard
2024-03-14 15:32 ` [PATCH v21 5/9] media: core: Add bitmap manage bufs array entries Benjamin Gaignard
2024-03-14 15:32 ` [PATCH v21 6/9] media: core: Free range of buffers Benjamin Gaignard
2024-03-21 14:18 ` Mauro Carvalho Chehab
2024-03-14 15:32 ` [PATCH v21 7/9] media: v4l2: Add REMOVE_BUFS ioctl Benjamin Gaignard
2024-03-21 14:14 ` Mauro Carvalho Chehab
2024-03-21 14:24 ` Hans Verkuil
2024-03-21 15:03 ` Mauro Carvalho Chehab
2024-03-22 7:54 ` Hans Verkuil
2024-03-22 9:51 ` Benjamin Gaignard
2024-03-14 15:32 ` [PATCH v21 8/9] media: v4l2: Add mem2mem helpers for " Benjamin Gaignard
2024-03-21 14:15 ` Mauro Carvalho Chehab
2024-03-14 15:32 ` [PATCH v21 9/9] media: verisilicon: Support removing buffers on capture queue Benjamin Gaignard
2024-03-21 14:16 ` Mauro Carvalho Chehab
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=00fe576e-df97-4cae-9937-d8e9272cf5e0@xs4all.nl \
--to=hverkuil-cisco@xs4all.nl \
--cc=benjamin.gaignard@collabora.com \
--cc=ezequiel@vanguardiasur.com.ar \
--cc=kernel@collabora.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=m.szyprowski@samsung.com \
--cc=mchehab@kernel.org \
--cc=nicolas@ndufresne.ca \
--cc=p.zabel@pengutronix.de \
--cc=tfiga@chromium.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).