Commit cc766807 authored by Oswald Buddenhagen's avatar Oswald Buddenhagen Committed by Takashi Iwai

ALSA: emu10k1: fix return value of snd_emu1010_dac_pads_put()

It returned zero even if the value had changed.
Signed-off-by: default avatarOswald Buddenhagen <oswald.buddenhagen@gmx.de>
Link: https://lore.kernel.org/r/20230516093612.3536508-6-oswald.buddenhagen@gmx.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 511cbe8f
...@@ -559,18 +559,21 @@ static int snd_emu1010_dac_pads_put(struct snd_kcontrol *kcontrol, struct snd_ct ...@@ -559,18 +559,21 @@ static int snd_emu1010_dac_pads_put(struct snd_kcontrol *kcontrol, struct snd_ct
struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
unsigned int mask = snd_emu1010_dac_regs[kcontrol->private_value]; unsigned int mask = snd_emu1010_dac_regs[kcontrol->private_value];
unsigned int val, cache; unsigned int val, cache;
int change;
val = ucontrol->value.integer.value[0]; val = ucontrol->value.integer.value[0];
cache = emu->emu1010.dac_pads; cache = emu->emu1010.dac_pads;
if (val == 1) if (val == 1)
cache = cache | mask; cache = cache | mask;
else else
cache = cache & ~mask; cache = cache & ~mask;
if (cache != emu->emu1010.dac_pads) { change = (cache != emu->emu1010.dac_pads);
if (change) {
snd_emu1010_fpga_write(emu, EMU_HANA_DAC_PADS, cache ); snd_emu1010_fpga_write(emu, EMU_HANA_DAC_PADS, cache );
emu->emu1010.dac_pads = cache; emu->emu1010.dac_pads = cache;
} }
return 0; return change;
} }
static const struct snd_kcontrol_new emu1010_dac_pads_ctl = { static const struct snd_kcontrol_new emu1010_dac_pads_ctl = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment