diff options
author | Stephen Warren <swarren@nvidia.com> | 2011-08-05 00:44:44 +0200 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-08-09 02:43:58 +0200 |
commit | f99847a6909b95f857ee502ec98c372dcfd90b12 (patch) | |
tree | cc2de1d43aa4687f5cd4b07827b7dc23ac4ad9b9 | |
parent | ASoC: Tegra: wm8903 machine driver: Allow re-insertion of module (diff) | |
download | linux-f99847a6909b95f857ee502ec98c372dcfd90b12.tar.xz linux-f99847a6909b95f857ee502ec98c372dcfd90b12.zip |
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>
-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) /* power down chip */ static int wm8903_remove(struct snd_soc_codec *codec) { + struct wm8903_priv *wm8903 = snd_soc_codec_get_drvdata(codec); + wm8903_free_gpio(codec); wm8903_set_bias_level(codec, SND_SOC_BIAS_OFF); + if (wm8903->irq) + free_irq(wm8903->irq, codec); + return 0; } |