]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/media/platform/m2m-deinterlace.c
[media] m2m-deinterlace: Add copy time stamp handling
[karo-tx-linux.git] / drivers / media / platform / m2m-deinterlace.c
index 6c4db9b989899bff0314dc0f031a219ab8f7180d..7585646495892ea9693bcd73b75337b2a04d2e0a 100644 (file)
@@ -207,6 +207,9 @@ static void dma_callback(void *data)
        src_vb = v4l2_m2m_src_buf_remove(curr_ctx->m2m_ctx);
        dst_vb = v4l2_m2m_dst_buf_remove(curr_ctx->m2m_ctx);
 
+       src_vb->v4l2_buf.timestamp = dst_vb->v4l2_buf.timestamp;
+       src_vb->v4l2_buf.timecode = dst_vb->v4l2_buf.timecode;
+
        v4l2_m2m_buf_done(src_vb, VB2_BUF_STATE_DONE);
        v4l2_m2m_buf_done(dst_vb, VB2_BUF_STATE_DONE);
 
@@ -866,6 +869,7 @@ static int queue_init(void *priv, struct vb2_queue *src_vq,
        src_vq->buf_struct_size = sizeof(struct v4l2_m2m_buffer);
        src_vq->ops = &deinterlace_qops;
        src_vq->mem_ops = &vb2_dma_contig_memops;
+       src_vq->timestamp_type = V4L2_BUF_FLAG_TIMESTAMP_COPY;
        q_data[V4L2_M2M_SRC].fmt = &formats[0];
        q_data[V4L2_M2M_SRC].width = 640;
        q_data[V4L2_M2M_SRC].height = 480;
@@ -882,6 +886,7 @@ static int queue_init(void *priv, struct vb2_queue *src_vq,
        dst_vq->buf_struct_size = sizeof(struct v4l2_m2m_buffer);
        dst_vq->ops = &deinterlace_qops;
        dst_vq->mem_ops = &vb2_dma_contig_memops;
+       dst_vq->timestamp_type = V4L2_BUF_FLAG_TIMESTAMP_COPY;
        q_data[V4L2_M2M_DST].fmt = &formats[0];
        q_data[V4L2_M2M_DST].width = 640;
        q_data[V4L2_M2M_DST].height = 480;