On Tue, Oct 13, 2020 at 01:50:25PM +0900, Kuninori Morimoto wrote: > > I'm thinking below style as new audio-graph-card2. > > It is not tricky, thus connection judgement for normal vs DSP is easy. > > Then, code can be more readable (= no guaranty :P) ? > I have proposed DPCM connection idea for audio-card2 before, > and proposed Multi-CPU/Codec connection idea later. > I'm not yet implemented these, but I want to merge / reuse these > idea to keep simple code. > By this mail, I want to propose Codec2Codec idea. > It is almost same idea with DPCM, Multi-CPU/Codec, > and is last parts for missing feature. > I think this idea can be generic and easy to update > in the future (if needed). > But, I want feedback, opinion. > I wonder does it works for your use-case ? > -- Image --- > > Codec2Codec > > Codec1 <--> Codec2 > > -- 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. > -- 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?