mirror of
https://github.com/torvalds/linux.git
synced 2026-01-12 00:42:35 +08:00
ALSA: cs46xx: Use guard() for mutex locks
Replace the manual mutex lock/unlock pairs with guard() for code simplification. Only code refactoring, and no behavior change. Signed-off-by: Takashi Iwai <tiwai@suse.de> Link: https://patch.msgid.link/20250829144342.4290-20-tiwai@suse.de
This commit is contained in:
@@ -1093,24 +1093,17 @@ static int snd_cs46xx_playback_hw_params(struct snd_pcm_substream *substream,
|
||||
if (snd_BUG_ON(!sample_rate))
|
||||
return -ENXIO;
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
guard(mutex)(&chip->spos_mutex);
|
||||
|
||||
if (_cs46xx_adjust_sample_rate (chip,cpcm,sample_rate)) {
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
if (_cs46xx_adjust_sample_rate(chip, cpcm, sample_rate))
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
snd_BUG_ON(!cpcm->pcm_channel);
|
||||
if (!cpcm->pcm_channel) {
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
if (!cpcm->pcm_channel)
|
||||
return -ENXIO;
|
||||
}
|
||||
|
||||
|
||||
if (cs46xx_dsp_pcm_channel_set_period (chip,cpcm->pcm_channel,period_size)) {
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
if (cs46xx_dsp_pcm_channel_set_period(chip, cpcm->pcm_channel, period_size))
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
dev_dbg(chip->card->dev,
|
||||
"period_size (%d), periods (%d) buffer_size(%d)\n",
|
||||
@@ -1144,12 +1137,8 @@ static int snd_cs46xx_playback_hw_params(struct snd_pcm_substream *substream,
|
||||
if (runtime->dma_area == cpcm->hw_buf.area)
|
||||
snd_pcm_set_runtime_buffer(substream, NULL);
|
||||
err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params));
|
||||
if (err < 0) {
|
||||
#ifdef CONFIG_SND_CS46XX_NEW_DSP
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
#endif
|
||||
if (err < 0)
|
||||
return err;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SND_CS46XX_NEW_DSP
|
||||
if (cpcm->pcm_channel_id == DSP_PCM_MAIN_CHANNEL) {
|
||||
@@ -1169,10 +1158,6 @@ static int snd_cs46xx_playback_hw_params(struct snd_pcm_substream *substream,
|
||||
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SND_CS46XX_NEW_DSP
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1495,16 +1480,14 @@ static int _cs46xx_playback_open_channel (struct snd_pcm_substream *substream,in
|
||||
|
||||
cpcm->substream = substream;
|
||||
#ifdef CONFIG_SND_CS46XX_NEW_DSP
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
cpcm->pcm_channel = NULL;
|
||||
cpcm->pcm_channel_id = pcm_channel_id;
|
||||
|
||||
scoped_guard(mutex, &chip->spos_mutex) {
|
||||
cpcm->pcm_channel = NULL;
|
||||
cpcm->pcm_channel_id = pcm_channel_id;
|
||||
}
|
||||
|
||||
snd_pcm_hw_constraint_list(runtime, 0,
|
||||
SNDRV_PCM_HW_PARAM_PERIOD_BYTES,
|
||||
&hw_constraints_period_sizes);
|
||||
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
#else
|
||||
chip->playback_pcm = cpcm; /* HACK */
|
||||
#endif
|
||||
@@ -1541,9 +1524,9 @@ static int snd_cs46xx_playback_open_iec958(struct snd_pcm_substream *substream)
|
||||
|
||||
dev_dbg(chip->card->dev, "open raw iec958 channel\n");
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
cs46xx_iec958_pre_open (chip);
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
scoped_guard(mutex, &chip->spos_mutex) {
|
||||
cs46xx_iec958_pre_open(chip);
|
||||
}
|
||||
|
||||
return _cs46xx_playback_open_channel(substream,DSP_IEC958_CHANNEL);
|
||||
}
|
||||
@@ -1559,9 +1542,9 @@ static int snd_cs46xx_playback_close_iec958(struct snd_pcm_substream *substream)
|
||||
|
||||
err = snd_cs46xx_playback_close(substream);
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
cs46xx_iec958_post_close (chip);
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
scoped_guard(mutex, &chip->spos_mutex) {
|
||||
cs46xx_iec958_post_close(chip);
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
@@ -1602,12 +1585,12 @@ static int snd_cs46xx_playback_close(struct snd_pcm_substream *substream)
|
||||
if (!cpcm) return -ENXIO;
|
||||
|
||||
#ifdef CONFIG_SND_CS46XX_NEW_DSP
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
if (cpcm->pcm_channel) {
|
||||
cs46xx_dsp_destroy_pcm_channel(chip,cpcm->pcm_channel);
|
||||
cpcm->pcm_channel = NULL;
|
||||
scoped_guard(mutex, &chip->spos_mutex) {
|
||||
if (cpcm->pcm_channel) {
|
||||
cs46xx_dsp_destroy_pcm_channel(chip, cpcm->pcm_channel);
|
||||
cpcm->pcm_channel = NULL;
|
||||
}
|
||||
}
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
#else
|
||||
chip->playback_pcm = NULL;
|
||||
#endif
|
||||
@@ -1982,15 +1965,15 @@ static int snd_cs46xx_iec958_put(struct snd_kcontrol *kcontrol,
|
||||
|
||||
switch (kcontrol->private_value) {
|
||||
case CS46XX_MIXER_SPDIF_OUTPUT_ELEMENT:
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
change = (chip->dsp_spos_instance->spdif_status_out & DSP_SPDIF_STATUS_OUTPUT_ENABLED);
|
||||
if (ucontrol->value.integer.value[0] && !change)
|
||||
cs46xx_dsp_enable_spdif_out(chip);
|
||||
else if (change && !ucontrol->value.integer.value[0])
|
||||
cs46xx_dsp_disable_spdif_out(chip);
|
||||
scoped_guard(mutex, &chip->spos_mutex) {
|
||||
change = (chip->dsp_spos_instance->spdif_status_out & DSP_SPDIF_STATUS_OUTPUT_ENABLED);
|
||||
if (ucontrol->value.integer.value[0] && !change)
|
||||
cs46xx_dsp_enable_spdif_out(chip);
|
||||
else if (change && !ucontrol->value.integer.value[0])
|
||||
cs46xx_dsp_disable_spdif_out(chip);
|
||||
|
||||
res = (change != (chip->dsp_spos_instance->spdif_status_out & DSP_SPDIF_STATUS_OUTPUT_ENABLED));
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
res = (change != (chip->dsp_spos_instance->spdif_status_out & DSP_SPDIF_STATUS_OUTPUT_ENABLED));
|
||||
}
|
||||
break;
|
||||
case CS46XX_MIXER_SPDIF_INPUT_ELEMENT:
|
||||
change = chip->dsp_spos_instance->spdif_status_in;
|
||||
@@ -2131,12 +2114,11 @@ static int snd_cs46xx_spdif_default_get(struct snd_kcontrol *kcontrol,
|
||||
struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol);
|
||||
struct dsp_spos_instance * ins = chip->dsp_spos_instance;
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
guard(mutex)(&chip->spos_mutex);
|
||||
ucontrol->value.iec958.status[0] = _wrap_all_bits((ins->spdif_csuv_default >> 24) & 0xff);
|
||||
ucontrol->value.iec958.status[1] = _wrap_all_bits((ins->spdif_csuv_default >> 16) & 0xff);
|
||||
ucontrol->value.iec958.status[2] = 0;
|
||||
ucontrol->value.iec958.status[3] = _wrap_all_bits((ins->spdif_csuv_default) & 0xff);
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -2149,7 +2131,7 @@ static int snd_cs46xx_spdif_default_put(struct snd_kcontrol *kcontrol,
|
||||
unsigned int val;
|
||||
int change;
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
guard(mutex)(&chip->spos_mutex);
|
||||
val = ((unsigned int)_wrap_all_bits(ucontrol->value.iec958.status[0]) << 24) |
|
||||
((unsigned int)_wrap_all_bits(ucontrol->value.iec958.status[2]) << 16) |
|
||||
((unsigned int)_wrap_all_bits(ucontrol->value.iec958.status[3])) |
|
||||
@@ -2163,8 +2145,6 @@ static int snd_cs46xx_spdif_default_put(struct snd_kcontrol *kcontrol,
|
||||
if ( !(ins->spdif_status_out & DSP_SPDIF_STATUS_PLAYBACK_OPEN) )
|
||||
cs46xx_poke_via_dsp (chip,SP_SPDOUT_CSUV,val);
|
||||
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
|
||||
return change;
|
||||
}
|
||||
|
||||
@@ -2184,12 +2164,11 @@ static int snd_cs46xx_spdif_stream_get(struct snd_kcontrol *kcontrol,
|
||||
struct snd_cs46xx *chip = snd_kcontrol_chip(kcontrol);
|
||||
struct dsp_spos_instance * ins = chip->dsp_spos_instance;
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
guard(mutex)(&chip->spos_mutex);
|
||||
ucontrol->value.iec958.status[0] = _wrap_all_bits((ins->spdif_csuv_stream >> 24) & 0xff);
|
||||
ucontrol->value.iec958.status[1] = _wrap_all_bits((ins->spdif_csuv_stream >> 16) & 0xff);
|
||||
ucontrol->value.iec958.status[2] = 0;
|
||||
ucontrol->value.iec958.status[3] = _wrap_all_bits((ins->spdif_csuv_stream) & 0xff);
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -2202,7 +2181,7 @@ static int snd_cs46xx_spdif_stream_put(struct snd_kcontrol *kcontrol,
|
||||
unsigned int val;
|
||||
int change;
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
guard(mutex)(&chip->spos_mutex);
|
||||
val = ((unsigned int)_wrap_all_bits(ucontrol->value.iec958.status[0]) << 24) |
|
||||
((unsigned int)_wrap_all_bits(ucontrol->value.iec958.status[1]) << 16) |
|
||||
((unsigned int)_wrap_all_bits(ucontrol->value.iec958.status[3])) |
|
||||
@@ -2216,8 +2195,6 @@ static int snd_cs46xx_spdif_stream_put(struct snd_kcontrol *kcontrol,
|
||||
if ( ins->spdif_status_out & DSP_SPDIF_STATUS_PLAYBACK_OPEN )
|
||||
cs46xx_poke_via_dsp (chip,SP_SPDOUT_CSUV,val);
|
||||
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
|
||||
return change;
|
||||
}
|
||||
|
||||
|
||||
@@ -283,7 +283,7 @@ void cs46xx_dsp_spos_destroy (struct snd_cs46xx * chip)
|
||||
if (snd_BUG_ON(!ins))
|
||||
return;
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
guard(mutex)(&chip->spos_mutex);
|
||||
for (i = 0; i < ins->nscb; ++i) {
|
||||
if (ins->scbs[i].deleted) continue;
|
||||
|
||||
@@ -297,7 +297,6 @@ void cs46xx_dsp_spos_destroy (struct snd_cs46xx * chip)
|
||||
vfree(ins->symbol_table.symbols);
|
||||
kfree(ins->modules);
|
||||
kfree(ins);
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
}
|
||||
|
||||
static int dsp_load_parameter(struct snd_cs46xx *chip,
|
||||
@@ -525,7 +524,7 @@ static void cs46xx_dsp_proc_modules_read (struct snd_info_entry *entry,
|
||||
struct dsp_spos_instance * ins = chip->dsp_spos_instance;
|
||||
int i,j;
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
guard(mutex)(&chip->spos_mutex);
|
||||
snd_iprintf(buffer, "MODULES:\n");
|
||||
for ( i = 0; i < ins->nmodules; ++i ) {
|
||||
snd_iprintf(buffer, "\n%s:\n", ins->modules[i].module_name);
|
||||
@@ -538,7 +537,6 @@ static void cs46xx_dsp_proc_modules_read (struct snd_info_entry *entry,
|
||||
desc->segment_type,desc->offset, desc->size);
|
||||
}
|
||||
}
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
}
|
||||
|
||||
static void cs46xx_dsp_proc_task_tree_read (struct snd_info_entry *entry,
|
||||
@@ -549,7 +547,7 @@ static void cs46xx_dsp_proc_task_tree_read (struct snd_info_entry *entry,
|
||||
int i, j, col;
|
||||
void __iomem *dst = chip->region.idx[1].remap_addr + DSP_PARAMETER_BYTE_OFFSET;
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
guard(mutex)(&chip->spos_mutex);
|
||||
snd_iprintf(buffer, "TASK TREES:\n");
|
||||
for ( i = 0; i < ins->ntask; ++i) {
|
||||
snd_iprintf(buffer,"\n%04x %s:\n",ins->tasks[i].address,ins->tasks[i].task_name);
|
||||
@@ -566,7 +564,6 @@ static void cs46xx_dsp_proc_task_tree_read (struct snd_info_entry *entry,
|
||||
}
|
||||
|
||||
snd_iprintf(buffer,"\n");
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
}
|
||||
|
||||
static void cs46xx_dsp_proc_scb_read (struct snd_info_entry *entry,
|
||||
@@ -576,7 +573,7 @@ static void cs46xx_dsp_proc_scb_read (struct snd_info_entry *entry,
|
||||
struct dsp_spos_instance * ins = chip->dsp_spos_instance;
|
||||
int i;
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
guard(mutex)(&chip->spos_mutex);
|
||||
snd_iprintf(buffer, "SCB's:\n");
|
||||
for ( i = 0; i < ins->nscb; ++i) {
|
||||
if (ins->scbs[i].deleted)
|
||||
@@ -599,7 +596,6 @@ static void cs46xx_dsp_proc_scb_read (struct snd_info_entry *entry,
|
||||
}
|
||||
|
||||
snd_iprintf(buffer,"\n");
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
}
|
||||
|
||||
static void cs46xx_dsp_proc_parameter_dump_read (struct snd_info_entry *entry,
|
||||
@@ -831,14 +827,13 @@ int cs46xx_dsp_proc_init (struct snd_card *card, struct snd_cs46xx *chip)
|
||||
snd_info_set_text_ops(entry, chip,
|
||||
cs46xx_dsp_proc_scb_read);
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
guard(mutex)(&chip->spos_mutex);
|
||||
/* register/update SCB's entries on proc */
|
||||
for (i = 0; i < ins->nscb; ++i) {
|
||||
if (ins->scbs[i].deleted) continue;
|
||||
|
||||
cs46xx_dsp_proc_register_scb_desc (chip, (ins->scbs + i));
|
||||
}
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -851,12 +846,13 @@ int cs46xx_dsp_proc_done (struct snd_cs46xx *chip)
|
||||
if (!ins)
|
||||
return 0;
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
for (i = 0; i < ins->nscb; ++i) {
|
||||
if (ins->scbs[i].deleted) continue;
|
||||
cs46xx_dsp_proc_free_scb_desc ( (ins->scbs + i) );
|
||||
scoped_guard(mutex, &chip->spos_mutex) {
|
||||
for (i = 0; i < ins->nscb; ++i) {
|
||||
if (ins->scbs[i].deleted)
|
||||
continue;
|
||||
cs46xx_dsp_proc_free_scb_desc((ins->scbs + i));
|
||||
}
|
||||
}
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
|
||||
snd_info_free_entry(ins->proc_dsp_dir);
|
||||
ins->proc_dsp_dir = NULL;
|
||||
@@ -1677,7 +1673,7 @@ int cs46xx_dsp_enable_spdif_in (struct snd_cs46xx *chip)
|
||||
if (snd_BUG_ON(!ins->spdif_in_src))
|
||||
return -EINVAL;
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
guard(mutex)(&chip->spos_mutex);
|
||||
|
||||
if ( ! (ins->spdif_status_out & DSP_SPDIF_STATUS_INPUT_CTRL_ENABLED) ) {
|
||||
/* time countdown enable */
|
||||
@@ -1721,7 +1717,6 @@ int cs46xx_dsp_enable_spdif_in (struct snd_cs46xx *chip)
|
||||
|
||||
/* monitor state */
|
||||
ins->spdif_status_in = 1;
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1735,17 +1730,16 @@ int cs46xx_dsp_disable_spdif_in (struct snd_cs46xx *chip)
|
||||
if (snd_BUG_ON(!ins->spdif_in_src))
|
||||
return -EINVAL;
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
scoped_guard(mutex, &chip->spos_mutex) {
|
||||
/* Remove the asynchronous receiver SCB */
|
||||
cs46xx_dsp_remove_scb(chip, ins->asynch_rx_scb);
|
||||
ins->asynch_rx_scb = NULL;
|
||||
|
||||
/* Remove the asynchronous receiver SCB */
|
||||
cs46xx_dsp_remove_scb (chip,ins->asynch_rx_scb);
|
||||
ins->asynch_rx_scb = NULL;
|
||||
cs46xx_src_unlink(chip, ins->spdif_in_src);
|
||||
|
||||
cs46xx_src_unlink(chip,ins->spdif_in_src);
|
||||
|
||||
/* monitor state */
|
||||
ins->spdif_status_in = 0;
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
/* monitor state */
|
||||
ins->spdif_status_in = 0;
|
||||
}
|
||||
|
||||
/* restore amplifier */
|
||||
chip->active_ctrl(chip, -1);
|
||||
@@ -1763,10 +1757,9 @@ int cs46xx_dsp_enable_pcm_capture (struct snd_cs46xx *chip)
|
||||
if (snd_BUG_ON(!ins->ref_snoop_scb))
|
||||
return -EINVAL;
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
guard(mutex)(&chip->spos_mutex);
|
||||
ins->pcm_input = cs46xx_add_record_source(chip,ins->ref_snoop_scb,PCMSERIALIN_PCM_SCB_ADDR,
|
||||
"PCMSerialInput_Wave");
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1778,10 +1771,9 @@ int cs46xx_dsp_disable_pcm_capture (struct snd_cs46xx *chip)
|
||||
if (snd_BUG_ON(!ins->pcm_input))
|
||||
return -EINVAL;
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
guard(mutex)(&chip->spos_mutex);
|
||||
cs46xx_dsp_remove_scb (chip,ins->pcm_input);
|
||||
ins->pcm_input = NULL;
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1795,10 +1787,9 @@ int cs46xx_dsp_enable_adc_capture (struct snd_cs46xx *chip)
|
||||
if (snd_BUG_ON(!ins->codec_in_scb))
|
||||
return -EINVAL;
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
guard(mutex)(&chip->spos_mutex);
|
||||
ins->adc_input = cs46xx_add_record_source(chip,ins->codec_in_scb,PCMSERIALIN_SCB_ADDR,
|
||||
"PCMSerialInput_ADC");
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1810,10 +1801,9 @@ int cs46xx_dsp_disable_adc_capture (struct snd_cs46xx *chip)
|
||||
if (snd_BUG_ON(!ins->adc_input))
|
||||
return -EINVAL;
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
guard(mutex)(&chip->spos_mutex);
|
||||
cs46xx_dsp_remove_scb (chip,ins->adc_input);
|
||||
ins->adc_input = NULL;
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1861,7 +1851,7 @@ int cs46xx_dsp_set_dac_volume (struct snd_cs46xx * chip, u16 left, u16 right)
|
||||
struct dsp_spos_instance * ins = chip->dsp_spos_instance;
|
||||
struct dsp_scb_descriptor * scb;
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
guard(mutex)(&chip->spos_mutex);
|
||||
|
||||
/* main output */
|
||||
scb = ins->master_mix_scb->sub_list_ptr;
|
||||
@@ -1880,8 +1870,6 @@ int cs46xx_dsp_set_dac_volume (struct snd_cs46xx * chip, u16 left, u16 right)
|
||||
ins->dac_volume_left = left;
|
||||
ins->dac_volume_right = right;
|
||||
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1889,7 +1877,7 @@ int cs46xx_dsp_set_iec958_volume (struct snd_cs46xx * chip, u16 left, u16 right)
|
||||
{
|
||||
struct dsp_spos_instance * ins = chip->dsp_spos_instance;
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
guard(mutex)(&chip->spos_mutex);
|
||||
|
||||
if (ins->asynch_rx_scb != NULL)
|
||||
cs46xx_dsp_scb_set_volume (chip,ins->asynch_rx_scb,
|
||||
@@ -1898,8 +1886,6 @@ int cs46xx_dsp_set_iec958_volume (struct snd_cs46xx * chip, u16 left, u16 right)
|
||||
ins->spdif_input_volume_left = left;
|
||||
ins->spdif_input_volume_right = right;
|
||||
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ static void cs46xx_dsp_proc_scb_info_read (struct snd_info_entry *entry,
|
||||
int j,col;
|
||||
void __iomem *dst = chip->region.idx[1].remap_addr + DSP_PARAMETER_BYTE_OFFSET;
|
||||
|
||||
mutex_lock(&chip->spos_mutex);
|
||||
guard(mutex)(&chip->spos_mutex);
|
||||
snd_iprintf(buffer,"%04x %s:\n",scb->address,scb->scb_name);
|
||||
|
||||
for (col = 0,j = 0;j < 0x10; j++,col++) {
|
||||
@@ -91,7 +91,6 @@ static void cs46xx_dsp_proc_scb_info_read (struct snd_info_entry *entry,
|
||||
scb->task_entry->address);
|
||||
|
||||
snd_iprintf(buffer,"index [%d] ref_count [%d]\n",scb->index,scb->ref_count);
|
||||
mutex_unlock(&chip->spos_mutex);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user