OSDN Git Service

ASoC: Intel: Atom: flip logic for gain Switch
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Fri, 18 Dec 2015 02:35:48 +0000 (20:35 -0600)
committerMark Brown <broonie@kernel.org>
Sat, 19 Dec 2015 11:49:56 +0000 (11:49 +0000)
The upstreamed code modified the control names from Mute to
Switch without changing the logic. To get audio working the Switch
needs to be off which isn't aligned with normal ALSA conventions.

Inverting the logic now so that Switch Off means mute and Switch On
means active audio using the specific volume setting.

Signed-off-by: Sebastien Guiriec <sebastien.guiriec@intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/atom/sst-atom-controls.c

index 1727cc4..b97e6ad 100644 (file)
@@ -443,7 +443,7 @@ static int sst_gain_get(struct snd_kcontrol *kcontrol,
                break;
 
        case SST_GAIN_MUTE:
-               ucontrol->value.integer.value[0] = gv->mute ? 1 : 0;
+               ucontrol->value.integer.value[0] = gv->mute ? 0 : 1;
                break;
 
        case SST_GAIN_RAMP_DURATION:
@@ -479,7 +479,7 @@ static int sst_gain_put(struct snd_kcontrol *kcontrol,
                break;
 
        case SST_GAIN_MUTE:
-               gv->mute = !!ucontrol->value.integer.value[0];
+               gv->mute = !ucontrol->value.integer.value[0];
                dev_dbg(cmpnt->dev, "%s: Mute %d\n", mc->pname, gv->mute);
                break;