]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/media/platform/sh_veu.c
Merge branch 'fixes-rc1' into omap-for-v4.3/fixes
[karo-tx-linux.git] / drivers / media / platform / sh_veu.c
index 7bb249cd19b8cdcbd0c9ee1879d1f08cdba38f7a..f5e3eb3a20ff77823ac2d8dbe1a0caad2454d19d 100644 (file)
@@ -958,6 +958,7 @@ static int sh_veu_queue_init(void *priv, struct vb2_queue *src_vq,
        src_vq->ops = &sh_veu_qops;
        src_vq->mem_ops = &vb2_dma_contig_memops;
        src_vq->lock = &veu->fop_lock;
+       src_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY;
 
        ret = vb2_queue_init(src_vq);
        if (ret < 0)
@@ -971,6 +972,7 @@ static int sh_veu_queue_init(void *priv, struct vb2_queue *src_vq,
        dst_vq->ops = &sh_veu_qops;
        dst_vq->mem_ops = &vb2_dma_contig_memops;
        dst_vq->lock = &veu->fop_lock;
+       dst_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY;
 
        return vb2_queue_init(dst_vq);
 }
@@ -1103,6 +1105,12 @@ static irqreturn_t sh_veu_isr(int irq, void *dev_id)
        if (!src || !dst)
                return IRQ_NONE;
 
+       dst->v4l2_buf.timestamp = src->v4l2_buf.timestamp;
+       dst->v4l2_buf.flags &= ~V4L2_BUF_FLAG_TSTAMP_SRC_MASK;
+       dst->v4l2_buf.flags |=
+               src->v4l2_buf.flags & V4L2_BUF_FLAG_TSTAMP_SRC_MASK;
+       dst->v4l2_buf.timecode = src->v4l2_buf.timecode;
+
        spin_lock(&veu->lock);
        v4l2_m2m_buf_done(src, VB2_BUF_STATE_DONE);
        v4l2_m2m_buf_done(dst, VB2_BUF_STATE_DONE);