aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/wm8994.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2011-07-12 02:47:17 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-07-13 11:38:14 -0400
commitb30ead5f391d34c6011e6affe88eb21bb0b9f9dd (patch)
tree1d5497d8e4558dc456c65300a555e9a08f5185e0 /sound/soc/codecs/wm8994.c
parentd96ca3cd0bcefdcd1d9ad1f2610dcd959fccd252 (diff)
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/codecs/wm8994.c')
-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)
2932 break; 2932 break;
2933 } 2933 }
2934 2934
2935 ret = wm8994_request_irq(codec->control_data, WM8994_IRQ_DCS_DONE,
2936 wm_hubs_dcs_done, "DC servo done",
2937 &wm8994->hubs);
2938 if (ret == 0)
2939 wm8994->hubs.dcs_done_irq = true;
2940
2935 switch (control->type) { 2941 switch (control->type) {
2936 case WM8994: 2942 case WM8994:
2937 if (wm8994->micdet_irq) { 2943 if (wm8994->micdet_irq) {
@@ -3173,6 +3179,8 @@ err_irq:
3173 wm8994_free_irq(codec->control_data, WM8994_IRQ_MIC1_SHRT, wm8994); 3179 wm8994_free_irq(codec->control_data, WM8994_IRQ_MIC1_SHRT, wm8994);
3174 if (wm8994->micdet_irq) 3180 if (wm8994->micdet_irq)
3175 free_irq(wm8994->micdet_irq, wm8994); 3181 free_irq(wm8994->micdet_irq, wm8994);
3182 wm8994_free_irq(codec->control_data, WM8994_IRQ_DCS_DONE,
3183 &wm8994->hubs);
3176err: 3184err:
3177 kfree(wm8994); 3185 kfree(wm8994);
3178 return ret; 3186 return ret;
@@ -3187,6 +3195,9 @@ static int wm8994_codec_remove(struct snd_soc_codec *codec)
3187 3195
3188 pm_runtime_disable(codec->dev); 3196 pm_runtime_disable(codec->dev);
3189 3197
3198 wm8994_free_irq(codec->control_data, WM8994_IRQ_DCS_DONE,
3199 &wm8994->hubs);
3200
3190 switch (control->type) { 3201 switch (control->type) {
3191 case WM8994: 3202 case WM8994:
3192 if (wm8994->micdet_irq) 3203 if (wm8994->micdet_irq)