src_vq->ops = &g2d_qops;
        src_vq->mem_ops = &vb2_dma_contig_memops;
        src_vq->buf_struct_size = sizeof(struct v4l2_m2m_buffer);
+       src_vq->timestamp_type = V4L2_BUF_FLAG_TIMESTAMP_COPY;
 
        ret = vb2_queue_init(src_vq);
        if (ret)
        dst_vq->ops = &g2d_qops;
        dst_vq->mem_ops = &vb2_dma_contig_memops;
        dst_vq->buf_struct_size = sizeof(struct v4l2_m2m_buffer);
+       dst_vq->timestamp_type = V4L2_BUF_FLAG_TIMESTAMP_COPY;
 
        return vb2_queue_init(dst_vq);
 }
        BUG_ON(src == NULL);
        BUG_ON(dst == NULL);
 
+       dst->v4l2_buf.timecode = src->v4l2_buf.timecode;
+       dst->v4l2_buf.timestamp = src->v4l2_buf.timestamp;
+
        v4l2_m2m_buf_done(src, VB2_BUF_STATE_DONE);
        v4l2_m2m_buf_done(dst, VB2_BUF_STATE_DONE);
        v4l2_m2m_job_finish(dev->m2m_dev, ctx->m2m_ctx);