media: v4l2: Allow M2M job queuing w/o streaming CAP queue
authorSebastian Fricke <sebastian.fricke@collabora.com>
Wed, 8 Nov 2023 19:29:21 +0000 (20:29 +0100)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Thu, 16 Nov 2023 12:25:52 +0000 (13:25 +0100)
Allow decoder drivers to enable set the ignore_streaming flag on their
CAPTURE queue, to allow queuing jobs to the M2M ready queue and perform
firmware sequence analysis with just a streaming OUTPUT queue and
available bitstream data.

Signed-off-by: Sebastian Fricke <sebastian.fricke@collabora.com>
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/media/v4l2-core/v4l2-mem2mem.c

index 0cc30397fbad5f199f9e23615c4daa83197ab7bb..9e983176542be07d0ce0a974d0ddb68ac490ae9f 100644 (file)
@@ -301,9 +301,12 @@ static void __v4l2_m2m_try_queue(struct v4l2_m2m_dev *m2m_dev,
 
        dprintk("Trying to schedule a job for m2m_ctx: %p\n", m2m_ctx);
 
-       if (!m2m_ctx->out_q_ctx.q.streaming
-           || !m2m_ctx->cap_q_ctx.q.streaming) {
-               dprintk("Streaming needs to be on for both queues\n");
+       if (!m2m_ctx->out_q_ctx.q.streaming ||
+           (!m2m_ctx->cap_q_ctx.q.streaming && !m2m_ctx->ignore_cap_streaming)) {
+               if (!m2m_ctx->ignore_cap_streaming)
+                       dprintk("Streaming needs to be on for both queues\n");
+               else
+                       dprintk("Streaming needs to be on for the OUTPUT queue\n");
                return;
        }