Unverified Commit 6bda28a2 authored by Mark Brown's avatar Mark Brown
Browse files

ASoC: wcd9335: Fix spurious event generation



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: default avatarMark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220603124609.4024666-1-broonie@kernel.org


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 7263fc6c
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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];

	/* Remove channel from any list it's in before adding it to a new one */