All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/16] ASoC: Add Rich Graph Card support
@ 2021-09-10  1:20 Kuninori Morimoto
  2021-09-10  1:21 ` [PATCH v3 01/16] ASoC: test-component: add Test Component YAML bindings Kuninori Morimoto
                   ` (17 more replies)
  0 siblings, 18 replies; 33+ messages in thread
From: Kuninori Morimoto @ 2021-09-10  1:20 UTC (permalink / raw)
  To: Mark Brown; +Cc: Linux-ALSA


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.

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

-- 
2.25.1


^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2021-10-05 17:27 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-10  1:20 [PATCH v3 00/16] ASoC: Add Rich Graph Card support Kuninori Morimoto
2021-09-10  1:21 ` [PATCH v3 01/16] ASoC: test-component: add Test Component YAML bindings Kuninori Morimoto
2021-10-01 20:11   ` Mark Brown
2021-09-10  1:21 ` [PATCH v3 02/16] ASoC: test-component: add Test Component for Sound debug/test Kuninori Morimoto
2021-09-10  1:21 ` [PATCH v3 03/16] ASoC: simple-card-utils: add asoc_graph_is_ports0() Kuninori Morimoto
2021-09-10  1:22 ` [PATCH v3 04/16] ASoC: simple-card-utils: add codec2codec support Kuninori Morimoto
2021-09-10  1:22 ` [PATCH v3 05/16] ASoC: add Rich Graph Card driver Kuninori Morimoto
2021-09-12 10:24   ` kernel test robot
2021-09-12 10:24     ` kernel test robot
2021-09-10  1:22 ` [PATCH v3 06/16] ASoC: rich-graph-card: add Multi CPU/Codec support Kuninori Morimoto
2021-09-10  1:22 ` [PATCH v3 07/16] ASoC: rich-graph-card: add DPCM support Kuninori Morimoto
2021-09-10  1:22 ` [PATCH v3 08/16] ASoC: rich-graph-card: add Codec2Codec support Kuninori Morimoto
2021-09-12  6:43   ` kernel test robot
2021-09-12  6:43     ` kernel test robot
2021-09-10  1:22 ` [PATCH v3 09/16] ASoC: add Rich Graph Card Yaml Document Kuninori Morimoto
2021-10-01 21:06   ` Mark Brown
2021-10-04  1:50     ` Kuninori Morimoto
2021-10-05 17:26       ` Mark Brown
2021-09-10  1:22 ` [PATCH v3 10/16] ASoC: add Rich Graph Card Custom Sample Kuninori Morimoto
2021-09-10  1:22 ` [PATCH v3 11/16] ASoC: rich-graph-card-sample.dtsi: add Sample DT for Normal (Single) Kuninori Morimoto
2021-09-10  1:22 ` [PATCH v3 12/16] ASoC: rich-graph-card-sample.dtsi: add Sample DT for Normal (Nulti) Kuninori Morimoto
2021-09-10  1:22 ` [PATCH v3 13/16] ASoC: rich-graph-card-sample.dtsi: add DPCM sample (Single) Kuninori Morimoto
2021-09-10  1:23 ` [PATCH v3 14/16] ASoC: rich-graph-card-sample.dtsi: add DPCM sample (Multi) Kuninori Morimoto
2021-09-10  1:23 ` [PATCH v3 15/16] ASoC: rich-graph-card-sample.dtsi: add Codec2Codec sample (Single) Kuninori Morimoto
2021-09-10  1:23 ` [PATCH v3 16/16] ASoC: rich-graph-card-sample.dtsi: add Codec2Codec sample (Multi) Kuninori Morimoto
2021-09-29 22:23 ` [PATCH v3 00/16] ASoC: Add Rich Graph Card support Kuninori Morimoto
2021-09-30 12:15   ` Mark Brown
2021-09-30 22:38     ` Kuninori Morimoto
2021-10-01  5:43 ` Péter Ujfalusi
2021-10-01  6:48   ` Kuninori Morimoto
2021-10-01 20:01     ` Mark Brown
2021-10-03 23:52       ` Kuninori Morimoto
2021-10-04 16:54         ` Mark Brown

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.