Hi Mark Previous v2 patch-set can't be applied on top of latest for-5.7 branch. This v3 is rebased version on top of it. 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 | 337 +++++++++++-------------------------------- 4 files changed, 116 insertions(+), 303 deletions(-) -- 2.17.1