diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2014-09-04 19:44:05 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2014-09-04 20:10:25 +0100 |
commit | 1c325f771a88579f227fe017e4ee77d852cf5435 (patch) | |
tree | 87b6a35f1c652b9158e5e6c8a7be4ee37caca5d1 /sound/soc/soc-core.c | |
parent | 01e0df6647e713469466c7bb6d7157c2e3046192 (diff) |
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 <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/soc-core.c')
-rw-r--r-- | sound/soc/soc-core.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index ff9d2892f47..068785fa1a0 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); |