forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-01-05 071106ecf68c401173c58808b1cf5f68cc50d390
kernel/sound/soc/kirkwood/armada-370-db.c
....@@ -1,12 +1,8 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*
23 * Copyright (C) 2014 Marvell
34 *
45 * Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
5
- *
6
- * This program is free software; you can redistribute it and/or
7
- * modify it under the terms of the GNU General Public License as
8
- * published by the Free Software Foundation; either version 2 of the
9
- * License, or (at your option) any later version.
106 */
117
128 #include <linux/module.h>
....@@ -22,8 +18,8 @@
2218 static int a370db_hw_params(struct snd_pcm_substream *substream,
2319 struct snd_pcm_hw_params *params)
2420 {
25
- struct snd_soc_pcm_runtime *rtd = substream->private_data;
26
- struct snd_soc_dai *codec_dai = rtd->codec_dai;
21
+ struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream);
22
+ struct snd_soc_dai *codec_dai = asoc_rtd_to_codec(rtd, 0);
2723 unsigned int freq;
2824
2925 switch (params_rate(params)) {
....@@ -58,28 +54,40 @@
5854 { "AIN1L", NULL, "In Jack" },
5955 };
6056
57
+SND_SOC_DAILINK_DEFS(analog,
58
+ DAILINK_COMP_ARRAY(COMP_CPU("i2s")),
59
+ DAILINK_COMP_ARRAY(COMP_CODEC(NULL, "cs42l51-hifi")),
60
+ DAILINK_COMP_ARRAY(COMP_EMPTY()));
61
+
62
+SND_SOC_DAILINK_DEFS(spdif_out,
63
+ DAILINK_COMP_ARRAY(COMP_CPU("spdif")),
64
+ DAILINK_COMP_ARRAY(COMP_CODEC(NULL, "dit-hifi")),
65
+ DAILINK_COMP_ARRAY(COMP_EMPTY()));
66
+
67
+SND_SOC_DAILINK_DEFS(spdif_in,
68
+ DAILINK_COMP_ARRAY(COMP_CPU("spdif")),
69
+ DAILINK_COMP_ARRAY(COMP_CODEC(NULL, "dir-hifi")),
70
+ DAILINK_COMP_ARRAY(COMP_EMPTY()));
71
+
6172 static struct snd_soc_dai_link a370db_dai[] = {
6273 {
6374 .name = "CS42L51",
6475 .stream_name = "analog",
65
- .cpu_dai_name = "i2s",
66
- .codec_dai_name = "cs42l51-hifi",
6776 .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS,
6877 .ops = &a370db_ops,
78
+ SND_SOC_DAILINK_REG(analog),
6979 },
7080 {
7181 .name = "S/PDIF out",
7282 .stream_name = "spdif-out",
73
- .cpu_dai_name = "spdif",
74
- .codec_dai_name = "dit-hifi",
7583 .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS,
84
+ SND_SOC_DAILINK_REG(spdif_out),
7685 },
7786 {
7887 .name = "S/PDIF in",
7988 .stream_name = "spdif-in",
80
- .cpu_dai_name = "spdif",
81
- .codec_dai_name = "dir-hifi",
8289 .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS,
90
+ SND_SOC_DAILINK_REG(spdif_in),
8391 },
8492 };
8593
....@@ -100,26 +108,26 @@
100108
101109 card->dev = &pdev->dev;
102110
103
- a370db_dai[0].cpu_of_node =
111
+ a370db_dai[0].cpus->of_node =
104112 of_parse_phandle(pdev->dev.of_node,
105113 "marvell,audio-controller", 0);
106
- a370db_dai[0].platform_of_node = a370db_dai[0].cpu_of_node;
114
+ a370db_dai[0].platforms->of_node = a370db_dai[0].cpus->of_node;
107115
108
- a370db_dai[0].codec_of_node =
116
+ a370db_dai[0].codecs->of_node =
109117 of_parse_phandle(pdev->dev.of_node,
110118 "marvell,audio-codec", 0);
111119
112
- a370db_dai[1].cpu_of_node = a370db_dai[0].cpu_of_node;
113
- a370db_dai[1].platform_of_node = a370db_dai[0].cpu_of_node;
120
+ a370db_dai[1].cpus->of_node = a370db_dai[0].cpus->of_node;
121
+ a370db_dai[1].platforms->of_node = a370db_dai[0].cpus->of_node;
114122
115
- a370db_dai[1].codec_of_node =
123
+ a370db_dai[1].codecs->of_node =
116124 of_parse_phandle(pdev->dev.of_node,
117125 "marvell,audio-codec", 1);
118126
119
- a370db_dai[2].cpu_of_node = a370db_dai[0].cpu_of_node;
120
- a370db_dai[2].platform_of_node = a370db_dai[0].cpu_of_node;
127
+ a370db_dai[2].cpus->of_node = a370db_dai[0].cpus->of_node;
128
+ a370db_dai[2].platforms->of_node = a370db_dai[0].cpus->of_node;
121129
122
- a370db_dai[2].codec_of_node =
130
+ a370db_dai[2].codecs->of_node =
123131 of_parse_phandle(pdev->dev.of_node,
124132 "marvell,audio-codec", 2);
125133