diff options
author | Ingo Molnar <mingo@elte.hu> | 2006-01-15 04:52:23 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@brturbo.com.br> | 2006-01-15 06:03:49 -0500 |
commit | 1e4baed379a2bff3c728ea34602d3432fb047af8 (patch) | |
tree | 69eff828924c8d17367d2e90cfbad4e7972b97a1 /drivers | |
parent | 7d83e8431ae531e907f09c277ab4ab4620092518 (diff) |
V4L/DVB (3380): Semaphore to mutex conversion on drivers/media
- Semaphore to mutex conversion.
The conversion was generated via scripts, and the result was validated
automatically via a script as well.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/media/dvb/dvb-core/dvbdev.c | 22 | ||||
-rw-r--r-- | drivers/media/video/cx88/cx88-core.c | 15 | ||||
-rw-r--r-- | drivers/media/video/em28xx/em28xx-video.c | 7 | ||||
-rw-r--r-- | drivers/media/video/saa7134/saa7134-core.c | 19 | ||||
-rw-r--r-- | drivers/media/video/videodev.c | 25 |
5 files changed, 45 insertions, 43 deletions
diff --git a/drivers/media/dvb/dvb-core/dvbdev.c b/drivers/media/dvb/dvb-core/dvbdev.c index 06b696e9acbd..54f8b95717b0 100644 --- a/drivers/media/dvb/dvb-core/dvbdev.c +++ b/drivers/media/dvb/dvb-core/dvbdev.c | |||
@@ -33,7 +33,7 @@ | |||
33 | #include <linux/device.h> | 33 | #include <linux/device.h> |
34 | #include <linux/fs.h> | 34 | #include <linux/fs.h> |
35 | #include <linux/cdev.h> | 35 | #include <linux/cdev.h> |
36 | 36 | #include <linux/mutex.h> | |
37 | #include "dvbdev.h" | 37 | #include "dvbdev.h" |
38 | 38 | ||
39 | static int dvbdev_debug; | 39 | static int dvbdev_debug; |
@@ -44,7 +44,7 @@ MODULE_PARM_DESC(dvbdev_debug, "Turn on/off device debugging (default:off)."); | |||
44 | #define dprintk if (dvbdev_debug) printk | 44 | #define dprintk if (dvbdev_debug) printk |
45 | 45 | ||
46 | static LIST_HEAD(dvb_adapter_list); | 46 | static LIST_HEAD(dvb_adapter_list); |
47 | static DECLARE_MUTEX(dvbdev_register_lock); | 47 | static DEFINE_MUTEX(dvbdev_register_lock); |
48 | 48 | ||
49 | static const char * const dnames[] = { | 49 | static const char * const dnames[] = { |
50 | "video", "audio", "sec", "frontend", "demux", "dvr", "ca", | 50 | "video", "audio", "sec", "frontend", "demux", "dvr", "ca", |
@@ -202,11 +202,11 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev, | |||
202 | struct dvb_device *dvbdev; | 202 | struct dvb_device *dvbdev; |
203 | int id; | 203 | int id; |
204 | 204 | ||
205 | if (down_interruptible (&dvbdev_register_lock)) | 205 | if (mutex_lock_interruptible(&dvbdev_register_lock)) |
206 | return -ERESTARTSYS; | 206 | return -ERESTARTSYS; |
207 | 207 | ||
208 | if ((id = dvbdev_get_free_id (adap, type)) < 0) { | 208 | if ((id = dvbdev_get_free_id (adap, type)) < 0) { |
209 | up (&dvbdev_register_lock); | 209 | mutex_unlock(&dvbdev_register_lock); |
210 | *pdvbdev = NULL; | 210 | *pdvbdev = NULL; |
211 | printk ("%s: could get find free device id...\n", __FUNCTION__); | 211 | printk ("%s: could get find free device id...\n", __FUNCTION__); |
212 | return -ENFILE; | 212 | return -ENFILE; |
@@ -215,11 +215,11 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev, | |||
215 | *pdvbdev = dvbdev = kmalloc(sizeof(struct dvb_device), GFP_KERNEL); | 215 | *pdvbdev = dvbdev = kmalloc(sizeof(struct dvb_device), GFP_KERNEL); |
216 | 216 | ||
217 | if (!dvbdev) { | 217 | if (!dvbdev) { |
218 | up(&dvbdev_register_lock); | 218 | mutex_unlock(&dvbdev_register_lock); |
219 | return -ENOMEM; | 219 | return -ENOMEM; |
220 | } | 220 | } |
221 | 221 | ||
222 | up (&dvbdev_register_lock); | 222 | mutex_unlock(&dvbdev_register_lock); |
223 | 223 | ||
224 | memcpy(dvbdev, template, sizeof(struct dvb_device)); | 224 | memcpy(dvbdev, template, sizeof(struct dvb_device)); |
225 | dvbdev->type = type; | 225 | dvbdev->type = type; |
@@ -289,11 +289,11 @@ int dvb_register_adapter(struct dvb_adapter *adap, const char *name, struct modu | |||
289 | { | 289 | { |
290 | int num; | 290 | int num; |
291 | 291 | ||
292 | if (down_interruptible (&dvbdev_register_lock)) | 292 | if (mutex_lock_interruptible(&dvbdev_register_lock)) |
293 | return -ERESTARTSYS; | 293 | return -ERESTARTSYS; |
294 | 294 | ||
295 | if ((num = dvbdev_get_free_adapter_num ()) < 0) { | 295 | if ((num = dvbdev_get_free_adapter_num ()) < 0) { |
296 | up (&dvbdev_register_lock); | 296 | mutex_unlock(&dvbdev_register_lock); |
297 | return -ENFILE; | 297 | return -ENFILE; |
298 | } | 298 | } |
299 | 299 | ||
@@ -309,7 +309,7 @@ int dvb_register_adapter(struct dvb_adapter *adap, const char *name, struct modu | |||
309 | 309 | ||
310 | list_add_tail (&adap->list_head, &dvb_adapter_list); | 310 | list_add_tail (&adap->list_head, &dvb_adapter_list); |
311 | 311 | ||
312 | up (&dvbdev_register_lock); | 312 | mutex_unlock(&dvbdev_register_lock); |
313 | 313 | ||
314 | return num; | 314 | return num; |
315 | } | 315 | } |
@@ -320,10 +320,10 @@ int dvb_unregister_adapter(struct dvb_adapter *adap) | |||
320 | { | 320 | { |
321 | devfs_remove("dvb/adapter%d", adap->num); | 321 | devfs_remove("dvb/adapter%d", adap->num); |
322 | 322 | ||
323 | if (down_interruptible (&dvbdev_register_lock)) | 323 | if (mutex_lock_interruptible(&dvbdev_register_lock)) |
324 | return -ERESTARTSYS; | 324 | return -ERESTARTSYS; |
325 | list_del (&adap->list_head); | 325 | list_del (&adap->list_head); |
326 | up (&dvbdev_register_lock); | 326 | mutex_unlock(&dvbdev_register_lock); |
327 | return 0; | 327 | return 0; |
328 | } | 328 | } |
329 | EXPORT_SYMBOL(dvb_unregister_adapter); | 329 | EXPORT_SYMBOL(dvb_unregister_adapter); |
diff --git a/drivers/media/video/cx88/cx88-core.c b/drivers/media/video/cx88/cx88-core.c index 194446f28c55..8d6d6a6cf785 100644 --- a/drivers/media/video/cx88/cx88-core.c +++ b/drivers/media/video/cx88/cx88-core.c | |||
@@ -32,6 +32,7 @@ | |||
32 | #include <linux/pci.h> | 32 | #include <linux/pci.h> |
33 | #include <linux/delay.h> | 33 | #include <linux/delay.h> |
34 | #include <linux/videodev2.h> | 34 | #include <linux/videodev2.h> |
35 | #include <linux/mutex.h> | ||
35 | 36 | ||
36 | #include "cx88.h" | 37 | #include "cx88.h" |
37 | #include <media/v4l2-common.h> | 38 | #include <media/v4l2-common.h> |
@@ -75,7 +76,7 @@ MODULE_PARM_DESC(nocomb,"disable comb filter"); | |||
75 | 76 | ||
76 | static unsigned int cx88_devcount; | 77 | static unsigned int cx88_devcount; |
77 | static LIST_HEAD(cx88_devlist); | 78 | static LIST_HEAD(cx88_devlist); |
78 | static DECLARE_MUTEX(devlist); | 79 | static DEFINE_MUTEX(devlist); |
79 | 80 | ||
80 | #define NO_SYNC_LINE (-1U) | 81 | #define NO_SYNC_LINE (-1U) |
81 | 82 | ||
@@ -1036,7 +1037,7 @@ struct cx88_core* cx88_core_get(struct pci_dev *pci) | |||
1036 | struct list_head *item; | 1037 | struct list_head *item; |
1037 | int i; | 1038 | int i; |
1038 | 1039 | ||
1039 | down(&devlist); | 1040 | mutex_lock(&devlist); |
1040 | list_for_each(item,&cx88_devlist) { | 1041 | list_for_each(item,&cx88_devlist) { |
1041 | core = list_entry(item, struct cx88_core, devlist); | 1042 | core = list_entry(item, struct cx88_core, devlist); |
1042 | if (pci->bus->number != core->pci_bus) | 1043 | if (pci->bus->number != core->pci_bus) |
@@ -1047,7 +1048,7 @@ struct cx88_core* cx88_core_get(struct pci_dev *pci) | |||
1047 | if (0 != get_ressources(core,pci)) | 1048 | if (0 != get_ressources(core,pci)) |
1048 | goto fail_unlock; | 1049 | goto fail_unlock; |
1049 | atomic_inc(&core->refcount); | 1050 | atomic_inc(&core->refcount); |
1050 | up(&devlist); | 1051 | mutex_unlock(&devlist); |
1051 | return core; | 1052 | return core; |
1052 | } | 1053 | } |
1053 | core = kzalloc(sizeof(*core),GFP_KERNEL); | 1054 | core = kzalloc(sizeof(*core),GFP_KERNEL); |
@@ -1122,13 +1123,13 @@ struct cx88_core* cx88_core_get(struct pci_dev *pci) | |||
1122 | cx88_card_setup(core); | 1123 | cx88_card_setup(core); |
1123 | cx88_ir_init(core,pci); | 1124 | cx88_ir_init(core,pci); |
1124 | 1125 | ||
1125 | up(&devlist); | 1126 | mutex_unlock(&devlist); |
1126 | return core; | 1127 | return core; |
1127 | 1128 | ||
1128 | fail_free: | 1129 | fail_free: |
1129 | kfree(core); | 1130 | kfree(core); |
1130 | fail_unlock: | 1131 | fail_unlock: |
1131 | up(&devlist); | 1132 | mutex_unlock(&devlist); |
1132 | return NULL; | 1133 | return NULL; |
1133 | } | 1134 | } |
1134 | 1135 | ||
@@ -1140,14 +1141,14 @@ void cx88_core_put(struct cx88_core *core, struct pci_dev *pci) | |||
1140 | if (!atomic_dec_and_test(&core->refcount)) | 1141 | if (!atomic_dec_and_test(&core->refcount)) |
1141 | return; | 1142 | return; |
1142 | 1143 | ||
1143 | down(&devlist); | 1144 | mutex_lock(&devlist); |
1144 | cx88_ir_fini(core); | 1145 | cx88_ir_fini(core); |
1145 | if (0 == core->i2c_rc) | 1146 | if (0 == core->i2c_rc) |
1146 | i2c_bit_del_bus(&core->i2c_adap); | 1147 | i2c_bit_del_bus(&core->i2c_adap); |
1147 | list_del(&core->devlist); | 1148 | list_del(&core->devlist); |
1148 | iounmap(core->lmmio); | 1149 | iounmap(core->lmmio); |
1149 | cx88_devcount--; | 1150 | cx88_devcount--; |
1150 | up(&devlist); | 1151 | mutex_unlock(&devlist); |
1151 | kfree(core); | 1152 | kfree(core); |
1152 | } | 1153 | } |
1153 | 1154 | ||
diff --git a/drivers/media/video/em28xx/em28xx-video.c b/drivers/media/video/em28xx/em28xx-video.c index 3323dffe26a4..eea304f75176 100644 --- a/drivers/media/video/em28xx/em28xx-video.c +++ b/drivers/media/video/em28xx/em28xx-video.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include <linux/i2c.h> | 29 | #include <linux/i2c.h> |
30 | #include <linux/version.h> | 30 | #include <linux/version.h> |
31 | #include <linux/video_decoder.h> | 31 | #include <linux/video_decoder.h> |
32 | #include <linux/mutex.h> | ||
32 | 33 | ||
33 | #include "em28xx.h" | 34 | #include "em28xx.h" |
34 | #include <media/tuner.h> | 35 | #include <media/tuner.h> |
@@ -191,7 +192,7 @@ static struct v4l2_queryctrl saa711x_qctrl[] = { | |||
191 | 192 | ||
192 | static struct usb_driver em28xx_usb_driver; | 193 | static struct usb_driver em28xx_usb_driver; |
193 | 194 | ||
194 | static DECLARE_MUTEX(em28xx_sysfs_lock); | 195 | static DEFINE_MUTEX(em28xx_sysfs_lock); |
195 | static DECLARE_RWSEM(em28xx_disconnect); | 196 | static DECLARE_RWSEM(em28xx_disconnect); |
196 | 197 | ||
197 | /********************* v4l2 interface ******************************************/ | 198 | /********************* v4l2 interface ******************************************/ |
@@ -394,7 +395,7 @@ static int em28xx_v4l2_open(struct inode *inode, struct file *filp) | |||
394 | */ | 395 | */ |
395 | static void em28xx_release_resources(struct em28xx *dev) | 396 | static void em28xx_release_resources(struct em28xx *dev) |
396 | { | 397 | { |
397 | down(&em28xx_sysfs_lock); | 398 | mutex_lock(&em28xx_sysfs_lock); |
398 | 399 | ||
399 | em28xx_info("V4L2 device /dev/video%d deregistered\n", | 400 | em28xx_info("V4L2 device /dev/video%d deregistered\n", |
400 | dev->vdev->minor); | 401 | dev->vdev->minor); |
@@ -403,7 +404,7 @@ static void em28xx_release_resources(struct em28xx *dev) | |||
403 | /* video_unregister_device(dev->vbi_dev); */ | 404 | /* video_unregister_device(dev->vbi_dev); */ |
404 | em28xx_i2c_unregister(dev); | 405 | em28xx_i2c_unregister(dev); |
405 | usb_put_dev(dev->udev); | 406 | usb_put_dev(dev->udev); |
406 | up(&em28xx_sysfs_lock); | 407 | mutex_unlock(&em28xx_sysfs_lock); |
407 | } | 408 | } |
408 | 409 | ||
409 | /* | 410 | /* |
diff --git a/drivers/media/video/saa7134/saa7134-core.c b/drivers/media/video/saa7134/saa7134-core.c index 3dd42efe3699..028904bd94a2 100644 --- a/drivers/media/video/saa7134/saa7134-core.c +++ b/drivers/media/video/saa7134/saa7134-core.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <linux/sound.h> | 31 | #include <linux/sound.h> |
32 | #include <linux/interrupt.h> | 32 | #include <linux/interrupt.h> |
33 | #include <linux/delay.h> | 33 | #include <linux/delay.h> |
34 | #include <linux/mutex.h> | ||
34 | 35 | ||
35 | #include "saa7134-reg.h" | 36 | #include "saa7134-reg.h" |
36 | #include "saa7134.h" | 37 | #include "saa7134.h" |
@@ -84,7 +85,7 @@ MODULE_PARM_DESC(radio_nr, "radio device number"); | |||
84 | MODULE_PARM_DESC(tuner, "tuner type"); | 85 | MODULE_PARM_DESC(tuner, "tuner type"); |
85 | MODULE_PARM_DESC(card, "card type"); | 86 | MODULE_PARM_DESC(card, "card type"); |
86 | 87 | ||
87 | static DECLARE_MUTEX(devlist_lock); | 88 | static DEFINE_MUTEX(devlist_lock); |
88 | LIST_HEAD(saa7134_devlist); | 89 | LIST_HEAD(saa7134_devlist); |
89 | static LIST_HEAD(mops_list); | 90 | static LIST_HEAD(mops_list); |
90 | static unsigned int saa7134_devcount; | 91 | static unsigned int saa7134_devcount; |
@@ -969,13 +970,13 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev, | |||
969 | pci_set_drvdata(pci_dev,dev); | 970 | pci_set_drvdata(pci_dev,dev); |
970 | saa7134_devcount++; | 971 | saa7134_devcount++; |
971 | 972 | ||
972 | down(&devlist_lock); | 973 | mutex_lock(&devlist_lock); |
973 | list_for_each(item,&mops_list) { | 974 | list_for_each(item,&mops_list) { |
974 | mops = list_entry(item, struct saa7134_mpeg_ops, next); | 975 | mops = list_entry(item, struct saa7134_mpeg_ops, next); |
975 | mpeg_ops_attach(mops, dev); | 976 | mpeg_ops_attach(mops, dev); |
976 | } | 977 | } |
977 | list_add_tail(&dev->devlist,&saa7134_devlist); | 978 | list_add_tail(&dev->devlist,&saa7134_devlist); |
978 | up(&devlist_lock); | 979 | mutex_unlock(&devlist_lock); |
979 | 980 | ||
980 | /* check for signal */ | 981 | /* check for signal */ |
981 | saa7134_irq_video_intl(dev); | 982 | saa7134_irq_video_intl(dev); |
@@ -1031,13 +1032,13 @@ static void __devexit saa7134_finidev(struct pci_dev *pci_dev) | |||
1031 | saa7134_hwfini(dev); | 1032 | saa7134_hwfini(dev); |
1032 | 1033 | ||
1033 | /* unregister */ | 1034 | /* unregister */ |
1034 | down(&devlist_lock); | 1035 | mutex_lock(&devlist_lock); |
1035 | list_del(&dev->devlist); | 1036 | list_del(&dev->devlist); |
1036 | list_for_each(item,&mops_list) { | 1037 | list_for_each(item,&mops_list) { |
1037 | mops = list_entry(item, struct saa7134_mpeg_ops, next); | 1038 | mops = list_entry(item, struct saa7134_mpeg_ops, next); |
1038 | mpeg_ops_detach(mops, dev); | 1039 | mpeg_ops_detach(mops, dev); |
1039 | } | 1040 | } |
1040 | up(&devlist_lock); | 1041 | mutex_unlock(&devlist_lock); |
1041 | saa7134_devcount--; | 1042 | saa7134_devcount--; |
1042 | 1043 | ||
1043 | saa7134_i2c_unregister(dev); | 1044 | saa7134_i2c_unregister(dev); |
@@ -1071,13 +1072,13 @@ int saa7134_ts_register(struct saa7134_mpeg_ops *ops) | |||
1071 | struct list_head *item; | 1072 | struct list_head *item; |
1072 | struct saa7134_dev *dev; | 1073 | struct saa7134_dev *dev; |
1073 | 1074 | ||
1074 | down(&devlist_lock); | 1075 | mutex_lock(&devlist_lock); |
1075 | list_for_each(item,&saa7134_devlist) { | 1076 | list_for_each(item,&saa7134_devlist) { |
1076 | dev = list_entry(item, struct saa7134_dev, devlist); | 1077 | dev = list_entry(item, struct saa7134_dev, devlist); |
1077 | mpeg_ops_attach(ops, dev); | 1078 | mpeg_ops_attach(ops, dev); |
1078 | } | 1079 | } |
1079 | list_add_tail(&ops->next,&mops_list); | 1080 | list_add_tail(&ops->next,&mops_list); |
1080 | up(&devlist_lock); | 1081 | mutex_unlock(&devlist_lock); |
1081 | return 0; | 1082 | return 0; |
1082 | } | 1083 | } |
1083 | 1084 | ||
@@ -1086,13 +1087,13 @@ void saa7134_ts_unregister(struct saa7134_mpeg_ops *ops) | |||
1086 | struct list_head *item; | 1087 | struct list_head *item; |
1087 | struct saa7134_dev *dev; | 1088 | struct saa7134_dev *dev; |
1088 | 1089 | ||
1089 | down(&devlist_lock); | 1090 | mutex_lock(&devlist_lock); |
1090 | list_del(&ops->next); | 1091 | list_del(&ops->next); |
1091 | list_for_each(item,&saa7134_devlist) { | 1092 | list_for_each(item,&saa7134_devlist) { |
1092 | dev = list_entry(item, struct saa7134_dev, devlist); | 1093 | dev = list_entry(item, struct saa7134_dev, devlist); |
1093 | mpeg_ops_detach(ops, dev); | 1094 | mpeg_ops_detach(ops, dev); |
1094 | } | 1095 | } |
1095 | up(&devlist_lock); | 1096 | mutex_unlock(&devlist_lock); |
1096 | } | 1097 | } |
1097 | 1098 | ||
1098 | EXPORT_SYMBOL(saa7134_ts_register); | 1099 | EXPORT_SYMBOL(saa7134_ts_register); |
diff --git a/drivers/media/video/videodev.c b/drivers/media/video/videodev.c index d5be25987142..078880e4c8c0 100644 --- a/drivers/media/video/videodev.c +++ b/drivers/media/video/videodev.c | |||
@@ -29,7 +29,6 @@ | |||
29 | #include <linux/devfs_fs_kernel.h> | 29 | #include <linux/devfs_fs_kernel.h> |
30 | #include <asm/uaccess.h> | 30 | #include <asm/uaccess.h> |
31 | #include <asm/system.h> | 31 | #include <asm/system.h> |
32 | #include <asm/semaphore.h> | ||
33 | 32 | ||
34 | #include <linux/videodev.h> | 33 | #include <linux/videodev.h> |
35 | 34 | ||
@@ -83,7 +82,7 @@ static struct class video_class = { | |||
83 | */ | 82 | */ |
84 | 83 | ||
85 | static struct video_device *video_device[VIDEO_NUM_DEVICES]; | 84 | static struct video_device *video_device[VIDEO_NUM_DEVICES]; |
86 | static DECLARE_MUTEX(videodev_lock); | 85 | static DEFINE_MUTEX(videodev_lock); |
87 | 86 | ||
88 | struct video_device* video_devdata(struct file *file) | 87 | struct video_device* video_devdata(struct file *file) |
89 | { | 88 | { |
@@ -102,15 +101,15 @@ static int video_open(struct inode *inode, struct file *file) | |||
102 | 101 | ||
103 | if(minor>=VIDEO_NUM_DEVICES) | 102 | if(minor>=VIDEO_NUM_DEVICES) |
104 | return -ENODEV; | 103 | return -ENODEV; |
105 | down(&videodev_lock); | 104 | mutex_lock(&videodev_lock); |
106 | vfl=video_device[minor]; | 105 | vfl=video_device[minor]; |
107 | if(vfl==NULL) { | 106 | if(vfl==NULL) { |
108 | up(&videodev_lock); | 107 | mutex_unlock(&videodev_lock); |
109 | request_module("char-major-%d-%d", VIDEO_MAJOR, minor); | 108 | request_module("char-major-%d-%d", VIDEO_MAJOR, minor); |
110 | down(&videodev_lock); | 109 | mutex_lock(&videodev_lock); |
111 | vfl=video_device[minor]; | 110 | vfl=video_device[minor]; |
112 | if (vfl==NULL) { | 111 | if (vfl==NULL) { |
113 | up(&videodev_lock); | 112 | mutex_unlock(&videodev_lock); |
114 | return -ENODEV; | 113 | return -ENODEV; |
115 | } | 114 | } |
116 | } | 115 | } |
@@ -123,7 +122,7 @@ static int video_open(struct inode *inode, struct file *file) | |||
123 | file->f_op = fops_get(old_fops); | 122 | file->f_op = fops_get(old_fops); |
124 | } | 123 | } |
125 | fops_put(old_fops); | 124 | fops_put(old_fops); |
126 | up(&videodev_lock); | 125 | mutex_unlock(&videodev_lock); |
127 | return err; | 126 | return err; |
128 | } | 127 | } |
129 | 128 | ||
@@ -304,12 +303,12 @@ int video_register_device(struct video_device *vfd, int type, int nr) | |||
304 | } | 303 | } |
305 | 304 | ||
306 | /* pick a minor number */ | 305 | /* pick a minor number */ |
307 | down(&videodev_lock); | 306 | mutex_lock(&videodev_lock); |
308 | if (nr >= 0 && nr < end-base) { | 307 | if (nr >= 0 && nr < end-base) { |
309 | /* use the one the driver asked for */ | 308 | /* use the one the driver asked for */ |
310 | i = base+nr; | 309 | i = base+nr; |
311 | if (NULL != video_device[i]) { | 310 | if (NULL != video_device[i]) { |
312 | up(&videodev_lock); | 311 | mutex_unlock(&videodev_lock); |
313 | return -ENFILE; | 312 | return -ENFILE; |
314 | } | 313 | } |
315 | } else { | 314 | } else { |
@@ -318,13 +317,13 @@ int video_register_device(struct video_device *vfd, int type, int nr) | |||
318 | if (NULL == video_device[i]) | 317 | if (NULL == video_device[i]) |
319 | break; | 318 | break; |
320 | if (i == end) { | 319 | if (i == end) { |
321 | up(&videodev_lock); | 320 | mutex_unlock(&videodev_lock); |
322 | return -ENFILE; | 321 | return -ENFILE; |
323 | } | 322 | } |
324 | } | 323 | } |
325 | video_device[i]=vfd; | 324 | video_device[i]=vfd; |
326 | vfd->minor=i; | 325 | vfd->minor=i; |
327 | up(&videodev_lock); | 326 | mutex_unlock(&videodev_lock); |
328 | 327 | ||
329 | sprintf(vfd->devfs_name, "v4l/%s%d", name_base, i - base); | 328 | sprintf(vfd->devfs_name, "v4l/%s%d", name_base, i - base); |
330 | devfs_mk_cdev(MKDEV(VIDEO_MAJOR, vfd->minor), | 329 | devfs_mk_cdev(MKDEV(VIDEO_MAJOR, vfd->minor), |
@@ -362,14 +361,14 @@ int video_register_device(struct video_device *vfd, int type, int nr) | |||
362 | 361 | ||
363 | void video_unregister_device(struct video_device *vfd) | 362 | void video_unregister_device(struct video_device *vfd) |
364 | { | 363 | { |
365 | down(&videodev_lock); | 364 | mutex_lock(&videodev_lock); |
366 | if(video_device[vfd->minor]!=vfd) | 365 | if(video_device[vfd->minor]!=vfd) |
367 | panic("videodev: bad unregister"); | 366 | panic("videodev: bad unregister"); |
368 | 367 | ||
369 | devfs_remove(vfd->devfs_name); | 368 | devfs_remove(vfd->devfs_name); |
370 | video_device[vfd->minor]=NULL; | 369 | video_device[vfd->minor]=NULL; |
371 | class_device_unregister(&vfd->class_dev); | 370 | class_device_unregister(&vfd->class_dev); |
372 | up(&videodev_lock); | 371 | mutex_unlock(&videodev_lock); |
373 | } | 372 | } |
374 | 373 | ||
375 | 374 | ||