ASoC: Add missed regulator_unregister_notifier and regulator_bulk_free in wm8995_remove
authorAxel Lin <axel.lin@gmail.com>
Fri, 30 Sep 2011 03:54:44 +0000 (11:54 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 30 Sep 2011 11:56:16 +0000 (12:56 +0100)
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/codecs/wm8995.c

index 74ae5995a78601b43a4f1e5a2039bd24807b84fd..e05ee79691138e314a6fc674c07607a07d71b73a 100644 (file)
@@ -1573,9 +1573,16 @@ static int wm8995_resume(struct snd_soc_codec *codec)
 static int wm8995_remove(struct snd_soc_codec *codec)
 {
        struct wm8995_priv *wm8995;
+       int i;
 
        wm8995 = snd_soc_codec_get_drvdata(codec);
        wm8995_set_bias_level(codec, SND_SOC_BIAS_OFF);
+
+       for (i = 0; i < ARRAY_SIZE(wm8995->supplies); ++i)
+               regulator_unregister_notifier(wm8995->supplies[i].consumer,
+                                             &wm8995->disable_nb[i]);
+
+       regulator_bulk_free(ARRAY_SIZE(wm8995->supplies), wm8995->supplies);
        return 0;
 }