On 10/16/2015 15:27, Junghak Sung wrote:
> Move timestamp from struct vb2_v4l2_buffer to struct vb2_buffer
> for common use. This patch includes all device drivers' changes
> related with this restructuring.
>
> Signed-off-by: Junghak Sung <[email protected]>
> Signed-off-by: Geunyoung Kim <[email protected]>
> Acked-by: Seung-Woo Kim <[email protected]>
> Acked-by: Inki Dae <[email protected]>
> ---
> drivers/input/touchscreen/sur40.c | 2 +-
> drivers/media/dvb-frontends/rtl2832_sdr.c | 2 +-
> drivers/media/pci/cobalt/cobalt-irq.c | 2 +-
> drivers/media/pci/cx23885/cx23885-core.c | 2 +-
> drivers/media/pci/cx23885/cx23885-video.c | 2 +-
> drivers/media/pci/cx25821/cx25821-video.c | 2 +-
> drivers/media/pci/cx88/cx88-core.c | 2 +-
> drivers/media/pci/dt3155/dt3155.c | 2 +-
> drivers/media/pci/netup_unidvb/netup_unidvb_core.c | 2 +-
> drivers/media/pci/saa7134/saa7134-core.c | 2 +-
> drivers/media/pci/solo6x10/solo6x10-v4l2-enc.c | 4 ++--
> drivers/media/pci/solo6x10/solo6x10-v4l2.c | 2 +-
> drivers/media/pci/sta2x11/sta2x11_vip.c | 2 +-
> drivers/media/pci/tw68/tw68-video.c | 2 +-
> drivers/media/platform/am437x/am437x-vpfe.c | 2 +-
> drivers/media/platform/blackfin/bfin_capture.c | 2 +-
> drivers/media/platform/coda/coda-bit.c | 6 +++---
> drivers/media/platform/davinci/vpbe_display.c | 2 +-
> drivers/media/platform/davinci/vpif_capture.c | 2 +-
> drivers/media/platform/davinci/vpif_display.c | 4 ++--
> drivers/media/platform/exynos-gsc/gsc-m2m.c | 4 ++--
> drivers/media/platform/exynos4-is/fimc-capture.c | 2 +-
> drivers/media/platform/exynos4-is/fimc-isp-video.c | 2 +-
> drivers/media/platform/exynos4-is/fimc-lite.c | 2 +-
> drivers/media/platform/exynos4-is/fimc-m2m.c | 2 +-
> drivers/media/platform/m2m-deinterlace.c | 2 +-
> drivers/media/platform/marvell-ccic/mcam-core.c | 2 +-
> drivers/media/platform/mx2_emmaprp.c | 2 +-
> drivers/media/platform/omap3isp/ispvideo.c | 2 +-
> drivers/media/platform/rcar_jpu.c | 2 +-
> drivers/media/platform/s3c-camif/camif-capture.c | 2 +-
> drivers/media/platform/s5p-g2d/g2d.c | 2 +-
> drivers/media/platform/s5p-jpeg/jpeg-core.c | 4 ++--
> drivers/media/platform/s5p-mfc/s5p_mfc.c | 4 ++--
> drivers/media/platform/sh_veu.c | 2 +-
> drivers/media/platform/sh_vou.c | 2 +-
> drivers/media/platform/soc_camera/atmel-isi.c | 2 +-
> drivers/media/platform/soc_camera/mx2_camera.c | 2 +-
> drivers/media/platform/soc_camera/mx3_camera.c | 2 +-
> drivers/media/platform/soc_camera/rcar_vin.c | 2 +-
> .../platform/soc_camera/sh_mobile_ceu_camera.c | 2 +-
> drivers/media/platform/sti/bdisp/bdisp-v4l2.c | 4 ++--
> drivers/media/platform/ti-vpe/vpe.c | 2 +-
> drivers/media/platform/vim2m.c | 2 +-
> drivers/media/platform/vivid/vivid-kthread-cap.c | 6 +++---
> drivers/media/platform/vivid/vivid-kthread-out.c | 8 ++++----
> drivers/media/platform/vivid/vivid-sdr-cap.c | 5 +++--
> drivers/media/platform/vivid/vivid-vbi-cap.c | 8 ++++----
> drivers/media/platform/vsp1/vsp1_video.c | 2 +-
> drivers/media/platform/xilinx/xilinx-dma.c | 2 +-
> drivers/media/usb/airspy/airspy.c | 2 +-
> drivers/media/usb/au0828/au0828-video.c | 2 +-
> drivers/media/usb/em28xx/em28xx-video.c | 2 +-
> drivers/media/usb/go7007/go7007-driver.c | 2 +-
> drivers/media/usb/hackrf/hackrf.c | 2 +-
> drivers/media/usb/pwc/pwc-if.c | 2 +-
> drivers/media/usb/s2255/s2255drv.c | 2 +-
> drivers/media/usb/stk1160/stk1160-video.c | 2 +-
> drivers/media/usb/usbtv/usbtv-video.c | 2 +-
> drivers/media/usb/uvc/uvc_video.c | 12 ++++++------
> drivers/media/v4l2-core/videobuf2-v4l2.c | 8 ++++----
> drivers/staging/media/davinci_vpfe/vpfe_video.c | 2 +-
> drivers/staging/media/omap4iss/iss_video.c | 2 +-
> drivers/usb/gadget/function/uvc_queue.c | 2 +-
> include/media/videobuf2-core.h | 2 ++
> include/media/videobuf2-v4l2.h | 2 --
> include/trace/events/v4l2.h | 2 +-
> include/trace/events/vb2.h | 7 +++++--
> 68 files changed, 98 insertions(+), 94 deletions(-)
>
<snip>
> diff --git a/include/media/videobuf2-core.h b/include/media/videobuf2-core.h
> index 647ebfe..f1e7169 100644
> --- a/include/media/videobuf2-core.h
> +++ b/include/media/videobuf2-core.h
> @@ -211,6 +211,7 @@ struct vb2_queue;
> * @num_planes: number of planes in the buffer
> * on an internal driver queue
> * @planes: private per-plane information; do not change
> + * @timestamp: frame timestamp
> */
> struct vb2_buffer {
> struct vb2_queue *vb2_queue;
> @@ -219,6 +220,7 @@ struct vb2_buffer {
> unsigned int memory;
> unsigned int num_planes;
> struct vb2_plane planes[VB2_MAX_PLANES];
> + struct timeval timestamp;
This should become a u64 timestamp that's filled using ktime_get_ns().
In the v4l2 code this should be converted to a timeval when v4l2_buffer
is filled. Using ktime_get_ns() is the recommended method to do timestamping
without having to worry about the y2038 problem and this should be used in
vb2 core.
v4l2_set_timestamp should be updated accordingly.
Regards,
Hans
>
> /* private: internal use only
> *
> diff --git a/include/media/videobuf2-v4l2.h b/include/media/videobuf2-v4l2.h
> index 5abab1e..110062e 100644
> --- a/include/media/videobuf2-v4l2.h
> +++ b/include/media/videobuf2-v4l2.h
> @@ -28,7 +28,6 @@
> * @vb2_buf: video buffer 2
> * @flags: buffer informational flags
> * @field: enum v4l2_field; field order of the image in the buffer
> - * @timestamp: frame timestamp
> * @timecode: frame timecode
> * @sequence: sequence count of this frame
> * Should contain enough information to be able to cover all the fields
> @@ -39,7 +38,6 @@ struct vb2_v4l2_buffer {
>
> __u32 flags;
> __u32 field;
> - struct timeval timestamp;
> struct v4l2_timecode timecode;
> __u32 sequence;
> };
> diff --git a/include/trace/events/v4l2.h b/include/trace/events/v4l2.h
> index 04ef89b..5b57d0a 100644
> --- a/include/trace/events/v4l2.h
> +++ b/include/trace/events/v4l2.h
> @@ -204,7 +204,7 @@ DECLARE_EVENT_CLASS(vb2_v4l2_event_class,
> __entry->minor = owner ? owner->vdev->minor : -1;
> __entry->flags = vbuf->flags;
> __entry->field = vbuf->field;
> - __entry->timestamp = timeval_to_ns(&vbuf->timestamp);
> + __entry->timestamp = timeval_to_ns(&vb->timestamp);
> __entry->timecode_type = vbuf->timecode.type;
> __entry->timecode_flags = vbuf->timecode.flags;
> __entry->timecode_frames = vbuf->timecode.frames;
> diff --git a/include/trace/events/vb2.h b/include/trace/events/vb2.h
> index bfeceeb..35c1589 100644
> --- a/include/trace/events/vb2.h
> +++ b/include/trace/events/vb2.h
> @@ -18,6 +18,7 @@ DECLARE_EVENT_CLASS(vb2_event_class,
> __field(u32, index)
> __field(u32, type)
> __field(u32, bytesused)
> + __field(s64, timestamp)
> ),
>
> TP_fast_assign(
> @@ -28,14 +29,16 @@ DECLARE_EVENT_CLASS(vb2_event_class,
> __entry->index = vb->index;
> __entry->type = vb->type;
> __entry->bytesused = vb->planes[0].bytesused;
> + __entry->timestamp = timeval_to_ns(&vb->timestamp);
> ),
>
> TP_printk("owner = %p, queued = %u, owned_by_drv = %d, index = %u, "
> - "type = %u, bytesused = %u", __entry->owner,
> + "type = %u, bytesused = %u, timestamp = %llu", __entry->owner,
> __entry->queued_count,
> __entry->owned_by_drv_count,
> __entry->index, __entry->type,
> - __entry->bytesused
> + __entry->bytesused,
> + __entry->timestamp
> )
> )
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html