[media] saa7164: Removed use of the BKL
authorSteven Toth <stoth@kernellabs.com>
Thu, 7 Oct 2010 00:52:22 +0000 (21:52 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Thu, 21 Oct 2010 09:55:32 +0000 (07:55 -0200)
Remove usage of the BKL and instead used video_set_drvdata() during
open fops.

Signed-off-by: Steven Toth <stoth@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/saa7164/saa7164-encoder.c
drivers/media/video/saa7164/saa7164-vbi.c

index d02682e24c20c41fe0ab66a1811ae90cc101b797..cbb53d0ee979e75cd02d7aa9e6b6f8db4f1cd627 100644 (file)
@@ -1054,57 +1054,26 @@ out:
 
 static int fops_open(struct file *file)
 {
-       struct saa7164_dev *h, *dev = NULL;
-       struct saa7164_port *port = NULL;
-       struct saa7164_port *portc = NULL;
-       struct saa7164_port *portd = NULL;
+       struct saa7164_dev *dev;
+       struct saa7164_port *port;
        struct saa7164_encoder_fh *fh;
-       struct list_head *list;
-       int minor = video_devdata(file)->minor;
 
-       dprintk(DBGLVL_ENC, "%s()\n", __func__);
-
-       /* TODO: Really, the BKL? - remove this */
-       lock_kernel();
-       list_for_each(list, &saa7164_devlist) {
-               h = list_entry(list, struct saa7164_dev, devlist);
-
-               portc = &h->ports[SAA7164_PORT_ENC1];
-               portd = &h->ports[SAA7164_PORT_ENC2];
-
-               if (portc->v4l_device &&
-                   portc->v4l_device->minor == minor) {
-                       dev = h;
-                       port = portc;
-                       break;
-               }
-
-               if (portd->v4l_device &&
-                   portd->v4l_device->minor == minor) {
-                       dev = h;
-                       port = portd;
-                       break;
-               }
+       port = (struct saa7164_port *)video_get_drvdata(video_devdata(file));
+       if (!port)
+               return -ENODEV;
 
-       }
+       dev = port->dev;
 
-       if (port == NULL) {
-               unlock_kernel();
-               return -ENODEV;
-       }
+       dprintk(DBGLVL_ENC, "%s()\n", __func__);
 
        /* allocate + initialize per filehandle data */
        fh = kzalloc(sizeof(*fh), GFP_KERNEL);
-       if (NULL == fh) {
-               unlock_kernel();
+       if (NULL == fh)
                return -ENOMEM;
-       }
 
        file->private_data = fh;
        fh->port = port;
 
-       unlock_kernel();
-
        return 0;
 }
 
@@ -1474,6 +1443,7 @@ int saa7164_encoder_register(struct saa7164_port *port)
                goto failed;
        }
 
+       video_set_drvdata(port->v4l_device, port);
        result = video_register_device(port->v4l_device,
                VFL_TYPE_GRABBER, -1);
        if (result < 0) {
index a4bcf989a19419381991d7b1d81e39daf322ce23..323c7cdca37b93e3728bc12401c8e0434fe9eca4 100644 (file)
@@ -1001,57 +1001,26 @@ int saa7164_vbi_fmt(struct file *file, void *priv, struct v4l2_format *f)
 
 static int fops_open(struct file *file)
 {
-       struct saa7164_dev *h, *dev = NULL;
-       struct saa7164_port *port = NULL;
-       struct saa7164_port *porte = NULL;
-       struct saa7164_port *portf = NULL;
+       struct saa7164_dev *dev;
+       struct saa7164_port *port;
        struct saa7164_vbi_fh *fh;
-       struct list_head *list;
-       int minor = video_devdata(file)->minor;
 
-       dprintk(DBGLVL_VBI, "%s()\n", __func__);
-
-       /* TODO: Really, the BKL? - remove this */
-       lock_kernel();
-       list_for_each(list, &saa7164_devlist) {
-               h = list_entry(list, struct saa7164_dev, devlist);
-
-               porte = &h->ports[SAA7164_PORT_VBI1];
-               portf = &h->ports[SAA7164_PORT_VBI2];
-
-               if (porte->v4l_device &&
-                   porte->v4l_device->minor == minor) {
-                       dev = h;
-                       port = porte;
-                       break;
-               }
-
-               if (portf->v4l_device &&
-                   portf->v4l_device->minor == minor) {
-                       dev = h;
-                       port = portf;
-                       break;
-               }
+       port = (struct saa7164_port *)video_get_drvdata(video_devdata(file));
+       if (!port)
+               return -ENODEV;
 
-       }
+       dev = port->dev;
 
-       if (port == NULL) {
-               unlock_kernel();
-               return -ENODEV;
-       }
+       dprintk(DBGLVL_VBI, "%s()\n", __func__);
 
        /* allocate + initialize per filehandle data */
        fh = kzalloc(sizeof(*fh), GFP_KERNEL);
-       if (NULL == fh) {
-               unlock_kernel();
+       if (NULL == fh)
                return -ENOMEM;
-       }
 
        file->private_data = fh;
        fh->port = port;
 
-       unlock_kernel();
-
        return 0;
 }
 
@@ -1363,6 +1332,7 @@ int saa7164_vbi_register(struct saa7164_port *port)
                goto failed;
        }
 
+       video_set_drvdata(port->v4l_device, port);
        result = video_register_device(port->v4l_device,
                VFL_TYPE_VBI, -1);
        if (result < 0) {