Unverified Commit 2b7c4636 authored by Mark Brown's avatar Mark Brown
Browse files

ASoC: ops: Fix stereo change notifications in snd_soc_put_xr_sx()



When writing out a stereo control we discard the change notification from
the first channel, meaning that events are only generated based on changes
to the second channel. Ensure that we report a change if either channel
has changed.

Signed-off-by: default avatarMark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20220201155629.120510-5-broonie@kernel.org


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 650204de
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -895,6 +895,7 @@ int snd_soc_put_xr_sx(struct snd_kcontrol *kcontrol,
	unsigned long mask = (1UL<<mc->nbits)-1;
	long max = mc->max;
	long val = ucontrol->value.integer.value[0];
	int ret = 0;
	unsigned int i;

	if (val < mc->min || val > mc->max)
@@ -909,9 +910,11 @@ int snd_soc_put_xr_sx(struct snd_kcontrol *kcontrol,
							regmask, regval);
		if (err < 0)
			return err;
		if (err > 0)
			ret = err;
	}

	return 0;
	return ret;
}
EXPORT_SYMBOL_GPL(snd_soc_put_xr_sx);