ALSA: emu10k1: fix return value of snd_emu1010_adc_pads_put()
It returned zero even if the value had changed. Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Link: https://lore.kernel.org/r/20230712145750.125086-1-oswald.buddenhagen@gmx.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
fbb64eedf5
commit
deb1200f6e
1 changed files with 5 additions and 2 deletions
|
@ -770,18 +770,21 @@ static int snd_emu1010_adc_pads_put(struct snd_kcontrol *kcontrol, struct snd_ct
|
|||
struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
|
||||
unsigned int mask = snd_emu1010_adc_pad_regs[kcontrol->private_value];
|
||||
unsigned int val, cache;
|
||||
int change;
|
||||
|
||||
val = ucontrol->value.integer.value[0];
|
||||
cache = emu->emu1010.adc_pads;
|
||||
if (val == 1)
|
||||
cache = cache | mask;
|
||||
else
|
||||
cache = cache & ~mask;
|
||||
if (cache != emu->emu1010.adc_pads) {
|
||||
change = (cache != emu->emu1010.adc_pads);
|
||||
if (change) {
|
||||
snd_emu1010_fpga_write(emu, EMU_HANA_ADC_PADS, cache );
|
||||
emu->emu1010.adc_pads = cache;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return change;
|
||||
}
|
||||
|
||||
static const struct snd_kcontrol_new emu1010_adc_pads_ctl = {
|
||||
|
|
Loading…
Reference in a new issue