[PATCH v2 0/6] ASoC: Merge CPU/Codec DAIs

Kuninori Morimoto kuninori.morimoto.gx at renesas.com
Wed Mar 11 06:00:08 CET 2020


Hi Mark

Current ALSA SoC has CPU/Codec categorized DAIs.
But we want to have non-categorized DAIs in the future.
This was indicated by Lars-Peter before at ELCE.
But, we *can't* do it right now.
Because many drivers are considering CPU and Codec separately.

Currently, rtd has both CPU/Codec DAIs array.

	rtd->cpu_dais   = [][][][][][][][][]
	rtd->codec_dais = [][][][][][][][][]

This patch merges these, like below.
It still can use rtd->cpu_dais, rtd->codec_dais.
Of course for_each_rtd_cpu/codec_dais() macro too.
So we can use/keep existing code/method same as before.

	rtd->dais = [][][][][][][][][][][][][][][][][][]
	            ^cpu_dais         ^codec_dais
	            |--- num_cpus ---|--- num_codecs --|

	rtd->cpu_dais   = &rtd->dais[0];
	rtd->codec_dais = &rtd->dais[dai_link->num_cpus];

There are some code which is doing something *only* for CPU or Codec.
This patch-set do nothing to such code.
Maybe it can be updated in the future, maybe not (can't).

I hope this patch-set can be 1st step for non-categorized DAIs.
But the main purpose so far is that replace the duplicate code
for borh CPU and Codec.

	-	for_each_rtd_cpu_dais() {
	-		...
	-	}
	-	for_each_rtd_codec_dais() {
	-		...
	-	}
	+	for_each_rtd_dais() {
	+		...
	+	}

Kuninori Morimoto (6):
  ASoC: soc-core: Merge CPU/Codec DAIs
  ASoC: soc-core: Merge for_each_rtd_cpu/codec_dais()
  ASoC: soc-dapm: Merge for_each_rtd_cpu/codec_dais()
  ASoC: soc-pcm: Merge for_each_rtd_cpu/codec_dais()
  ASoC: soc-core: Merge CPU/Codec for soc_dai_pcm_new()
  ASoC: soc-pcm: Merge CPU/Codec MSB at soc_pcm_apply_msb()

 include/sound/soc.h  |   7 +-
 sound/soc/soc-core.c |  66 ++++-----
 sound/soc/soc-dapm.c |   9 +-
 sound/soc/soc-pcm.c  | 340 +++++++++++--------------------------------
 4 files changed, 116 insertions(+), 306 deletions(-)

-- 
2.17.1



More information about the Alsa-devel mailing list