Linux Tegra architecture development
 help / color / mirror / Atom feed
* Re: [PATCH 5/9] ASoC: soc-core: use soc_find_component() at snd_soc_get_dai_id()
       [not found] ` <87r292alro.wl-kuninori.morimoto.gx@renesas.com>
@ 2019-06-25 20:47   ` Dmitry Osipenko
  2019-06-25 22:38     ` Jon Hunter
  0 siblings, 1 reply; 4+ messages in thread
From: Dmitry Osipenko @ 2019-06-25 20:47 UTC (permalink / raw)
  To: Kuninori Morimoto, Mark Brown; +Cc: linux-tegra@vger.kernel.org, Linux-ALSA

13.05.2019 10:07, Kuninori Morimoto пишет:
> From: Kuninori Morimoto <kuninori.morimoto.gx@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@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?

    8.176319] tegra-snd-wm8903 sound: ASoC: CPU DAI (null) not registered
[    8.176549] 8<--- cut here ---
[    8.176763] Unable to handle kernel NULL pointer dereference at virtual address
00000570
[    8.176939] pgd = ef4b4af8
[    8.177004] [00000570] *pgd=00000000
[    8.177091] Internal error: Oops: 5 [#1] PREEMPT SMP THUMB2
[    8.177212] Modules linked in: snd_soc_tegra_wm8903(+) snd_soc_tegra_utils
snd_soc_tegra20_i2s snd_soc_tegra20_das snd_soc_tegra_pcm
[    8.177467] CPU: 0 PID: 177 Comm: systemd-udevd Tainted: G        W
5.2.0-rc6-next-20190625-00149-g10005a9c4812 #1068
[    8.177708] Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
[    8.177869] PC is at tegra_wm8903_remove+0x18/0x28 [snd_soc_tegra_wm8903]
[    8.178019] LR is at tegra_wm8903_remove+0x13/0x28 [snd_soc_tegra_wm8903]
[    8.178160] pc : [<bf8171d8>]    lr : [<bf8171d3>]    psr: 60010133
[    8.178294] sp : d5979c18  ip : 60010113  fp : c11acef8
[    8.178406] r10: 00000100  r9 : 00000122  r8 : bf8191a4
[    8.178520] r7 : 00000003  r6 : bf819180  r5 : bf819180  r4 : bf819090
[    8.178662] r3 : 00000000  r2 : 00000000  r1 : 00000000  r0 : 00000000
[    8.178804] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA Thumb  Segment none
[    8.178956] Control: 50c5387d  Table: 159f404a  DAC: 00000051
[    8.179205] Process systemd-udevd (pid: 177, stack limit = 0x1322d18f)
[    8.179451] Stack: (0xd5979c18 to 0xd597a000)
[    8.179654] 9c00:                                                       bf8171c1
c06df1dd
[    8.179833] 9c20: bf819090 00000000 00000078 c0bce380 c11acf1c fffffdfb 00000001
c06df597
[    8.180006] 9c40: c0445029 d6e2c9c0 00000000 bf819118 d5978000 c0e33d08 c0e6d2b0
c0e6d2d0
[    8.180177] 9c60: 00000001 00000000 60010113 f7ca2504 00000000 bf819090 00000000
d7334624
[    8.180348] 9c80: d64e1e10 bf819000 bf819664 0000000d d5978000 c06dfc13 d7324834
00000000
[    8.180520] 9ca0: d5916bd4 bf8173ed bf8171e9 00000000 d64e1e10 bf819304 c121ff64
00000000
[    8.180691] 9cc0: bf819304 c04ea02b c04e9ff9 d64e1e10 c121ff60 00000000 c121ff64
c04e8929
[    8.180862] 9ce0: d64e1e10 bf819304 bf819304 d5978000 00000002 00000000 bf819380
c04e8b8f
[    8.181033] 9d00: d7334624 00000000 bf819380 c090a7b7 bf81803c d64e1e10 00000000
bf819304
[    8.181204] 9d20: d5978000 00000002 00000000 bf819380 d5978000 c04e8d7d 00000000
bf819304
[    8.181375] 9d40: d64e1e10 c04e8db7 00000000 bf819304 c04e8d81 c04e75bb d5979d80
d6e50558
[    8.181546] 9d60: d64ce134 f7ca2504 00000000 bf819304 d5916180 00000000 c11841c8
c04e80fb
[    8.181717] 9d80: bf818670 bf819304 c11d6c00 bf819304 c11d6c00 bf81c001 ffffe000
c04e9559
[    8.181889] 9da0: 00000000 d5978000 c11d6c00 bf81c017 00000000 c0102c81 d5aba5c0
fffffff4
[    8.182060] 9dc0: d5f58cc0 c08fc129 bf8193c8 c0216dc7 d59a1600 f0957fff 8040003f
d6c01e40
[    8.182231] 9de0: 00000cc0 c018ef7d 00000008 c0216cf1 d75ea740 d5aba5c0 d6c01e40
c019087d
[    8.182402] 9e00: d5978000 f7ca2504 d5fbf940 bf819380 d5ecbb40 00000002 d5fbf980
00000002
[    8.182572] 9e20: d5fbf980 c018efa9 00000002 d5fbf980 d5979f38 d5fbf940 00000002
c0190891
[    8.182744] 9e40: bf81938c 00007fff bf819380 c018e401 d5fd9300 bf819494 bf8193c8
c0db4fdc
[    8.182914] 9e60: bf819580 c0a074e4 bf81938c bf81e0ae c0db491c d5978000 c0db4f34
00000000
[    8.183085] 9e80: 00000cc0 ffffe000 d5978000 bf000000 00000000 d5978000 00000000
00000000
[    8.183255] 9ea0: 00000000 00000000 00000000 00000000 6e72656b 00006c65 00000000
00000000
[    8.183425] 9ec0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
[    8.183596] 9ee0: 00000000 00000000 00000000 f7ca2504 7fffffff d5978000 00000000
b6d25188
[    8.188471] 9f00: f091f000 c01011e4 d5978000 0000017b 0048db58 c0190d2f 7fffffff
00000000
[    8.193359] 9f20: 00000003 00037b74 00000001 f091f000 00037b74 00000000 f091fcbe
f09200c0
[    8.198255] 9f40: f091f000 00037b74 f095637c f0956190 f0949d90 00003000 000034a0
00002038
[    8.203221] 9f60: 000037b8 00000000 00000000 00000000 00002028 00000031 00000032
00000018
[    8.208131] 9f80: 00000000 00000012 00000000 f7ca2504 00000000 00000000 00000000
69ea3300
[    8.212949] 9fa0: 0000017b c0101001 00000000 00000000 0000000e b6d25188 00000000
00000000
[    8.217719] 9fc0: 00000000 00000000 69ea3300 0000017b 0048f290 00000000 00486698
0048db58
[    8.222444] 9fe0: bef98c70 bef98c60 b6d1c5c8 b6bff320 600d0010 0000000e 00000000
00000000
[    8.227183] [<bf8171d8>] (tegra_wm8903_remove [snd_soc_tegra_wm8903]) from
[<c06df1dd>] (soc_cleanup_card_resources+0x1e1/0x1f8)
[    8.232037] [<c06df1dd>] (soc_cleanup_card_resources) from [<c06df597>]
(snd_soc_instantiate_card+0x3a3/0x958)
[    8.236980] [<c06df597>] (snd_soc_instantiate_card) from [<c06dfc13>]
(snd_soc_register_card+0xc7/0xe0)
[    8.241975] [<c06dfc13>] (snd_soc_register_card) from [<bf8173ed>]
(tegra_wm8903_driver_probe+0x205/0x26c [snd_soc_tegra_wm8903])
[    8.246991] [<bf8173ed>] (tegra_wm8903_driver_probe [snd_soc_tegra_wm8903]) from
[<c04ea02b>] (platform_drv_probe+0x33/0x68)
[    8.251974] [<c04ea02b>] (platform_drv_probe) from [<c04e8929>]
(really_probe+0xa9/0x1ec)
[    8.256900] [<c04e8929>] (really_probe) from [<c04e8b8f>]
(driver_probe_device+0x43/0x124)
[    8.261836] [<c04e8b8f>] (driver_probe_device) from [<c04e8d7d>]
(device_driver_attach+0x3d/0x40)
[    8.266885] [<c04e8d7d>] (device_driver_attach) from [<c04e8db7>]
(__driver_attach+0x37/0x78)
[    8.271950] [<c04e8db7>] (__driver_attach) from [<c04e75bb>]
(bus_for_each_dev+0x43/0x6c)
[    8.277037] [<c04e75bb>] (bus_for_each_dev) from [<c04e80fb>]
(bus_add_driver+0xe3/0x148)
[    8.282175] [<c04e80fb>] (bus_add_driver) from [<c04e9559>]
(driver_register+0x39/0xa0)
[    8.287373] [<c04e9559>] (driver_register) from [<bf81c017>]
(tegra_wm8903_driver_init+0x17/0x1000 [snd_soc_tegra_wm8903])
[    8.292731] [<bf81c017>] (tegra_wm8903_driver_init [snd_soc_tegra_wm8903]) from
[<c0102c81>] (do_one_initcall+0x45/0x1e4)
[    8.298144] [<c0102c81>] (do_one_initcall) from [<c018efa9>]
(do_init_module+0x4d/0x1a0)
[    8.303555] [<c018efa9>] (do_init_module) from [<c0190891>]
(load_module+0x1739/0x1a28)
[    8.308974] [<c0190891>] (load_module) from [<c0190d2f>] (sys_finit_module+0x7b/0x8c)
[    8.314404] [<c0190d2f>] (sys_finit_module) from [<c0101001>]
(ret_fast_syscall+0x1/0x28)
[    8.319854] Exception stack(0xd5979fa8 to 0xd5979ff0)
[    8.325265] 9fa0:                   00000000 00000000 0000000e b6d25188 00000000
00000000
[    8.330758] 9fc0: 00000000 00000000 69ea3300 0000017b 0048f290 00000000 00486698
0048db58
[    8.336643] 9fe0: bef98c70 bef98c60 b6d1c5c8 b6bff320
[    8.342097] Code: d6cf 2300 461a 4619 (f8d0) 0570
[    8.351857] ---[ end trace e373bedb5e9591a6 ]---
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 5/9] ASoC: soc-core: use soc_find_component() at snd_soc_get_dai_id()
  2019-06-25 20:47   ` [PATCH 5/9] ASoC: soc-core: use soc_find_component() at snd_soc_get_dai_id() Dmitry Osipenko
