Re: Question about dapm setup

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, May 30, 2019 at 09:12:10AM +0900, Kuninori Morimoto wrote:
> But, it was my fault, the question was not clear.
> I wanted to know was that there are many non dapm functions
> are called between dapm setup.
> pseudo code is..
> 
> It looks very random. So my original question was
> can we do like this (with keeping dapm order)?
> 

Ah ok I see, sorry I understand now.

> 	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 ? */
> 	}
> 
> For example, snd_soc_dapm_xxx() should be called before/after
> card->probe() etc, etc...
> 

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.

Thanks,
Charles
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux