Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[media] sh-veu: initialize timestamp_flags and copy timestamp info

This field wasn't set, causing WARN_ON's from the vb2 core.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Acked-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>

authored by

Hans Verkuil and committed by
Mauro Carvalho Chehab
073b795e 267897a4

+8
+8
drivers/media/platform/sh_veu.c
··· 958 958 src_vq->ops = &sh_veu_qops; 959 959 src_vq->mem_ops = &vb2_dma_contig_memops; 960 960 src_vq->lock = &veu->fop_lock; 961 + src_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY; 961 962 962 963 ret = vb2_queue_init(src_vq); 963 964 if (ret < 0) ··· 972 971 dst_vq->ops = &sh_veu_qops; 973 972 dst_vq->mem_ops = &vb2_dma_contig_memops; 974 973 dst_vq->lock = &veu->fop_lock; 974 + dst_vq->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_COPY; 975 975 976 976 return vb2_queue_init(dst_vq); 977 977 } ··· 1104 1102 src = v4l2_m2m_src_buf_remove(veu->m2m_ctx); 1105 1103 if (!src || !dst) 1106 1104 return IRQ_NONE; 1105 + 1106 + dst->v4l2_buf.timestamp = src->v4l2_buf.timestamp; 1107 + dst->v4l2_buf.flags &= ~V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 1108 + dst->v4l2_buf.flags |= 1109 + src->v4l2_buf.flags & V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 1110 + dst->v4l2_buf.timecode = src->v4l2_buf.timecode; 1107 1111 1108 1112 spin_lock(&veu->lock); 1109 1113 v4l2_m2m_buf_done(src, VB2_BUF_STATE_DONE);