diff options
author | Kamil Debski <k.debski@samsung.com> | 2013-04-25 06:21:24 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-04-25 08:48:25 -0400 |
commit | a8c9c345702b3f52a88498dea6b623dd3c3e27dc (patch) | |
tree | c933cbed1fcdeab87dc1bcdce64f161d0dd909fe | |
parent | 7f1e8f197e2fdc97ef51e6aa31ba3d207e6ef076 (diff) |
[media] mx2-emmaprp: Add copy time stamp handling
Since the introduction of the timestamp_type field, it is necessary that
the driver chooses which type it will use. This patch adds support for
the timestamp_type.
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | drivers/media/platform/mx2_emmaprp.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/media/platform/mx2_emmaprp.c b/drivers/media/platform/mx2_emmaprp.c index 4b9e0a28616a..f7440e585b6b 100644 --- a/drivers/media/platform/mx2_emmaprp.c +++ b/drivers/media/platform/mx2_emmaprp.c | |||
@@ -377,6 +377,9 @@ static irqreturn_t emmaprp_irq(int irq_emma, void *data) | |||
377 | src_vb = v4l2_m2m_src_buf_remove(curr_ctx->m2m_ctx); | 377 | src_vb = v4l2_m2m_src_buf_remove(curr_ctx->m2m_ctx); |
378 | dst_vb = v4l2_m2m_dst_buf_remove(curr_ctx->m2m_ctx); | 378 | dst_vb = v4l2_m2m_dst_buf_remove(curr_ctx->m2m_ctx); |
379 | 379 | ||
380 | src_vb->v4l2_buf.timestamp = dst_vb->v4l2_buf.timestamp; | ||
381 | src_vb->v4l2_buf.timecode = dst_vb->v4l2_buf.timecode; | ||
382 | |||
380 | spin_lock_irqsave(&pcdev->irqlock, flags); | 383 | spin_lock_irqsave(&pcdev->irqlock, flags); |
381 | v4l2_m2m_buf_done(src_vb, VB2_BUF_STATE_DONE); | 384 | v4l2_m2m_buf_done(src_vb, VB2_BUF_STATE_DONE); |
382 | v4l2_m2m_buf_done(dst_vb, VB2_BUF_STATE_DONE); | 385 | v4l2_m2m_buf_done(dst_vb, VB2_BUF_STATE_DONE); |
@@ -763,6 +766,7 @@ static int queue_init(void *priv, struct vb2_queue *src_vq, | |||
763 | src_vq->buf_struct_size = sizeof(struct v4l2_m2m_buffer); | 766 | src_vq->buf_struct_size = sizeof(struct v4l2_m2m_buffer); |
764 | src_vq->ops = &emmaprp_qops; | 767 | src_vq->ops = &emmaprp_qops; |
765 | src_vq->mem_ops = &vb2_dma_contig_memops; | 768 | src_vq->mem_ops = &vb2_dma_contig_memops; |
769 | src_vq->timestamp_type = V4L2_BUF_FLAG_TIMESTAMP_COPY; | ||
766 | 770 | ||
767 | ret = vb2_queue_init(src_vq); | 771 | ret = vb2_queue_init(src_vq); |
768 | if (ret) | 772 | if (ret) |
@@ -774,6 +778,7 @@ static int queue_init(void *priv, struct vb2_queue *src_vq, | |||
774 | dst_vq->buf_struct_size = sizeof(struct v4l2_m2m_buffer); | 778 | dst_vq->buf_struct_size = sizeof(struct v4l2_m2m_buffer); |
775 | dst_vq->ops = &emmaprp_qops; | 779 | dst_vq->ops = &emmaprp_qops; |
776 | dst_vq->mem_ops = &vb2_dma_contig_memops; | 780 | dst_vq->mem_ops = &vb2_dma_contig_memops; |
781 | dst_vq->timestamp_type = V4L2_BUF_FLAG_TIMESTAMP_COPY; | ||
777 | 782 | ||
778 | return vb2_queue_init(dst_vq); | 783 | return vb2_queue_init(dst_vq); |
779 | } | 784 | } |