• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/usb/gadget/

Lines Matching refs:uvc

29 #include "uvc.h"
154 struct uvc_device *uvc = req->context;
158 if (uvc->event_setup_out) {
159 uvc->event_setup_out = 0;
165 v4l2_event_queue(uvc->vdev, &v4l2_event);
172 struct uvc_device *uvc = to_uvc(f);
193 v4l2_event_queue(uvc->vdev, &v4l2_event);
201 struct uvc_device *uvc = to_uvc(f);
205 if (interface == uvc->control_intf)
207 else if (interface != uvc->streaming_intf)
210 return uvc->state == UVC_STATE_STREAMING ? 1 : 0;
216 struct uvc_device *uvc = to_uvc(f);
222 if (interface == uvc->control_intf) {
226 if (uvc->state == UVC_STATE_DISCONNECTED) {
230 v4l2_event_queue(uvc->vdev, &v4l2_event);
232 uvc->state = UVC_STATE_CONNECTED;
238 if (interface != uvc->streaming_intf)
242 if (usb_endpoint_xfer_bulk(&uvc->desc.vs_ep))
248 if (uvc->state != UVC_STATE_STREAMING)
251 if (uvc->video.ep)
252 usb_ep_disable(uvc->video.ep);
256 v4l2_event_queue(uvc->vdev, &v4l2_event);
258 uvc->state = UVC_STATE_CONNECTED;
262 if (uvc->state != UVC_STATE_CONNECTED)
265 if (uvc->video.ep)
266 usb_ep_enable(uvc->video.ep, &uvc_streaming_ep);
270 v4l2_event_queue(uvc->vdev, &v4l2_event);
272 uvc->state = UVC_STATE_STREAMING;
285 struct uvc_device *uvc = to_uvc(f);
292 v4l2_event_queue(uvc->vdev, &v4l2_event);
294 uvc->state = UVC_STATE_DISCONNECTED;
302 uvc_function_connect(struct uvc_device *uvc)
304 struct usb_composite_dev *cdev = uvc->func.config->cdev;
307 if ((ret = usb_function_activate(&uvc->func)) < 0)
312 uvc_function_disconnect(struct uvc_device *uvc)
314 struct usb_composite_dev *cdev = uvc->func.config->cdev;
317 if ((ret = usb_function_deactivate(&uvc->func)) < 0)
326 uvc_register_video(struct uvc_device *uvc)
328 struct usb_composite_dev *cdev = uvc->func.config->cdev;
342 uvc->vdev = video;
343 video_set_drvdata(video, uvc);
366 uvc_copy_descriptors(struct uvc_device *uvc, enum usb_device_speed speed)
382 ? uvc->desc.fs_streaming : uvc->desc.hs_streaming;
406 for (src = (const struct usb_descriptor_header**)uvc->desc.control; *src; ++src) {
435 (const struct usb_descriptor_header**)uvc->desc.control);
438 uvc_control_header->baInterfaceNr[0] = uvc->streaming_intf;
460 struct uvc_device *uvc = to_uvc(f);
464 if (uvc->vdev) {
465 if (uvc->vdev->minor == -1)
466 video_device_release(uvc->vdev);
468 video_unregister_device(uvc->vdev);
469 uvc->vdev = NULL;
472 if (uvc->control_ep)
473 uvc->control_ep->driver_data = NULL;
474 if (uvc->video.ep)
475 uvc->video.ep->driver_data = NULL;
477 if (uvc->control_req) {
478 usb_ep_free_request(cdev->gadget->ep0, uvc->control_req);
479 kfree(uvc->control_buf);
485 kfree(uvc);
492 struct uvc_device *uvc = to_uvc(f);
504 uvc->control_ep = ep;
505 ep->driver_data = uvc;
512 uvc->video.ep = ep;
513 ep->driver_data = uvc;
520 uvc->control_intf = ret;
526 uvc->streaming_intf = ret;
529 f->descriptors = uvc_copy_descriptors(uvc, USB_SPEED_FULL);
530 f->hs_descriptors = uvc_copy_descriptors(uvc, USB_SPEED_HIGH);
533 uvc->control_req = usb_ep_alloc_request(cdev->gadget->ep0, GFP_KERNEL);
534 uvc->control_buf = kmalloc(UVC_MAX_REQUEST_SIZE, GFP_KERNEL);
535 if (uvc->control_req == NULL || uvc->control_buf == NULL) {
540 uvc->control_req->buf = uvc->control_buf;
541 uvc->control_req->complete = uvc_function_ep0_complete;
542 uvc->control_req->context = uvc;
551 ret = uvc_video_init(&uvc->video);
556 ret = uvc_register_video(uvc);
589 struct uvc_device *uvc;
598 uvc = kzalloc(sizeof(*uvc), GFP_KERNEL);
599 if (uvc == NULL)
602 uvc->state = UVC_STATE_DISCONNECTED;
617 uvc->desc.control = control;
618 uvc->desc.fs_streaming = fs_streaming;
619 uvc->desc.hs_streaming = hs_streaming;
639 uvc->func.name = "uvc";
640 uvc->func.strings = uvc_function_strings;
641 uvc->func.bind = uvc_function_bind;
642 uvc->func.unbind = uvc_function_unbind;
643 uvc->func.get_alt = uvc_function_get_alt;
644 uvc->func.set_alt = uvc_function_set_alt;
645 uvc->func.disable = uvc_function_disable;
646 uvc->func.setup = uvc_function_setup;
648 ret = usb_add_function(c, &uvc->func);
650 kfree(uvc);
655 kfree(uvc);