summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2022-06-03 14:39:37 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-06-22 14:11:20 +0200
commitbc046649c5d6a66f5ba0a129e6c2354e835ce1ef (patch)
tree729faad915b5c86b6d7af2e1fe49798fcce74bb9
parenta81f5a7f7a2095fed22e379c72f03987be7edb6d (diff)
downloadlinux-stable-bc046649c5d6a66f5ba0a129e6c2354e835ce1ef.tar.gz
linux-stable-bc046649c5d6a66f5ba0a129e6c2354e835ce1ef.tar.bz2
linux-stable-bc046649c5d6a66f5ba0a129e6c2354e835ce1ef.zip
ASoC: es8328: Fix event generation for deemphasis control
[ Upstream commit 8259610c2ec01c5cbfb61882ae176aabacac9c19 ] Currently the put() method for the deemphasis control returns 0 when a new value is written to the control even if the value changed, meaning events are not generated. Fix this, skip the work of updating the value when it is unchanged and then return 1 after having done so. Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20220603123937.4013603-1-broonie@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--sound/soc/codecs/es8328.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sound/soc/codecs/es8328.c b/sound/soc/codecs/es8328.c
index fdf64c29f563..4117ab6e9b6f 100644
--- a/sound/soc/codecs/es8328.c
+++ b/sound/soc/codecs/es8328.c
@@ -161,13 +161,16 @@ static int es8328_put_deemph(struct snd_kcontrol *kcontrol,
if (deemph > 1)
return -EINVAL;
+ if (es8328->deemph == deemph)
+ return 0;
+
ret = es8328_set_deemph(component);
if (ret < 0)
return ret;
es8328->deemph = deemph;
- return 0;
+ return 1;
}