ASoC: Allow force enabled pins to be disabled
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 22 Mar 2010 13:36:13 +0000 (13:36 +0000)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 22 Mar 2010 17:21:23 +0000 (17:21 +0000)
Some systems, such as those with mechanical jack detection, may wish
to force enable a pin (typically mic bias) only some of the time.
Support such systems by having disable_pin() also coveer force enabled
pins.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
sound/soc/soc-dapm.c

index 611284194000e5d32afbe636469c572f07f9f5a2..476dbe6dabad182da3e15ee707275e4890876ee5 100644 (file)
@@ -1266,6 +1266,9 @@ static int snd_soc_dapm_set_pin(struct snd_soc_codec *codec,
                if (!strcmp(w->name, pin)) {
                        pr_debug("dapm: %s: pin %s\n", codec->name, pin);
                        w->connected = status;
+                       /* Allow disabling of forced pins */
+                       if (status == 0)
+                               w->force = 0;
                        return 0;
                }
        }