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:23:42 +0000 (12:23 +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 04f23477039a557f54488f9189d43ac03311e897..c677c068b05eca06cbffc9f8d6ad63c6a219a236 100644 (file)
@@ -534,7 +534,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) {\
@@ -660,7 +660,7 @@ static int wm8958_vss_put(struct snd_kcontrol *kcontrol,
 
        wm8958_dsp_apply(component, vss, wm8994->vss_ena[vss]);
 
-       return 0;
+       return 1;
 }
 
 
@@ -734,7 +734,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) {\
@@ -828,7 +828,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) {\