media: v4l2-mem2mem: Fix hold buf flag checks
authorJernej Skrabec <jernej.skrabec@siol.net>
Wed, 6 Nov 2019 07:02:53 +0000 (08:02 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Sat, 9 Nov 2019 08:07:34 +0000 (09:07 +0100)
Hold buf flag is set on output queue, not capture. Fix that.

Fixes: f07602ac3887 ("media: v4l2-mem2mem: add new_frame detection")
Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/v4l2-core/v4l2-mem2mem.c

index db07ef3..1afd9c6 100644 (file)
@@ -335,7 +335,7 @@ static void __v4l2_m2m_try_queue(struct v4l2_m2m_dev *m2m_dev,
                }
        }
 
-       if (src && dst && (m2m_ctx->cap_q_ctx.q.subsystem_flags &
+       if (src && dst && (m2m_ctx->out_q_ctx.q.subsystem_flags &
                           VB2_V4L2_FL_SUPPORTS_M2M_HOLD_CAPTURE_BUF))
                m2m_ctx->new_frame = !dst->vb2_buf.copied_timestamp ||
                        dst->vb2_buf.timestamp != src->vb2_buf.timestamp;
@@ -474,7 +474,7 @@ void v4l2_m2m_job_finish(struct v4l2_m2m_dev *m2m_dev,
         * holding capture buffers. Those should use
         * v4l2_m2m_buf_done_and_job_finish() instead.
         */
-       WARN_ON(m2m_ctx->cap_q_ctx.q.subsystem_flags &
+       WARN_ON(m2m_ctx->out_q_ctx.q.subsystem_flags &
                VB2_V4L2_FL_SUPPORTS_M2M_HOLD_CAPTURE_BUF);
        spin_lock_irqsave(&m2m_dev->job_spinlock, flags);
        schedule_next = _v4l2_m2m_job_finish(m2m_dev, m2m_ctx);