diff mbox series

[v2,02/36] media: chips-media: coda: Remove useless setting of min_buffers_needed

Message ID 20231204132323.22811-3-benjamin.gaignard@collabora.com (mailing list archive)
State New, archived
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: Philipp Zabel <p.zabel@pengutronix.de>
---
 drivers/media/platform/chips-media/coda/coda-common.c | 1 -
 1 file changed, 1 deletion(-)

Comments

Philipp Zabel Dec. 4, 2023, 1:45 p.m. UTC | #1
Hi Benjamin,

On Mo, 2023-12-04 at 14:22 +0100, 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.

Did you test this? I think there currently is some initialization in
start_streaming() that doesn't quite work when starting without any
buffers queued (it returns -EINVAL if called with count < 1).
For example, the CODA960 decoder initialization expects 512 bytes of
bitstream payload to run SEQ_INIT, and for JPEG decoding it tries to
determine chroma subsampling from the JPEG header.

regards
Philipp
diff mbox series

Patch

diff --git a/drivers/media/platform/chips-media/coda/coda-common.c b/drivers/media/platform/chips-media/coda/coda-common.c
index f1d85758f6dd..d5529f988d2c 100644
--- a/drivers/media/platform/chips-media/coda/coda-common.c
+++ b/drivers/media/platform/chips-media/coda/coda-common.c
@@ -2546,7 +2546,6 @@  static int coda_queue_init(struct coda_ctx *ctx, struct vb2_queue *vq)
 	 * would need to be reflected in job_ready(). Currently we expect all
 	 * queues to have at least one buffer queued.
 	 */
-	vq->min_buffers_needed = 1;
 	vq->dev = ctx->dev->dev;
 
 	return vb2_queue_init(vq);