aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars-Peter Clausen <lars@metafoo.de>2013-08-27 09:50:59 -0400
committerMark Brown <broonie@linaro.org>2013-08-27 10:38:18 -0400
commit4b52fa211a7c65eab78acf3f434361d40de87688 (patch)
treebed7dee80f27496cb792c83f95095adf1daee7ab
parent148663074c1778d88c9e9c5f5cc66493ed30fa25 (diff)
ASoC: Call snd_soc_dapm_new_widgets() only once during card initialization
Each time snd_soc_dapm_new_widgets() is called it will instantiate all the widgets and routes that have been added so far and then power them. Doing this multiple times before the card is fully initialized and all widgets have been added can cause unnecessary and even invalid power state transitions which can result in extra register writes and and also might cause clicks and pops. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
-rw-r--r--sound/soc/soc-core.c5
1 files changed, 0 insertions, 5 deletions
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index f46472d50c9b..85e2a8b8f288 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1230,9 +1230,6 @@ static int soc_post_component_init(struct snd_soc_card *card,
1230 } 1230 }
1231 rtd->card = card; 1231 rtd->card = card;
1232 1232
1233 /* Make sure all DAPM widgets are instantiated */
1234 snd_soc_dapm_new_widgets(&codec->dapm);
1235
1236 /* machine controls, routes and widgets are not prefixed */ 1233 /* machine controls, routes and widgets are not prefixed */
1237 temp = codec->name_prefix; 1234 temp = codec->name_prefix;
1238 codec->name_prefix = NULL; 1235 codec->name_prefix = NULL;
@@ -1728,8 +1725,6 @@ static int snd_soc_instantiate_card(struct snd_soc_card *card)
1728 snd_soc_dapm_add_routes(&card->dapm, card->dapm_routes, 1725 snd_soc_dapm_add_routes(&card->dapm, card->dapm_routes,
1729 card->num_dapm_routes); 1726 card->num_dapm_routes);
1730 1727
1731 snd_soc_dapm_new_widgets(&card->dapm);
1732
1733 for (i = 0; i < card->num_links; i++) { 1728 for (i = 0; i < card->num_links; i++) {
1734 dai_link = &card->dai_link[i]; 1729 dai_link = &card->dai_link[i];
1735 dai_fmt = dai_link->dai_fmt; 1730 dai_fmt = dai_link->dai_fmt;