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(-)