[alsa-devel] [PATCH v4 1/9] ASoC: rt5514: Avoid legacy dai naming
jeffy
jeffy.chen at rock-chips.com
Tue Aug 22 06:20:20 CEST 2017
Hi Mark,
thanks for your reply.
On 08/22/2017 01:31 AM, Mark Brown wrote:
> On Fri, Aug 18, 2017 at 11:03:46PM +0800, jeffy wrote:
>
>> when using legacy dai naming, the dai->name for rt5514-spi would be the dev
>> name, which is spi2.0 with my local 4.4 kernel, and would be spi32765.0 with
>> upstream kernel.
>
> It would be better to fix the code to not need a name if the device by
> itself is unambiguous.
>
right...
i'm not familiar with the soc core codes, would these make sense?
1/ consider match when the of nodes are the same:
@@ -978,9 +978,10 @@ struct snd_soc_dai *snd_soc_find_dai(
if (dlc->name && strcmp(component->name, dlc->name))
continue;
list_for_each_entry(dai, &component->dai_list, list) {
+ if (dlc->of_node && dai->dev->of_node ==
dlc->of_node)
+ return dai;
or
2/ return the first dai when there's only one:
@@ -977,10 +977,11 @@ struct snd_soc_dai *snd_soc_find_dai(
continue;
if (dlc->name && strcmp(component->name, dlc->name))
continue;
+ if (component->num_dai == 1)
+ return &component->dai_list[0];
list_for_each_entry(dai, &component->dai_list, list) {
or
3/ also check for dai driver name:
@@ -978,9 +978,10 @@ struct snd_soc_dai *snd_soc_find_dai(
if (dlc->name && strcmp(component->name, dlc->name))
continue;
list_for_each_entry(dai, &component->dai_list, list) {
- if (dlc->dai_name && strcmp(dai->name,
dlc->dai_name))
+ if (dlc->dai_name && strcmp(dai->name,
dlc->dai_name)
+ && strcmp(dai->driver->name, dlc->dai_name))
continue;
More information about the Alsa-devel
mailing list