Hi Michael > sound { > compatible = "simple-audio-card"; > simple-audio-card,format = "i2s"; > [snip] > simple-audio-card,bitclock-master = <&dailink0_master>; > simple-audio-card,frame-master = <&dailink0_master>; > > simple-audio-card,cpu@0 { > sound-dai = <&sai6>; > }; > > simple-audio-card,cpu@1 { > sound-dai = <&sai5>; > }; > > dailink0_master: simple-audio-card,codec { > sound-dai = <&wm8904>; > }; > }; > > Just for the background, I have hardware with the LS1028A which only > have unidirectional SAIs. But two of those SAIs (one for playback and > one for capture) are connected to one codec (with a shared bit and > frame clock). > > So I thought the example in the simple-card bindings makes sense for > my case. Although I don't really know what "(Mixing)" means. > > Nevertheless, using the fragment above, the kernel oopses or fails to > probe the hardware. I've traced that back to the following: > - the count is correct: the kernel reports "link 2, dais 3, ccnf > 0". please note the 3 dais here. > - but simple_dai_link_of() will always "allocate" two dais from the > pool: > > cpu_dai = > dai_props->cpu_dai = &priv->dais[li->dais++]; > codec_dai = > dai_props->codec_dai = &priv->dais[li->dais++]; > > While this still works for the first link, the second one will fail > because codec_dai will not be valid. > > Btw, converting that to two explicit dai-link nodes, the dai count > will be 4 and it will work. > > Is my use case correct or should I use the two explicit dai-link > nodes? But in any case there seems to be a bug in simple-card. I guess you want to use "simple-scu-audio-card" instead of "simple-audio-card" in this case ? sound { - compatible = "simple-audio-card"; + compatible = "simple-scu-audio-card"; Thank you for your help !! Best regards --- Kuninori Morimoto _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel