diff options
author | Steven Toth <stoth@kernellabs.com> | 2010-10-07 02:52:22 +0200 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-10-21 11:55:32 +0200 |
commit | 214ce3faacafa3cca2fdd340d18ff35cfe463c2b (patch) | |
tree | f0cf942a8f78626d1a4ee29a361c360e65b96088 /drivers | |
parent | [media] saa7164: Remove V4L2_CAP_STREAMING capability flag (diff) | |
download | linux-214ce3faacafa3cca2fdd340d18ff35cfe463c2b.tar.xz 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')
-rw-r--r-- | drivers/media/video/saa7164/saa7164-encoder.c | 48 | ||||
-rw-r--r-- | drivers/media/video/saa7164/saa7164-vbi.c | 48 |
2 files changed, 18 insertions, 78 deletions
diff --git a/drivers/media/video/saa7164/saa7164-encoder.c b/drivers/media/video/saa7164/saa7164-encoder.c index d02682e24c20..cbb53d0ee979 100644 --- a/drivers/media/video/saa7164/saa7164-encoder.c +++ b/drivers/media/video/saa7164/saa7164-encoder.c @@ -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) { 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) { |