Commit b8ad29de authored by Mark Brown's avatar Mark Brown

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: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
parent e37a4970
...@@ -718,6 +718,14 @@ struct snd_soc_card { ...@@ -718,6 +718,14 @@ struct snd_soc_card {
struct snd_soc_pcm_runtime *rtd_aux; struct snd_soc_pcm_runtime *rtd_aux;
int num_aux_rtd; int num_aux_rtd;
/*
* Card-specific routes and widgets.
*/
struct snd_soc_dapm_widget *dapm_widgets;
int num_dapm_widgets;
struct snd_soc_dapm_route *dapm_routes;
int num_dapm_routes;
struct work_struct deferred_resume_work; struct work_struct deferred_resume_work;
/* lists of probed devices belonging to this card */ /* lists of probed devices belonging to this card */
......
...@@ -1872,6 +1872,13 @@ static void snd_soc_instantiate_card(struct snd_soc_card *card) ...@@ -1872,6 +1872,13 @@ static void snd_soc_instantiate_card(struct snd_soc_card *card)
} }
} }
if (card->dapm_widgets)
snd_soc_dapm_new_controls(&card->dapm, card->dapm_widgets,
card->num_dapm_widgets);
if (card->dapm_routes)
snd_soc_dapm_add_routes(&card->dapm, card->dapm_routes,
card->num_dapm_routes);
card->dapm.debugfs_dapm = debugfs_create_dir("dapm", card->dapm.debugfs_dapm = debugfs_create_dir("dapm",
card->debugfs_card_root); card->debugfs_card_root);
if (!card->dapm.debugfs_dapm) if (!card->dapm.debugfs_dapm)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment