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

[media] v4l: Copy timestamp source flags to destination on m2m devices

Copy the flags containing the timestamp source from source buffer flags to
the destination buffer flags on memory-to-memory devices. This is analogous
to copying the timestamp field from source to destination.

Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi>
Acked-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>

authored by

Sakari Ailus and committed by
Mauro Carvalho Chehab
309f4d62 599b0892

+34
+3
drivers/media/platform/coda.c
··· 2829 2829 } 2830 2830 2831 2831 dst_buf->v4l2_buf.timestamp = src_buf->v4l2_buf.timestamp; 2832 + dst_buf->v4l2_buf.flags &= ~V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 2833 + dst_buf->v4l2_buf.flags |= 2834 + src_buf->v4l2_buf.flags & V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 2832 2835 dst_buf->v4l2_buf.timecode = src_buf->v4l2_buf.timecode; 2833 2836 2834 2837 v4l2_m2m_buf_done(src_buf, VB2_BUF_STATE_DONE);
+4
drivers/media/platform/exynos-gsc/gsc-m2m.c
··· 90 90 if (src_vb && dst_vb) { 91 91 dst_vb->v4l2_buf.timestamp = src_vb->v4l2_buf.timestamp; 92 92 dst_vb->v4l2_buf.timecode = src_vb->v4l2_buf.timecode; 93 + dst_vb->v4l2_buf.flags &= ~V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 94 + dst_vb->v4l2_buf.flags |= 95 + src_vb->v4l2_buf.flags 96 + & V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 93 97 94 98 v4l2_m2m_buf_done(src_vb, vb_state); 95 99 v4l2_m2m_buf_done(dst_vb, vb_state);
+3
drivers/media/platform/exynos4-is/fimc-m2m.c
··· 134 134 goto dma_unlock; 135 135 136 136 dst_vb->v4l2_buf.timestamp = src_vb->v4l2_buf.timestamp; 137 + dst_vb->v4l2_buf.flags &= ~V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 138 + dst_vb->v4l2_buf.flags |= 139 + src_vb->v4l2_buf.flags & V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 137 140 138 141 /* Reconfigure hardware if the context has changed. */ 139 142 if (fimc->m2m.ctx != ctx) {
+3
drivers/media/platform/m2m-deinterlace.c
··· 208 208 dst_vb = v4l2_m2m_dst_buf_remove(curr_ctx->m2m_ctx); 209 209 210 210 dst_vb->v4l2_buf.timestamp = src_vb->v4l2_buf.timestamp; 211 + dst_vb->v4l2_buf.flags &= ~V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 212 + dst_vb->v4l2_buf.flags |= 213 + src_vb->v4l2_buf.flags & V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 211 214 dst_vb->v4l2_buf.timecode = src_vb->v4l2_buf.timecode; 212 215 213 216 v4l2_m2m_buf_done(src_vb, VB2_BUF_STATE_DONE);
+3
drivers/media/platform/mem2mem_testdev.c
··· 239 239 memcpy(&out_vb->v4l2_buf.timestamp, 240 240 &in_vb->v4l2_buf.timestamp, 241 241 sizeof(struct timeval)); 242 + out_vb->v4l2_buf.flags &= ~V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 243 + out_vb->v4l2_buf.flags |= 244 + in_vb->v4l2_buf.flags & V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 242 245 243 246 switch (ctx->mode) { 244 247 case MEM2MEM_HFLIP | MEM2MEM_VFLIP:
+5
drivers/media/platform/mx2_emmaprp.c
··· 378 378 dst_vb = v4l2_m2m_dst_buf_remove(curr_ctx->m2m_ctx); 379 379 380 380 dst_vb->v4l2_buf.timestamp = src_vb->v4l2_buf.timestamp; 381 + dst_vb->v4l2_buf.flags &= 382 + ~V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 383 + dst_vb->v4l2_buf.flags |= 384 + src_vb->v4l2_buf.flags 385 + & V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 381 386 dst_vb->v4l2_buf.timecode = src_vb->v4l2_buf.timecode; 382 387 383 388 spin_lock_irqsave(&pcdev->irqlock, flags);
+3
drivers/media/platform/s5p-g2d/g2d.c
··· 560 560 561 561 dst->v4l2_buf.timecode = src->v4l2_buf.timecode; 562 562 dst->v4l2_buf.timestamp = src->v4l2_buf.timestamp; 563 + dst->v4l2_buf.flags &= ~V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 564 + dst->v4l2_buf.flags |= 565 + src->v4l2_buf.flags & V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 563 566 564 567 v4l2_m2m_buf_done(src, VB2_BUF_STATE_DONE); 565 568 v4l2_m2m_buf_done(dst, VB2_BUF_STATE_DONE);
+3
drivers/media/platform/s5p-jpeg/jpeg-core.c
··· 1766 1766 1767 1767 dst_buf->v4l2_buf.timecode = src_buf->v4l2_buf.timecode; 1768 1768 dst_buf->v4l2_buf.timestamp = src_buf->v4l2_buf.timestamp; 1769 + dst_buf->v4l2_buf.flags &= ~V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 1770 + dst_buf->v4l2_buf.flags |= 1771 + src_buf->v4l2_buf.flags & V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 1769 1772 1770 1773 v4l2_m2m_buf_done(src_buf, state); 1771 1774 if (curr_ctx->mode == S5P_JPEG_ENCODE)
+5
drivers/media/platform/s5p-mfc/s5p_mfc.c
··· 232 232 src_buf->b->v4l2_buf.timecode; 233 233 dst_buf->b->v4l2_buf.timestamp = 234 234 src_buf->b->v4l2_buf.timestamp; 235 + dst_buf->b->v4l2_buf.flags &= 236 + ~V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 237 + dst_buf->b->v4l2_buf.flags |= 238 + src_buf->b->v4l2_buf.flags 239 + & V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 235 240 switch (frame_type) { 236 241 case S5P_FIMV_DECODE_FRAME_I_FRAME: 237 242 dst_buf->b->v4l2_buf.flags |=
+2
drivers/media/platform/ti-vpe/vpe.c
··· 1278 1278 d_buf = &d_vb->v4l2_buf; 1279 1279 1280 1280 d_buf->timestamp = s_buf->timestamp; 1281 + d_buf->flags &= ~V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 1282 + d_buf->flags |= s_buf->flags & V4L2_BUF_FLAG_TSTAMP_SRC_MASK; 1281 1283 if (s_buf->flags & V4L2_BUF_FLAG_TIMECODE) { 1282 1284 d_buf->flags |= V4L2_BUF_FLAG_TIMECODE; 1283 1285 d_buf->timecode = s_buf->timecode;