summarylogtreecommitdiffstats
path: root/stk11xx_kernel11.patch
diff options
context:
space:
mode:
Diffstat (limited to 'stk11xx_kernel11.patch')
-rw-r--r--stk11xx_kernel11.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/stk11xx_kernel11.patch b/stk11xx_kernel11.patch
new file mode 100644
index 000000000000..52d30087340c
--- /dev/null
+++ b/stk11xx_kernel11.patch
@@ -0,0 +1,49 @@
+diff -urp ./old/stk11xx.h ./stk11xx.h
+--- ./old/stk11xx.h 2012-03-10 10:03:12.000000000 +0100
++++ ./stk11xx.h 2013-08-05 22:50:00.000000000 +0200
+@@ -33,6 +33,7 @@
+
+ #ifndef STK11XX_H
+ #define STK11XX_H
++#include <media/v4l2-device.h>
+
+ #define DRIVER_NAME "stk11xx" /**< Name of this driver */
+ #define DRIVER_VERSION "v3.0.0" /**< Version of this driver */
+@@ -316,6 +317,7 @@ struct stk11xx_video {
+ * @struct usb_stk11xx
+ */
+ struct usb_stk11xx {
++ struct v4l2_device v4l2_dev;
+ struct video_device *vdev; /**< Pointer on a V4L2 video device */
+ struct usb_device *udev; /**< Pointer on a USB device */
+ struct usb_interface *interface; /**< Pointer on a USB interface */
+diff -urp ./old/stk11xx-v4l.c ./stk11xx-v4l.c
+--- ./old/stk11xx-v4l.c 2012-03-10 09:54:57.000000000 +0100
++++ ./stk11xx-v4l.c 2013-08-05 22:51:12.000000000 +0200
+@@ -1498,9 +1498,17 @@ int v4l_stk11xx_register_video_device(st
+ {
+ int err;
+
++ err = v4l2_device_register(&dev->interface->dev, &dev->v4l2_dev);
++ if (err < 0) {
++ STK_ERROR("couldn't register v4l2_device\n");
++ kfree(dev);
++ return err;
++ }
++
+ strcpy(dev->vdev->name, DRIVER_DESC);
+
+- dev->vdev->parent = &dev->interface->dev;
++// dev->vdev->parent = &dev->interface->dev;
++ dev->vdev->v4l2_dev = &dev->v4l2_dev;
+ dev->vdev->fops = &v4l_stk11xx_fops;
+ dev->vdev->release = video_device_release;
+ dev->vdev->minor = -1;
+@@ -1533,6 +1541,7 @@ int v4l_stk11xx_unregister_video_device(
+
+ video_set_drvdata(dev->vdev, NULL);
+ video_unregister_device(dev->vdev);
++ v4l2_device_unregister(&dev->v4l2_dev);
+
+ return 0;
+ }