git.samba.org
/
sfrench
/
cifs-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[media] media: videobuf2: Restructure vb2_buffer
[sfrench/cifs-2.6.git]
/
drivers
/
media
/
usb
/
uvc
/
uvc_video.c
diff --git
a/drivers/media/usb/uvc/uvc_video.c
b/drivers/media/usb/uvc/uvc_video.c
index f839654ea4369fa7645f579f7ab5b94189055611..2b276ab7764fc37ec0a2fc0cd5a31f8ac966a7d9 100644
(file)
--- a/
drivers/media/usb/uvc/uvc_video.c
+++ b/
drivers/media/usb/uvc/uvc_video.c
@@
-606,7
+606,7
@@
static u16 uvc_video_clock_host_sof(const struct uvc_clock_sample *sample)
* timestamp of the sliding window to 1s.
*/
void uvc_video_clock_update(struct uvc_streaming *stream,
* timestamp of the sliding window to 1s.
*/
void uvc_video_clock_update(struct uvc_streaming *stream,
- struct v
4l2_buffer *v4l2_
buf,
+ struct v
b2_v4l2_buffer *v
buf,
struct uvc_buffer *buf)
{
struct uvc_clock *clock = &stream->clock;
struct uvc_buffer *buf)
{
struct uvc_clock *clock = &stream->clock;
@@
-623,6
+623,9
@@
void uvc_video_clock_update(struct uvc_streaming *stream,
u32 rem;
u64 y;
u32 rem;
u64 y;
+ if (!uvc_hw_timestamps_param)
+ return;
+
spin_lock_irqsave(&clock->lock, flags);
if (clock->count < clock->size)
spin_lock_irqsave(&clock->lock, flags);
if (clock->count < clock->size)
@@
-696,14
+699,14
@@
void uvc_video_clock_update(struct uvc_streaming *stream,
stream->dev->name,
sof >> 16, div_u64(((u64)sof & 0xffff) * 1000000LLU, 65536),
y, ts.tv_sec, ts.tv_nsec / NSEC_PER_USEC,
stream->dev->name,
sof >> 16, div_u64(((u64)sof & 0xffff) * 1000000LLU, 65536),
y, ts.tv_sec, ts.tv_nsec / NSEC_PER_USEC,
- v
4l2_
buf->timestamp.tv_sec,
- (unsigned long)v
4l2_
buf->timestamp.tv_usec,
+ vbuf->timestamp.tv_sec,
+ (unsigned long)vbuf->timestamp.tv_usec,
x1, first->host_sof, first->dev_sof,
x2, last->host_sof, last->dev_sof, y1, y2);
/* Update the V4L2 buffer. */
x1, first->host_sof, first->dev_sof,
x2, last->host_sof, last->dev_sof, y1, y2);
/* Update the V4L2 buffer. */
- v
4l2_
buf->timestamp.tv_sec = ts.tv_sec;
- v
4l2_
buf->timestamp.tv_usec = ts.tv_nsec / NSEC_PER_USEC;
+ vbuf->timestamp.tv_sec = ts.tv_sec;
+ vbuf->timestamp.tv_usec = ts.tv_nsec / NSEC_PER_USEC;
done:
spin_unlock_irqrestore(&stream->clock.lock, flags);
done:
spin_unlock_irqrestore(&stream->clock.lock, flags);
@@
-1029,10
+1032,10
@@
static int uvc_video_decode_start(struct uvc_streaming *stream,
uvc_video_get_ts(&ts);
uvc_video_get_ts(&ts);
- buf->buf.
v4l2_buf.
field = V4L2_FIELD_NONE;
- buf->buf.
v4l2_buf.
sequence = stream->sequence;
- buf->buf.
v4l2_buf.
timestamp.tv_sec = ts.tv_sec;
- buf->buf.
v4l2_buf.
timestamp.tv_usec =
+ buf->buf.field = V4L2_FIELD_NONE;
+ buf->buf.sequence = stream->sequence;
+ buf->buf.timestamp.tv_sec = ts.tv_sec;
+ buf->buf.timestamp.tv_usec =
ts.tv_nsec / NSEC_PER_USEC;
/* TODO: Handle PTS and SCR. */
ts.tv_nsec / NSEC_PER_USEC;
/* TODO: Handle PTS and SCR. */
@@
-1305,7
+1308,7
@@
static void uvc_video_encode_bulk(struct urb *urb, struct uvc_streaming *stream,
if (buf->bytesused == stream->queue.buf_used) {
stream->queue.buf_used = 0;
buf->state = UVC_BUF_STATE_READY;
if (buf->bytesused == stream->queue.buf_used) {
stream->queue.buf_used = 0;
buf->state = UVC_BUF_STATE_READY;
- buf->buf.
v4l2_buf.
sequence = ++stream->sequence;
+ buf->buf.sequence = ++stream->sequence;
uvc_queue_next_buffer(&stream->queue, buf);
stream->last_fid ^= UVC_STREAM_FID;
}
uvc_queue_next_buffer(&stream->queue, buf);
stream->last_fid ^= UVC_STREAM_FID;
}