Lines Matching refs:q
52 #define CALL(q, f, arg...) \ argument
53 ((q->int_ops->f) ? q->int_ops->f(arg) : 0)
55 struct videobuf_buffer *videobuf_alloc_vb(struct videobuf_queue *q) in videobuf_alloc_vb() argument
59 BUG_ON(q->msize < sizeof(*vb)); in videobuf_alloc_vb()
61 if (!q->int_ops || !q->int_ops->alloc_vb) { in videobuf_alloc_vb()
66 vb = q->int_ops->alloc_vb(q->msize); in videobuf_alloc_vb()
76 static int is_state_active_or_queued(struct videobuf_queue *q, struct videobuf_buffer *vb) in is_state_active_or_queued() argument
81 spin_lock_irqsave(q->irqlock, flags); in is_state_active_or_queued()
83 spin_unlock_irqrestore(q->irqlock, flags); in is_state_active_or_queued()
87 int videobuf_waiton(struct videobuf_queue *q, struct videobuf_buffer *vb, in videobuf_waiton() argument
96 if (is_state_active_or_queued(q, vb)) in videobuf_waiton()
101 is_ext_locked = q->ext_lock && mutex_is_locked(q->ext_lock); in videobuf_waiton()
106 mutex_unlock(q->ext_lock); in videobuf_waiton()
108 ret = wait_event_interruptible(vb->done, is_state_active_or_queued(q, vb)); in videobuf_waiton()
110 wait_event(vb->done, is_state_active_or_queued(q, vb)); in videobuf_waiton()
113 mutex_lock(q->ext_lock); in videobuf_waiton()
119 int videobuf_iolock(struct videobuf_queue *q, struct videobuf_buffer *vb, in videobuf_iolock() argument
123 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in videobuf_iolock()
125 return CALL(q, iolock, q, vb, fbuf); in videobuf_iolock()
129 void *videobuf_queue_to_vaddr(struct videobuf_queue *q, in videobuf_queue_to_vaddr() argument
132 if (q->int_ops->vaddr) in videobuf_queue_to_vaddr()
133 return q->int_ops->vaddr(buf); in videobuf_queue_to_vaddr()
141 void videobuf_queue_core_init(struct videobuf_queue *q, in videobuf_queue_core_init() argument
152 BUG_ON(!q); in videobuf_queue_core_init()
153 memset(q, 0, sizeof(*q)); in videobuf_queue_core_init()
154 q->irqlock = irqlock; in videobuf_queue_core_init()
155 q->ext_lock = ext_lock; in videobuf_queue_core_init()
156 q->dev = dev; in videobuf_queue_core_init()
157 q->type = type; in videobuf_queue_core_init()
158 q->field = field; in videobuf_queue_core_init()
159 q->msize = msize; in videobuf_queue_core_init()
160 q->ops = ops; in videobuf_queue_core_init()
161 q->priv_data = priv; in videobuf_queue_core_init()
162 q->int_ops = int_ops; in videobuf_queue_core_init()
165 BUG_ON(!q->ops->buf_setup); in videobuf_queue_core_init()
166 BUG_ON(!q->ops->buf_prepare); in videobuf_queue_core_init()
167 BUG_ON(!q->ops->buf_queue); in videobuf_queue_core_init()
168 BUG_ON(!q->ops->buf_release); in videobuf_queue_core_init()
174 BUG_ON(!q->int_ops); in videobuf_queue_core_init()
176 mutex_init(&q->vb_lock); in videobuf_queue_core_init()
177 init_waitqueue_head(&q->wait); in videobuf_queue_core_init()
178 INIT_LIST_HEAD(&q->stream); in videobuf_queue_core_init()
183 int videobuf_queue_is_busy(struct videobuf_queue *q) in videobuf_queue_is_busy() argument
187 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in videobuf_queue_is_busy()
189 if (q->streaming) { in videobuf_queue_is_busy()
193 if (q->reading) { in videobuf_queue_is_busy()
197 if (q->read_buf) { in videobuf_queue_is_busy()
202 if (NULL == q->bufs[i]) in videobuf_queue_is_busy()
204 if (q->bufs[i]->map) { in videobuf_queue_is_busy()
208 if (q->bufs[i]->state == VIDEOBUF_QUEUED) { in videobuf_queue_is_busy()
212 if (q->bufs[i]->state == VIDEOBUF_ACTIVE) { in videobuf_queue_is_busy()
228 static int __videobuf_free(struct videobuf_queue *q) in __videobuf_free() argument
233 if (!q) in __videobuf_free()
236 if (q->streaming || q->reading) { in __videobuf_free()
241 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in __videobuf_free()
244 if (q->bufs[i] && q->bufs[i]->map) { in __videobuf_free()
250 if (NULL == q->bufs[i]) in __videobuf_free()
252 q->ops->buf_release(q, q->bufs[i]); in __videobuf_free()
253 kfree(q->bufs[i]); in __videobuf_free()
254 q->bufs[i] = NULL; in __videobuf_free()
261 void videobuf_queue_cancel(struct videobuf_queue *q) in videobuf_queue_cancel() argument
266 q->streaming = 0; in videobuf_queue_cancel()
267 q->reading = 0; in videobuf_queue_cancel()
268 wake_up_interruptible_sync(&q->wait); in videobuf_queue_cancel()
271 spin_lock_irqsave(q->irqlock, flags); in videobuf_queue_cancel()
273 if (NULL == q->bufs[i]) in videobuf_queue_cancel()
275 if (q->bufs[i]->state == VIDEOBUF_QUEUED) { in videobuf_queue_cancel()
276 list_del(&q->bufs[i]->queue); in videobuf_queue_cancel()
277 q->bufs[i]->state = VIDEOBUF_ERROR; in videobuf_queue_cancel()
278 wake_up_all(&q->bufs[i]->done); in videobuf_queue_cancel()
281 spin_unlock_irqrestore(q->irqlock, flags); in videobuf_queue_cancel()
285 if (NULL == q->bufs[i]) in videobuf_queue_cancel()
287 q->ops->buf_release(q, q->bufs[i]); in videobuf_queue_cancel()
289 INIT_LIST_HEAD(&q->stream); in videobuf_queue_cancel()
296 enum v4l2_field videobuf_next_field(struct videobuf_queue *q) in videobuf_next_field() argument
298 enum v4l2_field field = q->field; in videobuf_next_field()
303 if (V4L2_FIELD_TOP == q->last) { in videobuf_next_field()
305 q->last = V4L2_FIELD_BOTTOM; in videobuf_next_field()
308 q->last = V4L2_FIELD_TOP; in videobuf_next_field()
316 static void videobuf_status(struct videobuf_queue *q, struct v4l2_buffer *b, in videobuf_status() argument
320 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in videobuf_status()
371 int videobuf_mmap_free(struct videobuf_queue *q) in videobuf_mmap_free() argument
374 videobuf_queue_lock(q); in videobuf_mmap_free()
375 ret = __videobuf_free(q); in videobuf_mmap_free()
376 videobuf_queue_unlock(q); in videobuf_mmap_free()
382 int __videobuf_mmap_setup(struct videobuf_queue *q, in __videobuf_mmap_setup() argument
389 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in __videobuf_mmap_setup()
391 err = __videobuf_free(q); in __videobuf_mmap_setup()
397 q->bufs[i] = videobuf_alloc_vb(q); in __videobuf_mmap_setup()
399 if (NULL == q->bufs[i]) in __videobuf_mmap_setup()
402 q->bufs[i]->i = i; in __videobuf_mmap_setup()
403 q->bufs[i]->memory = memory; in __videobuf_mmap_setup()
404 q->bufs[i]->bsize = bsize; in __videobuf_mmap_setup()
407 q->bufs[i]->boff = PAGE_ALIGN(bsize) * i; in __videobuf_mmap_setup()
426 int videobuf_mmap_setup(struct videobuf_queue *q, in videobuf_mmap_setup() argument
431 videobuf_queue_lock(q); in videobuf_mmap_setup()
432 ret = __videobuf_mmap_setup(q, bcount, bsize, memory); in videobuf_mmap_setup()
433 videobuf_queue_unlock(q); in videobuf_mmap_setup()
438 int videobuf_reqbufs(struct videobuf_queue *q, in videobuf_reqbufs() argument
456 videobuf_queue_lock(q); in videobuf_reqbufs()
457 if (req->type != q->type) { in videobuf_reqbufs()
463 if (q->streaming) { in videobuf_reqbufs()
468 if (!list_empty(&q->stream)) { in videobuf_reqbufs()
478 q->ops->buf_setup(q, &count, &size); in videobuf_reqbufs()
483 retval = __videobuf_mmap_setup(q, count, size, req->memory); in videobuf_reqbufs()
493 videobuf_queue_unlock(q); in videobuf_reqbufs()
498 int videobuf_querybuf(struct videobuf_queue *q, struct v4l2_buffer *b) in videobuf_querybuf() argument
502 videobuf_queue_lock(q); in videobuf_querybuf()
503 if (unlikely(b->type != q->type)) { in videobuf_querybuf()
511 if (unlikely(NULL == q->bufs[b->index])) { in videobuf_querybuf()
516 videobuf_status(q, b, q->bufs[b->index], q->type); in videobuf_querybuf()
520 videobuf_queue_unlock(q); in videobuf_querybuf()
525 int videobuf_qbuf(struct videobuf_queue *q, struct v4l2_buffer *b) in videobuf_qbuf() argument
532 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in videobuf_qbuf()
537 videobuf_queue_lock(q); in videobuf_qbuf()
539 if (q->reading) { in videobuf_qbuf()
544 if (b->type != q->type) { in videobuf_qbuf()
552 buf = q->bufs[b->index]; in videobuf_qbuf()
574 if (q->type == V4L2_BUF_TYPE_VIDEO_OUTPUT in videobuf_qbuf()
575 || q->type == V4L2_BUF_TYPE_VBI_OUTPUT in videobuf_qbuf()
576 || q->type == V4L2_BUF_TYPE_SLICED_VBI_OUTPUT) { in videobuf_qbuf()
589 q->ops->buf_release(q, buf); in videobuf_qbuf()
601 field = videobuf_next_field(q); in videobuf_qbuf()
602 retval = q->ops->buf_prepare(q, buf, field); in videobuf_qbuf()
608 list_add_tail(&buf->stream, &q->stream); in videobuf_qbuf()
609 if (q->streaming) { in videobuf_qbuf()
610 spin_lock_irqsave(q->irqlock, flags); in videobuf_qbuf()
611 q->ops->buf_queue(q, buf); in videobuf_qbuf()
612 spin_unlock_irqrestore(q->irqlock, flags); in videobuf_qbuf()
616 wake_up_interruptible_sync(&q->wait); in videobuf_qbuf()
619 videobuf_queue_unlock(q); in videobuf_qbuf()
629 static int stream_next_buffer_check_queue(struct videobuf_queue *q, int noblock) in stream_next_buffer_check_queue() argument
634 if (!q->streaming) { in stream_next_buffer_check_queue()
640 if (list_empty(&q->stream)) { in stream_next_buffer_check_queue()
649 videobuf_queue_unlock(q); in stream_next_buffer_check_queue()
654 retval = wait_event_interruptible(q->wait, in stream_next_buffer_check_queue()
655 !list_empty(&q->stream) || !q->streaming); in stream_next_buffer_check_queue()
656 videobuf_queue_lock(q); in stream_next_buffer_check_queue()
672 static int stream_next_buffer(struct videobuf_queue *q, in stream_next_buffer() argument
678 retval = stream_next_buffer_check_queue(q, nonblocking); in stream_next_buffer()
682 buf = list_entry(q->stream.next, struct videobuf_buffer, stream); in stream_next_buffer()
683 retval = videobuf_waiton(q, buf, nonblocking, 1); in stream_next_buffer()
692 int videobuf_dqbuf(struct videobuf_queue *q, in videobuf_dqbuf() argument
698 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in videobuf_dqbuf()
701 videobuf_queue_lock(q); in videobuf_dqbuf()
703 retval = stream_next_buffer(q, &buf, nonblocking); in videobuf_dqbuf()
721 CALL(q, sync, q, buf); in videobuf_dqbuf()
722 videobuf_status(q, b, buf, q->type); in videobuf_dqbuf()
727 videobuf_queue_unlock(q); in videobuf_dqbuf()
732 int videobuf_streamon(struct videobuf_queue *q) in videobuf_streamon() argument
738 videobuf_queue_lock(q); in videobuf_streamon()
740 if (q->reading) in videobuf_streamon()
743 if (q->streaming) in videobuf_streamon()
745 q->streaming = 1; in videobuf_streamon()
746 spin_lock_irqsave(q->irqlock, flags); in videobuf_streamon()
747 list_for_each_entry(buf, &q->stream, stream) in videobuf_streamon()
749 q->ops->buf_queue(q, buf); in videobuf_streamon()
750 spin_unlock_irqrestore(q->irqlock, flags); in videobuf_streamon()
752 wake_up_interruptible_sync(&q->wait); in videobuf_streamon()
754 videobuf_queue_unlock(q); in videobuf_streamon()
760 static int __videobuf_streamoff(struct videobuf_queue *q) in __videobuf_streamoff() argument
762 if (!q->streaming) in __videobuf_streamoff()
765 videobuf_queue_cancel(q); in __videobuf_streamoff()
770 int videobuf_streamoff(struct videobuf_queue *q) in videobuf_streamoff() argument
774 videobuf_queue_lock(q); in videobuf_streamoff()
775 retval = __videobuf_streamoff(q); in videobuf_streamoff()
776 videobuf_queue_unlock(q); in videobuf_streamoff()
783 static ssize_t videobuf_read_zerocopy(struct videobuf_queue *q, in videobuf_read_zerocopy() argument
791 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in videobuf_read_zerocopy()
794 q->read_buf = videobuf_alloc_vb(q); in videobuf_read_zerocopy()
795 if (NULL == q->read_buf) in videobuf_read_zerocopy()
798 q->read_buf->memory = V4L2_MEMORY_USERPTR; in videobuf_read_zerocopy()
799 q->read_buf->baddr = (unsigned long)data; in videobuf_read_zerocopy()
800 q->read_buf->bsize = count; in videobuf_read_zerocopy()
802 field = videobuf_next_field(q); in videobuf_read_zerocopy()
803 retval = q->ops->buf_prepare(q, q->read_buf, field); in videobuf_read_zerocopy()
808 spin_lock_irqsave(q->irqlock, flags); in videobuf_read_zerocopy()
809 q->ops->buf_queue(q, q->read_buf); in videobuf_read_zerocopy()
810 spin_unlock_irqrestore(q->irqlock, flags); in videobuf_read_zerocopy()
811 retval = videobuf_waiton(q, q->read_buf, 0, 0); in videobuf_read_zerocopy()
813 CALL(q, sync, q, q->read_buf); in videobuf_read_zerocopy()
814 if (VIDEOBUF_ERROR == q->read_buf->state) in videobuf_read_zerocopy()
817 retval = q->read_buf->size; in videobuf_read_zerocopy()
822 q->ops->buf_release(q, q->read_buf); in videobuf_read_zerocopy()
823 kfree(q->read_buf); in videobuf_read_zerocopy()
824 q->read_buf = NULL; in videobuf_read_zerocopy()
828 static int __videobuf_copy_to_user(struct videobuf_queue *q, in __videobuf_copy_to_user() argument
833 void *vaddr = CALL(q, vaddr, buf); in __videobuf_copy_to_user()
836 if (count > buf->size - q->read_off) in __videobuf_copy_to_user()
837 count = buf->size - q->read_off; in __videobuf_copy_to_user()
839 if (copy_to_user(data, vaddr + q->read_off, count)) in __videobuf_copy_to_user()
845 static int __videobuf_copy_stream(struct videobuf_queue *q, in __videobuf_copy_stream() argument
850 unsigned int *fc = CALL(q, vaddr, buf); in __videobuf_copy_stream()
863 count = __videobuf_copy_to_user(q, buf, data, count, nonblocking); in __videobuf_copy_stream()
871 ssize_t videobuf_read_one(struct videobuf_queue *q, in videobuf_read_one() argument
880 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in videobuf_read_one()
882 videobuf_queue_lock(q); in videobuf_read_one()
884 q->ops->buf_setup(q, &nbufs, &size); in videobuf_read_one()
886 if (NULL == q->read_buf && in videobuf_read_one()
889 retval = videobuf_read_zerocopy(q, data, count, ppos); in videobuf_read_one()
896 if (NULL == q->read_buf) { in videobuf_read_one()
899 q->read_buf = videobuf_alloc_vb(q); in videobuf_read_one()
901 dprintk(1, "video alloc=0x%p\n", q->read_buf); in videobuf_read_one()
902 if (NULL == q->read_buf) in videobuf_read_one()
904 q->read_buf->memory = V4L2_MEMORY_USERPTR; in videobuf_read_one()
905 q->read_buf->bsize = count; /* preferred size */ in videobuf_read_one()
906 field = videobuf_next_field(q); in videobuf_read_one()
907 retval = q->ops->buf_prepare(q, q->read_buf, field); in videobuf_read_one()
910 kfree(q->read_buf); in videobuf_read_one()
911 q->read_buf = NULL; in videobuf_read_one()
915 spin_lock_irqsave(q->irqlock, flags); in videobuf_read_one()
916 q->ops->buf_queue(q, q->read_buf); in videobuf_read_one()
917 spin_unlock_irqrestore(q->irqlock, flags); in videobuf_read_one()
919 q->read_off = 0; in videobuf_read_one()
923 retval = videobuf_waiton(q, q->read_buf, nonblocking, 1); in videobuf_read_one()
927 CALL(q, sync, q, q->read_buf); in videobuf_read_one()
929 if (VIDEOBUF_ERROR == q->read_buf->state) { in videobuf_read_one()
931 q->ops->buf_release(q, q->read_buf); in videobuf_read_one()
932 kfree(q->read_buf); in videobuf_read_one()
933 q->read_buf = NULL; in videobuf_read_one()
939 retval = __videobuf_copy_to_user(q, q->read_buf, data, count, nonblocking); in videobuf_read_one()
943 q->read_off += retval; in videobuf_read_one()
944 if (q->read_off == q->read_buf->size) { in videobuf_read_one()
946 q->ops->buf_release(q, q->read_buf); in videobuf_read_one()
947 kfree(q->read_buf); in videobuf_read_one()
948 q->read_buf = NULL; in videobuf_read_one()
952 videobuf_queue_unlock(q); in videobuf_read_one()
958 static int __videobuf_read_start(struct videobuf_queue *q) in __videobuf_read_start() argument
965 q->ops->buf_setup(q, &count, &size); in __videobuf_read_start()
972 err = __videobuf_mmap_setup(q, count, size, V4L2_MEMORY_USERPTR); in __videobuf_read_start()
979 field = videobuf_next_field(q); in __videobuf_read_start()
980 err = q->ops->buf_prepare(q, q->bufs[i], field); in __videobuf_read_start()
983 list_add_tail(&q->bufs[i]->stream, &q->stream); in __videobuf_read_start()
985 spin_lock_irqsave(q->irqlock, flags); in __videobuf_read_start()
987 q->ops->buf_queue(q, q->bufs[i]); in __videobuf_read_start()
988 spin_unlock_irqrestore(q->irqlock, flags); in __videobuf_read_start()
989 q->reading = 1; in __videobuf_read_start()
993 static void __videobuf_read_stop(struct videobuf_queue *q) in __videobuf_read_stop() argument
997 videobuf_queue_cancel(q); in __videobuf_read_stop()
998 __videobuf_free(q); in __videobuf_read_stop()
999 INIT_LIST_HEAD(&q->stream); in __videobuf_read_stop()
1001 if (NULL == q->bufs[i]) in __videobuf_read_stop()
1003 kfree(q->bufs[i]); in __videobuf_read_stop()
1004 q->bufs[i] = NULL; in __videobuf_read_stop()
1006 q->read_buf = NULL; in __videobuf_read_stop()
1009 int videobuf_read_start(struct videobuf_queue *q) in videobuf_read_start() argument
1013 videobuf_queue_lock(q); in videobuf_read_start()
1014 rc = __videobuf_read_start(q); in videobuf_read_start()
1015 videobuf_queue_unlock(q); in videobuf_read_start()
1021 void videobuf_read_stop(struct videobuf_queue *q) in videobuf_read_stop() argument
1023 videobuf_queue_lock(q); in videobuf_read_stop()
1024 __videobuf_read_stop(q); in videobuf_read_stop()
1025 videobuf_queue_unlock(q); in videobuf_read_stop()
1029 void videobuf_stop(struct videobuf_queue *q) in videobuf_stop() argument
1031 videobuf_queue_lock(q); in videobuf_stop()
1033 if (q->streaming) in videobuf_stop()
1034 __videobuf_streamoff(q); in videobuf_stop()
1036 if (q->reading) in videobuf_stop()
1037 __videobuf_read_stop(q); in videobuf_stop()
1039 videobuf_queue_unlock(q); in videobuf_stop()
1043 ssize_t videobuf_read_stream(struct videobuf_queue *q, in videobuf_read_stream() argument
1050 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in videobuf_read_stream()
1053 videobuf_queue_lock(q); in videobuf_read_stream()
1055 if (q->streaming) in videobuf_read_stream()
1057 if (!q->reading) { in videobuf_read_stream()
1058 retval = __videobuf_read_start(q); in videobuf_read_stream()
1066 if (NULL == q->read_buf) { in videobuf_read_stream()
1067 q->read_buf = list_entry(q->stream.next, in videobuf_read_stream()
1070 list_del(&q->read_buf->stream); in videobuf_read_stream()
1071 q->read_off = 0; in videobuf_read_stream()
1073 rc = videobuf_waiton(q, q->read_buf, nonblocking, 1); in videobuf_read_stream()
1080 if (q->read_buf->state == VIDEOBUF_DONE) { in videobuf_read_stream()
1081 rc = __videobuf_copy_stream(q, q->read_buf, data + retval, count, in videobuf_read_stream()
1089 q->read_off += rc; in videobuf_read_stream()
1092 q->read_off = q->read_buf->size; in videobuf_read_stream()
1098 if (q->read_off == q->read_buf->size) { in videobuf_read_stream()
1099 list_add_tail(&q->read_buf->stream, in videobuf_read_stream()
1100 &q->stream); in videobuf_read_stream()
1101 spin_lock_irqsave(q->irqlock, flags); in videobuf_read_stream()
1102 q->ops->buf_queue(q, q->read_buf); in videobuf_read_stream()
1103 spin_unlock_irqrestore(q->irqlock, flags); in videobuf_read_stream()
1104 q->read_buf = NULL; in videobuf_read_stream()
1111 videobuf_queue_unlock(q); in videobuf_read_stream()
1117 struct videobuf_queue *q, in videobuf_poll_stream() argument
1124 videobuf_queue_lock(q); in videobuf_poll_stream()
1125 if (q->streaming) { in videobuf_poll_stream()
1126 if (!list_empty(&q->stream)) in videobuf_poll_stream()
1127 buf = list_entry(q->stream.next, in videobuf_poll_stream()
1130 if (!q->reading) in videobuf_poll_stream()
1131 __videobuf_read_start(q); in videobuf_poll_stream()
1132 if (!q->reading) { in videobuf_poll_stream()
1134 } else if (NULL == q->read_buf) { in videobuf_poll_stream()
1135 q->read_buf = list_entry(q->stream.next, in videobuf_poll_stream()
1138 list_del(&q->read_buf->stream); in videobuf_poll_stream()
1139 q->read_off = 0; in videobuf_poll_stream()
1141 buf = q->read_buf; in videobuf_poll_stream()
1150 switch (q->type) { in videobuf_poll_stream()
1162 videobuf_queue_unlock(q); in videobuf_poll_stream()
1167 int videobuf_mmap_mapper(struct videobuf_queue *q, struct vm_area_struct *vma) in videobuf_mmap_mapper() argument
1172 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in videobuf_mmap_mapper()
1179 videobuf_queue_lock(q); in videobuf_mmap_mapper()
1181 struct videobuf_buffer *buf = q->bufs[i]; in videobuf_mmap_mapper()
1185 rc = CALL(q, mmap_mapper, q, buf, vma); in videobuf_mmap_mapper()
1189 videobuf_queue_unlock(q); in videobuf_mmap_mapper()