[alsa-devel] Question about aux device

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


Hi ALSA ML

Hmm... it seems my brain is broken today... (not only today ?)
Previous mail is mixing unrelated things...
Please ignore it.

> I wonder about aux device probe method.
> Does someone know about it ?
> 
> (1)
> snd_soc_instantiate_card() binds all (normal) components by
> soc_bind_dai_link()
> ~~~~~~~~~~~~~~~~~
> (2)
> And initialize/probe all binded (normal) components after that.
> Here, in this operation, it will calls soc_probe_component().
>                                        ~~~~~~~~~~~~~~~~~~~
> (3)
> After that, auxiliary component is probed by using soc_probe_component()
>                                                    ~~~~~~~~~~~~~~~~~~~
> (4)
> And, auxiliary component is binded by soc_bind_dai_link() after that.
>                                        ~~~~~~~~~~~~~~~~~
> 
> 	static int snd_soc_instantiate_card(struct snd_soc_card *card)
> 	{
> 		...
> 		/* probe normal components here */
> 		for_each_card_prelinks(card, i, dai_link) {
> (1)=>			ret = soc_bind_dai_link(card, dai_link);
> 			if (ret != 0)
> 				goto probe_end;
> 		}
> 		...
> 		/* probe all components used by DAI links on this card */
> 		for_each_comp_order(order) {
> 			for_each_card_rtds(card, rtd) {
> (2)=>				ret = soc_probe_link_components(card, rtd, order);
> 				...
> 				}
> 			}
> 		}
> 
> 		/* probe auxiliary components */
> (3)=>		ret = soc_probe_aux_devices(card);
> 		...
> 
> 		for_each_card_links(card, dai_link) {
> 			...
> (4)=>			ret = soc_bind_dai_link(card, dai_link);
> 			...
> 		}
> 
> 
> 	}
> 
> 1st question is it seems the order of (1)/(2) and (3)/(4) are different.
> are there some reason about it ? or no reason ?
> 
> 2nd question is can we merge these ? (1)+(4) and (2)+(3).
> Or do we have some reason ?
> For example (3)/(4) need to be called after xxxx.
> 
> 
> Thank you for your help !!
> Best regards
> ---
> Kuninori Morimoto


More information about the Alsa-devel mailing list