[PATCH] ASoC: wcd9335: Fix spurious event generation
Mark Brown
broonie at kernel.org
Fri Jun 3 14:46:09 CEST 2022
The slimbus mux put operation unconditionally reports a change in value
which means that spurious events are generated. Fix this by exiting early
in that case.
Signed-off-by: Mark Brown <broonie at kernel.org>
---
sound/soc/codecs/wcd9335.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/sound/soc/codecs/wcd9335.c b/sound/soc/codecs/wcd9335.c
index 617a36a89dfe..d25594a708e0 100644
--- a/sound/soc/codecs/wcd9335.c
+++ b/sound/soc/codecs/wcd9335.c
@@ -1287,6 +1287,9 @@ static int slim_rx_mux_put(struct snd_kcontrol *kc,
struct snd_soc_dapm_update *update = NULL;
u32 port_id = w->shift;
+ if (wcd->rx_port_value[port_id] == ucontrol->value.enumerated.item[0])
+ return 0;
+
wcd->rx_port_value[port_id] = ucontrol->value.enumerated.item[0];
switch (wcd->rx_port_value[port_id]) {
--
2.30.2
More information about the Alsa-devel
mailing list