summaryrefslogtreecommitdiff
path: root/sound
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2011-07-12 15:47:17 +0900
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-07-14 00:38:14 +0900
commitb30ead5f391d34c6011e6affe88eb21bb0b9f9dd (patch)
tree1d5497d8e4558dc456c65300a555e9a08f5185e0 /sound
parentd96ca3cd0bcefdcd1d9ad1f2610dcd959fccd252 (diff)
downloadkernel-common-b30ead5f391d34c6011e6affe88eb21bb0b9f9dd.tar.gz
kernel-common-b30ead5f391d34c6011e6affe88eb21bb0b9f9dd.tar.bz2
kernel-common-b30ead5f391d34c6011e6affe88eb21bb0b9f9dd.zip
ASoC: Hook up DC servo completion IRQ for WM8994 and WM8958
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/codecs/wm8994.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c
index 3fd7422df408..d2dcaa29c7ca 100644
--- a/sound/soc/codecs/wm8994.c
+++ b/sound/soc/codecs/wm8994.c
@@ -2932,6 +2932,12 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
break;
}
+ ret = wm8994_request_irq(codec->control_data, WM8994_IRQ_DCS_DONE,
+ wm_hubs_dcs_done, "DC servo done",
+ &wm8994->hubs);
+ if (ret == 0)
+ wm8994->hubs.dcs_done_irq = true;
+
switch (control->type) {
case WM8994:
if (wm8994->micdet_irq) {
@@ -3173,6 +3179,8 @@ err_irq:
wm8994_free_irq(codec->control_data, WM8994_IRQ_MIC1_SHRT, wm8994);
if (wm8994->micdet_irq)
free_irq(wm8994->micdet_irq, wm8994);
+ wm8994_free_irq(codec->control_data, WM8994_IRQ_DCS_DONE,
+ &wm8994->hubs);
err:
kfree(wm8994);
return ret;
@@ -3187,6 +3195,9 @@ static int wm8994_codec_remove(struct snd_soc_codec *codec)
pm_runtime_disable(codec->dev);
+ wm8994_free_irq(codec->control_data, WM8994_IRQ_DCS_DONE,
+ &wm8994->hubs);
+
switch (control->type) {
case WM8994:
if (wm8994->micdet_irq)