[alsa-devel] [PATCH 5/9] ASoC: soc-core: use soc_find_component() at snd_soc_get_dai_id()
Dmitry Osipenko
digetx at gmail.com
Wed Jun 26 00:43:00 CEST 2019
26.06.2019 1:38, Jon Hunter пишет:
>
> On 25/06/2019 21:47, Dmitry Osipenko wrote:
>> 13.05.2019 10:07, Kuninori Morimoto пишет:
>>> From: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
>>>
>>> soc-core core already has soc_find_component() which find
>>> component from device node.
>>> Let's use existing function to find component.
>>>
>>> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
>>> ---
>>> sound/soc/soc-core.c | 17 +++++------------
>>> 1 file changed, 5 insertions(+), 12 deletions(-)
>>>
>>> diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
>>> index e55170c..e83edbe 100644
>>> --- a/sound/soc/soc-core.c
>>> +++ b/sound/soc/soc-core.c
>>> @@ -3751,7 +3751,7 @@ EXPORT_SYMBOL_GPL(snd_soc_of_parse_daifmt);
>>>
>>> int snd_soc_get_dai_id(struct device_node *ep)
>>> {
>>> - struct snd_soc_component *pos;
>>> + struct snd_soc_component *component;
>>> struct device_node *node;
>>> int ret;
>>>
>>> @@ -3765,17 +3765,10 @@ int snd_soc_get_dai_id(struct device_node *ep)
>>> */
>>> ret = -ENOTSUPP;
>>> mutex_lock(&client_mutex);
>>> - for_each_component(pos) {
>>> - struct device_node *component_of_node = soc_component_to_node(pos);
>>> -
>>> - if (component_of_node != node)
>>> - continue;
>>> -
>>> - if (pos->driver->of_xlate_dai_id)
>>> - ret = pos->driver->of_xlate_dai_id(pos, ep);
>>> -
>>> - break;
>>> - }
>>> + component = soc_find_component(node, NULL);
>>> + if (component &&
>>> + component->driver->of_xlate_dai_id)
>>> + ret = component->driver->of_xlate_dai_id(component, ep);
>>> mutex_unlock(&client_mutex);
>>>
>>> of_node_put(node);
>>>
>>
>> Hi,
>>
>> This patch causes crash on today's linux-next apparently because "CPU DAI" is not
>> registered now, any ideas?
>
> FWIW I am seeing the same crash/regression, however, the bisect is
> pointing to commit b9f2e25c599bbbf0646957e07ebb72b942c286cc ("ASoC:
> soc-core: use soc_find_component() at snd_soc_find_dai()") and reverting
> this commit fixes the problem for me.
>
> Dmitry, are you sure it is this commit? They do have a similar name.
Indeed! I accidentally replied to a wrong email, thank you very much for the
clarification. And good to know that it's a global problem and not my local setup issue.
More information about the Alsa-devel
mailing list