hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/sound/soc/samsung/tobermory.c
....@@ -1,13 +1,8 @@
1
-/*
2
- * Tobermory audio support
3
- *
4
- * Copyright 2011 Wolfson Microelectronics
5
- *
6
- * This program is free software; you can redistribute it and/or modify it
7
- * under the terms of the GNU General Public License as published by the
8
- * Free Software Foundation; either version 2 of the License, or (at your
9
- * option) any later version.
10
- */
1
+// SPDX-License-Identifier: GPL-2.0+
2
+//
3
+// Tobermory audio support
4
+//
5
+// Copyright 2011 Wolfson Microelectronics
116
127 #include <sound/soc.h>
138 #include <sound/soc-dapm.h>
....@@ -27,8 +22,8 @@
2722 struct snd_soc_dai *codec_dai;
2823 int ret;
2924
30
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
31
- codec_dai = rtd->codec_dai;
25
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
26
+ codec_dai = asoc_rtd_to_codec(rtd, 0);
3227
3328 if (dapm->dev != codec_dai->dev)
3429 return 0;
....@@ -70,8 +65,8 @@
7065 struct snd_soc_dai *codec_dai;
7166 int ret;
7267
73
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
74
- codec_dai = rtd->codec_dai;
68
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
69
+ codec_dai = asoc_rtd_to_codec(rtd, 0);
7570
7671 if (dapm->dev != codec_dai->dev)
7772 return 0;
....@@ -114,17 +109,19 @@
114109 .hw_params = tobermory_hw_params,
115110 };
116111
112
+SND_SOC_DAILINK_DEFS(cpu,
113
+ DAILINK_COMP_ARRAY(COMP_CPU("samsung-i2s.0")),
114
+ DAILINK_COMP_ARRAY(COMP_CODEC("wm8962.1-001a", "wm8962")),
115
+ DAILINK_COMP_ARRAY(COMP_PLATFORM("samsung-i2s.0")));
116
+
117117 static struct snd_soc_dai_link tobermory_dai[] = {
118118 {
119119 .name = "CPU",
120120 .stream_name = "CPU",
121
- .cpu_dai_name = "samsung-i2s.0",
122
- .codec_dai_name = "wm8962",
123
- .platform_name = "samsung-i2s.0",
124
- .codec_name = "wm8962.1-001a",
125121 .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF
126122 | SND_SOC_DAIFMT_CBM_CFM,
127123 .ops = &tobermory_ops,
124
+ SND_SOC_DAILINK_REG(cpu),
128125 },
129126 };
130127
....@@ -183,9 +180,9 @@
183180 struct snd_soc_dai *codec_dai;
184181 int ret;
185182
186
- rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
187
- component = rtd->codec_dai->component;
188
- codec_dai = rtd->codec_dai;
183
+ rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
184
+ component = asoc_rtd_to_codec(rtd, 0)->component;
185
+ codec_dai = asoc_rtd_to_codec(rtd, 0);
189186
190187 ret = snd_soc_dai_set_sysclk(codec_dai, WM8962_SYSCLK_MCLK,
191188 32768, SND_SOC_CLOCK_IN);
....@@ -233,8 +230,7 @@
233230
234231 ret = devm_snd_soc_register_card(&pdev->dev, card);
235232 if (ret)
236
- dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
237
- ret);
233
+ dev_err_probe(&pdev->dev, ret, "snd_soc_register_card() failed\n");
238234
239235 return ret;
240236 }