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