[alsa-devel] [PATCH] ASoC: wm8994: Fix class W controls

Lars-Peter Clausen lars at metafoo.de
Mon Aug 5 22:12:51 CEST 2013


On 08/05/2013 10:03 PM, Mark Brown wrote:
> From: Mark Brown <broonie at linaro.org>
>
> Commit 6e0650 (ASoC: wm8994: Use SOC_SINGLE_EXT() instead of open-coding
> it) went too far and converted a DAPM control to use SOC_SINGLE_EXT()
> which crashes.  Revert that portion of the patch.
>
> Signed-off-by: Mark Brown <broonie at linaro.org>
> ---
>   sound/soc/codecs/wm8994.c | 6 ++++--
>   1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c
> index d76b056..f32998a 100644
> --- a/sound/soc/codecs/wm8994.c
> +++ b/sound/soc/codecs/wm8994.c
> @@ -1432,8 +1432,10 @@ SOC_DAPM_SINGLE("AIF1.1 Switch", WM8994_DAC2_RIGHT_MIXER_ROUTING,
>   };
>
>   #define WM8994_CLASS_W_SWITCH(xname, reg, shift, max, invert) \
> -	SOC_SINGLE_EXT(xname, reg, shift, max, invert, \
> -		snd_soc_get_volsw, wm8994_put_class_w)
> +{	.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
> +	.info = snd_soc_info_volsw, \
> +	.get = snd_soc_dapm_get_volsw, .put = wm8994_put_class_w, \
> +	.private_value =  SOC_SINGLE_VALUE(reg, shift, max, invert, 0) }

Hm, right. But I think it should be enough to just replace the 
snd_soc_get_volsw with snd_soc_dapm_get_volsw

- Lars



More information about the Alsa-devel mailing list