aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2011-03-02 13:35:51 -0500
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-03-03 06:15:26 -0500
commitb8ad29debd7401d257da923480d32838172c431a (patch)
tree0c0912832989599de0ae8275d5d77305027191f5
parente37a4970cd7ab6aec9e848cd3c355fd47fd18afd (diff)
ASoC: Allow card DAPM widgets and routes to be set up at registration
These will be added after all devices are registered and allow most DAI init functions in machine drivers to be replaced by simple data. Regular controls are not supported as the registration function still works in terms of CODECs. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
-rw-r--r--include/sound/soc.h8
-rw-r--r--sound/soc/soc-core.c7
2 files changed, 15 insertions, 0 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 8064cd130356..11d59bd13886 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -718,6 +718,14 @@ struct snd_soc_card {
718 struct snd_soc_pcm_runtime *rtd_aux; 718 struct snd_soc_pcm_runtime *rtd_aux;
719 int num_aux_rtd; 719 int num_aux_rtd;
720 720
721 /*
722 * Card-specific routes and widgets.
723 */
724 struct snd_soc_dapm_widget *dapm_widgets;
725 int num_dapm_widgets;
726 struct snd_soc_dapm_route *dapm_routes;
727 int num_dapm_routes;
728
721 struct work_struct deferred_resume_work; 729 struct work_struct deferred_resume_work;
722 730
723 /* lists of probed devices belonging to this card */ 731 /* lists of probed devices belonging to this card */
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 24bfc3ff8e17..6a2839c18447 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1872,6 +1872,13 @@ static void snd_soc_instantiate_card(struct snd_soc_card *card)
1872 } 1872 }
1873 } 1873 }
1874 1874
1875 if (card->dapm_widgets)
1876 snd_soc_dapm_new_controls(&card->dapm, card->dapm_widgets,
1877 card->num_dapm_widgets);
1878 if (card->dapm_routes)
1879 snd_soc_dapm_add_routes(&card->dapm, card->dapm_routes,
1880 card->num_dapm_routes);
1881
1875 card->dapm.debugfs_dapm = debugfs_create_dir("dapm", 1882 card->dapm.debugfs_dapm = debugfs_create_dir("dapm",
1876 card->debugfs_card_root); 1883 card->debugfs_card_root);
1877 if (!card->dapm.debugfs_dapm) 1884 if (!card->dapm.debugfs_dapm)