ASoC: core - Free platform DAPM context at platform removal.
authorLiam Girdwood <lrg@ti.com>
Mon, 16 Jan 2012 15:25:37 +0000 (15:25 +0000)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 16 Jan 2012 15:49:09 +0000 (15:49 +0000)
Fix platform removal by freeing the platform DAPM resources and remove
it from the DAPM list.

Signed-off-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
sound/soc/soc-core.c

index 3986520b4677244b9bd592b85f2350889bda5cdf..b5ecf6d2321446198551c6d2cc6d7728c81be07a 100644 (file)
@@ -907,6 +907,10 @@ static void soc_remove_dai_link(struct snd_soc_card *card, int num, int order)
                        if (err < 0)
                                printk(KERN_ERR "asoc: failed to remove %s\n", platform->name);
                }
+
+               /* Make sure all DAPM widgets are freed */
+               snd_soc_dapm_free(&platform->dapm);
+
                platform->probed = 0;
                list_del(&platform->card_list);
                module_put(platform->dev->driver->owner);