Lines Matching refs:q
52 #define CALL(q, f, arg...) \ argument
53 ((q->int_ops->f) ? q->int_ops->f(arg) : 0)
54 #define CALLPTR(q, f, arg...) \ argument
55 ((q->int_ops->f) ? q->int_ops->f(arg) : NULL)
57 struct videobuf_buffer *videobuf_alloc_vb(struct videobuf_queue *q) in videobuf_alloc_vb() argument
61 BUG_ON(q->msize < sizeof(*vb)); in videobuf_alloc_vb()
63 if (!q->int_ops || !q->int_ops->alloc_vb) { in videobuf_alloc_vb()
68 vb = q->int_ops->alloc_vb(q->msize); in videobuf_alloc_vb()
78 static int state_neither_active_nor_queued(struct videobuf_queue *q, in state_neither_active_nor_queued() argument
84 spin_lock_irqsave(q->irqlock, flags); in state_neither_active_nor_queued()
86 spin_unlock_irqrestore(q->irqlock, flags); in state_neither_active_nor_queued()
90 int videobuf_waiton(struct videobuf_queue *q, struct videobuf_buffer *vb, in videobuf_waiton() argument
99 if (state_neither_active_nor_queued(q, vb)) in videobuf_waiton()
104 is_ext_locked = q->ext_lock && mutex_is_locked(q->ext_lock); in videobuf_waiton()
109 mutex_unlock(q->ext_lock); in videobuf_waiton()
112 state_neither_active_nor_queued(q, vb)); in videobuf_waiton()
114 wait_event(vb->done, state_neither_active_nor_queued(q, vb)); in videobuf_waiton()
117 mutex_lock(q->ext_lock); in videobuf_waiton()
123 int videobuf_iolock(struct videobuf_queue *q, struct videobuf_buffer *vb, in videobuf_iolock() argument
127 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in videobuf_iolock()
129 return CALL(q, iolock, q, vb, fbuf); in videobuf_iolock()
133 void *videobuf_queue_to_vaddr(struct videobuf_queue *q, in videobuf_queue_to_vaddr() argument
136 if (q->int_ops->vaddr) in videobuf_queue_to_vaddr()
137 return q->int_ops->vaddr(buf); in videobuf_queue_to_vaddr()
145 void videobuf_queue_core_init(struct videobuf_queue *q, in videobuf_queue_core_init() argument
156 BUG_ON(!q); in videobuf_queue_core_init()
157 memset(q, 0, sizeof(*q)); in videobuf_queue_core_init()
158 q->irqlock = irqlock; in videobuf_queue_core_init()
159 q->ext_lock = ext_lock; in videobuf_queue_core_init()
160 q->dev = dev; in videobuf_queue_core_init()
161 q->type = type; in videobuf_queue_core_init()
162 q->field = field; in videobuf_queue_core_init()
163 q->msize = msize; in videobuf_queue_core_init()
164 q->ops = ops; in videobuf_queue_core_init()
165 q->priv_data = priv; in videobuf_queue_core_init()
166 q->int_ops = int_ops; in videobuf_queue_core_init()
169 BUG_ON(!q->ops->buf_setup); in videobuf_queue_core_init()
170 BUG_ON(!q->ops->buf_prepare); in videobuf_queue_core_init()
171 BUG_ON(!q->ops->buf_queue); in videobuf_queue_core_init()
172 BUG_ON(!q->ops->buf_release); in videobuf_queue_core_init()
178 BUG_ON(!q->int_ops); in videobuf_queue_core_init()
180 mutex_init(&q->vb_lock); in videobuf_queue_core_init()
181 init_waitqueue_head(&q->wait); in videobuf_queue_core_init()
182 INIT_LIST_HEAD(&q->stream); in videobuf_queue_core_init()
187 int videobuf_queue_is_busy(struct videobuf_queue *q) in videobuf_queue_is_busy() argument
191 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in videobuf_queue_is_busy()
193 if (q->streaming) { in videobuf_queue_is_busy()
197 if (q->reading) { in videobuf_queue_is_busy()
201 if (q->read_buf) { in videobuf_queue_is_busy()
206 if (NULL == q->bufs[i]) in videobuf_queue_is_busy()
208 if (q->bufs[i]->map) { in videobuf_queue_is_busy()
212 if (q->bufs[i]->state == VIDEOBUF_QUEUED) { in videobuf_queue_is_busy()
216 if (q->bufs[i]->state == VIDEOBUF_ACTIVE) { in videobuf_queue_is_busy()
232 static int __videobuf_free(struct videobuf_queue *q) in __videobuf_free() argument
237 if (!q) in __videobuf_free()
240 if (q->streaming || q->reading) { in __videobuf_free()
245 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in __videobuf_free()
248 if (q->bufs[i] && q->bufs[i]->map) { in __videobuf_free()
254 if (NULL == q->bufs[i]) in __videobuf_free()
256 q->ops->buf_release(q, q->bufs[i]); in __videobuf_free()
257 kfree(q->bufs[i]); in __videobuf_free()
258 q->bufs[i] = NULL; in __videobuf_free()
265 void videobuf_queue_cancel(struct videobuf_queue *q) in videobuf_queue_cancel() argument
270 q->streaming = 0; in videobuf_queue_cancel()
271 q->reading = 0; in videobuf_queue_cancel()
272 wake_up_interruptible_sync(&q->wait); in videobuf_queue_cancel()
275 spin_lock_irqsave(q->irqlock, flags); in videobuf_queue_cancel()
277 if (NULL == q->bufs[i]) in videobuf_queue_cancel()
279 if (q->bufs[i]->state == VIDEOBUF_QUEUED) { in videobuf_queue_cancel()
280 list_del(&q->bufs[i]->queue); in videobuf_queue_cancel()
281 q->bufs[i]->state = VIDEOBUF_ERROR; in videobuf_queue_cancel()
282 wake_up_all(&q->bufs[i]->done); in videobuf_queue_cancel()
285 spin_unlock_irqrestore(q->irqlock, flags); in videobuf_queue_cancel()
289 if (NULL == q->bufs[i]) in videobuf_queue_cancel()
291 q->ops->buf_release(q, q->bufs[i]); in videobuf_queue_cancel()
293 INIT_LIST_HEAD(&q->stream); in videobuf_queue_cancel()
300 enum v4l2_field videobuf_next_field(struct videobuf_queue *q) in videobuf_next_field() argument
302 enum v4l2_field field = q->field; in videobuf_next_field()
307 if (V4L2_FIELD_TOP == q->last) { in videobuf_next_field()
309 q->last = V4L2_FIELD_BOTTOM; in videobuf_next_field()
312 q->last = V4L2_FIELD_TOP; in videobuf_next_field()
320 static void videobuf_status(struct videobuf_queue *q, struct v4l2_buffer *b, in videobuf_status() argument
324 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in videobuf_status()
375 int videobuf_mmap_free(struct videobuf_queue *q) in videobuf_mmap_free() argument
378 videobuf_queue_lock(q); in videobuf_mmap_free()
379 ret = __videobuf_free(q); in videobuf_mmap_free()
380 videobuf_queue_unlock(q); in videobuf_mmap_free()
386 int __videobuf_mmap_setup(struct videobuf_queue *q, in __videobuf_mmap_setup() argument
393 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in __videobuf_mmap_setup()
395 err = __videobuf_free(q); in __videobuf_mmap_setup()
401 q->bufs[i] = videobuf_alloc_vb(q); in __videobuf_mmap_setup()
403 if (NULL == q->bufs[i]) in __videobuf_mmap_setup()
406 q->bufs[i]->i = i; in __videobuf_mmap_setup()
407 q->bufs[i]->memory = memory; in __videobuf_mmap_setup()
408 q->bufs[i]->bsize = bsize; in __videobuf_mmap_setup()
411 q->bufs[i]->boff = PAGE_ALIGN(bsize) * i; in __videobuf_mmap_setup()
430 int videobuf_mmap_setup(struct videobuf_queue *q, in videobuf_mmap_setup() argument
435 videobuf_queue_lock(q); in videobuf_mmap_setup()
436 ret = __videobuf_mmap_setup(q, bcount, bsize, memory); in videobuf_mmap_setup()
437 videobuf_queue_unlock(q); in videobuf_mmap_setup()
442 int videobuf_reqbufs(struct videobuf_queue *q, in videobuf_reqbufs() argument
455 videobuf_queue_lock(q); in videobuf_reqbufs()
456 if (req->type != q->type) { in videobuf_reqbufs()
462 if (q->streaming) { in videobuf_reqbufs()
467 if (!list_empty(&q->stream)) { in videobuf_reqbufs()
475 retval = __videobuf_free(q); in videobuf_reqbufs()
483 q->ops->buf_setup(q, &count, &size); in videobuf_reqbufs()
488 retval = __videobuf_mmap_setup(q, count, size, req->memory); in videobuf_reqbufs()
498 videobuf_queue_unlock(q); in videobuf_reqbufs()
503 int videobuf_querybuf(struct videobuf_queue *q, struct v4l2_buffer *b) in videobuf_querybuf() argument
507 videobuf_queue_lock(q); in videobuf_querybuf()
508 if (unlikely(b->type != q->type)) { in videobuf_querybuf()
516 if (unlikely(NULL == q->bufs[b->index])) { in videobuf_querybuf()
521 videobuf_status(q, b, q->bufs[b->index], q->type); in videobuf_querybuf()
525 videobuf_queue_unlock(q); in videobuf_querybuf()
530 int videobuf_qbuf(struct videobuf_queue *q, struct v4l2_buffer *b) in videobuf_qbuf() argument
537 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in videobuf_qbuf()
542 videobuf_queue_lock(q); in videobuf_qbuf()
544 if (q->reading) { in videobuf_qbuf()
549 if (b->type != q->type) { in videobuf_qbuf()
557 buf = q->bufs[b->index]; in videobuf_qbuf()
578 if (q->type == V4L2_BUF_TYPE_VIDEO_OUTPUT in videobuf_qbuf()
579 || q->type == V4L2_BUF_TYPE_VBI_OUTPUT in videobuf_qbuf()
580 || q->type == V4L2_BUF_TYPE_SLICED_VBI_OUTPUT in videobuf_qbuf()
581 || q->type == V4L2_BUF_TYPE_SDR_OUTPUT) { in videobuf_qbuf()
594 q->ops->buf_release(q, buf); in videobuf_qbuf()
606 field = videobuf_next_field(q); in videobuf_qbuf()
607 retval = q->ops->buf_prepare(q, buf, field); in videobuf_qbuf()
613 list_add_tail(&buf->stream, &q->stream); in videobuf_qbuf()
614 if (q->streaming) { in videobuf_qbuf()
615 spin_lock_irqsave(q->irqlock, flags); in videobuf_qbuf()
616 q->ops->buf_queue(q, buf); in videobuf_qbuf()
617 spin_unlock_irqrestore(q->irqlock, flags); in videobuf_qbuf()
621 wake_up_interruptible_sync(&q->wait); in videobuf_qbuf()
624 videobuf_queue_unlock(q); in videobuf_qbuf()
634 static int stream_next_buffer_check_queue(struct videobuf_queue *q, int noblock) in stream_next_buffer_check_queue() argument
639 if (!q->streaming) { in stream_next_buffer_check_queue()
645 if (list_empty(&q->stream)) { in stream_next_buffer_check_queue()
654 videobuf_queue_unlock(q); in stream_next_buffer_check_queue()
659 retval = wait_event_interruptible(q->wait, in stream_next_buffer_check_queue()
660 !list_empty(&q->stream) || !q->streaming); in stream_next_buffer_check_queue()
661 videobuf_queue_lock(q); in stream_next_buffer_check_queue()
677 static int stream_next_buffer(struct videobuf_queue *q, in stream_next_buffer() argument
683 retval = stream_next_buffer_check_queue(q, nonblocking); in stream_next_buffer()
687 buf = list_entry(q->stream.next, struct videobuf_buffer, stream); in stream_next_buffer()
688 retval = videobuf_waiton(q, buf, nonblocking, 1); in stream_next_buffer()
697 int videobuf_dqbuf(struct videobuf_queue *q, in videobuf_dqbuf() argument
703 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in videobuf_dqbuf()
706 videobuf_queue_lock(q); in videobuf_dqbuf()
708 retval = stream_next_buffer(q, &buf, nonblocking); in videobuf_dqbuf()
726 CALL(q, sync, q, buf); in videobuf_dqbuf()
727 videobuf_status(q, b, buf, q->type); in videobuf_dqbuf()
732 videobuf_queue_unlock(q); in videobuf_dqbuf()
737 int videobuf_streamon(struct videobuf_queue *q) in videobuf_streamon() argument
743 videobuf_queue_lock(q); in videobuf_streamon()
745 if (q->reading) in videobuf_streamon()
748 if (q->streaming) in videobuf_streamon()
750 q->streaming = 1; in videobuf_streamon()
751 spin_lock_irqsave(q->irqlock, flags); in videobuf_streamon()
752 list_for_each_entry(buf, &q->stream, stream) in videobuf_streamon()
754 q->ops->buf_queue(q, buf); in videobuf_streamon()
755 spin_unlock_irqrestore(q->irqlock, flags); in videobuf_streamon()
757 wake_up_interruptible_sync(&q->wait); in videobuf_streamon()
759 videobuf_queue_unlock(q); in videobuf_streamon()
765 static int __videobuf_streamoff(struct videobuf_queue *q) in __videobuf_streamoff() argument
767 if (!q->streaming) in __videobuf_streamoff()
770 videobuf_queue_cancel(q); in __videobuf_streamoff()
775 int videobuf_streamoff(struct videobuf_queue *q) in videobuf_streamoff() argument
779 videobuf_queue_lock(q); in videobuf_streamoff()
780 retval = __videobuf_streamoff(q); in videobuf_streamoff()
781 videobuf_queue_unlock(q); in videobuf_streamoff()
788 static ssize_t videobuf_read_zerocopy(struct videobuf_queue *q, in videobuf_read_zerocopy() argument
796 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in videobuf_read_zerocopy()
799 q->read_buf = videobuf_alloc_vb(q); in videobuf_read_zerocopy()
800 if (NULL == q->read_buf) in videobuf_read_zerocopy()
803 q->read_buf->memory = V4L2_MEMORY_USERPTR; in videobuf_read_zerocopy()
804 q->read_buf->baddr = (unsigned long)data; in videobuf_read_zerocopy()
805 q->read_buf->bsize = count; in videobuf_read_zerocopy()
807 field = videobuf_next_field(q); in videobuf_read_zerocopy()
808 retval = q->ops->buf_prepare(q, q->read_buf, field); in videobuf_read_zerocopy()
813 spin_lock_irqsave(q->irqlock, flags); in videobuf_read_zerocopy()
814 q->ops->buf_queue(q, q->read_buf); in videobuf_read_zerocopy()
815 spin_unlock_irqrestore(q->irqlock, flags); in videobuf_read_zerocopy()
816 retval = videobuf_waiton(q, q->read_buf, 0, 0); in videobuf_read_zerocopy()
818 CALL(q, sync, q, q->read_buf); in videobuf_read_zerocopy()
819 if (VIDEOBUF_ERROR == q->read_buf->state) in videobuf_read_zerocopy()
822 retval = q->read_buf->size; in videobuf_read_zerocopy()
827 q->ops->buf_release(q, q->read_buf); in videobuf_read_zerocopy()
828 kfree(q->read_buf); in videobuf_read_zerocopy()
829 q->read_buf = NULL; in videobuf_read_zerocopy()
833 static int __videobuf_copy_to_user(struct videobuf_queue *q, in __videobuf_copy_to_user() argument
838 void *vaddr = CALLPTR(q, vaddr, buf); in __videobuf_copy_to_user()
841 if (count > buf->size - q->read_off) in __videobuf_copy_to_user()
842 count = buf->size - q->read_off; in __videobuf_copy_to_user()
844 if (copy_to_user(data, vaddr + q->read_off, count)) in __videobuf_copy_to_user()
850 static int __videobuf_copy_stream(struct videobuf_queue *q, in __videobuf_copy_stream() argument
855 unsigned int *fc = CALLPTR(q, vaddr, buf); in __videobuf_copy_stream()
868 count = __videobuf_copy_to_user(q, buf, data, count, nonblocking); in __videobuf_copy_stream()
876 ssize_t videobuf_read_one(struct videobuf_queue *q, in videobuf_read_one() argument
885 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in videobuf_read_one()
887 videobuf_queue_lock(q); in videobuf_read_one()
889 q->ops->buf_setup(q, &nbufs, &size); in videobuf_read_one()
891 if (NULL == q->read_buf && in videobuf_read_one()
894 retval = videobuf_read_zerocopy(q, data, count, ppos); in videobuf_read_one()
901 if (NULL == q->read_buf) { in videobuf_read_one()
904 q->read_buf = videobuf_alloc_vb(q); in videobuf_read_one()
906 dprintk(1, "video alloc=0x%p\n", q->read_buf); in videobuf_read_one()
907 if (NULL == q->read_buf) in videobuf_read_one()
909 q->read_buf->memory = V4L2_MEMORY_USERPTR; in videobuf_read_one()
910 q->read_buf->bsize = count; /* preferred size */ in videobuf_read_one()
911 field = videobuf_next_field(q); in videobuf_read_one()
912 retval = q->ops->buf_prepare(q, q->read_buf, field); in videobuf_read_one()
915 kfree(q->read_buf); in videobuf_read_one()
916 q->read_buf = NULL; in videobuf_read_one()
920 spin_lock_irqsave(q->irqlock, flags); in videobuf_read_one()
921 q->ops->buf_queue(q, q->read_buf); in videobuf_read_one()
922 spin_unlock_irqrestore(q->irqlock, flags); in videobuf_read_one()
924 q->read_off = 0; in videobuf_read_one()
928 retval = videobuf_waiton(q, q->read_buf, nonblocking, 1); in videobuf_read_one()
932 CALL(q, sync, q, q->read_buf); in videobuf_read_one()
934 if (VIDEOBUF_ERROR == q->read_buf->state) { in videobuf_read_one()
936 q->ops->buf_release(q, q->read_buf); in videobuf_read_one()
937 kfree(q->read_buf); in videobuf_read_one()
938 q->read_buf = NULL; in videobuf_read_one()
944 retval = __videobuf_copy_to_user(q, q->read_buf, data, count, nonblocking); in videobuf_read_one()
948 q->read_off += retval; in videobuf_read_one()
949 if (q->read_off == q->read_buf->size) { in videobuf_read_one()
951 q->ops->buf_release(q, q->read_buf); in videobuf_read_one()
952 kfree(q->read_buf); in videobuf_read_one()
953 q->read_buf = NULL; in videobuf_read_one()
957 videobuf_queue_unlock(q); in videobuf_read_one()
963 static int __videobuf_read_start(struct videobuf_queue *q) in __videobuf_read_start() argument
970 q->ops->buf_setup(q, &count, &size); in __videobuf_read_start()
977 err = __videobuf_mmap_setup(q, count, size, V4L2_MEMORY_USERPTR); in __videobuf_read_start()
984 field = videobuf_next_field(q); in __videobuf_read_start()
985 err = q->ops->buf_prepare(q, q->bufs[i], field); in __videobuf_read_start()
988 list_add_tail(&q->bufs[i]->stream, &q->stream); in __videobuf_read_start()
990 spin_lock_irqsave(q->irqlock, flags); in __videobuf_read_start()
992 q->ops->buf_queue(q, q->bufs[i]); in __videobuf_read_start()
993 spin_unlock_irqrestore(q->irqlock, flags); in __videobuf_read_start()
994 q->reading = 1; in __videobuf_read_start()
998 static void __videobuf_read_stop(struct videobuf_queue *q) in __videobuf_read_stop() argument
1002 videobuf_queue_cancel(q); in __videobuf_read_stop()
1003 __videobuf_free(q); in __videobuf_read_stop()
1004 INIT_LIST_HEAD(&q->stream); in __videobuf_read_stop()
1006 if (NULL == q->bufs[i]) in __videobuf_read_stop()
1008 kfree(q->bufs[i]); in __videobuf_read_stop()
1009 q->bufs[i] = NULL; in __videobuf_read_stop()
1011 q->read_buf = NULL; in __videobuf_read_stop()
1014 int videobuf_read_start(struct videobuf_queue *q) in videobuf_read_start() argument
1018 videobuf_queue_lock(q); in videobuf_read_start()
1019 rc = __videobuf_read_start(q); in videobuf_read_start()
1020 videobuf_queue_unlock(q); in videobuf_read_start()
1026 void videobuf_read_stop(struct videobuf_queue *q) in videobuf_read_stop() argument
1028 videobuf_queue_lock(q); in videobuf_read_stop()
1029 __videobuf_read_stop(q); in videobuf_read_stop()
1030 videobuf_queue_unlock(q); in videobuf_read_stop()
1034 void videobuf_stop(struct videobuf_queue *q) in videobuf_stop() argument
1036 videobuf_queue_lock(q); in videobuf_stop()
1038 if (q->streaming) in videobuf_stop()
1039 __videobuf_streamoff(q); in videobuf_stop()
1041 if (q->reading) in videobuf_stop()
1042 __videobuf_read_stop(q); in videobuf_stop()
1044 videobuf_queue_unlock(q); in videobuf_stop()
1048 ssize_t videobuf_read_stream(struct videobuf_queue *q, in videobuf_read_stream() argument
1055 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in videobuf_read_stream()
1058 videobuf_queue_lock(q); in videobuf_read_stream()
1060 if (q->streaming) in videobuf_read_stream()
1062 if (!q->reading) { in videobuf_read_stream()
1063 retval = __videobuf_read_start(q); in videobuf_read_stream()
1071 if (NULL == q->read_buf) { in videobuf_read_stream()
1072 q->read_buf = list_entry(q->stream.next, in videobuf_read_stream()
1075 list_del(&q->read_buf->stream); in videobuf_read_stream()
1076 q->read_off = 0; in videobuf_read_stream()
1078 rc = videobuf_waiton(q, q->read_buf, nonblocking, 1); in videobuf_read_stream()
1085 if (q->read_buf->state == VIDEOBUF_DONE) { in videobuf_read_stream()
1086 rc = __videobuf_copy_stream(q, q->read_buf, data + retval, count, in videobuf_read_stream()
1094 q->read_off += rc; in videobuf_read_stream()
1097 q->read_off = q->read_buf->size; in videobuf_read_stream()
1103 if (q->read_off == q->read_buf->size) { in videobuf_read_stream()
1104 list_add_tail(&q->read_buf->stream, in videobuf_read_stream()
1105 &q->stream); in videobuf_read_stream()
1106 spin_lock_irqsave(q->irqlock, flags); in videobuf_read_stream()
1107 q->ops->buf_queue(q, q->read_buf); in videobuf_read_stream()
1108 spin_unlock_irqrestore(q->irqlock, flags); in videobuf_read_stream()
1109 q->read_buf = NULL; in videobuf_read_stream()
1116 videobuf_queue_unlock(q); in videobuf_read_stream()
1122 struct videobuf_queue *q, in videobuf_poll_stream() argument
1129 videobuf_queue_lock(q); in videobuf_poll_stream()
1130 if (q->streaming) { in videobuf_poll_stream()
1131 if (!list_empty(&q->stream)) in videobuf_poll_stream()
1132 buf = list_entry(q->stream.next, in videobuf_poll_stream()
1135 if (!q->reading) in videobuf_poll_stream()
1136 __videobuf_read_start(q); in videobuf_poll_stream()
1137 if (!q->reading) { in videobuf_poll_stream()
1139 } else if (NULL == q->read_buf) { in videobuf_poll_stream()
1140 q->read_buf = list_entry(q->stream.next, in videobuf_poll_stream()
1143 list_del(&q->read_buf->stream); in videobuf_poll_stream()
1144 q->read_off = 0; in videobuf_poll_stream()
1146 buf = q->read_buf; in videobuf_poll_stream()
1155 switch (q->type) { in videobuf_poll_stream()
1168 videobuf_queue_unlock(q); in videobuf_poll_stream()
1173 int videobuf_mmap_mapper(struct videobuf_queue *q, struct vm_area_struct *vma) in videobuf_mmap_mapper() argument
1178 MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS); in videobuf_mmap_mapper()
1185 videobuf_queue_lock(q); in videobuf_mmap_mapper()
1187 struct videobuf_buffer *buf = q->bufs[i]; in videobuf_mmap_mapper()
1191 rc = CALL(q, mmap_mapper, q, buf, vma); in videobuf_mmap_mapper()
1195 videobuf_queue_unlock(q); in videobuf_mmap_mapper()