]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
V4L/DVB (8483): Remove obsolete owner field from video_device struct.
authorHans Verkuil <hverkuil@xs4all.nl>
Mon, 21 Jul 2008 10:51:45 +0000 (07:51 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Sat, 26 Jul 2008 15:55:07 +0000 (12:55 -0300)
According to an old comment this should have been removed in 2.6.15.
Better late than never...

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
39 files changed:
drivers/media/radio/dsbr100.c
drivers/media/radio/miropcm20-radio.c
drivers/media/radio/radio-aimslab.c
drivers/media/radio/radio-aztech.c
drivers/media/radio/radio-cadet.c
drivers/media/radio/radio-gemtek-pci.c
drivers/media/radio/radio-gemtek.c
drivers/media/radio/radio-maxiradio.c
drivers/media/radio/radio-rtrack2.c
drivers/media/radio/radio-sf16fmi.c
drivers/media/radio/radio-sf16fmr2.c
drivers/media/radio/radio-si470x.c
drivers/media/radio/radio-terratec.c
drivers/media/radio/radio-trust.c
drivers/media/radio/radio-typhoon.c
drivers/media/radio/radio-zoltrix.c
drivers/media/video/bw-qcam.c
drivers/media/video/c-qcam.c
drivers/media/video/cpia.c
drivers/media/video/cpia2/cpia2_v4l.c
drivers/media/video/et61x251/et61x251_core.c
drivers/media/video/meye.c
drivers/media/video/ov511.c
drivers/media/video/pms.c
drivers/media/video/pvrusb2/pvrusb2-v4l2.c
drivers/media/video/pwc/pwc-if.c
drivers/media/video/saa5246a.c
drivers/media/video/saa5249.c
drivers/media/video/se401.c
drivers/media/video/sn9c102/sn9c102_core.c
drivers/media/video/stv680.c
drivers/media/video/usbvideo/usbvideo.c
drivers/media/video/usbvideo/vicam.c
drivers/media/video/usbvision/usbvision-video.c
drivers/media/video/w9966.c
drivers/media/video/w9968cf.c
drivers/media/video/zc0301/zc0301_core.c
drivers/media/video/zr364xx.c
include/media/v4l2-dev.h

index 08bf5e8031da826e6797ce591c7b1d3685dbd73a..0edada6f4b3146947a5b4a138e373da957778c3d 100644 (file)
@@ -462,7 +462,6 @@ static const struct v4l2_ioctl_ops usb_dsbr100_ioctl_ops = {
 
 /* V4L2 interface */
 static struct video_device dsbr100_videodev_template = {
-       .owner          = THIS_MODULE,
        .name           = "D-Link DSB-R 100",
        .type           = VID_TYPE_TUNER,
        .fops           = &usb_dsbr100_fops,
index 4a332fe8b64b1a2769ee5b37fdee888fee31820d..594e246dfcffe6a022b238d8b6cf871122dfdb6e 100644 (file)
@@ -229,7 +229,6 @@ static const struct file_operations pcm20_fops = {
 };
 
 static struct video_device pcm20_radio = {
-       .owner          = THIS_MODULE,
        .name           = "Miro PCM 20 radio",
        .type           = VID_TYPE_TUNER,
        .fops           = &pcm20_fops,
index be9bd7adaf618634ab1e932b83cc577fc3d9f145..2540df6dc2c86f01d5ad747e278a18a31f5b77cf 100644 (file)
@@ -405,7 +405,6 @@ static const struct v4l2_ioctl_ops rtrack_ioctl_ops = {
 };
 
 static struct video_device rtrack_radio = {
-       .owner          = THIS_MODULE,
        .name           = "RadioTrack radio",
        .type           = VID_TYPE_TUNER,
        .fops           = &rtrack_fops,
index 04c738b62d063f622c4dbc703ed83a334e688786..537f2f4795068daead6dff4b488f5347b9f6ba25 100644 (file)
@@ -369,7 +369,6 @@ static const struct v4l2_ioctl_ops aztech_ioctl_ops = {
 };
 
 static struct video_device aztech_radio = {
-       .owner              = THIS_MODULE,
        .name               = "Aztech radio",
        .type               = VID_TYPE_TUNER,
        .fops               = &aztech_fops,
index 36b850fc14b4076225e13b1dcf3ef6bda441cdbe..362a279f06801657ca083ca0abf4c33fefb61981 100644 (file)
@@ -586,7 +586,6 @@ static const struct v4l2_ioctl_ops cadet_ioctl_ops = {
 };
 
 static struct video_device cadet_radio = {
-       .owner          = THIS_MODULE,
        .name           = "Cadet radio",
        .type           = VID_TYPE_TUNER,
        .fops           = &cadet_fops,
index c41b35f3b125ee552739d5325ed1f0be14833ebb..b8c515762b49ecd588cba7a1c02eb2c9d085ae28 100644 (file)
@@ -391,7 +391,6 @@ static const struct v4l2_ioctl_ops gemtek_pci_ioctl_ops = {
 };
 
 static struct video_device vdev_template = {
-       .owner         = THIS_MODULE,
        .name          = "Gemtek PCI Radio",
        .type          = VID_TYPE_TUNER,
        .fops          = &gemtek_pci_fops,
index f82b59f35e334b79fe30836a18e632478e36660f..45b47c1643eedb691d494bba34df829eb03ff15b 100644 (file)
@@ -569,7 +569,6 @@ static const struct v4l2_ioctl_ops gemtek_ioctl_ops = {
 };
 
 static struct video_device gemtek_radio = {
-       .owner                  = THIS_MODULE,
        .name                   = "GemTek Radio card",
        .type                   = VID_TYPE_TUNER,
        .fops                   = &gemtek_fops,
index 780516daebba542b05249c383829eb53641b632f..1b90996064943b1138cd26bd9450267bf6f84e26 100644 (file)
@@ -390,7 +390,6 @@ static const struct v4l2_ioctl_ops maxiradio_ioctl_ops = {
 };
 
 static struct video_device maxiradio_radio = {
-       .owner              = THIS_MODULE,
        .name               = "Maxi Radio FM2000 radio",
        .type               = VID_TYPE_TUNER,
        .fops               = &maxiradio_fops,
index 045ae9d1067c3dfd3d04578c2a60ea1179e787b9..e065cb16dc5a3d44b7b574dd5dc2a269821c934e 100644 (file)
@@ -311,7 +311,6 @@ static const struct v4l2_ioctl_ops rtrack2_ioctl_ops = {
 };
 
 static struct video_device rtrack2_radio = {
-       .owner          = THIS_MODULE,
        .name           = "RadioTrack II radio",
        .type           = VID_TYPE_TUNER,
        .fops           = &rtrack2_fops,
index 75b68a0245410d4019fb93e5a71302aeb4c14d10..975f8521848a22a22a48912ac5ce2caa711f2346 100644 (file)
@@ -311,7 +311,6 @@ static const struct v4l2_ioctl_ops fmi_ioctl_ops = {
 };
 
 static struct video_device fmi_radio = {
-       .owner          = THIS_MODULE,
        .name           = "SF16FMx radio",
        .type           = VID_TYPE_TUNER,
        .fops           = &fmi_fops,
index 5ffddce800113ffbcf143649e7d1a4cdd86a2768..2786722b4946e241bf791722fdf692aafb5612c8 100644 (file)
@@ -427,7 +427,6 @@ static const struct v4l2_ioctl_ops fmr2_ioctl_ops = {
 };
 
 static struct video_device fmr2_radio = {
-       .owner          = THIS_MODULE,
        .name           = "SF16FMR2 radio",
        .type           = VID_TYPE_TUNER,
        .fops           = &fmr2_fops,
index b829c67ecf0cf754bae6755b92058cc83e30c5e3..3cf78ccdc58f2ce1d596713d5d541aa3452d2100 100644 (file)
@@ -1611,7 +1611,6 @@ static struct video_device si470x_viddev_template = {
        .name                   = DRIVER_NAME,
        .type                   = VID_TYPE_TUNER,
        .release                = video_device_release,
-       .owner                  = THIS_MODULE,
 };
 
 
index 3a67471f999c96f8e28f2416b84990a66bf77b81..b3f669d0691f986f83573429c5127eb92f437056 100644 (file)
@@ -383,7 +383,6 @@ static const struct v4l2_ioctl_ops terratec_ioctl_ops = {
 };
 
 static struct video_device terratec_radio = {
-       .owner          = THIS_MODULE,
        .name           = "TerraTec ActiveRadio",
        .type           = VID_TYPE_TUNER,
        .fops           = &terratec_fops,
index e334001809159097566ff31b4620dea2c884f163..74aefda868e6ae712570d93498aa81c11d5d0525 100644 (file)
@@ -363,7 +363,6 @@ static const struct v4l2_ioctl_ops trust_ioctl_ops = {
 };
 
 static struct video_device trust_radio = {
-       .owner          = THIS_MODULE,
        .name           = "Trust FM Radio",
        .type           = VID_TYPE_TUNER,
        .fops           = &trust_fops,
index 48b5d2bc627603518a78fa26eaa2a48353c4db37..6eb39b7ab75ed1a449cd61c0df478ff7696d6125 100644 (file)
@@ -361,7 +361,6 @@ static const struct v4l2_ioctl_ops typhoon_ioctl_ops = {
 };
 
 static struct video_device typhoon_radio = {
-       .owner          = THIS_MODULE,
        .name           = "Typhoon Radio",
        .type           = VID_TYPE_TUNER,
        .fops           = &typhoon_fops,
index c60344326cd6f6580ab7df41de5e4ee7cd649a7b..4afcb09a4af3c611f0a7cb00d6487b0afb271c97 100644 (file)
@@ -424,7 +424,6 @@ static const struct v4l2_ioctl_ops zoltrix_ioctl_ops = {
 };
 
 static struct video_device zoltrix_radio = {
-       .owner          = THIS_MODULE,
        .name           = "Zoltrix Radio Plus",
        .type           = VID_TYPE_TUNER,
        .fops           = &zoltrix_fops,
index e367862313e198259b9b37176b2956e66a8ecb67..ec870c781c021ef5b702e5c5dcf36bac2583fe5e 100644 (file)
@@ -907,7 +907,6 @@ static const struct file_operations qcam_fops = {
 };
 static struct video_device qcam_template=
 {
-       .owner          = THIS_MODULE,
        .name           = "Connectix Quickcam",
        .type           = VID_TYPE_CAPTURE,
        .fops           = &qcam_fops,
index 8d690410c84f20f5bf74896d8153291ae6a61c9d..62ed8949d46152dcf2b7cf7d973bb2f9b440d955 100644 (file)
@@ -702,7 +702,6 @@ static const struct file_operations qcam_fops = {
 
 static struct video_device qcam_template=
 {
-       .owner          = THIS_MODULE,
        .name           = "Colour QuickCam",
        .type           = VID_TYPE_CAPTURE,
        .fops           = &qcam_fops,
index 2a81376ef5038dadaf621e2441588bab05eed4c6..5d2ef48137c407bd8160c51ac7bab7abb493eeb1 100644 (file)
@@ -3799,7 +3799,6 @@ static const struct file_operations cpia_fops = {
 };
 
 static struct video_device cpia_template = {
-       .owner          = THIS_MODULE,
        .name           = "CPiA Camera",
        .type           = VID_TYPE_CAPTURE,
        .fops           = &cpia_fops,
index 8817c3841463d6e1bd0be51d58e26acba5f87836..4e45de78df59716c1d8c62002d42d94e1eff7276 100644 (file)
@@ -1936,7 +1936,6 @@ static const struct file_operations fops_template = {
 
 static struct video_device cpia2_template = {
        /* I could not find any place for the old .initialize initializer?? */
-       .owner=         THIS_MODULE,
        .name=          "CPiA2 Camera",
        .type=          VID_TYPE_CAPTURE,
        .type2 =        V4L2_CAP_VIDEO_CAPTURE |
index 8cd5f37425eaccfdc67129abde20458c8b186502..3e71ea7bbe244e0a05781e37fe60a8a7fd1a442a 100644 (file)
@@ -2585,7 +2585,6 @@ et61x251_usb_probe(struct usb_interface* intf, const struct usb_device_id* id)
        }
 
        strcpy(cam->v4ldev->name, "ET61X[12]51 PC Camera");
-       cam->v4ldev->owner = THIS_MODULE;
        cam->v4ldev->type = VID_TYPE_CAPTURE | VID_TYPE_SCALES;
        cam->v4ldev->fops = &et61x251_fops;
        cam->v4ldev->minor = video_nr[dev_nr];
index fd16ef0a58686d9595d4ed0de8c973da67000261..f9a6e1e8b4bdd87a5c8fa0a9fc46b1e69e86cce8 100644 (file)
@@ -1720,7 +1720,6 @@ static const struct v4l2_ioctl_ops meye_ioctl_ops = {
 };
 
 static struct video_device meye_template = {
-       .owner          = THIS_MODULE,
        .name           = "meye",
        .type           = VID_TYPE_CAPTURE,
        .fops           = &meye_fops,
index b72e5660bc193c5327fb161989e8df7b549f9fc2..f732b035570fdde01f1b5f9d9e834dbb150d4610 100644 (file)
@@ -4666,7 +4666,6 @@ static const struct file_operations ov511_fops = {
 };
 
 static struct video_device vdev_template = {
-       .owner =        THIS_MODULE,
        .name =         "OV511 USB Camera",
        .type =         VID_TYPE_CAPTURE,
        .fops =         &ov511_fops,
index 260c1d3f9692550a51fa91d68d6bdb56f3bd83eb..8c72e4df85ab43ca0d269c876221b139f80a7534 100644 (file)
@@ -895,7 +895,6 @@ static const struct file_operations pms_fops = {
 
 static struct video_device pms_template=
 {
-       .owner          = THIS_MODULE,
        .name           = "Mediavision PMS",
        .type           = VID_TYPE_CAPTURE,
        .fops           = &pms_fops,
index bd6169fbdcca91f66b8cc1cc885d2eb4e40b3e07..ceb549ac752d0fa399b6eb9fc5ae1a209bdf5872 100644 (file)
@@ -1161,7 +1161,6 @@ static const struct file_operations vdev_fops = {
 
 
 static struct video_device vdev_template = {
-       .owner      = THIS_MODULE,
        .type       = VID_TYPE_CAPTURE | VID_TYPE_TUNER,
        .type2      = (V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VBI_CAPTURE
                       | V4L2_CAP_TUNER | V4L2_CAP_AUDIO
index b4de82115e5b68e2addfe1ad04f22199d06355f0..4625b265bf9828d611b48ef7ae2f5909c24b3cb2 100644 (file)
@@ -165,7 +165,6 @@ static const struct file_operations pwc_fops = {
        .llseek =       no_llseek,
 };
 static struct video_device pwc_template = {
-       .owner =        THIS_MODULE,
        .name =         "Philips Webcam",       /* Filled in later */
        .type =         VID_TYPE_CAPTURE,
        .release =      video_device_release,
@@ -1769,7 +1768,6 @@ static int usb_pwc_probe(struct usb_interface *intf, const struct usb_device_id
        memcpy(pdev->vdev, &pwc_template, sizeof(pwc_template));
        pdev->vdev->parent = &(udev->dev);
        strcpy(pdev->vdev->name, name);
-       pdev->vdev->owner = THIS_MODULE;
        video_set_drvdata(pdev->vdev, pdev);
 
        pdev->release = le16_to_cpu(udev->descriptor.bcdDevice);
index 8d69632a66581ff483c528e4accfa014acc287df..e6a3fa4829827be13a36bfd43d3cacaa479b5e22 100644 (file)
@@ -830,7 +830,6 @@ static const struct file_operations saa_fops = {
 
 static struct video_device saa_template =
 {
-       .owner    = THIS_MODULE,
        .name     = IF_NAME,
        .type     = VID_TYPE_TELETEXT,
        .fops     = &saa_fops,
index 812cfe3fd3f30185477e69d300b5579621e6831c..6f14619bda4a5b87f04890605fbd0fa39187c97b 100644 (file)
@@ -711,7 +711,6 @@ static const struct file_operations saa_fops = {
 
 static struct video_device saa_template =
 {
-       .owner          = THIS_MODULE,
        .name           = IF_NAME,
        .type           = VID_TYPE_TELETEXT,    /*| VID_TYPE_TUNER ?? */
        .fops           = &saa_fops,
index 1cd629380f7183c94882fca69c1f4a4e85c67784..b4dd60b0f8f2fc225d1c117273510199247d6ada 100644 (file)
@@ -1230,7 +1230,6 @@ static const struct file_operations se401_fops = {
        .llseek =       no_llseek,
 };
 static struct video_device se401_template = {
-       .owner =        THIS_MODULE,
        .name =         "se401 USB camera",
        .type =         VID_TYPE_CAPTURE,
        .fops =         &se401_fops,
index 475b78191151ed6e9bf4c9825ac8c4493a8eace9..c68bf0921e9eb00f64426cef9a6b104b5fd1fa34 100644 (file)
@@ -3309,7 +3309,6 @@ sn9c102_usb_probe(struct usb_interface* intf, const struct usb_device_id* id)
        }
 
        strcpy(cam->v4ldev->name, "SN9C1xx PC Camera");
-       cam->v4ldev->owner = THIS_MODULE;
        cam->v4ldev->type = VID_TYPE_CAPTURE | VID_TYPE_SCALES;
        cam->v4ldev->fops = &sn9c102_fops;
        cam->v4ldev->minor = video_nr[dev_nr];
index da94d3fd8fac7ea99f5687e0c47d1d0c07423429..fdcb58b0c12155c3fa7961b7433c54181daadc8a 100644 (file)
@@ -1401,7 +1401,6 @@ static const struct file_operations stv680_fops = {
        .llseek =       no_llseek,
 };
 static struct video_device stv680_template = {
-       .owner =        THIS_MODULE,
        .name =         "STV0680 USB camera",
        .type =         VID_TYPE_CAPTURE,
        .fops =         &stv680_fops,
index 7e6ab2910c138a2ead2bfc44d19f1c9e301df9b6..357cee40fb38301fc4e1df4c63707c0c316efc7d 100644 (file)
@@ -952,7 +952,6 @@ static const struct file_operations usbvideo_fops = {
        .llseek = no_llseek,
 };
 static const struct video_device usbvideo_template = {
-       .owner =      THIS_MODULE,
        .type =       VID_TYPE_CAPTURE,
        .fops =       &usbvideo_fops,
 };
index 40d053e0d5bf85254d5a1e13d841ca7878f66282..e2dec6fb0da945ffbc4d9b6227e611cbb17dc6d0 100644 (file)
@@ -791,7 +791,6 @@ static const struct file_operations vicam_fops = {
 };
 
 static struct video_device vicam_template = {
-       .owner          = THIS_MODULE,
        .name           = "ViCam-based USB Camera",
        .type           = VID_TYPE_CAPTURE,
        .fops           = &vicam_fops,
index 7eccdc1ea2d7a4e50b11fcc514c78f2c4bbea45c..e97f955aad676e6efd47c36f1a35f5b3c0dd4710 100644 (file)
@@ -1406,7 +1406,6 @@ static const struct v4l2_ioctl_ops usbvision_ioctl_ops = {
 };
 
 static struct video_device usbvision_video_template = {
-       .owner             = THIS_MODULE,
        .type           = VID_TYPE_TUNER | VID_TYPE_CAPTURE,
        .fops           = &usbvision_fops,
        .ioctl_ops      = &usbvision_ioctl_ops,
@@ -1445,7 +1444,6 @@ static const struct v4l2_ioctl_ops usbvision_radio_ioctl_ops = {
 };
 
 static struct video_device usbvision_radio_template = {
-       .owner             = THIS_MODULE,
        .type           = VID_TYPE_TUNER,
        .fops           = &usbvision_radio_fops,
        .name           = "usbvision-radio",
@@ -1469,7 +1467,6 @@ static const struct file_operations usbvision_vbi_fops = {
 
 static struct video_device usbvision_vbi_template=
 {
-       .owner             = THIS_MODULE,
        .type           = VID_TYPE_TUNER,
        .fops           = &usbvision_vbi_fops,
        .release        = video_device_release,
index a63e11f8399b2b00225e10d83c9569481982613c..1641998c73e6067559b3f472b7b223b77872de32 100644 (file)
@@ -196,7 +196,6 @@ static const struct file_operations w9966_fops = {
        .llseek         = no_llseek,
 };
 static struct video_device w9966_template = {
-       .owner          = THIS_MODULE,
        .name           = W9966_DRIVERNAME,
        .type           = VID_TYPE_CAPTURE | VID_TYPE_SCALES,
        .fops           = &w9966_fops,
index 56bbeec542c5fb0fde6e6e45fb239f3d6bb73677..8f665953c80c5ae5287303e20c5952a0bc96a002 100644 (file)
@@ -3550,7 +3550,6 @@ w9968cf_usb_probe(struct usb_interface* intf, const struct usb_device_id* id)
        }
 
        strcpy(cam->v4ldev->name, symbolic(camlist, mod_id));
-       cam->v4ldev->owner = THIS_MODULE;
        cam->v4ldev->type = VID_TYPE_CAPTURE | VID_TYPE_SCALES;
        cam->v4ldev->fops = &w9968cf_fops;
        cam->v4ldev->minor = video_nr[dev_nr];
index e5c4e9f5193fed56cbd2e504e25dc2fdeb662e5b..0978a7e946b4b218587e0e39de5666fc681be74c 100644 (file)
@@ -1985,7 +1985,6 @@ zc0301_usb_probe(struct usb_interface* intf, const struct usb_device_id* id)
        }
 
        strcpy(cam->v4ldev->name, "ZC0301[P] PC Camera");
-       cam->v4ldev->owner = THIS_MODULE;
        cam->v4ldev->type = VID_TYPE_CAPTURE | VID_TYPE_SCALES;
        cam->v4ldev->fops = &zc0301_fops;
        cam->v4ldev->minor = video_nr[dev_nr];
index 617ed2856b22412c324a83ad1522494a0965275a..36ba36a5e2ea626f6ddb49de5d9bbdbb1aa19ca6 100644 (file)
@@ -779,7 +779,6 @@ static const struct v4l2_ioctl_ops zr364xx_ioctl_ops = {
 };
 
 static struct video_device zr364xx_template = {
-       .owner = THIS_MODULE,
        .name = DRIVER_DESC,
        .type = VID_TYPE_CAPTURE,
        .fops = &zr364xx_fops,
index d9149cd25b31767fa5d73f23eee7006b1aa32848..ae2b1e6bdf47bf1cf0427ad39e6ff67b363c0094 100644 (file)
@@ -9,7 +9,6 @@
 #ifndef _V4L2_DEV_H
 #define _V4L2_DEV_H
 
-#define OBSOLETE_OWNER   1 /* to be removed soon */
 #define OBSOLETE_DEVDATA 1 /* to be removed soon */
 
 #include <linux/poll.h>
@@ -76,14 +75,12 @@ struct video_device
        /* ioctl callbacks */
        const struct v4l2_ioctl_ops *ioctl_ops;
 
-#ifdef OBSOLETE_OWNER /* to be removed soon */
-/* obsolete -- fops->owner is used instead */
-struct module *owner;
-/* dev->driver_data will be used instead some day.
-       * Use the video_{get|set}_drvdata() helper functions,
-       * so the switch over will be transparent for you.
-       * Or use {pci|usb}_{get|set}_drvdata() directly. */
-void *priv;
+#ifdef OBSOLETE_DEVDATA /* to be removed soon */
+       /* dev->driver_data will be used instead some day.
+        * Use the video_{get|set}_drvdata() helper functions,
+        * so the switch over will be transparent for you.
+        * Or use {pci|usb}_{get|set}_drvdata() directly. */
+       void *priv;
 #endif
 
        /* for videodev.c intenal usage -- please don't touch */
@@ -126,7 +123,7 @@ video_device_remove_file(struct video_device *vfd,
 
 #endif /* CONFIG_VIDEO_V4L1_COMPAT */
 
-#ifdef OBSOLETE_OWNER /* to be removed soon */
+#ifdef OBSOLETE_DEVDATA /* to be removed soon */
 /* helper functions to access driver private data. */
 static inline void *video_get_drvdata(struct video_device *dev)
 {
@@ -138,9 +135,6 @@ static inline void video_set_drvdata(struct video_device *dev, void *data)
        dev->priv = data;
 }
 
-#endif
-
-#ifdef OBSOLETE_DEVDATA /* to be removed soon */
 /* Obsolete stuff - Still needed for radio devices and obsolete drivers */
 extern struct video_device* video_devdata(struct file*);
 extern int video_exclusive_open(struct inode *inode, struct file *file);