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>
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];
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 */
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);
#include "driver.h"
#include <linux/time.h>
+#include <linux/mutex.h>
#include "core.h"
#include "hwdep.h"
#include "timer.h"
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 */
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>
*
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 */
};
/*
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 */
};
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);
{
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);
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)
{
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;
}
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;
}
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) {
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;
{
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;
}
{
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;
}
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++;
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;
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);
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;
{
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;
}
{
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,
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
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;
}
{
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;
}
(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;
}
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;
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
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;
}
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;
}
snd_emux_reset_port(p);
- up(&emu->register_mutex);
+ mutex_unlock(&emu->register_mutex);
return 0;
}
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;
}
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);
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) {
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);
}
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);
}
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;
}
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;
}
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);
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);
}
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;
* 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>
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;
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;
}
{
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;
}
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;
}