Hi Mark
Thank you for feedback
-- DT Image --
+--+ => | |<--> Codec1 | |<--> Codec2 +--+
-- DT Sample --
sound { compatible = "audio-graph-card2";
dais = <&codec2codec>;
};
CODEC2CODEC { compatible = "audio-graph-card2-codec2codec";
ports { codec2codec: port@0 { fe_ep: endpoint { remote-endpoint = <&codec1_ep>; }; }; port@1 { be_ep: endpoint { remote-endpoint = <&codec2_ep>; }; }; };
};
I'm a bit confused about the use of FE and BE here since the two CODECs are peers rather than this being DPCM - I think that's just a bit cut'n'paste rather than anything else though? The other examples look sensible I think but this one feels odd.
FE here is indicating CPU part's Codec, BE is for Codec part's Codec.
-- Image ---
*******
PCM0 <--> * * <--> DAI0: Codec Headset PCM1 <--> * * <--> DAI1: Codec Speakers PCM2 <--> * DSP * <--> DAI2: MODEM PCM3 <--> * * <--> DAI3: BT * * <--> DAI4: DMIC * * <--> DAI5: FM *******
DSP { compatible = "audio-graph-card2-dsp";
ports@0 { /* Front-End is pcm0_ep, Back-End is dummy */ dsp_fe0: port@0 { dsp_fe0_ep: endpoint { remote-endpoint = <&pcm0_ep>; }; }; port@1 { }; };
I'm not clear why we need to represent the dummy port here?
I'm thining that port@0 is IN (= CPU), port@1 is OUT (= Codec). Empty endpoint means not yet connected (= dummy).
It is difficut to know it was CPU-dummy or dummy-Codec without it.
Thank you for your help !!
Best regards --- Kuninori Morimoto