More Generic Audio Graph Sound Card idea

Mark Brown broonie at kernel.org
Fri Sep 25 21:22:02 CEST 2020


On Fri, Sep 25, 2020 at 10:43:59AM +0900, Kuninori Morimoto wrote:

> But multi-Codec side is difficult.
> Because it is selected via "endpoint" via CPU.
> No way to select it via "port" and/or "ports".

Indeed.

> We might want to select Multi-CPU/Codec by using multi deivces ?
> in such case, using "ports" idea is not enough.

> Using extra device like DSP can be more generic ?

> 	<--- multi-CPU --->
> 	            *******
> 	CPU0-1 <--> *     * <--> Codec0
> 	CPU0-2 <--> *     *
> 	CPU0-3 <--> *     *
> 	            *******

I think this is what we want for SoCs, represent the DSPs explicitly and
then have the FEs and BEs all be ports on the DSP.  I think a similar
thing would also work for legacy (I2S & so on) DAIs where we've got more
endpoints on the DAI - if we define slots on the DAI then from the point
of view of the DT bindings it's just a very, very inflexible DSP:

        CPU1 <--> DAI slot A <--> Codec1-1
              \-> DAI slot B <--> Codec1-2
        CPU2 <--> DAI slot C <--> Codec1-3

or whatever.  This doesn't allow for really complex setups that change
the slot mapping at runtime (TBH those probably need custom cards
anyway) but I think it should support most cases where TDM causes
difficulties today.  I'm not sure if we need this for more modern buses
like SoundWire, I'd hope we can dynamically assign slots at runtime more
easily, but ICBW.

Thanks for all your work on this!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20200925/12bac22d/attachment.sig>


More information about the Alsa-devel mailing list