ASoC: dapm: Remove incomplete stereo code
authorBenoît Thébaudeau <benoit.thebaudeau@advansee.com>
Tue, 3 Jul 2012 18:18:17 +0000 (20:18 +0200)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 3 Jul 2012 18:53:54 +0000 (19:53 +0100)
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>
sound/soc/soc-dapm.c

index 967066873aadd922e3e8d6b9fab35bf484cdbdad..912330b147e072ac4816427f260093a8e2410d46 100644 (file)
@@ -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;
 }
@@ -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;