[PATCH v3 00/16] ASoC: Add Rich Graph Card support

Péter Ujfalusi peter.ujfalusi at linux.intel.com
Fri Oct 1 07:43:44 CEST 2021


Hi Morimoto-san, Mark,

On 10/09/2021 04:20, Kuninori Morimoto wrote:
> 
> Hi Mark
> 
> We already have Audio-Graph-Card which is Of-Graph base general sound
> card driver. Basically it supports basic CPU-Codec connection, and is
> also supporting DPCM connection. Because it was forcibly expanded to
> DPCM, DT parsing is very limited and very difficult to add new features
> on it, for example Multi-CPU/Codec support, Codec2Codec support, etc.
> 
> This patch adds more flexible new Rich-Graph-Card driver for it.
> Audio-Graph-Card and Rich-Graph-Card are similar, but don't have
> full compatibility.
> The reason why I need Rich-Graph-Card instead of updating Audio-Graph-Card
> is that it is very difficult to keep compatibility.
> 
> Rich-Graph-Card supports Normal/DPCM/Codec2Codec Connection wich
> Single/Multi DAIs. And it is possible to Customizing.
> 
> This patch-set adds Rich-Graph-Card driver and customized driver
> sample, and DT settings sample which can be used for testing.

I understand is that naming is difficult, but a rich-graph-card sounds a
bit awkward?
Will we see a wealthy-graph-card if the rich is not resourceful enough? ;)

The current generation of graph based generic audio card is
audio-graph-card

This is going to be an (incompatible) evolution, the Next/New
Generation. Would it sound better if it is named
audio-graph-card-ng / ng-audio-graph-card

The 'rich' sound really out of place (if not rich then poor?).

Next Generation, New Generation, Extended, etc
or just drop the graph and
generic-audio-card


> To enable testing/debuging, this patch-set also adds Test-Component
> driver. We already have Dummy Component and/or Dummy DAI on soc-utils,
> but 1) we can't use it from DT, 2) it do nothing.
> Added new Test-Component can be used from DT, and it can indicate called
> function name. We can use it to trace callback order, understanding
> ALSA SoC behavior, etc, etc...
> Sample DT settings of Rich Graph Card is using Test-Component as CPU/Codec DAI.
> 
> You can easily try to use/test it if you added below line to your DT file.
> Your .config needs to have below CONFIGs to use/test it.
> It will probe sample Sound Card which has Normal/DPCM/Multi/Codec2Codec
> connections.
> 
> 	#include "../../../../../sound/soc/generic/rich-graph-card-sample.dtsi"
> 
> 	CONFIG_SND_RICH_GRAPH_CARD
> 	CONFIG_SND_RICH_CUSTOM_CARD_SAMPLE
> 	CONFIG_SND_TEST_COMPONENT
> 
> Because Audio Graph Card2 is still under experimental stage, it will
> indicate such warning when probing, and the DT might be updated/exchanged.
> 
> It can use Codec2Codec, but it will start automatically when probed,
> and can't stop it so far. It should be updated.
> 
> Link: https://lore.kernel.org/r/87k0xszlep.wl-kuninori.morimoto.gx@renesas.com
> Link: https://lore.kernel.org/r/871r8u4s6q.wl-kuninori.morimoto.gx@renesas.com
> Link: https://lore.kernel.org/r/87a6mhwyqn.wl-kuninori.morimoto.gx@renesas.com
> 
> v1 -> v2
> 	- don't use "port" base for_each loop
> 
> v2 -> v3
> 	- Rename audio-graph-card2 to rich-graph-card
> 	- Rename DSP to DPCM not to confuse
> 	- Normal/DPCM/Codec2Codec can use Single/Multi DAIs.
> 	- use dpcm/multi/codec2codec node instead of using extra compatible
> 	- Sample DTSI patch is separated to Single/Multi.
> 
> Kuninori Morimoto (16):
>   ASoC: test-component: add Test Component YAML bindings
>   ASoC: test-component: add Test Component for Sound debug/test
>   ASoC: simple-card-utils: add asoc_graph_is_ports0()
>   ASoC: simple-card-utils: add codec2codec support
>   ASoC: add Rich Graph Card driver
>   ASoC: rich-graph-card: add Multi CPU/Codec support
>   ASoC: rich-graph-card: add DPCM support
>   ASoC: rich-graph-card: add Codec2Codec support
>   ASoC: add Rich Graph Card Yaml Document
>   ASoC: add Rich Graph Card Custom Sample
>   ASoC: rich-graph-card-sample.dtsi: add Sample DT for Normal (Single)
>   ASoC: rich-graph-card-sample.dtsi: add Sample DT for Normal (Nulti)
>   ASoC: rich-graph-card-sample.dtsi: add DPCM sample (Single)
>   ASoC: rich-graph-card-sample.dtsi: add DPCM sample (Multi)
>   ASoC: rich-graph-card-sample.dtsi: add Codec2Codec sample (Single)
>   ASoC: rich-graph-card-sample.dtsi: add Codec2Codec sample (Multi)
> 
>  .../bindings/sound/rich-graph-card.yaml       |   57 +
>  .../bindings/sound/test-component.yaml        |   33 +
>  include/sound/graph_card.h                    |   21 +
>  include/sound/simple_card_utils.h             |    4 +
>  sound/soc/generic/Kconfig                     |   20 +
>  sound/soc/generic/Makefile                    |    6 +
>  sound/soc/generic/rich-custom-card-sample.c   |  174 +++
>  sound/soc/generic/rich-graph-card-sample.dtsi |  225 +++
>  sound/soc/generic/rich-graph-card.c           | 1277 +++++++++++++++++
>  sound/soc/generic/simple-card-utils.c         |   46 +-
>  sound/soc/generic/test-component.c            |  659 +++++++++
>  11 files changed, 2521 insertions(+), 1 deletion(-)
>  create mode 100644 Documentation/devicetree/bindings/sound/rich-graph-card.yaml
>  create mode 100644 Documentation/devicetree/bindings/sound/test-component.yaml
>  create mode 100644 sound/soc/generic/rich-custom-card-sample.c
>  create mode 100644 sound/soc/generic/rich-graph-card-sample.dtsi
>  create mode 100644 sound/soc/generic/rich-graph-card.c
>  create mode 100644 sound/soc/generic/test-component.c
> 

-- 
Péter


More information about the Alsa-devel mailing list