Hi Morimoto-san,
(snip)
+static bool soc_component_is_pcm(struct snd_soc_dai_link_component
*dlc)
+{
+ struct snd_soc_dai *dai = snd_soc_find_dai(dlc);
+
+ if (dai && (dai->component->driver->pcm_construct ||
+ dai->driver->pcm_new))
+ return true;
+
+ return false;
+}
This snd_soc_find_dai() will indicate WARNING
if .config has CONFIG_LOCKDEP for me.
Maybe implement it at soc-core.c with client_mutex lock
is needed.
I tried testing this with LOCKDEP config enabled at my end. It seems I
don't see warning originated from above function. Are you suggesting
that, in general, snd_soc_find_dai() should be called with client_mutex
held?
However I do see below warning and stack which is not related to above
function call.
dump_backtrace+0x0/0x1c0
show_stack+0x18/0x28
dump_stack+0xc8/0x128
__warn+0xa0/0x15c
report_bug+0xc8/0x180
bug_handler+0x20/0x80
brk_handler+0x6c/0xc0
do_debug_exception+0xd8/0x1f0
el1_sync_handler+0x98/0x128
el1_sync+0x7c/0x100
snd_soc_find_dai+0x10c/0x120 [snd_soc_core]
snd_soc_dai_link_set_capabilities+0xc0/0x168 [snd_soc_core]
graph_dai_link_of_dpcm+0x3a4/0x410 [snd_soc_audio_graph_card]
graph_for_each_link+0x174/0x220 [snd_soc_audio_graph_card]
graph_probe+0x174/0x270 [snd_soc_audio_graph_card]
May be *snd_soc_dai_link_set_capabilities**()* requires similar fix?
Thanks,
Sameer