diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-07-12 15:47:17 +0900 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-07-14 00:38:14 +0900 |
commit | b30ead5f391d34c6011e6affe88eb21bb0b9f9dd (patch) | |
tree | 1d5497d8e4558dc456c65300a555e9a08f5185e0 /sound/soc | |
parent | d96ca3cd0bcefdcd1d9ad1f2610dcd959fccd252 (diff) | |
download | linux-3.10-b30ead5f391d34c6011e6affe88eb21bb0b9f9dd.tar.gz linux-3.10-b30ead5f391d34c6011e6affe88eb21bb0b9f9dd.tar.bz2 linux-3.10-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/soc')
-rw-r--r-- | sound/soc/codecs/wm8994.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c index 3fd7422df40..d2dcaa29c7c 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) |