|
@@ -403,7 +403,7 @@ static void __fill_v4l2_buffer(struct vb2_buffer *vb, struct v4l2_buffer *b)
|
|
|
* Clear any buffer state related flags.
|
|
|
*/
|
|
|
b->flags &= ~V4L2_BUFFER_MASK_FLAGS;
|
|
|
- b->flags |= V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
|
|
|
+ b->flags |= q->timestamp_type;
|
|
|
|
|
|
switch (vb->state) {
|
|
|
case VB2_BUF_STATE_QUEUED:
|
|
@@ -2039,9 +2039,13 @@ int vb2_queue_init(struct vb2_queue *q)
|
|
|
WARN_ON(!q->type) ||
|
|
|
WARN_ON(!q->io_modes) ||
|
|
|
WARN_ON(!q->ops->queue_setup) ||
|
|
|
- WARN_ON(!q->ops->buf_queue))
|
|
|
+ WARN_ON(!q->ops->buf_queue) ||
|
|
|
+ WARN_ON(q->timestamp_type & ~V4L2_BUF_FLAG_TIMESTAMP_MASK))
|
|
|
return -EINVAL;
|
|
|
|
|
|
+ /* Warn that the driver should choose an appropriate timestamp type */
|
|
|
+ WARN_ON(q->timestamp_type == V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN);
|
|
|
+
|
|
|
INIT_LIST_HEAD(&q->queued_list);
|
|
|
INIT_LIST_HEAD(&q->done_list);
|
|
|
spin_lock_init(&q->done_lock);
|