]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
media: meye: use u64 for the timestamp internally
authorHans Verkuil <hverkuil-cisco@xs4all.nl>
Mon, 21 Jan 2019 13:32:24 +0000 (08:32 -0500)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Thu, 7 Feb 2019 17:11:23 +0000 (12:11 -0500)
Just like vb2 does, use u64 internally to store the timestamps
of the buffers. Only convert to timeval when interfacing with
userspace.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/pci/meye/meye.c
drivers/media/pci/meye/meye.h

index bd870e60c32b06dd5131272ab3c07ab71827d1d5..896d2d85679576cf578765423436691adfee9122 100644 (file)
@@ -805,7 +805,7 @@ static irqreturn_t meye_irq(int irq, void *dev_id)
                                      mchip_hsize() * mchip_vsize() * 2);
                meye.grab_buffer[reqnr].size = mchip_hsize() * mchip_vsize() * 2;
                meye.grab_buffer[reqnr].state = MEYE_BUF_DONE;
-               v4l2_get_timestamp(&meye.grab_buffer[reqnr].timestamp);
+               meye.grab_buffer[reqnr].ts = ktime_get_ns();
                meye.grab_buffer[reqnr].sequence = sequence++;
                kfifo_in_locked(&meye.doneq, (unsigned char *)&reqnr,
                                sizeof(int), &meye.doneq_lock);
@@ -826,7 +826,7 @@ static irqreturn_t meye_irq(int irq, void *dev_id)
                       size);
                meye.grab_buffer[reqnr].size = size;
                meye.grab_buffer[reqnr].state = MEYE_BUF_DONE;
-               v4l2_get_timestamp(&meye.grab_buffer[reqnr].timestamp);
+               meye.grab_buffer[reqnr].ts = ktime_get_ns();
                meye.grab_buffer[reqnr].sequence = sequence++;
                kfifo_in_locked(&meye.doneq, (unsigned char *)&reqnr,
                                sizeof(int), &meye.doneq_lock);
@@ -1283,7 +1283,7 @@ static int vidioc_querybuf(struct file *file, void *fh, struct v4l2_buffer *buf)
                buf->flags |= V4L2_BUF_FLAG_DONE;
 
        buf->field = V4L2_FIELD_NONE;
-       buf->timestamp = meye.grab_buffer[index].timestamp;
+       buf->timestamp = ns_to_timeval(meye.grab_buffer[index].ts);
        buf->sequence = meye.grab_buffer[index].sequence;
        buf->memory = V4L2_MEMORY_MMAP;
        buf->m.offset = index * gbufsize;
@@ -1349,7 +1349,7 @@ static int vidioc_dqbuf(struct file *file, void *fh, struct v4l2_buffer *buf)
        buf->bytesused = meye.grab_buffer[reqnr].size;
        buf->flags = V4L2_BUF_FLAG_MAPPED | V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
        buf->field = V4L2_FIELD_NONE;
-       buf->timestamp = meye.grab_buffer[reqnr].timestamp;
+       buf->timestamp = ns_to_timeval(meye.grab_buffer[reqnr].ts);
        buf->sequence = meye.grab_buffer[reqnr].sequence;
        buf->memory = V4L2_MEMORY_MMAP;
        buf->m.offset = reqnr * gbufsize;
index c4a8a5fe040c5dba757baf73528b5ab411a7adff..0af868eb62105da731a95c82b63b179f7433d175 100644 (file)
 struct meye_grab_buffer {
        int state;                      /* state of buffer */
        unsigned long size;             /* size of jpg frame */
-       struct timeval timestamp;       /* timestamp */
+       u64 ts;                         /* timestamp */
        unsigned long sequence;         /* sequence number */
 };