[alsa-devel] Question about dapm setup
Kuninori Morimoto
kuninori.morimoto.gx at renesas.com
Fri May 31 02:57:48 CEST 2019
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
More information about the Alsa-devel
mailing list