From: Hans Verkuil <[email protected]>

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 <[email protected]>
---
 drivers/staging/media/zoran/zoran.h        | 2 +-
 drivers/staging/media/zoran/zoran_device.c | 4 ++--
 drivers/staging/media/zoran/zoran_driver.c | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/media/zoran/zoran.h 
b/drivers/staging/media/zoran/zoran.h
index 9bb3c21aa275..e84fb604a689 100644
--- a/drivers/staging/media/zoran/zoran.h
+++ b/drivers/staging/media/zoran/zoran.h
@@ -35,7 +35,7 @@ struct zoran_sync {
        unsigned long frame;    /* number of buffer that has been free'd */
        unsigned long length;   /* number of code bytes in buffer (capture 
only) */
        unsigned long seq;      /* frame sequence number */
-       struct timeval timestamp;       /* timestamp */
+       u64 ts;                 /* timestamp */
 };
 
 
diff --git a/drivers/staging/media/zoran/zoran_device.c 
b/drivers/staging/media/zoran/zoran_device.c
index 40adceebca7e..d393e7b8aeda 100644
--- a/drivers/staging/media/zoran/zoran_device.c
+++ b/drivers/staging/media/zoran/zoran_device.c
@@ -1151,7 +1151,7 @@ zoran_reap_stat_com (struct zoran *zr)
                }
                frame = zr->jpg_pend[zr->jpg_dma_tail & BUZ_MASK_FRAME];
                buffer = &zr->jpg_buffers.buffer[frame];
-               v4l2_get_timestamp(&buffer->bs.timestamp);
+               buffer->bs.ts = ktime_get_ns();
 
                if (zr->codec_mode == BUZ_MODE_MOTION_COMPRESS) {
                        buffer->bs.length = (stat_com & 0x7fffff) >> 1;
@@ -1389,7 +1389,7 @@ zoran_irq (int             irq,
 
                                                
zr->v4l_buffers.buffer[zr->v4l_grab_frame].state = BUZ_STATE_DONE;
                                                
zr->v4l_buffers.buffer[zr->v4l_grab_frame].bs.seq = zr->v4l_grab_seq;
-                                               
v4l2_get_timestamp(&zr->v4l_buffers.buffer[zr->v4l_grab_frame].bs.timestamp);
+                                               
zr->v4l_buffers.buffer[zr->v4l_grab_frame].bs.ts = ktime_get_ns();
                                                zr->v4l_grab_frame = 
NO_GRAB_ACTIVE;
                                                zr->v4l_pend_tail++;
                                        }
diff --git a/drivers/staging/media/zoran/zoran_driver.c 
b/drivers/staging/media/zoran/zoran_driver.c
index 27c76e2eeb41..04f88f9d6bb4 100644
--- a/drivers/staging/media/zoran/zoran_driver.c
+++ b/drivers/staging/media/zoran/zoran_driver.c
@@ -1354,7 +1354,7 @@ static int zoran_v4l2_buffer_status(struct zoran_fh *fh,
                    fh->buffers.buffer[num].state == BUZ_STATE_USER) {
                        buf->sequence = fh->buffers.buffer[num].bs.seq;
                        buf->flags |= V4L2_BUF_FLAG_DONE;
-                       buf->timestamp = fh->buffers.buffer[num].bs.timestamp;
+                       buf->timestamp = 
ns_to_timeval(fh->buffers.buffer[num].bs.ts);
                } else {
                        buf->flags |= V4L2_BUF_FLAG_QUEUED;
                }
@@ -1388,7 +1388,7 @@ static int zoran_v4l2_buffer_status(struct zoran_fh *fh,
                if (fh->buffers.buffer[num].state == BUZ_STATE_DONE ||
                    fh->buffers.buffer[num].state == BUZ_STATE_USER) {
                        buf->sequence = fh->buffers.buffer[num].bs.seq;
-                       buf->timestamp = fh->buffers.buffer[num].bs.timestamp;
+                       buf->timestamp = 
ns_to_timeval(fh->buffers.buffer[num].bs.ts);
                        buf->bytesused = fh->buffers.buffer[num].bs.length;
                        buf->flags |= V4L2_BUF_FLAG_DONE;
                } else {
-- 
2.20.1

Reply via email to