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