ASoC: dapm: Remove incomplete stereo code
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>
This commit is contained in:
parent
9c9acc9156
commit
da602ab8a1
1 changed files with 12 additions and 10 deletions
|
@ -2464,23 +2464,20 @@ int snd_soc_dapm_get_volsw(struct snd_kcontrol *kcontrol,
|
||||||
(struct soc_mixer_control *)kcontrol->private_value;
|
(struct soc_mixer_control *)kcontrol->private_value;
|
||||||
unsigned int reg = mc->reg;
|
unsigned int reg = mc->reg;
|
||||||
unsigned int shift = mc->shift;
|
unsigned int shift = mc->shift;
|
||||||
unsigned int rshift = mc->rshift;
|
|
||||||
int max = mc->max;
|
int max = mc->max;
|
||||||
unsigned int invert = mc->invert;
|
|
||||||
unsigned int mask = (1 << fls(max)) - 1;
|
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] =
|
ucontrol->value.integer.value[0] =
|
||||||
(snd_soc_read(widget->codec, reg) >> shift) & mask;
|
(snd_soc_read(widget->codec, reg) >> shift) & mask;
|
||||||
if (shift != rshift)
|
if (invert)
|
||||||
ucontrol->value.integer.value[1] =
|
|
||||||
(snd_soc_read(widget->codec, reg) >> rshift) & mask;
|
|
||||||
if (invert) {
|
|
||||||
ucontrol->value.integer.value[0] =
|
ucontrol->value.integer.value[0] =
|
||||||
max - 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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -2514,6 +2511,11 @@ int snd_soc_dapm_put_volsw(struct snd_kcontrol *kcontrol,
|
||||||
struct snd_soc_dapm_update update;
|
struct snd_soc_dapm_update update;
|
||||||
int wi;
|
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);
|
val = (ucontrol->value.integer.value[0] & mask);
|
||||||
connect = !!val;
|
connect = !!val;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue