From: Lars-Peter Clausen Date: Thu, 4 Sep 2014 17:44:05 +0000 (+0200) Subject: ASoC: Shutdown DAPM contexts when removing a card X-Git-Tag: v3.18-rc1~99^2~8^2~6^5~1^2~7 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=1c325f771a88579f227fe017e4ee77d852cf5435;p=karo-tx-linux.git ASoC: Shutdown DAPM contexts when removing a card Currently when a ASoC sound card is unregistered we leave the individual components in their current state, just call the remove() callback and leave it to the drivers to do the proper shutdown/cleanup. This patch introduces a call to snd_soc_dapm_shutdown() when removing the card. This will make sure that all DAPM widgets are properly powered down and all DAPM contexts are put at the SND_SOC_BIAS_OFF level. This will ensure that all components are properly powered down when the card is removed. Since a lot of drivers manually go to SND_SOC_BIAS_OFF in their remove callback this will also allow us to remove a bit of duplicated code. Signed-off-by: Lars-Peter Clausen Signed-off-by: Mark Brown --- diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index ff9d2892f473..068785fa1a06 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -3812,6 +3812,7 @@ int snd_soc_unregister_card(struct snd_soc_card *card) { if (card->instantiated) { card->instantiated = false; + snd_soc_dapm_shutdown(card); soc_cleanup_card_resources(card); } dev_dbg(card->dev, "ASoC: Unregistered card '%s'\n", card->name);