diff options
author | Stephen Warren <swarren@nvidia.com> | 2011-08-04 18:44:44 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-08-08 20:43:58 -0400 |
commit | f99847a6909b95f857ee502ec98c372dcfd90b12 (patch) | |
tree | cc2de1d43aa4687f5cd4b07827b7dc23ac4ad9b9 /sound/soc | |
parent | 29591ed4ac6fe00e3ff23b5be0cdc7016ef9c47e (diff) |
ASoC: WM8903: Free IRQ on device removal
Without this, request_irq on subsequent device initialization fails, and
the codec cannot be used.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/codecs/wm8903.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm8903.c b/sound/soc/codecs/wm8903.c index 43e3d760766f..4ad8ebd290e3 100644 --- a/sound/soc/codecs/wm8903.c +++ b/sound/soc/codecs/wm8903.c | |||
@@ -2046,8 +2046,13 @@ static int wm8903_probe(struct snd_soc_codec *codec) | |||
2046 | /* power down chip */ | 2046 | /* power down chip */ |
2047 | static int wm8903_remove(struct snd_soc_codec *codec) | 2047 | static int wm8903_remove(struct snd_soc_codec *codec) |
2048 | { | 2048 | { |
2049 | struct wm8903_priv *wm8903 = snd_soc_codec_get_drvdata(codec); | ||
2050 | |||
2049 | wm8903_free_gpio(codec); | 2051 | wm8903_free_gpio(codec); |
2050 | wm8903_set_bias_level(codec, SND_SOC_BIAS_OFF); | 2052 | wm8903_set_bias_level(codec, SND_SOC_BIAS_OFF); |
2053 | if (wm8903->irq) | ||
2054 | free_irq(wm8903->irq, codec); | ||
2055 | |||
2051 | return 0; | 2056 | return 0; |
2052 | } | 2057 | } |
2053 | 2058 | ||