summaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
authorDean Anderson <dean@sensoray.com>2010-04-08 23:46:08 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-05-19 12:57:23 -0300
commita5ef91c9a55c89e8c57e628d371107cdfe2d0bd9 (patch)
tree9e48cde53711ce1c8f56bf43477cdb518527ca84 /drivers/media
parentc0a2ec956d6e61081b6f98b839b0e28979941687 (diff)
V4L/DVB: s2255drv: removal of big kernel lock
big kernel lock removed from open function. v4l2 code does not require locking the open function except to check asynchronous firmware load state, which is protected by a mutex Signed-off-by: Dean Anderson <dean@sensoray.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/video/s2255drv.c11
1 files changed, 1 insertions, 10 deletions
diff --git a/drivers/media/video/s2255drv.c b/drivers/media/video/s2255drv.c
index 4c5d3672e2d..83ee93d4ad1 100644
--- a/drivers/media/video/s2255drv.c
+++ b/drivers/media/video/s2255drv.c
@@ -1753,7 +1753,6 @@ static int s2255_open(struct file *file)
int state;
dprintk(1, "s2255: open called (dev=%s)\n",
video_device_node_name(vdev));
- lock_kernel();
for (i = 0; i < MAX_CHANNELS; i++)
if (&dev->vdev[i] == vdev) {
cur_channel = i;
@@ -1769,7 +1768,6 @@ static int s2255_open(struct file *file)
switch (state) {
case S2255_FW_DISCONNECTING:
mutex_unlock(&dev->open_lock);
- unlock_kernel();
return -ENODEV;
case S2255_FW_FAILED:
s2255_dev_err(&dev->udev->dev,
@@ -1809,30 +1807,24 @@ static int s2255_open(struct file *file)
break;
case S2255_FW_FAILED:
printk(KERN_INFO "2255 firmware load failed.\n");
- unlock_kernel();
return -ENODEV;
case S2255_FW_DISCONNECTING:
printk(KERN_INFO "%s: disconnecting\n", __func__);
- unlock_kernel();
return -ENODEV;
case S2255_FW_LOADED_DSPWAIT:
case S2255_FW_NOTLOADED:
printk(KERN_INFO "%s: firmware not loaded yet"
"please try again later\n",
__func__);
- unlock_kernel();
return -EAGAIN;
default:
printk(KERN_INFO "%s: unknown state\n", __func__);
- unlock_kernel();
return -EFAULT;
}
/* 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->dev = dev;
fh->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
@@ -1860,7 +1852,6 @@ static int s2255_open(struct file *file)
fh->type,
V4L2_FIELD_INTERLACED,
sizeof(struct s2255_buffer), fh);
- unlock_kernel();
return 0;
}