aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/sound/emux_synth.h2
-rw-r--r--include/sound/i2c.h10
-rw-r--r--include/sound/opl3.h3
-rw-r--r--include/sound/soundfont.h2
-rw-r--r--include/sound/util_mem.h4
-rw-r--r--include/sound/vx_core.h2
-rw-r--r--sound/drivers/opl3/opl3_lib.c2
-rw-r--r--sound/drivers/opl3/opl3_seq.c10
-rw-r--r--sound/drivers/opl3/opl3_synth.c10
-rw-r--r--sound/drivers/opl4/opl4_lib.c2
-rw-r--r--sound/drivers/opl4/opl4_local.h2
-rw-r--r--sound/drivers/opl4/opl4_proc.c10
-rw-r--r--sound/drivers/opl4/opl4_seq.c12
-rw-r--r--sound/drivers/vx/vx_core.c2
-rw-r--r--sound/drivers/vx/vx_mixer.c72
-rw-r--r--sound/i2c/i2c.c2
-rw-r--r--sound/synth/emux/emux.c2
-rw-r--r--sound/synth/emux/emux_oss.c12
-rw-r--r--sound/synth/emux/emux_proc.c8
-rw-r--r--sound/synth/emux/emux_seq.c12
-rw-r--r--sound/synth/emux/soundfont.c6
-rw-r--r--sound/synth/util_mem.c15
22 files changed, 103 insertions, 99 deletions
diff --git a/include/sound/emux_synth.h b/include/sound/emux_synth.h
index b2d6b2acc7c7..d8cb51b86c20 100644
--- a/include/sound/emux_synth.h
+++ b/include/sound/emux_synth.h
@@ -113,7 +113,7 @@ struct snd_emux {
113 struct snd_emux_voice *voices; /* Voices (EMU 'channel') */ 113 struct snd_emux_voice *voices; /* Voices (EMU 'channel') */
114 int use_time; /* allocation counter */ 114 int use_time; /* allocation counter */
115 spinlock_t voice_lock; /* Lock for voice access */ 115 spinlock_t voice_lock; /* Lock for voice access */
116 struct semaphore register_mutex; 116 struct mutex register_mutex;
117 int client; /* For the sequencer client */ 117 int client; /* For the sequencer client */
118 int ports[SNDRV_EMUX_MAX_PORTS]; /* The ports for this device */ 118 int ports[SNDRV_EMUX_MAX_PORTS]; /* The ports for this device */
119 struct snd_emux_port *portptrs[SNDRV_EMUX_MAX_PORTS]; 119 struct snd_emux_port *portptrs[SNDRV_EMUX_MAX_PORTS];
diff --git a/include/sound/i2c.h b/include/sound/i2c.h
index 81eb23ed761f..d125ff8c85e8 100644
--- a/include/sound/i2c.h
+++ b/include/sound/i2c.h
@@ -55,7 +55,7 @@ struct snd_i2c_bus {
55 struct snd_card *card; /* card which I2C belongs to */ 55 struct snd_card *card; /* card which I2C belongs to */
56 char name[32]; /* some useful label */ 56 char name[32]; /* some useful label */
57 57
58 struct semaphore lock_mutex; 58 struct mutex lock_mutex;
59 59
60 struct snd_i2c_bus *master; /* master bus when SCK/SCL is shared */ 60 struct snd_i2c_bus *master; /* master bus when SCK/SCL is shared */
61 struct list_head buses; /* master: slave buses sharing SCK/SCL, slave: link list */ 61 struct list_head buses; /* master: slave buses sharing SCK/SCL, slave: link list */
@@ -84,17 +84,17 @@ int snd_i2c_device_free(struct snd_i2c_device *device);
84static inline void snd_i2c_lock(struct snd_i2c_bus *bus) 84static inline void snd_i2c_lock(struct snd_i2c_bus *bus)
85{ 85{
86 if (bus->master) 86 if (bus->master)
87 down(&bus->master->lock_mutex); 87 mutex_lock(&bus->master->lock_mutex);
88 else 88 else
89 down(&bus->lock_mutex); 89 mutex_lock(&bus->lock_mutex);
90} 90}
91 91
92static inline void snd_i2c_unlock(struct snd_i2c_bus *bus) 92static inline void snd_i2c_unlock(struct snd_i2c_bus *bus)
93{ 93{
94 if (bus->master) 94 if (bus->master)
95 up(&bus->master->lock_mutex); 95 mutex_unlock(&bus->master->lock_mutex);
96 else 96 else
97 up(&bus->lock_mutex); 97 mutex_unlock(&bus->lock_mutex);
98} 98}
99 99
100int snd_i2c_sendbytes(struct snd_i2c_device *device, unsigned char *bytes, int count); 100int snd_i2c_sendbytes(struct snd_i2c_device *device, unsigned char *bytes, int count);
diff --git a/include/sound/opl3.h b/include/sound/opl3.h
index 83392641cb47..444907166f97 100644
--- a/include/sound/opl3.h
+++ b/include/sound/opl3.h
@@ -53,6 +53,7 @@
53 53
54#include "driver.h" 54#include "driver.h"
55#include <linux/time.h> 55#include <linux/time.h>
56#include <linux/mutex.h>
56#include "core.h" 57#include "core.h"
57#include "hwdep.h" 58#include "hwdep.h"
58#include "timer.h" 59#include "timer.h"
@@ -312,7 +313,7 @@ struct snd_opl3 {
312 int sys_timer_status; /* system timer run status */ 313 int sys_timer_status; /* system timer run status */
313 spinlock_t sys_timer_lock; /* Lock for system timer access */ 314 spinlock_t sys_timer_lock; /* Lock for system timer access */
314#endif 315#endif
315 struct semaphore access_mutex; /* locking */ 316 struct mutex access_mutex; /* locking */
316}; 317};
317 318
318/* opl3.c */ 319/* opl3.c */
diff --git a/include/sound/soundfont.h b/include/sound/soundfont.h
index 61a010c65d02..f95d99ba7f74 100644
--- a/include/sound/soundfont.h
+++ b/include/sound/soundfont.h
@@ -93,7 +93,7 @@ struct snd_sf_list {
93 int sample_locked; /* locked time for sample */ 93 int sample_locked; /* locked time for sample */
94 struct snd_sf_callback callback; /* callback functions */ 94 struct snd_sf_callback callback; /* callback functions */
95 int presets_locked; 95 int presets_locked;
96 struct semaphore presets_mutex; 96 struct mutex presets_mutex;
97 spinlock_t lock; 97 spinlock_t lock;
98 struct snd_util_memhdr *memhdr; 98 struct snd_util_memhdr *memhdr;
99}; 99};
diff --git a/include/sound/util_mem.h b/include/sound/util_mem.h
index 69944bbb5445..a1fb706b59a6 100644
--- a/include/sound/util_mem.h
+++ b/include/sound/util_mem.h
@@ -1,5 +1,7 @@
1#ifndef __SOUND_UTIL_MEM_H 1#ifndef __SOUND_UTIL_MEM_H
2#define __SOUND_UTIL_MEM_H 2#define __SOUND_UTIL_MEM_H
3
4#include <linux/mutex.h>
3/* 5/*
4 * Copyright (C) 2000 Takashi Iwai <tiwai@suse.de> 6 * Copyright (C) 2000 Takashi Iwai <tiwai@suse.de>
5 * 7 *
@@ -40,7 +42,7 @@ struct snd_util_memhdr {
40 int nblocks; /* # of allocated blocks */ 42 int nblocks; /* # of allocated blocks */
41 unsigned int used; /* used memory size */ 43 unsigned int used; /* used memory size */
42 int block_extra_size; /* extra data size of chunk */ 44 int block_extra_size; /* extra data size of chunk */
43 struct semaphore block_mutex; /* lock */ 45 struct mutex block_mutex; /* lock */
44}; 46};
45 47
46/* 48/*
diff --git a/include/sound/vx_core.h b/include/sound/vx_core.h
index 5fd6f3305e0d..9821a6194caa 100644
--- a/include/sound/vx_core.h
+++ b/include/sound/vx_core.h
@@ -206,7 +206,7 @@ struct vx_core {
206 int audio_monitor[4]; /* playback hw-monitor level */ 206 int audio_monitor[4]; /* playback hw-monitor level */
207 unsigned char audio_monitor_active[4]; /* playback hw-monitor mute/unmute */ 207 unsigned char audio_monitor_active[4]; /* playback hw-monitor mute/unmute */
208 208
209 struct semaphore mixer_mutex; 209 struct mutex mixer_mutex;
210 210
211 const struct firmware *firmware[4]; /* loaded firmware data */ 211 const struct firmware *firmware[4]; /* loaded firmware data */
212}; 212};
diff --git a/sound/drivers/opl3/opl3_lib.c b/sound/drivers/opl3/opl3_lib.c
index 1e0c76b9acfc..4f8556976774 100644
--- a/sound/drivers/opl3/opl3_lib.c
+++ b/sound/drivers/opl3/opl3_lib.c
@@ -358,7 +358,7 @@ int snd_opl3_new(struct snd_card *card,
358 opl3->hardware = hardware; 358 opl3->hardware = hardware;
359 spin_lock_init(&opl3->reg_lock); 359 spin_lock_init(&opl3->reg_lock);
360 spin_lock_init(&opl3->timer_lock); 360 spin_lock_init(&opl3->timer_lock);
361 init_MUTEX(&opl3->access_mutex); 361 mutex_init(&opl3->access_mutex);
362 362
363 if ((err = snd_device_new(card, SNDRV_DEV_CODEC, opl3, &ops)) < 0) { 363 if ((err = snd_device_new(card, SNDRV_DEV_CODEC, opl3, &ops)) < 0) {
364 snd_opl3_free(opl3); 364 snd_opl3_free(opl3);
diff --git a/sound/drivers/opl3/opl3_seq.c b/sound/drivers/opl3/opl3_seq.c
index c4ead790008a..e26556d500e5 100644
--- a/sound/drivers/opl3/opl3_seq.c
+++ b/sound/drivers/opl3/opl3_seq.c
@@ -52,13 +52,13 @@ int snd_opl3_synth_setup(struct snd_opl3 * opl3)
52{ 52{
53 int idx; 53 int idx;
54 54
55 down(&opl3->access_mutex); 55 mutex_lock(&opl3->access_mutex);
56 if (opl3->used) { 56 if (opl3->used) {
57 up(&opl3->access_mutex); 57 mutex_unlock(&opl3->access_mutex);
58 return -EBUSY; 58 return -EBUSY;
59 } 59 }
60 opl3->used++; 60 opl3->used++;
61 up(&opl3->access_mutex); 61 mutex_unlock(&opl3->access_mutex);
62 62
63 snd_opl3_reset(opl3); 63 snd_opl3_reset(opl3);
64 64
@@ -91,9 +91,9 @@ void snd_opl3_synth_cleanup(struct snd_opl3 * opl3)
91 spin_unlock_irqrestore(&opl3->sys_timer_lock, flags); 91 spin_unlock_irqrestore(&opl3->sys_timer_lock, flags);
92 92
93 snd_opl3_reset(opl3); 93 snd_opl3_reset(opl3);
94 down(&opl3->access_mutex); 94 mutex_lock(&opl3->access_mutex);
95 opl3->used--; 95 opl3->used--;
96 up(&opl3->access_mutex); 96 mutex_unlock(&opl3->access_mutex);
97} 97}
98 98
99static int snd_opl3_synth_use(void *private_data, struct snd_seq_port_subscribe * info) 99static int snd_opl3_synth_use(void *private_data, struct snd_seq_port_subscribe * info)
diff --git a/sound/drivers/opl3/opl3_synth.c b/sound/drivers/opl3/opl3_synth.c
index 3534a0e3342a..6db503f025b3 100644
--- a/sound/drivers/opl3/opl3_synth.c
+++ b/sound/drivers/opl3/opl3_synth.c
@@ -76,13 +76,13 @@ int snd_opl3_open(struct snd_hwdep * hw, struct file *file)
76{ 76{
77 struct snd_opl3 *opl3 = hw->private_data; 77 struct snd_opl3 *opl3 = hw->private_data;
78 78
79 down(&opl3->access_mutex); 79 mutex_lock(&opl3->access_mutex);
80 if (opl3->used) { 80 if (opl3->used) {
81 up(&opl3->access_mutex); 81 mutex_unlock(&opl3->access_mutex);
82 return -EAGAIN; 82 return -EAGAIN;
83 } 83 }
84 opl3->used++; 84 opl3->used++;
85 up(&opl3->access_mutex); 85 mutex_unlock(&opl3->access_mutex);
86 86
87 return 0; 87 return 0;
88} 88}
@@ -179,9 +179,9 @@ int snd_opl3_release(struct snd_hwdep * hw, struct file *file)
179 struct snd_opl3 *opl3 = hw->private_data; 179 struct snd_opl3 *opl3 = hw->private_data;
180 180
181 snd_opl3_reset(opl3); 181 snd_opl3_reset(opl3);
182 down(&opl3->access_mutex); 182 mutex_lock(&opl3->access_mutex);
183 opl3->used--; 183 opl3->used--;
184 up(&opl3->access_mutex); 184 mutex_unlock(&opl3->access_mutex);
185 185
186 return 0; 186 return 0;
187} 187}
diff --git a/sound/drivers/opl4/opl4_lib.c b/sound/drivers/opl4/opl4_lib.c
index ddfc10d04be2..4bc860ae02de 100644
--- a/sound/drivers/opl4/opl4_lib.c
+++ b/sound/drivers/opl4/opl4_lib.c
@@ -214,7 +214,7 @@ int snd_opl4_create(struct snd_card *card,
214 opl4->fm_port = fm_port; 214 opl4->fm_port = fm_port;
215 opl4->pcm_port = pcm_port; 215 opl4->pcm_port = pcm_port;
216 spin_lock_init(&opl4->reg_lock); 216 spin_lock_init(&opl4->reg_lock);
217 init_MUTEX(&opl4->access_mutex); 217 mutex_init(&opl4->access_mutex);
218 218
219 err = snd_opl4_detect(opl4); 219 err = snd_opl4_detect(opl4);
220 if (err < 0) { 220 if (err < 0) {
diff --git a/sound/drivers/opl4/opl4_local.h b/sound/drivers/opl4/opl4_local.h
index 7e088a4a2f4c..470e5a758a02 100644
--- a/sound/drivers/opl4/opl4_local.h
+++ b/sound/drivers/opl4/opl4_local.h
@@ -182,7 +182,7 @@ struct snd_opl4 {
182 struct snd_info_entry *proc_entry; 182 struct snd_info_entry *proc_entry;
183 int memory_access; 183 int memory_access;
184#endif 184#endif
185 struct semaphore access_mutex; 185 struct mutex access_mutex;
186 186
187#if defined(CONFIG_SND_SEQUENCER) || defined(CONFIG_SND_SEQUENCER_MODULE) 187#if defined(CONFIG_SND_SEQUENCER) || defined(CONFIG_SND_SEQUENCER_MODULE)
188 int used; 188 int used;
diff --git a/sound/drivers/opl4/opl4_proc.c b/sound/drivers/opl4/opl4_proc.c
index f4b4e74fcc18..e552ec34166f 100644
--- a/sound/drivers/opl4/opl4_proc.c
+++ b/sound/drivers/opl4/opl4_proc.c
@@ -28,13 +28,13 @@ static int snd_opl4_mem_proc_open(struct snd_info_entry *entry,
28{ 28{
29 struct snd_opl4 *opl4 = entry->private_data; 29 struct snd_opl4 *opl4 = entry->private_data;
30 30
31 down(&opl4->access_mutex); 31 mutex_lock(&opl4->access_mutex);
32 if (opl4->memory_access) { 32 if (opl4->memory_access) {
33 up(&opl4->access_mutex); 33 mutex_unlock(&opl4->access_mutex);
34 return -EBUSY; 34 return -EBUSY;
35 } 35 }
36 opl4->memory_access++; 36 opl4->memory_access++;
37 up(&opl4->access_mutex); 37 mutex_unlock(&opl4->access_mutex);
38 return 0; 38 return 0;
39} 39}
40 40
@@ -43,9 +43,9 @@ static int snd_opl4_mem_proc_release(struct snd_info_entry *entry,
43{ 43{
44 struct snd_opl4 *opl4 = entry->private_data; 44 struct snd_opl4 *opl4 = entry->private_data;
45 45
46 down(&opl4->access_mutex); 46 mutex_lock(&opl4->access_mutex);
47 opl4->memory_access--; 47 opl4->memory_access--;
48 up(&opl4->access_mutex); 48 mutex_unlock(&opl4->access_mutex);
49 return 0; 49 return 0;
50} 50}
51 51
diff --git a/sound/drivers/opl4/opl4_seq.c b/sound/drivers/opl4/opl4_seq.c
index e3480326e735..dc0dcdc6c313 100644
--- a/sound/drivers/opl4/opl4_seq.c
+++ b/sound/drivers/opl4/opl4_seq.c
@@ -62,10 +62,10 @@ static int snd_opl4_seq_use(void *private_data, struct snd_seq_port_subscribe *i
62 struct snd_opl4 *opl4 = private_data; 62 struct snd_opl4 *opl4 = private_data;
63 int err; 63 int err;
64 64
65 down(&opl4->access_mutex); 65 mutex_lock(&opl4->access_mutex);
66 66
67 if (opl4->used) { 67 if (opl4->used) {
68 up(&opl4->access_mutex); 68 mutex_unlock(&opl4->access_mutex);
69 return -EBUSY; 69 return -EBUSY;
70 } 70 }
71 opl4->used++; 71 opl4->used++;
@@ -73,12 +73,12 @@ static int snd_opl4_seq_use(void *private_data, struct snd_seq_port_subscribe *i
73 if (info->sender.client != SNDRV_SEQ_CLIENT_SYSTEM) { 73 if (info->sender.client != SNDRV_SEQ_CLIENT_SYSTEM) {
74 err = snd_opl4_seq_use_inc(opl4); 74 err = snd_opl4_seq_use_inc(opl4);
75 if (err < 0) { 75 if (err < 0) {
76 up(&opl4->access_mutex); 76 mutex_unlock(&opl4->access_mutex);
77 return err; 77 return err;
78 } 78 }
79 } 79 }
80 80
81 up(&opl4->access_mutex); 81 mutex_unlock(&opl4->access_mutex);
82 82
83 snd_opl4_synth_reset(opl4); 83 snd_opl4_synth_reset(opl4);
84 return 0; 84 return 0;
@@ -90,9 +90,9 @@ static int snd_opl4_seq_unuse(void *private_data, struct snd_seq_port_subscribe
90 90
91 snd_opl4_synth_shutdown(opl4); 91 snd_opl4_synth_shutdown(opl4);
92 92
93 down(&opl4->access_mutex); 93 mutex_lock(&opl4->access_mutex);
94 opl4->used--; 94 opl4->used--;
95 up(&opl4->access_mutex); 95 mutex_unlock(&opl4->access_mutex);
96 96
97 if (info->sender.client != SNDRV_SEQ_CLIENT_SYSTEM) 97 if (info->sender.client != SNDRV_SEQ_CLIENT_SYSTEM)
98 snd_opl4_seq_use_dec(opl4); 98 snd_opl4_seq_use_dec(opl4);
diff --git a/sound/drivers/vx/vx_core.c b/sound/drivers/vx/vx_core.c
index 43f615d7a545..fa4a2b5c2d8d 100644
--- a/sound/drivers/vx/vx_core.c
+++ b/sound/drivers/vx/vx_core.c
@@ -778,7 +778,7 @@ struct vx_core *snd_vx_create(struct snd_card *card, struct snd_vx_hardware *hw,
778 chip->type = hw->type; 778 chip->type = hw->type;
779 chip->ops = ops; 779 chip->ops = ops;
780 tasklet_init(&chip->tq, vx_interrupt, (unsigned long)chip); 780 tasklet_init(&chip->tq, vx_interrupt, (unsigned long)chip);
781 init_MUTEX(&chip->mixer_mutex); 781 mutex_init(&chip->mixer_mutex);
782 782
783 chip->card = card; 783 chip->card = card;
784 card->private_data = chip; 784 card->private_data = chip;
diff --git a/sound/drivers/vx/vx_mixer.c b/sound/drivers/vx/vx_mixer.c
index 8ec2c605d2f0..c1d7fcdd1973 100644
--- a/sound/drivers/vx/vx_mixer.c
+++ b/sound/drivers/vx/vx_mixer.c
@@ -427,10 +427,10 @@ static int vx_output_level_get(struct snd_kcontrol *kcontrol, struct snd_ctl_ele
427{ 427{
428 struct vx_core *chip = snd_kcontrol_chip(kcontrol); 428 struct vx_core *chip = snd_kcontrol_chip(kcontrol);
429 int codec = kcontrol->id.index; 429 int codec = kcontrol->id.index;
430 down(&chip->mixer_mutex); 430 mutex_lock(&chip->mixer_mutex);
431 ucontrol->value.integer.value[0] = chip->output_level[codec][0]; 431 ucontrol->value.integer.value[0] = chip->output_level[codec][0];
432 ucontrol->value.integer.value[1] = chip->output_level[codec][1]; 432 ucontrol->value.integer.value[1] = chip->output_level[codec][1];
433 up(&chip->mixer_mutex); 433 mutex_unlock(&chip->mixer_mutex);
434 return 0; 434 return 0;
435} 435}
436 436
@@ -438,7 +438,7 @@ static int vx_output_level_put(struct snd_kcontrol *kcontrol, struct snd_ctl_ele
438{ 438{
439 struct vx_core *chip = snd_kcontrol_chip(kcontrol); 439 struct vx_core *chip = snd_kcontrol_chip(kcontrol);
440 int codec = kcontrol->id.index; 440 int codec = kcontrol->id.index;
441 down(&chip->mixer_mutex); 441 mutex_lock(&chip->mixer_mutex);
442 if (ucontrol->value.integer.value[0] != chip->output_level[codec][0] || 442 if (ucontrol->value.integer.value[0] != chip->output_level[codec][0] ||
443 ucontrol->value.integer.value[1] != chip->output_level[codec][1]) { 443 ucontrol->value.integer.value[1] != chip->output_level[codec][1]) {
444 vx_set_analog_output_level(chip, codec, 444 vx_set_analog_output_level(chip, codec,
@@ -446,10 +446,10 @@ static int vx_output_level_put(struct snd_kcontrol *kcontrol, struct snd_ctl_ele
446 ucontrol->value.integer.value[1]); 446 ucontrol->value.integer.value[1]);
447 chip->output_level[codec][0] = ucontrol->value.integer.value[0]; 447 chip->output_level[codec][0] = ucontrol->value.integer.value[0];
448 chip->output_level[codec][1] = ucontrol->value.integer.value[1]; 448 chip->output_level[codec][1] = ucontrol->value.integer.value[1];
449 up(&chip->mixer_mutex); 449 mutex_unlock(&chip->mixer_mutex);
450 return 1; 450 return 1;
451 } 451 }
452 up(&chip->mixer_mutex); 452 mutex_unlock(&chip->mixer_mutex);
453 return 0; 453 return 0;
454} 454}
455 455
@@ -502,14 +502,14 @@ static int vx_audio_src_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_v
502static int vx_audio_src_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 502static int vx_audio_src_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
503{ 503{
504 struct vx_core *chip = snd_kcontrol_chip(kcontrol); 504 struct vx_core *chip = snd_kcontrol_chip(kcontrol);
505 down(&chip->mixer_mutex); 505 mutex_lock(&chip->mixer_mutex);
506 if (chip->audio_source_target != ucontrol->value.enumerated.item[0]) { 506 if (chip->audio_source_target != ucontrol->value.enumerated.item[0]) {
507 chip->audio_source_target = ucontrol->value.enumerated.item[0]; 507 chip->audio_source_target = ucontrol->value.enumerated.item[0];
508 vx_sync_audio_source(chip); 508 vx_sync_audio_source(chip);
509 up(&chip->mixer_mutex); 509 mutex_unlock(&chip->mixer_mutex);
510 return 1; 510 return 1;
511 } 511 }
512 up(&chip->mixer_mutex); 512 mutex_unlock(&chip->mixer_mutex);
513 return 0; 513 return 0;
514} 514}
515 515
@@ -550,14 +550,14 @@ static int vx_clock_mode_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_
550static int vx_clock_mode_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) 550static int vx_clock_mode_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
551{ 551{
552 struct vx_core *chip = snd_kcontrol_chip(kcontrol); 552 struct vx_core *chip = snd_kcontrol_chip(kcontrol);
553 down(&chip->mixer_mutex); 553 mutex_lock(&chip->mixer_mutex);
554 if (chip->clock_mode != ucontrol->value.enumerated.item[0]) { 554 if (chip->clock_mode != ucontrol->value.enumerated.item[0]) {
555 chip->clock_mode = ucontrol->value.enumerated.item[0]; 555 chip->clock_mode = ucontrol->value.enumerated.item[0];
556 vx_set_clock(chip, chip->freq); 556 vx_set_clock(chip, chip->freq);
557 up(&chip->mixer_mutex); 557 mutex_unlock(&chip->mixer_mutex);
558 return 1; 558 return 1;
559 } 559 }
560 up(&chip->mixer_mutex); 560 mutex_unlock(&chip->mixer_mutex);
561 return 0; 561 return 0;
562} 562}
563 563
@@ -587,10 +587,10 @@ static int vx_audio_gain_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_
587 int audio = kcontrol->private_value & 0xff; 587 int audio = kcontrol->private_value & 0xff;
588 int capture = (kcontrol->private_value >> 8) & 1; 588 int capture = (kcontrol->private_value >> 8) & 1;
589 589
590 down(&chip->mixer_mutex); 590 mutex_lock(&chip->mixer_mutex);
591 ucontrol->value.integer.value[0] = chip->audio_gain[capture][audio]; 591 ucontrol->value.integer.value[0] = chip->audio_gain[capture][audio];
592 ucontrol->value.integer.value[1] = chip->audio_gain[capture][audio+1]; 592 ucontrol->value.integer.value[1] = chip->audio_gain[capture][audio+1];
593 up(&chip->mixer_mutex); 593 mutex_unlock(&chip->mixer_mutex);
594 return 0; 594 return 0;
595} 595}
596 596
@@ -600,15 +600,15 @@ static int vx_audio_gain_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_
600 int audio = kcontrol->private_value & 0xff; 600 int audio = kcontrol->private_value & 0xff;
601 int capture = (kcontrol->private_value >> 8) & 1; 601 int capture = (kcontrol->private_value >> 8) & 1;
602 602
603 down(&chip->mixer_mutex); 603 mutex_lock(&chip->mixer_mutex);
604 if (ucontrol->value.integer.value[0] != chip->audio_gain[capture][audio] || 604 if (ucontrol->value.integer.value[0] != chip->audio_gain[capture][audio] ||
605 ucontrol->value.integer.value[1] != chip->audio_gain[capture][audio+1]) { 605 ucontrol->value.integer.value[1] != chip->audio_gain[capture][audio+1]) {
606 vx_set_audio_gain(chip, audio, capture, ucontrol->value.integer.value[0]); 606 vx_set_audio_gain(chip, audio, capture, ucontrol->value.integer.value[0]);
607 vx_set_audio_gain(chip, audio+1, capture, ucontrol->value.integer.value[1]); 607 vx_set_audio_gain(chip, audio+1, capture, ucontrol->value.integer.value[1]);
608 up(&chip->mixer_mutex); 608 mutex_unlock(&chip->mixer_mutex);
609 return 1; 609 return 1;
610 } 610 }
611 up(&chip->mixer_mutex); 611 mutex_unlock(&chip->mixer_mutex);
612 return 0; 612 return 0;
613} 613}
614 614
@@ -617,10 +617,10 @@ static int vx_audio_monitor_get(struct snd_kcontrol *kcontrol, struct snd_ctl_el
617 struct vx_core *chip = snd_kcontrol_chip(kcontrol); 617 struct vx_core *chip = snd_kcontrol_chip(kcontrol);
618 int audio = kcontrol->private_value & 0xff; 618 int audio = kcontrol->private_value & 0xff;
619 619
620 down(&chip->mixer_mutex); 620 mutex_lock(&chip->mixer_mutex);
621 ucontrol->value.integer.value[0] = chip->audio_monitor[audio]; 621 ucontrol->value.integer.value[0] = chip->audio_monitor[audio];
622 ucontrol->value.integer.value[1] = chip->audio_monitor[audio+1]; 622 ucontrol->value.integer.value[1] = chip->audio_monitor[audio+1];
623 up(&chip->mixer_mutex); 623 mutex_unlock(&chip->mixer_mutex);
624 return 0; 624 return 0;
625} 625}
626 626
@@ -629,17 +629,17 @@ static int vx_audio_monitor_put(struct snd_kcontrol *kcontrol, struct snd_ctl_el
629 struct vx_core *chip = snd_kcontrol_chip(kcontrol); 629 struct vx_core *chip = snd_kcontrol_chip(kcontrol);
630 int audio = kcontrol->private_value & 0xff; 630 int audio = kcontrol->private_value & 0xff;
631 631
632 down(&chip->mixer_mutex); 632 mutex_lock(&chip->mixer_mutex);
633 if (ucontrol->value.integer.value[0] != chip->audio_monitor[audio] || 633 if (ucontrol->value.integer.value[0] != chip->audio_monitor[audio] ||
634 ucontrol->value.integer.value[1] != chip->audio_monitor[audio+1]) { 634 ucontrol->value.integer.value[1] != chip->audio_monitor[audio+1]) {
635 vx_set_monitor_level(chip, audio, ucontrol->value.integer.value[0], 635 vx_set_monitor_level(chip, audio, ucontrol->value.integer.value[0],
636 chip->audio_monitor_active[audio]); 636 chip->audio_monitor_active[audio]);
637 vx_set_monitor_level(chip, audio+1, ucontrol->value.integer.value[1], 637 vx_set_monitor_level(chip, audio+1, ucontrol->value.integer.value[1],
638 chip->audio_monitor_active[audio+1]); 638 chip->audio_monitor_active[audio+1]);
639 up(&chip->mixer_mutex); 639 mutex_unlock(&chip->mixer_mutex);
640 return 1; 640 return 1;
641 } 641 }
642 up(&chip->mixer_mutex); 642 mutex_unlock(&chip->mixer_mutex);
643 return 0; 643 return 0;
644} 644}
645 645
@@ -657,10 +657,10 @@ static int vx_audio_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_va
657 struct vx_core *chip = snd_kcontrol_chip(kcontrol); 657 struct vx_core *chip = snd_kcontrol_chip(kcontrol);
658 int audio = kcontrol->private_value & 0xff; 658 int audio = kcontrol->private_value & 0xff;
659 659
660 down(&chip->mixer_mutex); 660 mutex_lock(&chip->mixer_mutex);
661 ucontrol->value.integer.value[0] = chip->audio_active[audio]; 661 ucontrol->value.integer.value[0] = chip->audio_active[audio];
662 ucontrol->value.integer.value[1] = chip->audio_active[audio+1]; 662 ucontrol->value.integer.value[1] = chip->audio_active[audio+1];
663 up(&chip->mixer_mutex); 663 mutex_unlock(&chip->mixer_mutex);
664 return 0; 664 return 0;
665} 665}
666 666
@@ -669,15 +669,15 @@ static int vx_audio_sw_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_va
669 struct vx_core *chip = snd_kcontrol_chip(kcontrol); 669 struct vx_core *chip = snd_kcontrol_chip(kcontrol);
670 int audio = kcontrol->private_value & 0xff; 670 int audio = kcontrol->private_value & 0xff;
671 671
672 down(&chip->mixer_mutex); 672 mutex_lock(&chip->mixer_mutex);
673 if (ucontrol->value.integer.value[0] != chip->audio_active[audio] || 673 if (ucontrol->value.integer.value[0] != chip->audio_active[audio] ||
674 ucontrol->value.integer.value[1] != chip->audio_active[audio+1]) { 674 ucontrol->value.integer.value[1] != chip->audio_active[audio+1]) {
675 vx_set_audio_switch(chip, audio, ucontrol->value.integer.value[0]); 675 vx_set_audio_switch(chip, audio, ucontrol->value.integer.value[0]);
676 vx_set_audio_switch(chip, audio+1, ucontrol->value.integer.value[1]); 676 vx_set_audio_switch(chip, audio+1, ucontrol->value.integer.value[1]);
677 up(&chip->mixer_mutex); 677 mutex_unlock(&chip->mixer_mutex);
678 return 1; 678 return 1;
679 } 679 }
680 up(&chip->mixer_mutex); 680 mutex_unlock(&chip->mixer_mutex);
681 return 0; 681 return 0;
682} 682}
683 683
@@ -686,10 +686,10 @@ static int vx_monitor_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_
686 struct vx_core *chip = snd_kcontrol_chip(kcontrol); 686 struct vx_core *chip = snd_kcontrol_chip(kcontrol);
687 int audio = kcontrol->private_value & 0xff; 687 int audio = kcontrol->private_value & 0xff;
688 688
689 down(&chip->mixer_mutex); 689 mutex_lock(&chip->mixer_mutex);
690 ucontrol->value.integer.value[0] = chip->audio_monitor_active[audio]; 690 ucontrol->value.integer.value[0] = chip->audio_monitor_active[audio];
691 ucontrol->value.integer.value[1] = chip->audio_monitor_active[audio+1]; 691 ucontrol->value.integer.value[1] = chip->audio_monitor_active[audio+1];
692 up(&chip->mixer_mutex); 692 mutex_unlock(&chip->mixer_mutex);
693 return 0; 693 return 0;
694} 694}
695 695
@@ -698,17 +698,17 @@ static int vx_monitor_sw_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_
698 struct vx_core *chip = snd_kcontrol_chip(kcontrol); 698 struct vx_core *chip = snd_kcontrol_chip(kcontrol);
699 int audio = kcontrol->private_value & 0xff; 699 int audio = kcontrol->private_value & 0xff;
700 700
701 down(&chip->mixer_mutex); 701 mutex_lock(&chip->mixer_mutex);
702 if (ucontrol->value.integer.value[0] != chip->audio_monitor_active[audio] || 702 if (ucontrol->value.integer.value[0] != chip->audio_monitor_active[audio] ||
703 ucontrol->value.integer.value[1] != chip->audio_monitor_active[audio+1]) { 703 ucontrol->value.integer.value[1] != chip->audio_monitor_active[audio+1]) {
704 vx_set_monitor_level(chip, audio, chip->audio_monitor[audio], 704 vx_set_monitor_level(chip, audio, chip->audio_monitor[audio],
705 ucontrol->value.integer.value[0]); 705 ucontrol->value.integer.value[0]);
706 vx_set_monitor_level(chip, audio+1, chip->audio_monitor[audio+1], 706 vx_set_monitor_level(chip, audio+1, chip->audio_monitor[audio+1],
707 ucontrol->value.integer.value[1]); 707 ucontrol->value.integer.value[1]);
708 up(&chip->mixer_mutex); 708 mutex_unlock(&chip->mixer_mutex);
709 return 1; 709 return 1;
710 } 710 }
711 up(&chip->mixer_mutex); 711 mutex_unlock(&chip->mixer_mutex);
712 return 0; 712 return 0;
713} 713}
714 714
@@ -756,12 +756,12 @@ static int vx_iec958_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_valu
756{ 756{
757 struct vx_core *chip = snd_kcontrol_chip(kcontrol); 757 struct vx_core *chip = snd_kcontrol_chip(kcontrol);
758 758
759 down(&chip->mixer_mutex); 759 mutex_lock(&chip->mixer_mutex);
760 ucontrol->value.iec958.status[0] = (chip->uer_bits >> 0) & 0xff; 760 ucontrol->value.iec958.status[0] = (chip->uer_bits >> 0) & 0xff;
761 ucontrol->value.iec958.status[1] = (chip->uer_bits >> 8) & 0xff; 761 ucontrol->value.iec958.status[1] = (chip->uer_bits >> 8) & 0xff;
762 ucontrol->value.iec958.status[2] = (chip->uer_bits >> 16) & 0xff; 762 ucontrol->value.iec958.status[2] = (chip->uer_bits >> 16) & 0xff;
763 ucontrol->value.iec958.status[3] = (chip->uer_bits >> 24) & 0xff; 763 ucontrol->value.iec958.status[3] = (chip->uer_bits >> 24) & 0xff;
764 up(&chip->mixer_mutex); 764 mutex_unlock(&chip->mixer_mutex);
765 return 0; 765 return 0;
766} 766}
767 767
@@ -783,14 +783,14 @@ static int vx_iec958_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_valu
783 (ucontrol->value.iec958.status[1] << 8) | 783 (ucontrol->value.iec958.status[1] << 8) |
784 (ucontrol->value.iec958.status[2] << 16) | 784 (ucontrol->value.iec958.status[2] << 16) |
785 (ucontrol->value.iec958.status[3] << 24); 785 (ucontrol->value.iec958.status[3] << 24);
786 down(&chip->mixer_mutex); 786 mutex_lock(&chip->mixer_mutex);
787 if (chip->uer_bits != val) { 787 if (chip->uer_bits != val) {
788 chip->uer_bits = val; 788 chip->uer_bits = val;
789 vx_set_iec958_status(chip, val); 789 vx_set_iec958_status(chip, val);
790 up(&chip->mixer_mutex); 790 mutex_unlock(&chip->mixer_mutex);
791 return 1; 791 return 1;
792 } 792 }
793 up(&chip->mixer_mutex); 793 mutex_unlock(&chip->mixer_mutex);
794 return 0; 794 return 0;
795} 795}
796 796
diff --git a/sound/i2c/i2c.c b/sound/i2c/i2c.c
index c4e1f2c23ced..edfe76fb0074 100644
--- a/sound/i2c/i2c.c
+++ b/sound/i2c/i2c.c
@@ -88,7 +88,7 @@ int snd_i2c_bus_create(struct snd_card *card, const char *name,
88 bus = kzalloc(sizeof(*bus), GFP_KERNEL); 88 bus = kzalloc(sizeof(*bus), GFP_KERNEL);
89 if (bus == NULL) 89 if (bus == NULL)
90 return -ENOMEM; 90 return -ENOMEM;
91 init_MUTEX(&bus->lock_mutex); 91 mutex_init(&bus->lock_mutex);
92 INIT_LIST_HEAD(&bus->devices); 92 INIT_LIST_HEAD(&bus->devices);
93 INIT_LIST_HEAD(&bus->buses); 93 INIT_LIST_HEAD(&bus->buses);
94 bus->card = card; 94 bus->card = card;
diff --git a/sound/synth/emux/emux.c b/sound/synth/emux/emux.c
index 7c8e328fae62..fc733bbf4487 100644
--- a/sound/synth/emux/emux.c
+++ b/sound/synth/emux/emux.c
@@ -45,7 +45,7 @@ int snd_emux_new(struct snd_emux **remu)
45 return -ENOMEM; 45 return -ENOMEM;
46 46
47 spin_lock_init(&emu->voice_lock); 47 spin_lock_init(&emu->voice_lock);
48 init_MUTEX(&emu->register_mutex); 48 mutex_init(&emu->register_mutex);
49 49
50 emu->client = -1; 50 emu->client = -1;
51#ifdef CONFIG_SND_SEQUENCER_OSS 51#ifdef CONFIG_SND_SEQUENCER_OSS
diff --git a/sound/synth/emux/emux_oss.c b/sound/synth/emux/emux_oss.c
index dfbfcfbe5dd2..3436816727c8 100644
--- a/sound/synth/emux/emux_oss.c
+++ b/sound/synth/emux/emux_oss.c
@@ -117,10 +117,10 @@ snd_emux_open_seq_oss(struct snd_seq_oss_arg *arg, void *closure)
117 emu = closure; 117 emu = closure;
118 snd_assert(arg != NULL && emu != NULL, return -ENXIO); 118 snd_assert(arg != NULL && emu != NULL, return -ENXIO);
119 119
120 down(&emu->register_mutex); 120 mutex_lock(&emu->register_mutex);
121 121
122 if (!snd_emux_inc_count(emu)) { 122 if (!snd_emux_inc_count(emu)) {
123 up(&emu->register_mutex); 123 mutex_unlock(&emu->register_mutex);
124 return -EFAULT; 124 return -EFAULT;
125 } 125 }
126 126
@@ -134,7 +134,7 @@ snd_emux_open_seq_oss(struct snd_seq_oss_arg *arg, void *closure)
134 if (p == NULL) { 134 if (p == NULL) {
135 snd_printk("can't create port\n"); 135 snd_printk("can't create port\n");
136 snd_emux_dec_count(emu); 136 snd_emux_dec_count(emu);
137 up(&emu->register_mutex); 137 mutex_unlock(&emu->register_mutex);
138 return -ENOMEM; 138 return -ENOMEM;
139 } 139 }
140 140
@@ -148,7 +148,7 @@ snd_emux_open_seq_oss(struct snd_seq_oss_arg *arg, void *closure)
148 148
149 snd_emux_reset_port(p); 149 snd_emux_reset_port(p);
150 150
151 up(&emu->register_mutex); 151 mutex_unlock(&emu->register_mutex);
152 return 0; 152 return 0;
153} 153}
154 154
@@ -191,13 +191,13 @@ snd_emux_close_seq_oss(struct snd_seq_oss_arg *arg)
191 emu = p->emu; 191 emu = p->emu;
192 snd_assert(emu != NULL, return -ENXIO); 192 snd_assert(emu != NULL, return -ENXIO);
193 193
194 down(&emu->register_mutex); 194 mutex_lock(&emu->register_mutex);
195 snd_emux_sounds_off_all(p); 195 snd_emux_sounds_off_all(p);
196 snd_soundfont_close_check(emu->sflist, SF_CLIENT_NO(p->chset.port)); 196 snd_soundfont_close_check(emu->sflist, SF_CLIENT_NO(p->chset.port));
197 snd_seq_event_port_detach(p->chset.client, p->chset.port); 197 snd_seq_event_port_detach(p->chset.client, p->chset.port);
198 snd_emux_dec_count(emu); 198 snd_emux_dec_count(emu);
199 199
200 up(&emu->register_mutex); 200 mutex_unlock(&emu->register_mutex);
201 return 0; 201 return 0;
202} 202}
203 203
diff --git a/sound/synth/emux/emux_proc.c b/sound/synth/emux/emux_proc.c
index a70a179f6947..1ba68ce30279 100644
--- a/sound/synth/emux/emux_proc.c
+++ b/sound/synth/emux/emux_proc.c
@@ -37,7 +37,7 @@ snd_emux_proc_info_read(struct snd_info_entry *entry,
37 int i; 37 int i;
38 38
39 emu = entry->private_data; 39 emu = entry->private_data;
40 down(&emu->register_mutex); 40 mutex_lock(&emu->register_mutex);
41 if (emu->name) 41 if (emu->name)
42 snd_iprintf(buf, "Device: %s\n", emu->name); 42 snd_iprintf(buf, "Device: %s\n", emu->name);
43 snd_iprintf(buf, "Ports: %d\n", emu->num_ports); 43 snd_iprintf(buf, "Ports: %d\n", emu->num_ports);
@@ -56,13 +56,13 @@ snd_emux_proc_info_read(struct snd_info_entry *entry,
56 snd_iprintf(buf, "Memory Size: 0\n"); 56 snd_iprintf(buf, "Memory Size: 0\n");
57 } 57 }
58 if (emu->sflist) { 58 if (emu->sflist) {
59 down(&emu->sflist->presets_mutex); 59 mutex_lock(&emu->sflist->presets_mutex);
60 snd_iprintf(buf, "SoundFonts: %d\n", emu->sflist->fonts_size); 60 snd_iprintf(buf, "SoundFonts: %d\n", emu->sflist->fonts_size);
61 snd_iprintf(buf, "Instruments: %d\n", emu->sflist->zone_counter); 61 snd_iprintf(buf, "Instruments: %d\n", emu->sflist->zone_counter);
62 snd_iprintf(buf, "Samples: %d\n", emu->sflist->sample_counter); 62 snd_iprintf(buf, "Samples: %d\n", emu->sflist->sample_counter);
63 snd_iprintf(buf, "Locked Instruments: %d\n", emu->sflist->zone_locked); 63 snd_iprintf(buf, "Locked Instruments: %d\n", emu->sflist->zone_locked);
64 snd_iprintf(buf, "Locked Samples: %d\n", emu->sflist->sample_locked); 64 snd_iprintf(buf, "Locked Samples: %d\n", emu->sflist->sample_locked);
65 up(&emu->sflist->presets_mutex); 65 mutex_unlock(&emu->sflist->presets_mutex);
66 } 66 }
67#if 0 /* debug */ 67#if 0 /* debug */
68 if (emu->voices[0].state != SNDRV_EMUX_ST_OFF && emu->voices[0].ch >= 0) { 68 if (emu->voices[0].state != SNDRV_EMUX_ST_OFF && emu->voices[0].ch >= 0) {
@@ -103,7 +103,7 @@ snd_emux_proc_info_read(struct snd_info_entry *entry,
103 snd_iprintf(buf, "sample_mode=%x, rate=%x\n", vp->reg.sample_mode, vp->reg.rate_offset); 103 snd_iprintf(buf, "sample_mode=%x, rate=%x\n", vp->reg.sample_mode, vp->reg.rate_offset);
104 } 104 }
105#endif 105#endif
106 up(&emu->register_mutex); 106 mutex_unlock(&emu->register_mutex);
107} 107}
108 108
109 109
diff --git a/sound/synth/emux/emux_seq.c b/sound/synth/emux/emux_seq.c
index 1a973d7a90f8..8f00f07701c4 100644
--- a/sound/synth/emux/emux_seq.c
+++ b/sound/synth/emux/emux_seq.c
@@ -123,12 +123,12 @@ snd_emux_detach_seq(struct snd_emux *emu)
123 if (emu->voices) 123 if (emu->voices)
124 snd_emux_terminate_all(emu); 124 snd_emux_terminate_all(emu);
125 125
126 down(&emu->register_mutex); 126 mutex_lock(&emu->register_mutex);
127 if (emu->client >= 0) { 127 if (emu->client >= 0) {
128 snd_seq_delete_kernel_client(emu->client); 128 snd_seq_delete_kernel_client(emu->client);
129 emu->client = -1; 129 emu->client = -1;
130 } 130 }
131 up(&emu->register_mutex); 131 mutex_unlock(&emu->register_mutex);
132} 132}
133 133
134 134
@@ -311,10 +311,10 @@ snd_emux_use(void *private_data, struct snd_seq_port_subscribe *info)
311 emu = p->emu; 311 emu = p->emu;
312 snd_assert(emu != NULL, return -EINVAL); 312 snd_assert(emu != NULL, return -EINVAL);
313 313
314 down(&emu->register_mutex); 314 mutex_lock(&emu->register_mutex);
315 snd_emux_init_port(p); 315 snd_emux_init_port(p);
316 snd_emux_inc_count(emu); 316 snd_emux_inc_count(emu);
317 up(&emu->register_mutex); 317 mutex_unlock(&emu->register_mutex);
318 return 0; 318 return 0;
319} 319}
320 320
@@ -332,10 +332,10 @@ snd_emux_unuse(void *private_data, struct snd_seq_port_subscribe *info)
332 emu = p->emu; 332 emu = p->emu;
333 snd_assert(emu != NULL, return -EINVAL); 333 snd_assert(emu != NULL, return -EINVAL);
334 334
335 down(&emu->register_mutex); 335 mutex_lock(&emu->register_mutex);
336 snd_emux_sounds_off_all(p); 336 snd_emux_sounds_off_all(p);
337 snd_emux_dec_count(emu); 337 snd_emux_dec_count(emu);
338 up(&emu->register_mutex); 338 mutex_unlock(&emu->register_mutex);
339 return 0; 339 return 0;
340} 340}
341 341
diff --git a/sound/synth/emux/soundfont.c b/sound/synth/emux/soundfont.c
index 4c5754d4a2e8..32c27162dfb6 100644
--- a/sound/synth/emux/soundfont.c
+++ b/sound/synth/emux/soundfont.c
@@ -79,7 +79,7 @@ static void
79lock_preset(struct snd_sf_list *sflist) 79lock_preset(struct snd_sf_list *sflist)
80{ 80{
81 unsigned long flags; 81 unsigned long flags;
82 down(&sflist->presets_mutex); 82 mutex_lock(&sflist->presets_mutex);
83 spin_lock_irqsave(&sflist->lock, flags); 83 spin_lock_irqsave(&sflist->lock, flags);
84 sflist->presets_locked = 1; 84 sflist->presets_locked = 1;
85 spin_unlock_irqrestore(&sflist->lock, flags); 85 spin_unlock_irqrestore(&sflist->lock, flags);
@@ -96,7 +96,7 @@ unlock_preset(struct snd_sf_list *sflist)
96 spin_lock_irqsave(&sflist->lock, flags); 96 spin_lock_irqsave(&sflist->lock, flags);
97 sflist->presets_locked = 0; 97 sflist->presets_locked = 0;
98 spin_unlock_irqrestore(&sflist->lock, flags); 98 spin_unlock_irqrestore(&sflist->lock, flags);
99 up(&sflist->presets_mutex); 99 mutex_unlock(&sflist->presets_mutex);
100} 100}
101 101
102 102
@@ -1390,7 +1390,7 @@ snd_sf_new(struct snd_sf_callback *callback, struct snd_util_memhdr *hdr)
1390 if ((sflist = kzalloc(sizeof(*sflist), GFP_KERNEL)) == NULL) 1390 if ((sflist = kzalloc(sizeof(*sflist), GFP_KERNEL)) == NULL)
1391 return NULL; 1391 return NULL;
1392 1392
1393 init_MUTEX(&sflist->presets_mutex); 1393 mutex_init(&sflist->presets_mutex);
1394 spin_lock_init(&sflist->lock); 1394 spin_lock_init(&sflist->lock);
1395 sflist->memhdr = hdr; 1395 sflist->memhdr = hdr;
1396 1396
diff --git a/sound/synth/util_mem.c b/sound/synth/util_mem.c
index 217e8e552a42..1d9b11f345f8 100644
--- a/sound/synth/util_mem.c
+++ b/sound/synth/util_mem.c
@@ -18,6 +18,7 @@
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */ 19 */
20 20
21#include <linux/mutex.h>
21#include <sound/driver.h> 22#include <sound/driver.h>
22#include <linux/init.h> 23#include <linux/init.h>
23#include <linux/slab.h> 24#include <linux/slab.h>
@@ -42,7 +43,7 @@ snd_util_memhdr_new(int memsize)
42 if (hdr == NULL) 43 if (hdr == NULL)
43 return NULL; 44 return NULL;
44 hdr->size = memsize; 45 hdr->size = memsize;
45 init_MUTEX(&hdr->block_mutex); 46 mutex_init(&hdr->block_mutex);
46 INIT_LIST_HEAD(&hdr->block); 47 INIT_LIST_HEAD(&hdr->block);
47 48
48 return hdr; 49 return hdr;
@@ -136,9 +137,9 @@ struct snd_util_memblk *
136snd_util_mem_alloc(struct snd_util_memhdr *hdr, int size) 137snd_util_mem_alloc(struct snd_util_memhdr *hdr, int size)
137{ 138{
138 struct snd_util_memblk *blk; 139 struct snd_util_memblk *blk;
139 down(&hdr->block_mutex); 140 mutex_lock(&hdr->block_mutex);
140 blk = __snd_util_mem_alloc(hdr, size); 141 blk = __snd_util_mem_alloc(hdr, size);
141 up(&hdr->block_mutex); 142 mutex_unlock(&hdr->block_mutex);
142 return blk; 143 return blk;
143} 144}
144 145
@@ -163,9 +164,9 @@ int snd_util_mem_free(struct snd_util_memhdr *hdr, struct snd_util_memblk *blk)
163{ 164{
164 snd_assert(hdr && blk, return -EINVAL); 165 snd_assert(hdr && blk, return -EINVAL);
165 166
166 down(&hdr->block_mutex); 167 mutex_lock(&hdr->block_mutex);
167 __snd_util_mem_free(hdr, blk); 168 __snd_util_mem_free(hdr, blk);
168 up(&hdr->block_mutex); 169 mutex_unlock(&hdr->block_mutex);
169 return 0; 170 return 0;
170} 171}
171 172
@@ -175,9 +176,9 @@ int snd_util_mem_free(struct snd_util_memhdr *hdr, struct snd_util_memblk *blk)
175int snd_util_mem_avail(struct snd_util_memhdr *hdr) 176int snd_util_mem_avail(struct snd_util_memhdr *hdr)
176{ 177{
177 unsigned int size; 178 unsigned int size;
178 down(&hdr->block_mutex); 179 mutex_lock(&hdr->block_mutex);
179 size = hdr->size - hdr->used; 180 size = hdr->size - hdr->used;
180 up(&hdr->block_mutex); 181 mutex_unlock(&hdr->block_mutex);
181 return size; 182 return size;
182} 183}
183 184