ASoC: Allow WM8903 mic detect disable and don't force bias on

Don't force enable the microphone bias on WM8903 when doing jack
detection, and don't force enable microphone bias. This allows
platforms to only enable microphone detection when a jack has been
inserted.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
diff --git a/sound/soc/codecs/wm8903.c b/sound/soc/codecs/wm8903.c
index b5427b4..134b175 100644
--- a/sound/soc/codecs/wm8903.c
+++ b/sound/soc/codecs/wm8903.c
@@ -1465,7 +1465,7 @@
 		      int det, int shrt)
 {
 	struct wm8903_priv *wm8903 = codec->private_data;
-	int irq_mask = 0;
+	int irq_mask = WM8903_MICDET_EINT | WM8903_MICSHRT_EINT;
 
 	dev_dbg(codec->dev, "Enabling microphone detection: %x %x\n",
 		det, shrt);
@@ -1485,16 +1485,17 @@
 			    WM8903_MICDET_EINT | WM8903_MICSHRT_EINT,
 			    irq_mask);
 
-	/* Enable mic detection, this may not have been set through
-	 * platform data (eg, if the defaults are OK). */
-	snd_soc_update_bits(codec, WM8903_WRITE_SEQUENCER_0,
-			    WM8903_WSEQ_ENA, WM8903_WSEQ_ENA);
-	snd_soc_update_bits(codec, WM8903_MIC_BIAS_CONTROL_0,
-			    WM8903_MICDET_ENA, WM8903_MICDET_ENA);
-
-	/* Force the microphone bias on; this will trigger an initial
-	 * detection. */
-	snd_soc_dapm_force_enable_pin(codec, "Mic Bias");
+	if (det && shrt) {
+		/* Enable mic detection, this may not have been set through
+		 * platform data (eg, if the defaults are OK). */
+		snd_soc_update_bits(codec, WM8903_WRITE_SEQUENCER_0,
+				    WM8903_WSEQ_ENA, WM8903_WSEQ_ENA);
+		snd_soc_update_bits(codec, WM8903_MIC_BIAS_CONTROL_0,
+				    WM8903_MICDET_ENA, WM8903_MICDET_ENA);
+	} else {
+		snd_soc_update_bits(codec, WM8903_MIC_BIAS_CONTROL_0,
+				    WM8903_MICDET_ENA, 0);
+	}
 
 	return 0;
 }