Lines Matching refs:stream

145 static int uvc_v4l2_try_format(struct uvc_streaming *stream,  in uvc_v4l2_try_format()  argument
158 if (fmt->type != stream->type) in uvc_v4l2_try_format()
170 for (i = 0; i < stream->nformats; ++i) { in uvc_v4l2_try_format()
171 format = &stream->format[i]; in uvc_v4l2_try_format()
176 if (i == stream->nformats) { in uvc_v4l2_try_format()
177 format = stream->def_format; in uvc_v4l2_try_format()
234 mutex_lock(&stream->mutex); in uvc_v4l2_try_format()
235 if (stream->dev->quirks & UVC_QUIRK_PROBE_EXTRAFIELDS) in uvc_v4l2_try_format()
237 stream->ctrl.dwMaxVideoFrameSize; in uvc_v4l2_try_format()
240 ret = uvc_probe_video(stream, probe); in uvc_v4l2_try_format()
241 mutex_unlock(&stream->mutex); in uvc_v4l2_try_format()
262 static int uvc_v4l2_get_format(struct uvc_streaming *stream, in uvc_v4l2_get_format() argument
269 if (fmt->type != stream->type) in uvc_v4l2_get_format()
272 mutex_lock(&stream->mutex); in uvc_v4l2_get_format()
273 format = stream->cur_format; in uvc_v4l2_get_format()
274 frame = stream->cur_frame; in uvc_v4l2_get_format()
286 fmt->fmt.pix.sizeimage = stream->ctrl.dwMaxVideoFrameSize; in uvc_v4l2_get_format()
291 mutex_unlock(&stream->mutex); in uvc_v4l2_get_format()
295 static int uvc_v4l2_set_format(struct uvc_streaming *stream, in uvc_v4l2_set_format() argument
303 if (fmt->type != stream->type) in uvc_v4l2_set_format()
306 ret = uvc_v4l2_try_format(stream, fmt, &probe, &format, &frame); in uvc_v4l2_set_format()
310 mutex_lock(&stream->mutex); in uvc_v4l2_set_format()
312 if (uvc_queue_allocated(&stream->queue)) { in uvc_v4l2_set_format()
317 stream->ctrl = probe; in uvc_v4l2_set_format()
318 stream->cur_format = format; in uvc_v4l2_set_format()
319 stream->cur_frame = frame; in uvc_v4l2_set_format()
322 mutex_unlock(&stream->mutex); in uvc_v4l2_set_format()
326 static int uvc_v4l2_get_streamparm(struct uvc_streaming *stream, in uvc_v4l2_get_streamparm() argument
331 if (parm->type != stream->type) in uvc_v4l2_get_streamparm()
334 mutex_lock(&stream->mutex); in uvc_v4l2_get_streamparm()
335 numerator = stream->ctrl.dwFrameInterval; in uvc_v4l2_get_streamparm()
336 mutex_unlock(&stream->mutex); in uvc_v4l2_get_streamparm()
342 parm->type = stream->type; in uvc_v4l2_get_streamparm()
344 if (stream->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) { in uvc_v4l2_get_streamparm()
361 static int uvc_v4l2_set_streamparm(struct uvc_streaming *stream, in uvc_v4l2_set_streamparm() argument
369 if (parm->type != stream->type) in uvc_v4l2_set_streamparm()
382 mutex_lock(&stream->mutex); in uvc_v4l2_set_streamparm()
384 if (uvc_queue_streaming(&stream->queue)) { in uvc_v4l2_set_streamparm()
385 mutex_unlock(&stream->mutex); in uvc_v4l2_set_streamparm()
389 probe = stream->ctrl; in uvc_v4l2_set_streamparm()
391 uvc_try_frame_interval(stream->cur_frame, interval); in uvc_v4l2_set_streamparm()
394 ret = uvc_probe_video(stream, &probe); in uvc_v4l2_set_streamparm()
396 mutex_unlock(&stream->mutex); in uvc_v4l2_set_streamparm()
400 stream->ctrl = probe; in uvc_v4l2_set_streamparm()
401 mutex_unlock(&stream->mutex); in uvc_v4l2_set_streamparm()
451 if (atomic_inc_return(&handle->stream->active) != 1) { in uvc_acquire_privileges()
452 atomic_dec(&handle->stream->active); in uvc_acquire_privileges()
463 atomic_dec(&handle->stream->active); in uvc_dismiss_privileges()
479 struct uvc_streaming *stream; in uvc_v4l2_open() local
484 stream = video_drvdata(file); in uvc_v4l2_open()
486 ret = usb_autopm_get_interface(stream->dev->intf); in uvc_v4l2_open()
493 usb_autopm_put_interface(stream->dev->intf); in uvc_v4l2_open()
497 mutex_lock(&stream->dev->lock); in uvc_v4l2_open()
498 if (stream->dev->users == 0) { in uvc_v4l2_open()
499 ret = uvc_status_start(stream->dev, GFP_KERNEL); in uvc_v4l2_open()
501 mutex_unlock(&stream->dev->lock); in uvc_v4l2_open()
502 usb_autopm_put_interface(stream->dev->intf); in uvc_v4l2_open()
508 stream->dev->users++; in uvc_v4l2_open()
509 mutex_unlock(&stream->dev->lock); in uvc_v4l2_open()
511 v4l2_fh_init(&handle->vfh, &stream->vdev); in uvc_v4l2_open()
513 handle->chain = stream->chain; in uvc_v4l2_open()
514 handle->stream = stream; in uvc_v4l2_open()
524 struct uvc_streaming *stream = handle->stream; in uvc_v4l2_release() local
530 uvc_queue_release(&stream->queue); in uvc_v4l2_release()
539 mutex_lock(&stream->dev->lock); in uvc_v4l2_release()
540 if (--stream->dev->users == 0) in uvc_v4l2_release()
541 uvc_status_stop(stream->dev); in uvc_v4l2_release()
542 mutex_unlock(&stream->dev->lock); in uvc_v4l2_release()
544 usb_autopm_put_interface(stream->dev->intf); in uvc_v4l2_release()
554 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_querycap() local
558 usb_make_path(stream->dev->udev, cap->bus_info, sizeof(cap->bus_info)); in uvc_ioctl_querycap()
561 if (stream->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) in uvc_ioctl_querycap()
569 static int uvc_ioctl_enum_fmt(struct uvc_streaming *stream, in uvc_ioctl_enum_fmt() argument
576 if (fmt->type != stream->type || fmt->index >= stream->nformats) in uvc_ioctl_enum_fmt()
583 format = &stream->format[fmt->index]; in uvc_ioctl_enum_fmt()
597 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_enum_fmt_vid_cap() local
599 return uvc_ioctl_enum_fmt(stream, fmt); in uvc_ioctl_enum_fmt_vid_cap()
606 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_enum_fmt_vid_out() local
608 return uvc_ioctl_enum_fmt(stream, fmt); in uvc_ioctl_enum_fmt_vid_out()
615 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_g_fmt_vid_cap() local
617 return uvc_v4l2_get_format(stream, fmt); in uvc_ioctl_g_fmt_vid_cap()
624 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_g_fmt_vid_out() local
626 return uvc_v4l2_get_format(stream, fmt); in uvc_ioctl_g_fmt_vid_out()
633 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_s_fmt_vid_cap() local
640 return uvc_v4l2_set_format(stream, fmt); in uvc_ioctl_s_fmt_vid_cap()
647 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_s_fmt_vid_out() local
654 return uvc_v4l2_set_format(stream, fmt); in uvc_ioctl_s_fmt_vid_out()
661 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_try_fmt_vid_cap() local
664 return uvc_v4l2_try_format(stream, fmt, &probe, NULL, NULL); in uvc_ioctl_try_fmt_vid_cap()
671 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_try_fmt_vid_out() local
674 return uvc_v4l2_try_format(stream, fmt, &probe, NULL, NULL); in uvc_ioctl_try_fmt_vid_out()
681 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_reqbufs() local
688 mutex_lock(&stream->mutex); in uvc_ioctl_reqbufs()
689 ret = uvc_request_buffers(&stream->queue, rb); in uvc_ioctl_reqbufs()
690 mutex_unlock(&stream->mutex); in uvc_ioctl_reqbufs()
704 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_querybuf() local
709 return uvc_query_buffer(&stream->queue, buf); in uvc_ioctl_querybuf()
715 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_qbuf() local
720 return uvc_queue_buffer(&stream->queue, buf); in uvc_ioctl_qbuf()
727 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_expbuf() local
732 return uvc_export_buffer(&stream->queue, exp); in uvc_ioctl_expbuf()
738 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_dqbuf() local
743 return uvc_dequeue_buffer(&stream->queue, buf, in uvc_ioctl_dqbuf()
751 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_create_bufs() local
758 return uvc_create_buffers(&stream->queue, cb); in uvc_ioctl_create_bufs()
765 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_streamon() local
771 mutex_lock(&stream->mutex); in uvc_ioctl_streamon()
772 ret = uvc_queue_streamon(&stream->queue, type); in uvc_ioctl_streamon()
773 mutex_unlock(&stream->mutex); in uvc_ioctl_streamon()
782 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_streamoff() local
787 mutex_lock(&stream->mutex); in uvc_ioctl_streamoff()
788 uvc_queue_streamoff(&stream->queue, type); in uvc_ioctl_streamoff()
789 mutex_unlock(&stream->mutex); in uvc_ioctl_streamoff()
1063 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_g_selection() local
1065 if (sel->type != stream->type) in uvc_ioctl_g_selection()
1071 if (stream->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) in uvc_ioctl_g_selection()
1076 if (stream->type != V4L2_BUF_TYPE_VIDEO_OUTPUT) in uvc_ioctl_g_selection()
1085 mutex_lock(&stream->mutex); in uvc_ioctl_g_selection()
1086 sel->r.width = stream->cur_frame->wWidth; in uvc_ioctl_g_selection()
1087 sel->r.height = stream->cur_frame->wHeight; in uvc_ioctl_g_selection()
1088 mutex_unlock(&stream->mutex); in uvc_ioctl_g_selection()
1097 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_g_parm() local
1099 return uvc_v4l2_get_streamparm(stream, parm); in uvc_ioctl_g_parm()
1106 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_s_parm() local
1113 return uvc_v4l2_set_streamparm(stream, parm); in uvc_ioctl_s_parm()
1120 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_enum_framesizes() local
1126 for (i = 0; i < stream->nformats; i++) { in uvc_ioctl_enum_framesizes()
1127 if (stream->format[i].fcc == fsize->pixel_format) { in uvc_ioctl_enum_framesizes()
1128 format = &stream->format[i]; in uvc_ioctl_enum_framesizes()
1149 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_enum_frameintervals() local
1155 for (i = 0; i < stream->nformats; i++) { in uvc_ioctl_enum_frameintervals()
1156 if (stream->format[i].fcc == fival->pixel_format) { in uvc_ioctl_enum_frameintervals()
1157 format = &stream->format[i]; in uvc_ioctl_enum_frameintervals()
1446 struct uvc_streaming *stream = handle->stream; in uvc_v4l2_mmap() local
1450 return uvc_queue_mmap(&stream->queue, vma); in uvc_v4l2_mmap()
1456 struct uvc_streaming *stream = handle->stream; in uvc_v4l2_poll() local
1460 return uvc_queue_poll(&stream->queue, file, wait); in uvc_v4l2_poll()
1469 struct uvc_streaming *stream = handle->stream; in uvc_v4l2_get_unmapped_area() local
1473 return uvc_queue_get_unmapped_area(&stream->queue, pgoff); in uvc_v4l2_get_unmapped_area()