summaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorNikesh Oswal <nikesh@opensource.wolfsonmicro.com>2014-08-13 11:05:45 +0200
committerMark Brown <broonie@linaro.org>2014-08-17 00:08:13 +0200
commitdfe8f1f3f22f9922e773ae64f5621f290cb26023 (patch)
tree50f138f8d379d938cb2d0fbd9b6a71efd4430665 /sound
parentLinux 3.17-rc1 (diff)
downloadlinux-dfe8f1f3f22f9922e773ae64f5621f290cb26023.tar.xz
linux-dfe8f1f3f22f9922e773ae64f5621f290cb26023.zip
ASoC: wm8994: Demux the microphone detection IRQ
Current code only allows direct routing of the WM8994 microphone detection signal to a GPIO this change adds support to demux the interrupt from the main interrupt line of the codec. Signed-off-by: Nikesh Oswal <nikesh@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/codecs/wm8994.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c
index 6cc0566dc29a..1fcb9f3f3097 100644
--- a/sound/soc/codecs/wm8994.c
+++ b/sound/soc/codecs/wm8994.c
@@ -4082,17 +4082,23 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
switch (control->type) {
case WM8994:
- if (wm8994->micdet_irq) {
+ if (wm8994->micdet_irq)
ret = request_threaded_irq(wm8994->micdet_irq, NULL,
wm8994_mic_irq,
IRQF_TRIGGER_RISING,
"Mic1 detect",
wm8994);
- if (ret != 0)
- dev_warn(codec->dev,
- "Failed to request Mic1 detect IRQ: %d\n",
- ret);
- }
+ else
+ ret = wm8994_request_irq(wm8994->wm8994,
+ WM8994_IRQ_MIC1_DET,
+ wm8994_mic_irq, "Mic 1 detect",
+ wm8994);
+
+ if (ret != 0)
+ dev_warn(codec->dev,
+ "Failed to request Mic1 detect IRQ: %d\n",
+ ret);
+
ret = wm8994_request_irq(wm8994->wm8994,
WM8994_IRQ_MIC1_SHRT,