Hi Morimoto-san,
On 3/10/20 8:06 PM, Kuninori Morimoto wrote:
Hi Mark
Current ALSA SoC has CPU/Codec categorized DAIs. But it will be no longer good much for modern device.
Currently, rtd has both CPU/Codec DAIs array.
rtd->cpu_dais = [][][][][][][][][] rtd->codec_dais = [][][][][][][][][]
This patch merges these, like below. It still keeps rtd->cpu_dais, rtd->codec_dais
Sorry, but I perceive a contradiction here, or I am missing the bigger picture.
Is the end-goal to remove the cpu_dais and codec_dais, and fold them as non-descript 'dais'? This is what I understand by "it will be no longer good much for modern device"
Or is this 'merge' a simple data handling change to avoid using two "for" loops instead of one, and we are going to keep the distinction between dais?
more specifically I am concerned about the tons of code we have, e.g. a random machine driver:
struct snd_soc_dai *codec_dai = rtd->codec_dai; struct snd_soc_jack *jack; int ret;
/* Configure sysclk for codec */ ret = snd_soc_dai_set_sysclk(codec_dai, DA7219_CLKSRC_MCLK,
If the rtd structure only has an array of dais, how would the codecs be configured then?
rtd->dais = [][][][][][][][][][][][][][][][][][] ^cpu_dais ^codec_dais |--- num_cpus ---|--- num_codecs --|
After this merging, we can merge for_each_rtd_cpu/codec_dais().
- for_each_rtd_cpu_dais() {
...
- }
- for_each_rtd_codec_dais() {
...
- }
- for_each_rtd_dais() {
...
- }
Kuninori Morimoto (7): 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() ASoC: soc-pcm: Merge CPU/Codec at soc_pcm_pointer()
include/sound/soc.h | 7 +- sound/soc/soc-core.c | 66 +++----- sound/soc/soc-dapm.c | 9 +- sound/soc/soc-pcm.c | 367 +++++++++++-------------------------------- 4 files changed, 123 insertions(+), 326 deletions(-)