@ 2019-06-25 22:38     ` Jon Hunter
  2019-06-25 22:43       ` Dmitry Osipenko
  0 siblings, 1 reply; 4+ messages in thread
From: Jon Hunter @ 2019-06-25 22:38 UTC (permalink / raw)
  To: Dmitry Osipenko, Kuninori Morimoto, Mark Brown
  Cc: linux-tegra@vger.kernel.org, Linux-ALSA


On 25/06/2019 21:47, Dmitry Osipenko wrote:
> 13.05.2019 10:07, Kuninori Morimoto пишет:
>> From: Kuninori Morimoto <kuninori.morimoto.gx@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@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.

Cheers
Jon

-- 
nvpublic
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 5/9] ASoC: soc-core: use soc_find_component() at snd_soc_get_dai_id()
  2019-06-25 22:38     ` Jon Hunter
@ 2019-06-25 22:43       ` Dmitry Osipenko
  2019-06-25 23:39         ` Kuninori Morimoto
  0 siblings, 1 reply; 4+ messages in thread
From: Dmitry Osipenko @ 2019-06-25 22:43 UTC (permalink / raw)
  To: Jon Hunter, Kuninori Morimoto, Mark Brown
  Cc: linux-tegra@vger.kernel.org, Linux-ALSA

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@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@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.
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
https://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 5/9] ASoC: soc-core: use soc_find_component() at snd_soc_get_dai_id()
  2019-06-25 22:43       ` Dmitry Osipenko
