[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: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Родитель
1a60d4c5a0
Коммит
ef9f0a42db
|
@ -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;
|
||||
};
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
#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;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче