ASoC: wm8958: Fix change notifications for DSP controls
authorMark Brown <broonie@kernel.org>
Sat, 16 Apr 2022 12:54:08 +0000 (13:54 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 May 2022 10:30:06 +0000 (12:30 +0200)
commit b4f5c6b2e52b27462c0599e64e96e53b58438de1 upstream.

The WM8958 DSP controls all return 0 on successful write, not a boolean
value indicating if the write changed the value of the control. Fix this
by returning 1 after a change, there is already a check at the start of
each put() that skips the function in the case that there is no change.

Signed-off-by: Mark Brown <broonie@kernel.org>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20220416125408.197440-1-broonie@kernel.org
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
sound/soc/codecs/wm8958-dsp2.c

index e4018ba..7878c7a 100644 (file)
@@ -530,7 +530,7 @@ static int wm8958_mbc_put(struct snd_kcontrol *kcontrol,
 
        wm8958_dsp_apply(component, mbc, wm8994->mbc_ena[mbc]);
 
-       return 0;
+       return 1;
 }
 
 #define WM8958_MBC_SWITCH(xname, xval) {\
@@ -656,7 +656,7 @@ static int wm8958_vss_put(struct snd_kcontrol *kcontrol,
 
        wm8958_dsp_apply(component, vss, wm8994->vss_ena[vss]);
 
-       return 0;
+       return 1;
 }
 
 
@@ -730,7 +730,7 @@ static int wm8958_hpf_put(struct snd_kcontrol *kcontrol,
 
        wm8958_dsp_apply(component, hpf % 3, ucontrol->value.integer.value[0]);
 
-       return 0;
+       return 1;
 }
 
 #define WM8958_HPF_SWITCH(xname, xval) {\
@@ -824,7 +824,7 @@ static int wm8958_enh_eq_put(struct snd_kcontrol *kcontrol,
 
        wm8958_dsp_apply(component, eq, ucontrol->value.integer.value[0]);
 
-       return 0;
+       return 1;
 }
 
 #define WM8958_ENH_EQ_SWITCH(xname, xval) {\