summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJarkko Nikula <jarkko.nikula@nokia.com>2009-02-06 10:01:05 (GMT)
committerMark Brown <broonie@opensource.wolfsonmicro.com>2009-02-06 11:39:28 (GMT)
commit397d5aeeb5a2c9ca6108899a04b35a51cd904503 (patch)
treee2431935f8a839167960db9df89eb3ac8c999ba3
parent4453dba54de7e517b0cd6f5e4a3f4af3b34f9e79 (diff)
downloadlinux-397d5aeeb5a2c9ca6108899a04b35a51cd904503.tar.xz
ASoC: WM8990: Fix kcontrol's private value use in put callback
Function wm899x_outpga_put_volsw_vu misuses the kcontrol's private value by still accessing it as bitfields even SOC_SINGLE_VALUE constructs it as a pointer into struct soc_mixer_control after the commit 4eaa9819dc08d7bfd1065ce530e31b18a119dcaf. This is very similar fix than fix to TLV320AIC3X codec made by Eero Nurkkala <ext-eero.nurkkala@nokia.com>. This fix is compile tested only. Signed-off-by: Jarkko Nikula <jarkko.nikula@nokia.com> Cc: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-rw-r--r--sound/soc/codecs/wm8990.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sound/soc/codecs/wm8990.c b/sound/soc/codecs/wm8990.c
index 1cbb7b9..a5731fa 100644
--- a/sound/soc/codecs/wm8990.c
+++ b/sound/soc/codecs/wm8990.c
@@ -176,7 +176,9 @@ static int wm899x_outpga_put_volsw_vu(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
- int reg = kcontrol->private_value & 0xff;
+ struct soc_mixer_control *mc =
+ (struct soc_mixer_control *)kcontrol->private_value;
+ int reg = mc->reg;
int ret;
u16 val;