diff --git a/[refs] b/[refs] index a22cf04a4382..0049d9b3e71b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6423aa9154e247752e8894ad686959d39be659f9 +refs/heads/master: 5992c58781a38e193caf2fb6a5f4808d84af8591 diff --git a/trunk/sound/soc/codecs/wm8995.c b/trunk/sound/soc/codecs/wm8995.c index 74ae5995a786..e05ee7969113 100644 --- a/trunk/sound/soc/codecs/wm8995.c +++ b/trunk/sound/soc/codecs/wm8995.c @@ -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; }