[alsa-devel] Question about dapm setup

Kuninori Morimoto kuninori.morimoto.gx at renesas.com
Wed May 29 06:50:07 CEST 2019


Hi ALSA ML

snd_soc_instantiate_card() setups dapm, but its timing seems
very randomly for me.
In my understanding, dapm setup timing is not so serious.
So, I think we can do it in one place,
but are there some reasons ?
For example, "xxxx should be called after yyyy"


static int snd_soc_instantiate_card(struct snd_soc_card *card)
{
	...

=>	snd_soc_dapm_debugfs_init(&card->dapm, card->debugfs_card_root);

	...

	if (card->dapm_widgets)
		snd_soc_dapm_new_controls(&card->dapm, card->dapm_widgets,
					  card->num_dapm_widgets);

	if (card->of_dapm_widgets)
		snd_soc_dapm_new_controls(&card->dapm, card->of_dapm_widgets,
					  card->num_of_dapm_widgets);

	...

	snd_soc_dapm_link_dai_widgets(card);
	snd_soc_dapm_connect_dai_link_widgets(card);

	if (card->controls)
		snd_soc_add_card_controls(card, card->controls,
					  card->num_controls);

	if (card->dapm_routes)
		snd_soc_dapm_add_routes(&card->dapm, card->dapm_routes,
					card->num_dapm_routes);

	if (card->of_dapm_routes)
		snd_soc_dapm_add_routes(&card->dapm, card->of_dapm_routes,
					card->num_of_dapm_routes);
	...

	snd_soc_dapm_new_widgets(card);

	...

	dapm_mark_endpoints_dirty(card);
	snd_soc_dapm_sync(&card->dapm);
	...
}




Thank you for your help !!
Best regards
---
Kuninori Morimoto


More information about the Alsa-devel mailing list