Hi Charles Thank you for your help > > static int snd_soc_instantiate_card(struct snd_soc_card *card) > > { > > > > => snd_soc_dapm_debugfs_init() > > => snd_soc_dapm_new_controls(...) > > => snd_soc_dapm_link_dai_widgets() > > => snd_soc_dapm_connect_dai_link_widgets() > > => snd_soc_add_card_controls() > > => snd_soc_dapm_add_routes() > > => snd_soc_dapm_new_widgets() > > => dapm_mark_endpoints_dirty() > > => snd_soc_dapm_sync() > > > > card->probe(..) > > soc_probe_link_components(...) > > soc_probe_aux_device(...) > > soc_bind_dai_link(...) > > soc_probe_link_dais > > snprintf(...) > > card->late_probe() > > snd_card_register() > > > > => /* or dapm setup here instead ? */ > > } (snip) > There are definitely some dependencies for example component probes > will add widgets, controls and routes from those components so > those will need to be done before the card level routes are > added. The card level routes may link to widgets on individual > components. > > Also the DAPM sync definitely needs to be after everything has > been setup. > > I wouldn't be surprised if there are others as well, things like > creating the DAI link widgets are probably done through some > of these helpers and probably need to be at certain points in the > process. Thank for your information ! I think we can do some cleanup there, but need more investigation. I guess, the point is card->probe, and card->late_probe (?) Thank you for your help !! Best regards --- Kuninori Morimoto _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel