On 10/4/19 12:24 PM, Vandana BN wrote: > +void vivid_meta_cap_fillbuff(struct vivid_dev *dev, > + struct vivid_buffer *buf, u32 soe) soe should have been a u64 since f_time is a u64. > +{ > + struct vivid_uvc_meta_buf *meta = vb2_plane_vaddr(&buf->vb.vb2_buf, 0); > + int buf_off = 0; > + > + buf->vb.sequence = dev->meta_cap_seq_count; > + if (dev->field_cap == V4L2_FIELD_ALTERNATE) > + buf->vb.sequence /= 2; > + memset(meta, 1, vb2_plane_size(&buf->vb.vb2_buf, 0)); > + > + meta->ns = ktime_get_ns(); > + meta->sof = buf->vb.sequence * 30; > + meta->length = sizeof(*meta) - offsetof(struct vivid_uvc_meta_buf, length); > + meta->flags = UVC_STREAM_EOH | UVC_STREAM_EOF; > + > + if ((buf->vb.sequence % 2) == 0) > + meta->flags |= UVC_STREAM_FID; > + > + dprintk(dev, 2, "%s ns:%llu sof:%4d len:%u flags: 0x%02x", > + __func__, meta->ns, meta->sof, meta->length, meta->flags); > + if (dev->meta_pts) { > + meta->flags |= UVC_STREAM_PTS; > + meta->buf[0] = soe / VIVID_META_CLOCK_UNIT; Use div_u64() here. > + buf_off = 4; > + dprintk(dev, 2, " pts: %u\n", *(__u32 *)(meta->buf)); > + } > + > + if (dev->meta_scr) { > + meta->flags |= UVC_STREAM_SCR; > + meta->buf[buf_off] = (soe + dev->cap_frame_eof_offset) > + / VIVID_META_CLOCK_UNIT; Same here (and this is the cause of the kbuild error). > + > + meta->buf[buf_off + 4] = (buf->vb.sequence * 30) % 1000; > + dprintk(dev, 2, " stc: %u, sof counter: %u\n", > + *(__u32 *)(meta->buf + buf_off), > + *(__u16 *)(meta->buf + buf_off + 4)); > + } > + dprintk(dev, 2, "\n"); > +} Regards, Hans