git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[pandora-kernel.git]
/
drivers
/
media
/
video
/
cx88
/
cx88-blackbird.c
diff --git
a/drivers/media/video/cx88/cx88-blackbird.c
b/drivers/media/video/cx88/cx88-blackbird.c
index
e46e1ce
..
417d1d5
100644
(file)
--- a/
drivers/media/video/cx88/cx88-blackbird.c
+++ b/
drivers/media/video/cx88/cx88-blackbird.c
@@
-9,7
+9,7
@@
* (c) 2005-2006 Mauro Carvalho Chehab <mchehab@infradead.org>
* - video_ioctl2 conversion
*
* (c) 2005-2006 Mauro Carvalho Chehab <mchehab@infradead.org>
* - video_ioctl2 conversion
*
- * Includes parts from the ivtv driver
( http://ivtv.sourceforge.net/),
+ * Includes parts from the ivtv driver
<http://sourceforge.net/projects/ivtv/>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@
-1057,7
+1057,7
@@
static int mpeg_open(struct file *file)
dprintk( 1, "%s\n", __func__);
dprintk( 1, "%s\n", __func__);
-
lock_kernel(
);
+
mutex_lock(&dev->core->lock
);
/* Make sure we can acquire the hardware */
drv = cx8802_get_driver(dev, CX88_MPEG_BLACKBIRD);
/* Make sure we can acquire the hardware */
drv = cx8802_get_driver(dev, CX88_MPEG_BLACKBIRD);
@@
-1065,7
+1065,7
@@
static int mpeg_open(struct file *file)
err = drv->request_acquire(drv);
if(err != 0) {
dprintk(1,"%s: Unable to acquire hardware, %d\n", __func__, err);
err = drv->request_acquire(drv);
if(err != 0) {
dprintk(1,"%s: Unable to acquire hardware, %d\n", __func__, err);
-
unlock_kernel()
;
+
mutex_unlock(&dev->core->lock);
;
return err;
}
}
return err;
}
}
@@
-1073,7
+1073,7
@@
static int mpeg_open(struct file *file)
if (!atomic_read(&dev->core->mpeg_users) && blackbird_initialize_codec(dev) < 0) {
if (drv)
drv->request_release(drv);
if (!atomic_read(&dev->core->mpeg_users) && blackbird_initialize_codec(dev) < 0) {
if (drv)
drv->request_release(drv);
-
unlock_kernel(
);
+
mutex_unlock(&dev->core->lock
);
return -EINVAL;
}
dprintk(1, "open dev=%s\n", video_device_node_name(vdev));
return -EINVAL;
}
dprintk(1, "open dev=%s\n", video_device_node_name(vdev));
@@
-1083,7
+1083,7
@@
static int mpeg_open(struct file *file)
if (NULL == fh) {
if (drv)
drv->request_release(drv);
if (NULL == fh) {
if (drv)
drv->request_release(drv);
-
unlock_kernel(
);
+
mutex_unlock(&dev->core->lock
);
return -ENOMEM;
}
file->private_data = fh;
return -ENOMEM;
}
file->private_data = fh;
@@
-1094,15
+1094,14
@@
static int mpeg_open(struct file *file)
V4L2_BUF_TYPE_VIDEO_CAPTURE,
V4L2_FIELD_INTERLACED,
sizeof(struct cx88_buffer),
V4L2_BUF_TYPE_VIDEO_CAPTURE,
V4L2_FIELD_INTERLACED,
sizeof(struct cx88_buffer),
- fh);
+ fh
, NULL
);
/* FIXME: locking against other video device */
cx88_set_scale(dev->core, dev->width, dev->height,
fh->mpegq.field);
/* FIXME: locking against other video device */
cx88_set_scale(dev->core, dev->width, dev->height,
fh->mpegq.field);
- unlock_kernel();
atomic_inc(&dev->core->mpeg_users);
atomic_inc(&dev->core->mpeg_users);
-
+ mutex_unlock(&dev->core->lock);
return 0;
}
return 0;
}
@@
-1120,8
+1119,11
@@
static int mpeg_release(struct file *file)
videobuf_stop(&fh->mpegq);
videobuf_mmap_free(&fh->mpegq);
videobuf_stop(&fh->mpegq);
videobuf_mmap_free(&fh->mpegq);
+
+ mutex_lock(&dev->core->lock);
file->private_data = NULL;
kfree(fh);
file->private_data = NULL;
kfree(fh);
+ mutex_unlock(&dev->core->lock);
/* Make sure we release the hardware */
drv = cx8802_get_driver(dev, CX88_MPEG_BLACKBIRD);
/* Make sure we release the hardware */
drv = cx8802_get_driver(dev, CX88_MPEG_BLACKBIRD);