diff mbox series

[v2,03/36] media: microchip: Remove useless setting of min_buffers_needed

Message ID 20231204132323.22811-4-benjamin.gaignard@collabora.com (mailing list archive)
State New
Headers show
Series Clean up min_buffers_needed misusages | expand

Commit Message

Benjamin Gaignard Dec. 4, 2023, 1:22 p.m. UTC
This driver uses min_buffers_needed which vb2 uses to ensure
start_streaming is called when at least 'min_buffers_needed'
buffers are queued. However, this driver doesn't need this,
it can stream fine without any buffers queued.
Just drop this unnecessary restriction.

Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
CC: Eugen Hristev <eugen.hristev@collabora.com>
---
 drivers/media/platform/microchip/microchip-isc-base.c | 1 -
 1 file changed, 1 deletion(-)

Comments

Hans Verkuil Dec. 4, 2023, 2:03 p.m. UTC | #1
On 04/12/2023 14:22, Benjamin Gaignard wrote:
> This driver uses min_buffers_needed which vb2 uses to ensure
> start_streaming is called when at least 'min_buffers_needed'
> buffers are queued. However, this driver doesn't need this,
> it can stream fine without any buffers queued.
> Just drop this unnecessary restriction.
> 
> Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
> CC: Eugen Hristev <eugen.hristev@collabora.com>
> ---
>  drivers/media/platform/microchip/microchip-isc-base.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/drivers/media/platform/microchip/microchip-isc-base.c b/drivers/media/platform/microchip/microchip-isc-base.c
> index 3fba0e2844b6..63c39981f47a 100644
> --- a/drivers/media/platform/microchip/microchip-isc-base.c
> +++ b/drivers/media/platform/microchip/microchip-isc-base.c
> @@ -1821,7 +1821,6 @@ static int isc_async_complete(struct v4l2_async_notifier *notifier)
>  	q->mem_ops		= &vb2_dma_contig_memops;
>  	q->timestamp_flags	= V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
>  	q->lock			= &isc->lock;
> -	q->min_buffers_needed	= 1;

I don't think this can be dropped. Looking at the isc_start_streaming() function
it expects to have at least one buffer queued.

Regards,

	Hans

>  	q->dev			= isc->dev;
>  
>  	ret = vb2_queue_init(q);
Eugen Hristev Dec. 4, 2023, 2:25 p.m. UTC | #2
On 12/4/23 16:03, Hans Verkuil wrote:
> On 04/12/2023 14:22, Benjamin Gaignard wrote:
>> This driver uses min_buffers_needed which vb2 uses to ensure
>> start_streaming is called when at least 'min_buffers_needed'
>> buffers are queued. However, this driver doesn't need this,
>> it can stream fine without any buffers queued.
>> Just drop this unnecessary restriction.
>>
>> Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
>> CC: Eugen Hristev <eugen.hristev@collabora.com>
>> ---
>>  drivers/media/platform/microchip/microchip-isc-base.c | 1 -
>>  1 file changed, 1 deletion(-)
>>
>> diff --git a/drivers/media/platform/microchip/microchip-isc-base.c b/drivers/media/platform/microchip/microchip-isc-base.c
>> index 3fba0e2844b6..63c39981f47a 100644
>> --- a/drivers/media/platform/microchip/microchip-isc-base.c
>> +++ b/drivers/media/platform/microchip/microchip-isc-base.c
>> @@ -1821,7 +1821,6 @@ static int isc_async_complete(struct v4l2_async_notifier *notifier)
>>  	q->mem_ops		= &vb2_dma_contig_memops;
>>  	q->timestamp_flags	= V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
>>  	q->lock			= &isc->lock;
>> -	q->min_buffers_needed	= 1;
> 
> I don't think this can be dropped. Looking at the isc_start_streaming() function
> it expects to have at least one buffer queued.

Stream goes frame by frame with DMA directly into the buffers.
Will this still work without any buffers queued ?

> 
> Regards,
> 
> 	Hans
> 
>>  	q->dev			= isc->dev;
>>  
>>  	ret = vb2_queue_init(q);
>
diff mbox series

Patch

diff --git a/drivers/media/platform/microchip/microchip-isc-base.c b/drivers/media/platform/microchip/microchip-isc-base.c
index 3fba0e2844b6..63c39981f47a 100644
--- a/drivers/media/platform/microchip/microchip-isc-base.c
+++ b/drivers/media/platform/microchip/microchip-isc-base.c
@@ -1821,7 +1821,6 @@  static int isc_async_complete(struct v4l2_async_notifier *notifier)
 	q->mem_ops		= &vb2_dma_contig_memops;
 	q->timestamp_flags	= V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
 	q->lock			= &isc->lock;
-	q->min_buffers_needed	= 1;
 	q->dev			= isc->dev;
 
 	ret = vb2_queue_init(q);