forked from luck/tmp_suning_uos_patched
ASoC: max9877: Update register if either val or val2 is changed
In the case of ((max9877_regs[reg] >> shift) & mask) != val but ((max9877_regs[reg2] >> shift) & mask) == val2, current code does not update the registers. Fix the logic to update registers if either val or val2 is changed. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
72531c9434
commit
5c4b2aa3fd
@ -106,13 +106,13 @@ static int max9877_set_2reg(struct snd_kcontrol *kcontrol,
|
||||
unsigned int mask = mc->max;
|
||||
unsigned int val = (ucontrol->value.integer.value[0] & mask);
|
||||
unsigned int val2 = (ucontrol->value.integer.value[1] & mask);
|
||||
unsigned int change = 1;
|
||||
unsigned int change = 0;
|
||||
|
||||
if (((max9877_regs[reg] >> shift) & mask) == val)
|
||||
change = 0;
|
||||
if (((max9877_regs[reg] >> shift) & mask) != val)
|
||||
change = 1;
|
||||
|
||||
if (((max9877_regs[reg2] >> shift) & mask) == val2)
|
||||
change = 0;
|
||||
if (((max9877_regs[reg2] >> shift) & mask) != val2)
|
||||
change = 1;
|
||||
|
||||
if (change) {
|
||||
max9877_regs[reg] &= ~(mask << shift);
|
||||
|
Loading…
Reference in New Issue
Block a user