hc
2024-10-12 a5969cabbb4660eab42b6ef0412cbbd1200cf14d
kernel/sound/soc/au1x/db1200.c
....@@ -1,3 +1,4 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * DB1200/DB1300/DB1550 ASoC audio fabric support code.
34 *
....@@ -46,13 +47,15 @@
4647
4748 /*------------------------- AC97 PART ---------------------------*/
4849
50
+SND_SOC_DAILINK_DEFS(db1200_ac97,
51
+ DAILINK_COMP_ARRAY(COMP_CPU("au1xpsc_ac97.1")),
52
+ DAILINK_COMP_ARRAY(COMP_CODEC("ac97-codec.1", "ac97-hifi")),
53
+ DAILINK_COMP_ARRAY(COMP_PLATFORM("au1xpsc-pcm.1")));
54
+
4955 static struct snd_soc_dai_link db1200_ac97_dai = {
5056 .name = "AC97",
5157 .stream_name = "AC97 HiFi",
52
- .codec_dai_name = "ac97-hifi",
53
- .cpu_dai_name = "au1xpsc_ac97.1",
54
- .platform_name = "au1xpsc-pcm.1",
55
- .codec_name = "ac97-codec.1",
58
+ SND_SOC_DAILINK_REG(db1200_ac97),
5659 };
5760
5861 static struct snd_soc_card db1200_ac97_machine = {
....@@ -62,13 +65,15 @@
6265 .num_links = 1,
6366 };
6467
68
+SND_SOC_DAILINK_DEFS(db1300_ac97,
69
+ DAILINK_COMP_ARRAY(COMP_CPU("au1xpsc_ac97.1")),
70
+ DAILINK_COMP_ARRAY(COMP_CODEC("wm9712-codec.1", "wm9712-hifi")),
71
+ DAILINK_COMP_ARRAY(COMP_PLATFORM("au1xpsc-pcm.1")));
72
+
6573 static struct snd_soc_dai_link db1300_ac97_dai = {
6674 .name = "AC97",
6775 .stream_name = "AC97 HiFi",
68
- .codec_dai_name = "wm9712-hifi",
69
- .cpu_dai_name = "au1xpsc_ac97.1",
70
- .platform_name = "au1xpsc-pcm.1",
71
- .codec_name = "wm9712-codec.1",
76
+ SND_SOC_DAILINK_REG(db1300_ac97),
7277 };
7378
7479 static struct snd_soc_card db1300_ac97_machine = {
....@@ -89,8 +94,8 @@
8994
9095 static int db1200_i2s_startup(struct snd_pcm_substream *substream)
9196 {
92
- struct snd_soc_pcm_runtime *rtd = substream->private_data;
93
- struct snd_soc_dai *codec_dai = rtd->codec_dai;
97
+ struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream);
98
+ struct snd_soc_dai *codec_dai = asoc_rtd_to_codec(rtd, 0);
9499
95100 /* WM8731 has its own 12MHz crystal */
96101 snd_soc_dai_set_sysclk(codec_dai, WM8731_SYSCLK_XTAL,
....@@ -103,16 +108,18 @@
103108 .startup = db1200_i2s_startup,
104109 };
105110
111
+SND_SOC_DAILINK_DEFS(db1200_i2s,
112
+ DAILINK_COMP_ARRAY(COMP_CPU("au1xpsc_i2s.1")),
113
+ DAILINK_COMP_ARRAY(COMP_CODEC("wm8731.0-001b", "wm8731-hifi")),
114
+ DAILINK_COMP_ARRAY(COMP_PLATFORM("au1xpsc-pcm.1")));
115
+
106116 static struct snd_soc_dai_link db1200_i2s_dai = {
107117 .name = "WM8731",
108118 .stream_name = "WM8731 PCM",
109
- .codec_dai_name = "wm8731-hifi",
110
- .cpu_dai_name = "au1xpsc_i2s.1",
111
- .platform_name = "au1xpsc-pcm.1",
112
- .codec_name = "wm8731.0-001b",
113119 .dai_fmt = SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_NB_NF |
114120 SND_SOC_DAIFMT_CBM_CFM,
115121 .ops = &db1200_i2s_wm8731_ops,
122
+ SND_SOC_DAILINK_REG(db1200_i2s),
116123 };
117124
118125 static struct snd_soc_card db1200_i2s_machine = {
....@@ -122,16 +129,18 @@
122129 .num_links = 1,
123130 };
124131
132
+SND_SOC_DAILINK_DEFS(db1300_i2s,
133
+ DAILINK_COMP_ARRAY(COMP_CPU("au1xpsc_i2s.2")),
134
+ DAILINK_COMP_ARRAY(COMP_CODEC("wm8731.0-001b", "wm8731-hifi")),
135
+ DAILINK_COMP_ARRAY(COMP_PLATFORM("au1xpsc-pcm.2")));
136
+
125137 static struct snd_soc_dai_link db1300_i2s_dai = {
126138 .name = "WM8731",
127139 .stream_name = "WM8731 PCM",
128
- .codec_dai_name = "wm8731-hifi",
129
- .cpu_dai_name = "au1xpsc_i2s.2",
130
- .platform_name = "au1xpsc-pcm.2",
131
- .codec_name = "wm8731.0-001b",
132140 .dai_fmt = SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_NB_NF |
133141 SND_SOC_DAIFMT_CBM_CFM,
134142 .ops = &db1200_i2s_wm8731_ops,
143
+ SND_SOC_DAILINK_REG(db1300_i2s),
135144 };
136145
137146 static struct snd_soc_card db1300_i2s_machine = {
....@@ -141,16 +150,18 @@
141150 .num_links = 1,
142151 };
143152
153
+SND_SOC_DAILINK_DEFS(db1550_i2s,
154
+ DAILINK_COMP_ARRAY(COMP_CPU("au1xpsc_i2s.3")),
155
+ DAILINK_COMP_ARRAY(COMP_CODEC("wm8731.0-001b", "wm8731-hifi")),
156
+ DAILINK_COMP_ARRAY(COMP_PLATFORM("au1xpsc-pcm.3")));
157
+
144158 static struct snd_soc_dai_link db1550_i2s_dai = {
145159 .name = "WM8731",
146160 .stream_name = "WM8731 PCM",
147
- .codec_dai_name = "wm8731-hifi",
148
- .cpu_dai_name = "au1xpsc_i2s.3",
149
- .platform_name = "au1xpsc-pcm.3",
150
- .codec_name = "wm8731.0-001b",
151161 .dai_fmt = SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_NB_NF |
152162 SND_SOC_DAIFMT_CBM_CFM,
153163 .ops = &db1200_i2s_wm8731_ops,
164
+ SND_SOC_DAILINK_REG(db1550_i2s),
154165 };
155166
156167 static struct snd_soc_card db1550_i2s_machine = {