Merge branches 'stable/drivers-3.2', 'stable/drivers.bugfixes-3.2' and 'stable/pci...
[pandora-kernel.git] / drivers / media / video / v4l2-fh.c
index c6aef84..122822d 100644 (file)
@@ -29,7 +29,7 @@
 #include <media/v4l2-event.h>
 #include <media/v4l2-ioctl.h>
 
-int v4l2_fh_init(struct v4l2_fh *fh, struct video_device *vdev)
+void v4l2_fh_init(struct v4l2_fh *fh, struct video_device *vdev)
 {
        fh->vdev = vdev;
        /* Inherit from video_device. May be overridden by the driver. */
@@ -37,17 +37,10 @@ int v4l2_fh_init(struct v4l2_fh *fh, struct video_device *vdev)
        INIT_LIST_HEAD(&fh->list);
        set_bit(V4L2_FL_USES_V4L2_FH, &fh->vdev->flags);
        fh->prio = V4L2_PRIORITY_UNSET;
-
-       /*
-        * fh->events only needs to be initialized if the driver
-        * supports the VIDIOC_SUBSCRIBE_EVENT ioctl.
-        */
-       if (vdev->ioctl_ops && vdev->ioctl_ops->vidioc_subscribe_event)
-               return v4l2_event_init(fh);
-
-       fh->events = NULL;
-
-       return 0;
+       init_waitqueue_head(&fh->wait);
+       INIT_LIST_HEAD(&fh->available);
+       INIT_LIST_HEAD(&fh->subscribed);
+       fh->sequence = -1;
 }
 EXPORT_SYMBOL_GPL(v4l2_fh_init);
 
@@ -93,7 +86,7 @@ void v4l2_fh_exit(struct v4l2_fh *fh)
 {
        if (fh->vdev == NULL)
                return;
-       v4l2_event_free(fh);
+       v4l2_event_unsubscribe_all(fh);
        fh->vdev = NULL;
 }
 EXPORT_SYMBOL_GPL(v4l2_fh_exit);