Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5ba0e2c3 authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Mauro Carvalho Chehab
Browse files

[media] use v4l2_get_timestamp where possible



This is a preparation for a change to the type of v4l2 timestamps.
v4l2_get_timestamp() is a helper function that reads the monotonic
time and stores it into a 'struct timeval'. Multiple drivers implement
the same thing themselves for historic reasons.

Changing them all to use v4l2_get_timestamp() is more consistent
and reduces the amount of code duplication, and most importantly
simplifies the following changes.

Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Acked-by: default avatarSylwester Nawrocki <s.nawrocki@samsung.com>
[hans.verkuil@cisco.com: dropped the v4l2-dev.c patch that didn't belong here]
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 2ef3b6fe
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -3625,13 +3625,10 @@ static void
bttv_irq_wakeup_vbi(struct bttv *btv, struct bttv_buffer *wakeup,
		    unsigned int state)
{
	struct timeval ts;

	if (NULL == wakeup)
		return;

	v4l2_get_timestamp(&ts);
	wakeup->vb.ts = ts;
	v4l2_get_timestamp(&wakeup->vb.ts);
	wakeup->vb.field_count = btv->field_count;
	wakeup->vb.state = state;
	wake_up(&wakeup->vb.done);
+1 −1
Original line number Diff line number Diff line
@@ -202,7 +202,7 @@ static void cx18_mdl_send_to_videobuf(struct cx18_stream *s,
	}

	if (dispatch) {
		vb_buf->vb.ts = ktime_to_timeval(ktime_get());
		v4l2_get_timestamp(&vb_buf->vb.ts);
		list_del(&vb_buf->vb.queue);
		vb_buf->vb.state = VIDEOBUF_DONE;
		wake_up(&vb_buf->vb.done);
+1 −6
Original line number Diff line number Diff line
@@ -254,8 +254,6 @@ static irqreturn_t flite_irq_handler(int irq, void *priv)
	struct fimc_lite *fimc = priv;
	struct flite_buffer *vbuf;
	unsigned long flags;
	struct timeval *tv;
	struct timespec ts;
	u32 intsrc;

	spin_lock_irqsave(&fimc->slock, flags);
@@ -294,10 +292,7 @@ static irqreturn_t flite_irq_handler(int irq, void *priv)
	    test_bit(ST_FLITE_RUN, &fimc->state) &&
	    !list_empty(&fimc->active_buf_q)) {
		vbuf = fimc_lite_active_queue_pop(fimc);
		ktime_get_ts(&ts);
		tv = &vbuf->vb.v4l2_buf.timestamp;
		tv->tv_sec = ts.tv_sec;
		tv->tv_usec = ts.tv_nsec / NSEC_PER_USEC;
		v4l2_get_timestamp(&vbuf->vb.v4l2_buf.timestamp);
		vbuf->vb.v4l2_buf.sequence = fimc->frame_count++;
		flite_hw_mask_dma_buffer(fimc, vbuf->index);
		vb2_buffer_done(&vbuf->vb, VB2_BUF_STATE_DONE);
+2 −3
Original line number Diff line number Diff line
@@ -235,7 +235,7 @@ static int isp_stat_buf_queue(struct ispstat *stat)
	if (!stat->active_buf)
		return STAT_NO_BUF;

	ktime_get_ts(&stat->active_buf->ts);
	v4l2_get_timestamp(&stat->active_buf->ts);

	stat->active_buf->buf_size = stat->buf_size;
	if (isp_stat_buf_check_magic(stat, stat->active_buf)) {
@@ -496,8 +496,7 @@ int omap3isp_stat_request_statistics(struct ispstat *stat,
		return PTR_ERR(buf);
	}

	data->ts.tv_sec = buf->ts.tv_sec;
	data->ts.tv_usec = buf->ts.tv_nsec / NSEC_PER_USEC;
	data->ts = buf->ts;
	data->config_counter = buf->config_counter;
	data->frame_number = buf->frame_number;
	data->buf_size = buf->buf_size;
+1 −1
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ struct ispstat_buffer {
	struct sg_table sgt;
	void *virt_addr;
	dma_addr_t dma_addr;
	struct timespec ts;
	struct timeval ts;
	u32 buf_size;
	u32 frame_number;
	u16 config_counter;
Loading