提交 ef9f0a42 编写于 作者: I Ingo Molnar 提交者: Jaroslav Kysela

[ALSA] semaphore -> mutex (driver part)

Semaphore to mutex conversion.

The conversion was generated via scripts, and the result was validated
automatically via a script as well.
Signed-off-by: NIngo Molnar <mingo@elte.hu>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NTakashi Iwai <tiwai@suse.de>
上级 1a60d4c5
......@@ -113,7 +113,7 @@ struct snd_emux {
struct snd_emux_voice *voices; /* Voices (EMU 'channel') */
int use_time; /* allocation counter */
spinlock_t voice_lock; /* Lock for voice access */
struct semaphore register_mutex;
struct mutex register_mutex;
int client; /* For the sequencer client */
int ports[SNDRV_EMUX_MAX_PORTS]; /* The ports for this device */
struct snd_emux_port *portptrs[SNDRV_EMUX_MAX_PORTS];
......
......@@ -55,7 +55,7 @@ struct snd_i2c_bus {
struct snd_card *card; /* card which I2C belongs to */
char name[32]; /* some useful label */
struct semaphore lock_mutex;
struct mutex lock_mutex;
struct snd_i2c_bus *master; /* master bus when SCK/SCL is shared */
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);
static inline void snd_i2c_lock(struct snd_i2c_bus *bus)
{
if (bus->master)
down(&bus->master->lock_mutex);
mutex_lock(&bus->master->lock_mutex);
else
down(&bus->lock_mutex);
mutex_lock(&bus->lock_mutex);
}
static inline void snd_i2c_unlock(struct snd_i2c_bus *bus)
{
if (bus->master)
up(&bus->master->lock_mutex);
mutex_unlock(&bus->master->lock_mutex);
else
up(&bus->lock_mutex);
mutex_unlock(&bus->lock_mutex);
}
int snd_i2c_sendbytes(struct snd_i2c_device *device, unsigned char *bytes, int count);
......
......@@ -53,6 +53,7 @@
#include "driver.h"
#include <linux/time.h>
#include <linux/mutex.h>
#include "core.h"
#include "hwdep.h"
#include "timer.h"
......@@ -312,7 +313,7 @@ struct snd_opl3 {
int sys_timer_status; /* system timer run status */
spinlock_t sys_timer_lock; /* Lock for system timer access */
#endif
struct semaphore access_mutex; /* locking */
struct mutex access_mutex; /* locking */
};
/* opl3.c */
......
......@@ -93,7 +93,7 @@ struct snd_sf_list {
int sample_locked; /* locked time for sample */
struct snd_sf_callback callback; /* callback functions */
int presets_locked;
struct semaphore presets_mutex;
struct mutex presets_mutex;
spinlock_t lock;
struct snd_util_memhdr *memhdr;
};
......
#ifndef __SOUND_UTIL_MEM_H
#define __SOUND_UTIL_MEM_H
#include <linux/mutex.h>
/*
* Copyright (C) 2000 Takashi Iwai <tiwai@suse.de>
*
......@@ -40,7 +42,7 @@ struct snd_util_memhdr {
int nblocks; /* # of allocated blocks */
unsigned int used; /* used memory size */
int block_extra_size; /* extra data size of chunk */
struct semaphore block_mutex; /* lock */
struct mutex block_mutex; /* lock */
};
/*
......
......@@ -206,7 +206,7 @@ struct vx_core {
int audio_monitor[4]; /* playback hw-monitor level */
unsigned char audio_monitor_active[4]; /* playback hw-monitor mute/unmute */
struct semaphore mixer_mutex;
struct mutex mixer_mutex;
const struct firmware *firmware[4]; /* loaded firmware data */
};
......
......@@ -358,7 +358,7 @@ int snd_opl3_new(struct snd_card *card,
opl3->hardware = hardware;
spin_lock_init(&opl3->reg_lock);
spin_lock_init(&opl3->timer_lock);
init_MUTEX(&opl3->access_mutex);
mutex_init(&opl3->access_mutex);
if ((err = snd_device_new(card, SNDRV_DEV_CODEC, opl3, &ops)) < 0) {
snd_opl3_free(opl3);
......
......@@ -52,13 +52,13 @@ int snd_opl3_synth_setup(struct snd_opl3 * opl3)
{
int idx;
down(&opl3->access_mutex);
mutex_lock(&opl3->access_mutex);
if (opl3->used) {
up(&opl3->access_mutex);
mutex_unlock(&opl3->access_mutex);
return -EBUSY;
}
opl3->used++;
up(&opl3->access_mutex);
mutex_unlock(&opl3->access_mutex);
snd_opl3_reset(opl3);
......@@ -91,9 +91,9 @@ void snd_opl3_synth_cleanup(struct snd_opl3 * opl3)
spin_unlock_irqrestore(&opl3->sys_timer_lock, flags);
snd_opl3_reset(opl3);
down(&opl3->access_mutex);
mutex_lock(&opl3->access_mutex);
opl3->used--;
up(&opl3->access_mutex);
mutex_unlock(&opl3->access_mutex);
}
static int snd_opl3_synth_use(void *private_data, struct snd_seq_port_subscribe * info)
......
......@@ -76,13 +76,13 @@ int snd_opl3_open(struct snd_hwdep * hw, struct file *file)
{
struct snd_opl3 *opl3 = hw->private_data;
down(&opl3->access_mutex);
mutex_lock(&opl3->access_mutex);
if (opl3->used) {
up(&opl3->access_mutex);
mutex_unlock(&opl3->access_mutex);
return -EAGAIN;
}
opl3->used++;
up(&opl3->access_mutex);
mutex_unlock(&opl3->access_mutex);
return 0;
}
......@@ -179,9 +179,9 @@ int snd_opl3_release(struct snd_hwdep * hw, struct file *file)
struct snd_opl3 *opl3 = hw->private_data;
snd_opl3_reset(opl3);
down(&opl3->access_mutex);
mutex_lock(&opl3->access_mutex);
opl3->used--;
up(&opl3->access_mutex);
mutex_unlock(&opl3->access_mutex);
return 0;
}
......
......@@ -214,7 +214,7 @@ int snd_opl4_create(struct snd_card *card,
opl4->fm_port = fm_port;
opl4->pcm_port = pcm_port;
spin_lock_init(&opl4->reg_lock);
init_MUTEX(&opl4->access_mutex);
mutex_init(&opl4->access_mutex);
err = snd_opl4_detect(opl4);
if (err < 0) {
......
......@@ -182,7 +182,7 @@ struct snd_opl4 {
struct snd_info_entry *proc_entry;
int memory_access;
#endif
struct semaphore access_mutex;
struct mutex access_mutex;
#if defined(CONFIG_SND_SEQUENCER) || defined(CONFIG_SND_SEQUENCER_MODULE)
int used;
......
......@@ -28,13 +28,13 @@ static int snd_opl4_mem_proc_open(struct snd_info_entry *entry,
{
struct snd_opl4 *opl4 = entry->private_data;
down(&opl4->access_mutex);
mutex_lock(&opl4->access_mutex);
if (opl4->memory_access) {
up(&opl4->access_mutex);
mutex_unlock(&opl4->access_mutex);
return -EBUSY;
}
opl4->memory_access++;
up(&opl4->access_mutex);
mutex_unlock(&opl4->access_mutex);
return 0;
}
......@@ -43,9 +43,9 @@ static int snd_opl4_mem_proc_release(struct snd_info_entry *entry,
{
struct snd_opl4 *opl4 = entry->private_data;
down(&opl4->access_mutex);
mutex_lock(&opl4->access_mutex);
opl4->memory_access--;
up(&opl4->access_mutex);
mutex_unlock(&opl4->access_mutex);
return 0;
}
......
......@@ -62,10 +62,10 @@ static int snd_opl4_seq_use(void *private_data, struct snd_seq_port_subscribe *i
struct snd_opl4 *opl4 = private_data;
int err;
down(&opl4->access_mutex);
mutex_lock(&opl4->access_mutex);
if (opl4->used) {
up(&opl4->access_mutex);
mutex_unlock(&opl4->access_mutex);
return -EBUSY;
}
opl4->used++;
......@@ -73,12 +73,12 @@ static int snd_opl4_seq_use(void *private_data, struct snd_seq_port_subscribe *i
if (info->sender.client != SNDRV_SEQ_CLIENT_SYSTEM) {
err = snd_opl4_seq_use_inc(opl4);
if (err < 0) {
up(&opl4->access_mutex);
mutex_unlock(&opl4->access_mutex);
return err;
}
}
up(&opl4->access_mutex);
mutex_unlock(&opl4->access_mutex);
snd_opl4_synth_reset(opl4);
return 0;
......@@ -90,9 +90,9 @@ static int snd_opl4_seq_unuse(void *private_data, struct snd_seq_port_subscribe
snd_opl4_synth_shutdown(opl4);
down(&opl4->access_mutex);
mutex_lock(&opl4->access_mutex);
opl4->used--;
up(&opl4->access_mutex);
mutex_unlock(&opl4->access_mutex);
if (info->sender.client != SNDRV_SEQ_CLIENT_SYSTEM)
snd_opl4_seq_use_dec(opl4);
......
......@@ -778,7 +778,7 @@ struct vx_core *snd_vx_create(struct snd_card *card, struct snd_vx_hardware *hw,
chip->type = hw->type;
chip->ops = ops;
tasklet_init(&chip->tq, vx_interrupt, (unsigned long)chip);
init_MUTEX(&chip->mixer_mutex);
mutex_init(&chip->mixer_mutex);
chip->card = card;
card->private_data = chip;
......
......@@ -427,10 +427,10 @@ static int vx_output_level_get(struct snd_kcontrol *kcontrol, struct snd_ctl_ele
{
struct vx_core *chip = snd_kcontrol_chip(kcontrol);
int codec = kcontrol->id.index;
down(&chip->mixer_mutex);
mutex_lock(&chip->mixer_mutex);
ucontrol->value.integer.value[0] = chip->output_level[codec][0];
ucontrol->value.integer.value[1] = chip->output_level[codec][1];
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 0;
}
......@@ -438,7 +438,7 @@ static int vx_output_level_put(struct snd_kcontrol *kcontrol, struct snd_ctl_ele
{
struct vx_core *chip = snd_kcontrol_chip(kcontrol);
int codec = kcontrol->id.index;
down(&chip->mixer_mutex);
mutex_lock(&chip->mixer_mutex);
if (ucontrol->value.integer.value[0] != chip->output_level[codec][0] ||
ucontrol->value.integer.value[1] != chip->output_level[codec][1]) {
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
ucontrol->value.integer.value[1]);
chip->output_level[codec][0] = ucontrol->value.integer.value[0];
chip->output_level[codec][1] = ucontrol->value.integer.value[1];
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 1;
}
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 0;
}
......@@ -502,14 +502,14 @@ static int vx_audio_src_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_v
static int vx_audio_src_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct vx_core *chip = snd_kcontrol_chip(kcontrol);
down(&chip->mixer_mutex);
mutex_lock(&chip->mixer_mutex);
if (chip->audio_source_target != ucontrol->value.enumerated.item[0]) {
chip->audio_source_target = ucontrol->value.enumerated.item[0];
vx_sync_audio_source(chip);
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 1;
}
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 0;
}
......@@ -550,14 +550,14 @@ static int vx_clock_mode_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_
static int vx_clock_mode_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{
struct vx_core *chip = snd_kcontrol_chip(kcontrol);
down(&chip->mixer_mutex);
mutex_lock(&chip->mixer_mutex);
if (chip->clock_mode != ucontrol->value.enumerated.item[0]) {
chip->clock_mode = ucontrol->value.enumerated.item[0];
vx_set_clock(chip, chip->freq);
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 1;
}
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 0;
}
......@@ -587,10 +587,10 @@ static int vx_audio_gain_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_
int audio = kcontrol->private_value & 0xff;
int capture = (kcontrol->private_value >> 8) & 1;
down(&chip->mixer_mutex);
mutex_lock(&chip->mixer_mutex);
ucontrol->value.integer.value[0] = chip->audio_gain[capture][audio];
ucontrol->value.integer.value[1] = chip->audio_gain[capture][audio+1];
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 0;
}
......@@ -600,15 +600,15 @@ static int vx_audio_gain_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_
int audio = kcontrol->private_value & 0xff;
int capture = (kcontrol->private_value >> 8) & 1;
down(&chip->mixer_mutex);
mutex_lock(&chip->mixer_mutex);
if (ucontrol->value.integer.value[0] != chip->audio_gain[capture][audio] ||
ucontrol->value.integer.value[1] != chip->audio_gain[capture][audio+1]) {
vx_set_audio_gain(chip, audio, capture, ucontrol->value.integer.value[0]);
vx_set_audio_gain(chip, audio+1, capture, ucontrol->value.integer.value[1]);
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 1;
}
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 0;
}
......@@ -617,10 +617,10 @@ static int vx_audio_monitor_get(struct snd_kcontrol *kcontrol, struct snd_ctl_el
struct vx_core *chip = snd_kcontrol_chip(kcontrol);
int audio = kcontrol->private_value & 0xff;
down(&chip->mixer_mutex);
mutex_lock(&chip->mixer_mutex);
ucontrol->value.integer.value[0] = chip->audio_monitor[audio];
ucontrol->value.integer.value[1] = chip->audio_monitor[audio+1];
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 0;
}
......@@ -629,17 +629,17 @@ static int vx_audio_monitor_put(struct snd_kcontrol *kcontrol, struct snd_ctl_el
struct vx_core *chip = snd_kcontrol_chip(kcontrol);
int audio = kcontrol->private_value & 0xff;
down(&chip->mixer_mutex);
mutex_lock(&chip->mixer_mutex);
if (ucontrol->value.integer.value[0] != chip->audio_monitor[audio] ||
ucontrol->value.integer.value[1] != chip->audio_monitor[audio+1]) {
vx_set_monitor_level(chip, audio, ucontrol->value.integer.value[0],
chip->audio_monitor_active[audio]);
vx_set_monitor_level(chip, audio+1, ucontrol->value.integer.value[1],
chip->audio_monitor_active[audio+1]);
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 1;
}
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 0;
}
......@@ -657,10 +657,10 @@ static int vx_audio_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_va
struct vx_core *chip = snd_kcontrol_chip(kcontrol);
int audio = kcontrol->private_value & 0xff;
down(&chip->mixer_mutex);
mutex_lock(&chip->mixer_mutex);
ucontrol->value.integer.value[0] = chip->audio_active[audio];
ucontrol->value.integer.value[1] = chip->audio_active[audio+1];
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 0;
}
......@@ -669,15 +669,15 @@ static int vx_audio_sw_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_va
struct vx_core *chip = snd_kcontrol_chip(kcontrol);
int audio = kcontrol->private_value & 0xff;
down(&chip->mixer_mutex);
mutex_lock(&chip->mixer_mutex);
if (ucontrol->value.integer.value[0] != chip->audio_active[audio] ||
ucontrol->value.integer.value[1] != chip->audio_active[audio+1]) {
vx_set_audio_switch(chip, audio, ucontrol->value.integer.value[0]);
vx_set_audio_switch(chip, audio+1, ucontrol->value.integer.value[1]);
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 1;
}
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 0;
}
......@@ -686,10 +686,10 @@ static int vx_monitor_sw_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_
struct vx_core *chip = snd_kcontrol_chip(kcontrol);
int audio = kcontrol->private_value & 0xff;
down(&chip->mixer_mutex);
mutex_lock(&chip->mixer_mutex);
ucontrol->value.integer.value[0] = chip->audio_monitor_active[audio];
ucontrol->value.integer.value[1] = chip->audio_monitor_active[audio+1];
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 0;
}
......@@ -698,17 +698,17 @@ static int vx_monitor_sw_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_
struct vx_core *chip = snd_kcontrol_chip(kcontrol);
int audio = kcontrol->private_value & 0xff;
down(&chip->mixer_mutex);
mutex_lock(&chip->mixer_mutex);
if (ucontrol->value.integer.value[0] != chip->audio_monitor_active[audio] ||
ucontrol->value.integer.value[1] != chip->audio_monitor_active[audio+1]) {
vx_set_monitor_level(chip, audio, chip->audio_monitor[audio],
ucontrol->value.integer.value[0]);
vx_set_monitor_level(chip, audio+1, chip->audio_monitor[audio+1],
ucontrol->value.integer.value[1]);
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 1;
}
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 0;
}
......@@ -756,12 +756,12 @@ static int vx_iec958_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_valu
{
struct vx_core *chip = snd_kcontrol_chip(kcontrol);
down(&chip->mixer_mutex);
mutex_lock(&chip->mixer_mutex);
ucontrol->value.iec958.status[0] = (chip->uer_bits >> 0) & 0xff;
ucontrol->value.iec958.status[1] = (chip->uer_bits >> 8) & 0xff;
ucontrol->value.iec958.status[2] = (chip->uer_bits >> 16) & 0xff;
ucontrol->value.iec958.status[3] = (chip->uer_bits >> 24) & 0xff;
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 0;
}
......@@ -783,14 +783,14 @@ static int vx_iec958_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_valu
(ucontrol->value.iec958.status[1] << 8) |
(ucontrol->value.iec958.status[2] << 16) |
(ucontrol->value.iec958.status[3] << 24);
down(&chip->mixer_mutex);
mutex_lock(&chip->mixer_mutex);
if (chip->uer_bits != val) {
chip->uer_bits = val;
vx_set_iec958_status(chip, val);
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 1;
}
up(&chip->mixer_mutex);
mutex_unlock(&chip->mixer_mutex);
return 0;
}
......
......@@ -88,7 +88,7 @@ int snd_i2c_bus_create(struct snd_card *card, const char *name,
bus = kzalloc(sizeof(*bus), GFP_KERNEL);
if (bus == NULL)
return -ENOMEM;
init_MUTEX(&bus->lock_mutex);
mutex_init(&bus->lock_mutex);
INIT_LIST_HEAD(&bus->devices);
INIT_LIST_HEAD(&bus->buses);
bus->card = card;
......
......@@ -45,7 +45,7 @@ int snd_emux_new(struct snd_emux **remu)
return -ENOMEM;
spin_lock_init(&emu->voice_lock);
init_MUTEX(&emu->register_mutex);
mutex_init(&emu->register_mutex);
emu->client = -1;
#ifdef CONFIG_SND_SEQUENCER_OSS
......
......@@ -117,10 +117,10 @@ snd_emux_open_seq_oss(struct snd_seq_oss_arg *arg, void *closure)
emu = closure;
snd_assert(arg != NULL && emu != NULL, return -ENXIO);
down(&emu->register_mutex);
mutex_lock(&emu->register_mutex);
if (!snd_emux_inc_count(emu)) {
up(&emu->register_mutex);
mutex_unlock(&emu->register_mutex);
return -EFAULT;
}
......@@ -134,7 +134,7 @@ snd_emux_open_seq_oss(struct snd_seq_oss_arg *arg, void *closure)
if (p == NULL) {
snd_printk("can't create port\n");
snd_emux_dec_count(emu);
up(&emu->register_mutex);
mutex_unlock(&emu->register_mutex);
return -ENOMEM;
}
......@@ -148,7 +148,7 @@ snd_emux_open_seq_oss(struct snd_seq_oss_arg *arg, void *closure)
snd_emux_reset_port(p);
up(&emu->register_mutex);
mutex_unlock(&emu->register_mutex);
return 0;
}
......@@ -191,13 +191,13 @@ snd_emux_close_seq_oss(struct snd_seq_oss_arg *arg)
emu = p->emu;
snd_assert(emu != NULL, return -ENXIO);
down(&emu->register_mutex);
mutex_lock(&emu->register_mutex);
snd_emux_sounds_off_all(p);
snd_soundfont_close_check(emu->sflist, SF_CLIENT_NO(p->chset.port));
snd_seq_event_port_detach(p->chset.client, p->chset.port);
snd_emux_dec_count(emu);
up(&emu->register_mutex);
mutex_unlock(&emu->register_mutex);
return 0;
}
......
......@@ -37,7 +37,7 @@ snd_emux_proc_info_read(struct snd_info_entry *entry,
int i;
emu = entry->private_data;
down(&emu->register_mutex);
mutex_lock(&emu->register_mutex);
if (emu->name)
snd_iprintf(buf, "Device: %s\n", emu->name);
snd_iprintf(buf, "Ports: %d\n", emu->num_ports);
......@@ -56,13 +56,13 @@ snd_emux_proc_info_read(struct snd_info_entry *entry,
snd_iprintf(buf, "Memory Size: 0\n");
}
if (emu->sflist) {
down(&emu->sflist->presets_mutex);
mutex_lock(&emu->sflist->presets_mutex);
snd_iprintf(buf, "SoundFonts: %d\n", emu->sflist->fonts_size);
snd_iprintf(buf, "Instruments: %d\n", emu->sflist->zone_counter);
snd_iprintf(buf, "Samples: %d\n", emu->sflist->sample_counter);
snd_iprintf(buf, "Locked Instruments: %d\n", emu->sflist->zone_locked);
snd_iprintf(buf, "Locked Samples: %d\n", emu->sflist->sample_locked);
up(&emu->sflist->presets_mutex);
mutex_unlock(&emu->sflist->presets_mutex);
}
#if 0 /* debug */
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,
snd_iprintf(buf, "sample_mode=%x, rate=%x\n", vp->reg.sample_mode, vp->reg.rate_offset);
}
#endif
up(&emu->register_mutex);
mutex_unlock(&emu->register_mutex);
}
......
......@@ -123,12 +123,12 @@ snd_emux_detach_seq(struct snd_emux *emu)
if (emu->voices)
snd_emux_terminate_all(emu);
down(&emu->register_mutex);
mutex_lock(&emu->register_mutex);
if (emu->client >= 0) {
snd_seq_delete_kernel_client(emu->client);
emu->client = -1;
}
up(&emu->register_mutex);
mutex_unlock(&emu->register_mutex);
}
......@@ -311,10 +311,10 @@ snd_emux_use(void *private_data, struct snd_seq_port_subscribe *info)
emu = p->emu;
snd_assert(emu != NULL, return -EINVAL);
down(&emu->register_mutex);
mutex_lock(&emu->register_mutex);
snd_emux_init_port(p);
snd_emux_inc_count(emu);
up(&emu->register_mutex);
mutex_unlock(&emu->register_mutex);
return 0;
}
......@@ -332,10 +332,10 @@ snd_emux_unuse(void *private_data, struct snd_seq_port_subscribe *info)
emu = p->emu;
snd_assert(emu != NULL, return -EINVAL);
down(&emu->register_mutex);
mutex_lock(&emu->register_mutex);
snd_emux_sounds_off_all(p);
snd_emux_dec_count(emu);
up(&emu->register_mutex);
mutex_unlock(&emu->register_mutex);
return 0;
}
......
......@@ -79,7 +79,7 @@ static void
lock_preset(struct snd_sf_list *sflist)
{
unsigned long flags;
down(&sflist->presets_mutex);
mutex_lock(&sflist->presets_mutex);
spin_lock_irqsave(&sflist->lock, flags);
sflist->presets_locked = 1;
spin_unlock_irqrestore(&sflist->lock, flags);
......@@ -96,7 +96,7 @@ unlock_preset(struct snd_sf_list *sflist)
spin_lock_irqsave(&sflist->lock, flags);
sflist->presets_locked = 0;
spin_unlock_irqrestore(&sflist->lock, flags);
up(&sflist->presets_mutex);
mutex_unlock(&sflist->presets_mutex);
}
......@@ -1390,7 +1390,7 @@ snd_sf_new(struct snd_sf_callback *callback, struct snd_util_memhdr *hdr)
if ((sflist = kzalloc(sizeof(*sflist), GFP_KERNEL)) == NULL)
return NULL;
init_MUTEX(&sflist->presets_mutex);
mutex_init(&sflist->presets_mutex);
spin_lock_init(&sflist->lock);
sflist->memhdr = hdr;
......
......@@ -18,6 +18,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <linux/mutex.h>
#include <sound/driver.h>
#include <linux/init.h>
#include <linux/slab.h>
......@@ -42,7 +43,7 @@ snd_util_memhdr_new(int memsize)
if (hdr == NULL)
return NULL;
hdr->size = memsize;
init_MUTEX(&hdr->block_mutex);
mutex_init(&hdr->block_mutex);
INIT_LIST_HEAD(&hdr->block);
return hdr;
......@@ -136,9 +137,9 @@ struct snd_util_memblk *
snd_util_mem_alloc(struct snd_util_memhdr *hdr, int size)
{
struct snd_util_memblk *blk;
down(&hdr->block_mutex);
mutex_lock(&hdr->block_mutex);
blk = __snd_util_mem_alloc(hdr, size);
up(&hdr->block_mutex);
mutex_unlock(&hdr->block_mutex);
return blk;
}
......@@ -163,9 +164,9 @@ int snd_util_mem_free(struct snd_util_memhdr *hdr, struct snd_util_memblk *blk)
{
snd_assert(hdr && blk, return -EINVAL);
down(&hdr->block_mutex);
mutex_lock(&hdr->block_mutex);
__snd_util_mem_free(hdr, blk);
up(&hdr->block_mutex);
mutex_unlock(&hdr->block_mutex);
return 0;
}
......@@ -175,9 +176,9 @@ int snd_util_mem_free(struct snd_util_memhdr *hdr, struct snd_util_memblk *blk)
int snd_util_mem_avail(struct snd_util_memhdr *hdr)
{
unsigned int size;
down(&hdr->block_mutex);
mutex_lock(&hdr->block_mutex);
size = hdr->size - hdr->used;
up(&hdr->block_mutex);
mutex_unlock(&hdr->block_mutex);
return size;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册