Message ID | 20231204132323.22811-4-benjamin.gaignard@collabora.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Clean up min_buffers_needed misusages | expand |
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);
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 --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);
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(-)