Commit 5c4b2aa3 authored by Axel Lin's avatar Axel Lin Committed by Mark Brown
Browse files

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: default avatarAxel Lin <axel.lin@gmail.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 72531c94
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -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);