Skip to content

Commit

Permalink
ASoC: dapm: Remove incomplete stereo code
Browse files Browse the repository at this point in the history
Stereo is not yet supported by dapm widgets, so remove stereo code from
snd_soc_dapm_get_volsw(), and warn if stereo controls are detected.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
  • Loading branch information
Benoît Thébaudeau authored and Mark Brown committed Jul 3, 2012
1 parent 9c9acc9 commit da602ab
Showing 1 changed file with 12 additions and 10 deletions.
22 changes: 12 additions & 10 deletions sound/soc/soc-dapm.c
Original file line number Diff line number Diff line change
Expand Up @@ -2464,23 +2464,20 @@ int snd_soc_dapm_get_volsw(struct snd_kcontrol *kcontrol,
(struct soc_mixer_control *)kcontrol->private_value;
unsigned int reg = mc->reg;
unsigned int shift = mc->shift;
unsigned int rshift = mc->rshift;
int max = mc->max;
unsigned int invert = mc->invert;
unsigned int mask = (1 << fls(max)) - 1;
unsigned int invert = mc->invert;

if (snd_soc_volsw_is_stereo(mc))
dev_warn(widget->dapm->dev,
"Control '%s' is stereo, which is not supported\n",
kcontrol->id.name);

ucontrol->value.integer.value[0] =
(snd_soc_read(widget->codec, reg) >> shift) & mask;
if (shift != rshift)
ucontrol->value.integer.value[1] =
(snd_soc_read(widget->codec, reg) >> rshift) & mask;
if (invert) {
if (invert)
ucontrol->value.integer.value[0] =
max - ucontrol->value.integer.value[0];
if (shift != rshift)
ucontrol->value.integer.value[1] =
max - ucontrol->value.integer.value[1];
}

return 0;
}
Expand Down Expand Up @@ -2514,6 +2511,11 @@ int snd_soc_dapm_put_volsw(struct snd_kcontrol *kcontrol,
struct snd_soc_dapm_update update;
int wi;

if (snd_soc_volsw_is_stereo(mc))
dev_warn(widget->dapm->dev,
"Control '%s' is stereo, which is not supported\n",
kcontrol->id.name);

val = (ucontrol->value.integer.value[0] & mask);
connect = !!val;

Expand Down

0 comments on commit da602ab

Please sign in to comment.