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 if (stream->dev->state & UVC_DEV_DISCONNECTED) in uvc_v4l2_open()
489 ret = usb_autopm_get_interface(stream->dev->intf); in uvc_v4l2_open()
496 usb_autopm_put_interface(stream->dev->intf); in uvc_v4l2_open()
500 mutex_lock(&stream->dev->lock); in uvc_v4l2_open()
501 if (stream->dev->users == 0) { in uvc_v4l2_open()
502 ret = uvc_status_start(stream->dev, GFP_KERNEL); in uvc_v4l2_open()
504 mutex_unlock(&stream->dev->lock); in uvc_v4l2_open()
505 usb_autopm_put_interface(stream->dev->intf); in uvc_v4l2_open()
511 stream->dev->users++; in uvc_v4l2_open()
512 mutex_unlock(&stream->dev->lock); in uvc_v4l2_open()
514 v4l2_fh_init(&handle->vfh, &stream->vdev); in uvc_v4l2_open()
516 handle->chain = stream->chain; in uvc_v4l2_open()
517 handle->stream = stream; in uvc_v4l2_open()
527 struct uvc_streaming *stream = handle->stream; in uvc_v4l2_release() local
533 uvc_queue_release(&stream->queue); in uvc_v4l2_release()
542 mutex_lock(&stream->dev->lock); in uvc_v4l2_release()
543 if (--stream->dev->users == 0) in uvc_v4l2_release()
544 uvc_status_stop(stream->dev); in uvc_v4l2_release()
545 mutex_unlock(&stream->dev->lock); in uvc_v4l2_release()
547 usb_autopm_put_interface(stream->dev->intf); in uvc_v4l2_release()
557 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_querycap() local
561 usb_make_path(stream->dev->udev, cap->bus_info, sizeof(cap->bus_info)); in uvc_ioctl_querycap()
564 if (stream->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) in uvc_ioctl_querycap()
572 static int uvc_ioctl_enum_fmt(struct uvc_streaming *stream, in uvc_ioctl_enum_fmt() argument
579 if (fmt->type != stream->type || fmt->index >= stream->nformats) in uvc_ioctl_enum_fmt()
586 format = &stream->format[fmt->index]; in uvc_ioctl_enum_fmt()
600 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_enum_fmt_vid_cap() local
602 return uvc_ioctl_enum_fmt(stream, fmt); in uvc_ioctl_enum_fmt_vid_cap()
609 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_enum_fmt_vid_out() local
611 return uvc_ioctl_enum_fmt(stream, fmt); in uvc_ioctl_enum_fmt_vid_out()
618 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_g_fmt_vid_cap() local
620 return uvc_v4l2_get_format(stream, fmt); in uvc_ioctl_g_fmt_vid_cap()
627 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_g_fmt_vid_out() local
629 return uvc_v4l2_get_format(stream, fmt); in uvc_ioctl_g_fmt_vid_out()
636 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_s_fmt_vid_cap() local
643 return uvc_v4l2_set_format(stream, fmt); in uvc_ioctl_s_fmt_vid_cap()
650 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_s_fmt_vid_out() local
657 return uvc_v4l2_set_format(stream, fmt); in uvc_ioctl_s_fmt_vid_out()
664 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_try_fmt_vid_cap() local
667 return uvc_v4l2_try_format(stream, fmt, &probe, NULL, NULL); in uvc_ioctl_try_fmt_vid_cap()
674 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_try_fmt_vid_out() local
677 return uvc_v4l2_try_format(stream, fmt, &probe, NULL, NULL); in uvc_ioctl_try_fmt_vid_out()
684 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_reqbufs() local
691 mutex_lock(&stream->mutex); in uvc_ioctl_reqbufs()
692 ret = uvc_request_buffers(&stream->queue, rb); in uvc_ioctl_reqbufs()
693 mutex_unlock(&stream->mutex); in uvc_ioctl_reqbufs()
707 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_querybuf() local
712 return uvc_query_buffer(&stream->queue, buf); in uvc_ioctl_querybuf()
718 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_qbuf() local
723 return uvc_queue_buffer(&stream->queue, buf); in uvc_ioctl_qbuf()
729 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_dqbuf() local
734 return uvc_dequeue_buffer(&stream->queue, buf, in uvc_ioctl_dqbuf()
742 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_create_bufs() local
749 return uvc_create_buffers(&stream->queue, cb); in uvc_ioctl_create_bufs()
756 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_streamon() local
762 mutex_lock(&stream->mutex); in uvc_ioctl_streamon()
763 ret = uvc_queue_streamon(&stream->queue, type); in uvc_ioctl_streamon()
764 mutex_unlock(&stream->mutex); in uvc_ioctl_streamon()
773 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_streamoff() local
778 mutex_lock(&stream->mutex); in uvc_ioctl_streamoff()
779 uvc_queue_streamoff(&stream->queue, type); in uvc_ioctl_streamoff()
780 mutex_unlock(&stream->mutex); in uvc_ioctl_streamoff()
1054 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_g_selection() local
1056 if (sel->type != stream->type) in uvc_ioctl_g_selection()
1062 if (stream->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) in uvc_ioctl_g_selection()
1067 if (stream->type != V4L2_BUF_TYPE_VIDEO_OUTPUT) in uvc_ioctl_g_selection()
1076 mutex_lock(&stream->mutex); in uvc_ioctl_g_selection()
1077 sel->r.width = stream->cur_frame->wWidth; in uvc_ioctl_g_selection()
1078 sel->r.height = stream->cur_frame->wHeight; in uvc_ioctl_g_selection()
1079 mutex_unlock(&stream->mutex); in uvc_ioctl_g_selection()
1088 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_g_parm() local
1090 return uvc_v4l2_get_streamparm(stream, parm); in uvc_ioctl_g_parm()
1097 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_s_parm() local
1104 return uvc_v4l2_set_streamparm(stream, parm); in uvc_ioctl_s_parm()
1111 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_enum_framesizes() local
1117 for (i = 0; i < stream->nformats; i++) { in uvc_ioctl_enum_framesizes()
1118 if (stream->format[i].fcc == fsize->pixel_format) { in uvc_ioctl_enum_framesizes()
1119 format = &stream->format[i]; in uvc_ioctl_enum_framesizes()
1140 struct uvc_streaming *stream = handle->stream; in uvc_ioctl_enum_frameintervals() local
1146 for (i = 0; i < stream->nformats; i++) { in uvc_ioctl_enum_frameintervals()
1147 if (stream->format[i].fcc == fival->pixel_format) { in uvc_ioctl_enum_frameintervals()
1148 format = &stream->format[i]; in uvc_ioctl_enum_frameintervals()
1434 struct uvc_streaming *stream = handle->stream; in uvc_v4l2_mmap() local
1438 return uvc_queue_mmap(&stream->queue, vma); in uvc_v4l2_mmap()
1444 struct uvc_streaming *stream = handle->stream; in uvc_v4l2_poll() local
1448 return uvc_queue_poll(&stream->queue, file, wait); in uvc_v4l2_poll()
1457 struct uvc_streaming *stream = handle->stream; in uvc_v4l2_get_unmapped_area() local
1461 return uvc_queue_get_unmapped_area(&stream->queue, pgoff); in uvc_v4l2_get_unmapped_area()