diff options
author | Steven Toth <stoth@kernellabs.com> | 2010-10-06 21:52:22 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-10-21 07:55:32 -0200 |
commit | 214ce3faacafa3cca2fdd340d18ff35cfe463c2b (patch) | |
tree | f0cf942a8f78626d1a4ee29a361c360e65b96088 /drivers/media/video/saa7164/saa7164-vbi.c | |
parent | 18024ee2df675ad921a8c65e7a9e22180d32da84 (diff) | |
download | blackbird-op-linux-214ce3faacafa3cca2fdd340d18ff35cfe463c2b.tar.gz blackbird-op-linux-214ce3faacafa3cca2fdd340d18ff35cfe463c2b.zip |
[media] saa7164: Removed use of the BKL
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>
Diffstat (limited to 'drivers/media/video/saa7164/saa7164-vbi.c')
-rw-r--r-- | drivers/media/video/saa7164/saa7164-vbi.c | 48 |
1 files changed, 9 insertions, 39 deletions
diff --git a/drivers/media/video/saa7164/saa7164-vbi.c b/drivers/media/video/saa7164/saa7164-vbi.c index a4bcf989a194..323c7cdca37b 100644 --- a/drivers/media/video/saa7164/saa7164-vbi.c +++ b/drivers/media/video/saa7164/saa7164-vbi.c @@ -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) { |