Re: simple card, asymetrical configuration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Kuninori,

Am 2019-12-03 01:54, schrieb Kuninori Morimoto:
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";

Thanks, I'll try that tomorrow.

But nevertheless, shouldn't there be a check for a misconfiguration? At least the bindings document should mention that this configuration is only valid for for the "scu" case. Oh and I've just had a look, the compatible string of this configuration is "simple-audio-card" in Documentation/devicetree/bindings/sound/simple-card.txt.

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



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux