Lines Matching refs:uvc
85 static struct uvcg_format *find_format_by_index(struct uvc_device *uvc, int index) in find_format_by_index() argument
91 list_for_each_entry(format, &uvc->header->formats, entry) { in find_format_by_index()
102 static struct uvcg_frame *find_frame_by_index(struct uvc_device *uvc, in find_frame_by_index() argument
110 list_for_each_entry(format, &uvc->header->formats, entry) { in find_frame_by_index()
124 static struct uvcg_format *find_format_by_pix(struct uvc_device *uvc, in find_format_by_pix() argument
130 list_for_each_entry(format, &uvc->header->formats, entry) { in find_format_by_pix()
145 static struct uvcg_frame *find_closest_frame_by_size(struct uvc_device *uvc, in find_closest_frame_by_size() argument
149 struct uvc_video *video = &uvc->video; in find_closest_frame_by_size()
161 list_for_each_entry(format, &uvc->header->formats, entry) { in find_closest_frame_by_size()
184 uvcg_dbg(&video->uvc->func, "Unsupported size %ux%u\n", rw, rh); in find_closest_frame_by_size()
194 uvc_send_response(struct uvc_device *uvc, struct uvc_request_data *data) in uvc_send_response() argument
196 struct usb_composite_dev *cdev = uvc->func.config->cdev; in uvc_send_response()
197 struct usb_request *req = uvc->control_req; in uvc_send_response()
202 req->length = min_t(unsigned int, uvc->event_length, data->length); in uvc_send_response()
203 req->zero = data->length < uvc->event_length; in uvc_send_response()
218 struct uvc_device *uvc = video_get_drvdata(vdev); in uvc_v4l2_querycap() local
219 struct usb_composite_dev *cdev = uvc->func.config->cdev; in uvc_v4l2_querycap()
232 struct uvc_device *uvc = video_get_drvdata(vdev); in uvc_v4l2_get_format() local
233 struct uvc_video *video = &uvc->video; in uvc_v4l2_get_format()
251 struct uvc_device *uvc = video_get_drvdata(vdev); in uvc_v4l2_try_format() local
252 struct uvc_video *video = &uvc->video; in uvc_v4l2_try_format()
262 uvcg_dbg(&uvc->func, "Trying format 0x%08x (%c%c%c%c): %ux%u\n", in uvc_v4l2_try_format()
267 uformat = find_format_by_pix(uvc, fmt->fmt.pix.pixelformat); in uvc_v4l2_try_format()
271 uframe = find_closest_frame_by_size(uvc, uformat, in uvc_v4l2_try_format()
309 struct uvc_device *uvc = video_get_drvdata(vdev); in uvc_v4l2_set_format() local
310 struct uvc_video *video = &uvc->video; in uvc_v4l2_set_format()
330 struct uvc_device *uvc = video_get_drvdata(vdev); in uvc_v4l2_g_parm() local
331 struct uvc_video *video = &uvc->video; in uvc_v4l2_g_parm()
343 uvcg_dbg(&uvc->func, "Getting frame interval of %u/%u (%u)\n", in uvc_v4l2_g_parm()
357 struct uvc_device *uvc = video_get_drvdata(vdev); in uvc_v4l2_s_parm() local
358 struct uvc_video *video = &uvc->video; in uvc_v4l2_s_parm()
369 uvcg_dbg(&uvc->func, "Setting frame interval to %u/%u (%u)\n", in uvc_v4l2_s_parm()
381 struct uvc_device *uvc = video_get_drvdata(vdev); in uvc_v4l2_enum_frameintervals() local
386 uformat = find_format_by_pix(uvc, fival->pixel_format); in uvc_v4l2_enum_frameintervals()
420 struct uvc_device *uvc = video_get_drvdata(vdev); in uvc_v4l2_enum_framesizes() local
424 uformat = find_format_by_pix(uvc, fsize->pixel_format); in uvc_v4l2_enum_framesizes()
431 uframe = find_frame_by_index(uvc, uformat, fsize->index + 1); in uvc_v4l2_enum_framesizes()
446 struct uvc_device *uvc = video_get_drvdata(vdev); in uvc_v4l2_enum_format() local
450 if (f->index >= uvc->header->num_fmt) in uvc_v4l2_enum_format()
453 uformat = find_format_by_index(uvc, f->index + 1); in uvc_v4l2_enum_format()
470 struct uvc_device *uvc = video_get_drvdata(vdev); in uvc_v4l2_reqbufs() local
471 struct uvc_video *video = &uvc->video; in uvc_v4l2_reqbufs()
483 struct uvc_device *uvc = video_get_drvdata(vdev); in uvc_v4l2_querybuf() local
484 struct uvc_video *video = &uvc->video; in uvc_v4l2_querybuf()
493 struct uvc_device *uvc = video_get_drvdata(vdev); in uvc_v4l2_qbuf() local
494 struct uvc_video *video = &uvc->video; in uvc_v4l2_qbuf()
501 if (uvc->state == UVC_STATE_STREAMING) in uvc_v4l2_qbuf()
511 struct uvc_device *uvc = video_get_drvdata(vdev); in uvc_v4l2_dqbuf() local
512 struct uvc_video *video = &uvc->video; in uvc_v4l2_dqbuf()
521 struct uvc_device *uvc = video_get_drvdata(vdev); in uvc_v4l2_streamon() local
522 struct uvc_video *video = &uvc->video; in uvc_v4l2_streamon()
537 uvc_function_setup_continue(uvc, 0); in uvc_v4l2_streamon()
538 uvc->state = UVC_STATE_STREAMING; in uvc_v4l2_streamon()
547 struct uvc_device *uvc = video_get_drvdata(vdev); in uvc_v4l2_streamoff() local
548 struct uvc_video *video = &uvc->video; in uvc_v4l2_streamoff()
558 if (uvc->state != UVC_STATE_STREAMING) in uvc_v4l2_streamoff()
561 uvc->state = UVC_STATE_CONNECTED; in uvc_v4l2_streamoff()
562 uvc_function_setup_continue(uvc, 1); in uvc_v4l2_streamoff()
570 struct uvc_device *uvc = video_get_drvdata(fh->vdev); in uvc_v4l2_subscribe_event() local
577 if (sub->type == UVC_EVENT_SETUP && uvc->func_connected) in uvc_v4l2_subscribe_event()
585 uvc->func_connected = true; in uvc_v4l2_subscribe_event()
587 uvc_function_connect(uvc); in uvc_v4l2_subscribe_event()
593 static void uvc_v4l2_disable(struct uvc_device *uvc) in uvc_v4l2_disable() argument
595 uvc_function_disconnect(uvc); in uvc_v4l2_disable()
596 uvcg_video_disable(&uvc->video); in uvc_v4l2_disable()
597 uvcg_free_buffers(&uvc->video.queue); in uvc_v4l2_disable()
598 uvc->func_connected = false; in uvc_v4l2_disable()
599 wake_up_interruptible(&uvc->func_connected_queue); in uvc_v4l2_disable()
606 struct uvc_device *uvc = video_get_drvdata(fh->vdev); in uvc_v4l2_unsubscribe_event() local
615 uvc_v4l2_disable(uvc); in uvc_v4l2_unsubscribe_event()
627 struct uvc_device *uvc = video_get_drvdata(vdev); in uvc_v4l2_ioctl_default() local
631 return uvc_send_response(uvc, arg); in uvc_v4l2_ioctl_default()
667 struct uvc_device *uvc = video_get_drvdata(vdev); in uvc_v4l2_open() local
677 handle->device = &uvc->video; in uvc_v4l2_open()
687 struct uvc_device *uvc = video_get_drvdata(vdev); in uvc_v4l2_release() local
693 uvc_v4l2_disable(uvc); in uvc_v4l2_release()
708 struct uvc_device *uvc = video_get_drvdata(vdev); in uvc_v4l2_mmap() local
710 return uvcg_queue_mmap(&uvc->video.queue, vma); in uvc_v4l2_mmap()
717 struct uvc_device *uvc = video_get_drvdata(vdev); in uvc_v4l2_poll() local
719 return uvcg_queue_poll(&uvc->video.queue, file, wait); in uvc_v4l2_poll()
728 struct uvc_device *uvc = video_get_drvdata(vdev); in uvcg_v4l2_get_unmapped_area() local
730 return uvcg_queue_get_unmapped_area(&uvc->video.queue, pgoff); in uvcg_v4l2_get_unmapped_area()