Hi Conor
Thank you for your feedback
This patch adds ch-maps property to enable handling CPU:Codec = N:M connection.
Signed-off-by: Kuninori Morimoto kuninori.morimoto.gx@renesas.com
(snip)
ch-maps:
$ref: /schemas/types.yaml#/definitions/uint32-array
Most of what I said on the last version applies here too. Only the s/_/-/ was done. Is there a reason you ignored those comments?
Ah sorry. I thought you wanted was add your address on To/Cc for all patch-set.
I only got this one patch, so I have no context at all for this change. Given that, and since I know almost nothing about sound stuff...
(snip)
...I have absolutely no idea how I would populate "ch_maps" correctly. Please describe (in the binding) what this property actually does & how to use it. Also, properties use -s not _s.
Some Sound want to use multiple connections between CPUs (N) and Codecs (M). Current audio-graph-card2 driver is already supporting 1:N / N:1 / N:N connections, this patch expand it.
These are implemented by using Of-Graph. For example N:N connection case, it is expressed like below. One note here is that cpu0/cpu1 and codec0/codec1 are *not* independent. We need to consider cpu0/cpu1 pair and codec0/codec1 pair.
ep (endpoint)
(A) (B) <- port -> <- port -> <- port -> <- port -> ax(ep) <--> (ep)bx cpu0(ep) <--> (ep)a0 b0(ep) <--> (ep)codec0 cpu1(ep) <--> (ep)a1 b1(ep) <--> (ep)codec1
In N:N case, it is assuming cpu0/codec0, and cpu1/codec1 has related. This patch expand (A)/(B) part to N:M (N != M). Then, ch-maps indicates how these are related.
(A) (B) <- port -> <- port -> <- port -> <- port -> ax(ep) <--> (ep)bx cpu0(ep) <--> (ep)a0 b0(ep) <--> (ep)codec0 cpu1(ep) <--> (ep)a1 b1(ep) <--> (ep)codec1 => cpu2(ep) <--> (ep)a2
ch-maps = <0 0 1>
ch-maps = <0 0 1> means, cpu0 <-> codec0 cpu1 <-> codec0 cpu2 <-> codec1
Thank you for your help !!
Best regards --- Kuninori Morimoto