diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-07-12 02:47:17 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-07-13 11:38:14 -0400 |
commit | b30ead5f391d34c6011e6affe88eb21bb0b9f9dd (patch) | |
tree | 1d5497d8e4558dc456c65300a555e9a08f5185e0 /sound/soc/codecs/wm8994.c | |
parent | d96ca3cd0bcefdcd1d9ad1f2610dcd959fccd252 (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.c | 11 |
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); | ||
3176 | err: | 3184 | err: |
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) |