diff options
-rw-r--r-- | sound/soc/codecs/tlv320aic3x.c | 11 | ||||
-rw-r--r-- | sound/soc/codecs/wm8990.c | 4 |
2 files changed, 10 insertions, 5 deletions
diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c index ba64b0c617e6..ac73e692a99b 100644 --- a/sound/soc/codecs/tlv320aic3x.c +++ b/sound/soc/codecs/tlv320aic3x.c | |||
@@ -165,10 +165,13 @@ static int snd_soc_dapm_put_volsw_aic3x(struct snd_kcontrol *kcontrol, | |||
165 | struct snd_ctl_elem_value *ucontrol) | 165 | struct snd_ctl_elem_value *ucontrol) |
166 | { | 166 | { |
167 | struct snd_soc_dapm_widget *widget = snd_kcontrol_chip(kcontrol); | 167 | struct snd_soc_dapm_widget *widget = snd_kcontrol_chip(kcontrol); |
168 | int reg = kcontrol->private_value & 0xff; | 168 | struct soc_mixer_control *mc = |
169 | int shift = (kcontrol->private_value >> 8) & 0x0f; | 169 | (struct soc_mixer_control *)kcontrol->private_value; |
170 | int mask = (kcontrol->private_value >> 16) & 0xff; | 170 | unsigned int reg = mc->reg; |
171 | int invert = (kcontrol->private_value >> 24) & 0x01; | 171 | unsigned int shift = mc->shift; |
172 | int max = mc->max; | ||
173 | unsigned int mask = (1 << fls(max)) - 1; | ||
174 | unsigned int invert = mc->invert; | ||
172 | unsigned short val, val_mask; | 175 | unsigned short val, val_mask; |
173 | int ret; | 176 | int ret; |
174 | struct snd_soc_dapm_path *path; | 177 | struct snd_soc_dapm_path *path; |
diff --git a/sound/soc/codecs/wm8990.c b/sound/soc/codecs/wm8990.c index a2e9cc952491..1a38421f7594 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, | |||
176 | struct snd_ctl_elem_value *ucontrol) | 176 | struct snd_ctl_elem_value *ucontrol) |
177 | { | 177 | { |
178 | struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); | 178 | struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); |
179 | int reg = kcontrol->private_value & 0xff; | 179 | struct soc_mixer_control *mc = |
180 | (struct soc_mixer_control *)kcontrol->private_value; | ||
181 | int reg = mc->reg; | ||
180 | int ret; | 182 | int ret; |
181 | u16 val; | 183 | u16 val; |
182 | 184 | ||