Re: Question about soc_bind_dai_link()

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

 



On Ma, 2017-08-01 at 08:47 +0000, Kuninori Morimoto wrote:
> Hi
> 
> > 
> > > 
> > > static int soc_bind_dai_link(struct snd_soc_card *card,
> > > 	struct snd_soc_dai_link *dai_link)
> > > {
> > > 	...
> > > 	/* find one from the set of registered platforms */
> > > 	list_for_each_entry(platform, &platform_list, list) {
> > > 		platform_of_node = platform->dev->of_node;
> > > 		if (!platform_of_node && platform->dev->parent->of_node)
> > > 			platform_of_node = platform->dev->parent->of_node;
> > > 
> > > 		if (dai_link->platform_of_node) {
> > > 			if (platform_of_node != dai_link->platform_of_node)
> > > 				continue;
> > > 		} else {
> > > 			if (strcmp(platform->component.name, platform_name))
> > > 				continue;
> > > 		}
> > > 
> > > =>		rtd->platform = platform;
> > >  
> > This isn't actually a bug because you reach here only if the
> > given platform is found.
> Thanks. Yes, any cases it is not a big deal.
> In my cases it reaches here only once, because my system
> registers 1 platform only.
> I don't know detail, but some board is registering 2 platforms
> (own platform and dmaengine ?)
> In such case, rtd->platform was overwrote ?

No, because we only do the assignment rtd->platform = platform if

platform_of_node == dai_link->platform_of_node OR platform->name == platform_name.

In case we are registering 2 platforms (like you said: own platform and dmaengine)
they will be having different names/of_nodes.

> It seems existing such board is working, thus this is not a big deal.
> Just question

_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel




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

  Powered by Linux