Message ID | 20231127165454.166373-3-benjamin.gaignard@collabora.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Clean up queue_setup()/min_buffers_needed (ab)use | expand |
On 11/27/23 09:54, Benjamin Gaignard wrote: > 'min_buffers_needed' is suppose to be used to indicate the number > of buffers needed by DMA engine to start streaming. > Obvious test-drivers don't use DMA engine and just want to specify > the minimum number of buffers to allocate when calling VIDIOC_REQBUFS. > That 'min_reqbufs_allocation' field purpose so use it. > While at it rename function parameter. > So how ate the test-drivers currently abusing this field and how does this change benefit? I don't have objections to this change, I want to understand it a bit more. I would like to see more details on why this change is needed. thanks, -- Shuah
Le 27/11/2023 à 18:00, Shuah Khan a écrit : > On 11/27/23 09:54, Benjamin Gaignard wrote: >> 'min_buffers_needed' is suppose to be used to indicate the number >> of buffers needed by DMA engine to start streaming. >> Obvious test-drivers don't use DMA engine and just want to specify >> the minimum number of buffers to allocate when calling VIDIOC_REQBUFS. >> That 'min_reqbufs_allocation' field purpose so use it. >> While at it rename function parameter. >> > > So how ate the test-drivers currently abusing this field > and how does this change benefit? In videobuf2-core.h min_buffers_needed is documemented as: "the minimum number of buffers needed before @start_streaming can be called. Used when a DMA engine cannot be started unless at least this number of buffers have been queued into the driver." Test-drivers don't use DMA engine so they (ab)use of this variable, like Hans said in this RFC: https://www.spinics.net/lists/linux-media/msg244455.html The goal of this series is to distinguish the minimum number of buffers to be allocated in VIDIOC_REQBUF versus the minimum numbers of buffers needed before start streaming. Regards, Benjamin > > I don't have objections to this change, I want to understand > it a bit more. I would like to see more details on why this > change is needed. > > thanks, > -- Shuah
diff --git a/drivers/media/test-drivers/vimc/vimc-capture.c b/drivers/media/test-drivers/vimc/vimc-capture.c index aa944270e716..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_buffers_needed = 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 353f035fcd19..b4e888ac6016 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_buffers_needed, + 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_buffers_needed = supports_requests[dev->inst] ? 0 : min_buffers_needed; + q->min_reqbufs_allocation = supports_requests[dev->inst] ? 0 : min_reqbufs_allocation; q->lock = &dev->mutex; q->dev = dev->v4l2_dev.dev; q->supports_requests = supports_requests[dev->inst];
'min_buffers_needed' is suppose to be used to indicate the number of buffers needed by DMA engine to start streaming. Obvious test-drivers don't use DMA engine and just want to specify the minimum number of buffers to allocate when calling VIDIOC_REQBUFS. That 'min_reqbufs_allocation' field purpose so use it. While at it rename function parameter. Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com> CC: Shuah Khan <skhan@linuxfoundation.org> CC: Kieran Bingham <kieran.bingham@ideasonboard.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(-)