]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
media: cedrus: add buf_out_validate callback
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Wed, 16 Jan 2019 12:01:16 +0000 (10:01 -0200)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Thu, 31 Jan 2019 11:31:07 +0000 (09:31 -0200)
Validate the field for an output buffer. This ensures that the
field is validated when the buffer is queued to a request, and
not when the request itself is queued, which is too late.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/staging/media/sunxi/cedrus/cedrus_video.c

index 8721b4a7d4968f327e51f71d0655600bf378e2b4..b5cc79389d672c0e484001a5c8b6f27891246291 100644 (file)
@@ -416,6 +416,14 @@ static void cedrus_buf_cleanup(struct vb2_buffer *vb)
                ctx->dst_bufs[vb->index] = NULL;
 }
 
+static int cedrus_buf_out_validate(struct vb2_buffer *vb)
+{
+       struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
+
+       vbuf->field = V4L2_FIELD_NONE;
+       return 0;
+}
+
 static int cedrus_buf_prepare(struct vb2_buffer *vb)
 {
        struct vb2_queue *vq = vb->vb2_queue;
@@ -493,6 +501,7 @@ static struct vb2_ops cedrus_qops = {
        .buf_init               = cedrus_buf_init,
        .buf_cleanup            = cedrus_buf_cleanup,
        .buf_queue              = cedrus_buf_queue,
+       .buf_out_validate       = cedrus_buf_out_validate,
        .buf_request_complete   = cedrus_buf_request_complete,
        .start_streaming        = cedrus_start_streaming,
        .stop_streaming         = cedrus_stop_streaming,