@ 2019-06-25 23:39         ` Kuninori Morimoto
  0 siblings, 0 replies; 4+ messages in thread
From: Kuninori Morimoto @ 2019-06-25 23:39 UTC (permalink / raw)
  To: Dmitry Osipenko
  Cc: linux-tegra@vger.kernel.org, Linux-ALSA, Mark Brown, Jon Hunter


Hi Dmitry, Jon

> >>> From: Kuninori Morimoto <kuninori.morimoto.gx@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@renesas.com>
> >>> ---
(snip)
> >> 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.

Thank you for pointing it.
I'm so sorry, it was my fault.
I think this and Marek issue are same issue which I didn't notice.
I will fixup (or negotiate to Mark) to solve this issue.

Thank you for your help !!
Best regards
---
Kuninori Morimoto

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-06-25 23:39 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <87y33aaluu.wl-kuninori.morimoto.gx@renesas.com>
     [not found] ` <87r292alro.wl-kuninori.morimoto.gx@renesas.com>
2019-06-25 20:47   ` [PATCH 5/9] ASoC: soc-core: use soc_find_component() at snd_soc_get_dai_id() Dmitry Osipenko
2019-06-25 22:38     ` Jon Hunter
2019-06-25 22:43       ` Dmitry Osipenko
2019-06-25 23:39         ` Kuninori Morimoto

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox