diff options
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/gadget/uvc_v4l2.c | 22 |
1 files changed, 3 insertions, 19 deletions
diff --git a/drivers/usb/gadget/uvc_v4l2.c b/drivers/usb/gadget/uvc_v4l2.c index 5e807f083bc..52f8f9e513a 100644 --- a/drivers/usb/gadget/uvc_v4l2.c +++ b/drivers/usb/gadget/uvc_v4l2.c @@ -124,24 +124,12 @@ uvc_v4l2_open(struct file *file) struct video_device *vdev = video_devdata(file); struct uvc_device *uvc = video_get_drvdata(vdev); struct uvc_file_handle *handle; - int ret; handle = kzalloc(sizeof(*handle), GFP_KERNEL); if (handle == NULL) return -ENOMEM; - ret = v4l2_fh_init(&handle->vfh, vdev); - if (ret < 0) - goto error; - - ret = v4l2_event_init(&handle->vfh); - if (ret < 0) - goto error; - - ret = v4l2_event_alloc(&handle->vfh, 8); - if (ret < 0) - goto error; - + v4l2_fh_init(&handle->vfh, vdev); v4l2_fh_add(&handle->vfh); handle->device = &uvc->video; @@ -149,10 +137,6 @@ uvc_v4l2_open(struct file *file) uvc_function_connect(uvc); return 0; - -error: - v4l2_fh_exit(&handle->vfh); - return ret; } static int @@ -314,7 +298,7 @@ uvc_v4l2_do_ioctl(struct file *file, unsigned int cmd, void *arg) if (sub->type < UVC_EVENT_FIRST || sub->type > UVC_EVENT_LAST) return -EINVAL; - return v4l2_event_subscribe(&handle->vfh, arg); + return v4l2_event_subscribe(&handle->vfh, arg, 2); } case VIDIOC_UNSUBSCRIBE_EVENT: @@ -354,7 +338,7 @@ uvc_v4l2_poll(struct file *file, poll_table *wait) struct uvc_file_handle *handle = to_uvc_file_handle(file->private_data); unsigned int mask = 0; - poll_wait(file, &handle->vfh.events->wait, wait); + poll_wait(file, &handle->vfh.wait, wait); if (v4l2_event_pending(&handle->vfh)) mask |= POLLPRI; |