Skip to content

Commit

Permalink
ASoC: max9877: Update register if either val or val2 is changed
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Axel Lin authored and Mark Brown committed Nov 22, 2011
1 parent 72531c9 commit 5c4b2aa
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions sound/soc/codecs/max9877.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 5c4b2aa

Please sign in to comment.