forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-01-05 071106ecf68c401173c58808b1cf5f68cc50d390
kernel/sound/soc/fsl/imx-spdif.c
....@@ -1,13 +1,6 @@
1
-/*
2
- * Copyright (C) 2013 Freescale Semiconductor, Inc.
3
- *
4
- * The code contained herein is licensed under the GNU General Public
5
- * License. You may obtain a copy of the GNU General Public License
6
- * Version 2 or later at the following locations:
7
- *
8
- * http://www.opensource.org/licenses/gpl-license.html
9
- * http://www.gnu.org/copyleft/gpl.html
10
- */
1
+// SPDX-License-Identifier: GPL-2.0+
2
+//
3
+// Copyright (C) 2013 Freescale Semiconductor, Inc.
114
125 #include <linux/module.h>
136 #include <linux/of_platform.h>
....@@ -22,6 +15,7 @@
2215 {
2316 struct device_node *spdif_np, *np = pdev->dev.of_node;
2417 struct imx_spdif_data *data;
18
+ struct snd_soc_dai_link_component *comp;
2519 int ret = 0;
2620
2721 spdif_np = of_parse_phandle(np, "spdif-controller", 0);
....@@ -32,17 +26,26 @@
3226 }
3327
3428 data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
35
- if (!data) {
29
+ comp = devm_kzalloc(&pdev->dev, 3 * sizeof(*comp), GFP_KERNEL);
30
+ if (!data || !comp) {
3631 ret = -ENOMEM;
3732 goto end;
3833 }
3934
35
+ data->dai.cpus = &comp[0];
36
+ data->dai.codecs = &comp[1];
37
+ data->dai.platforms = &comp[2];
38
+
39
+ data->dai.num_cpus = 1;
40
+ data->dai.num_codecs = 1;
41
+ data->dai.num_platforms = 1;
42
+
4043 data->dai.name = "S/PDIF PCM";
4144 data->dai.stream_name = "S/PDIF PCM";
42
- data->dai.codec_dai_name = "snd-soc-dummy-dai";
43
- data->dai.codec_name = "snd-soc-dummy";
44
- data->dai.cpu_of_node = spdif_np;
45
- data->dai.platform_of_node = spdif_np;
45
+ data->dai.codecs->dai_name = "snd-soc-dummy-dai";
46
+ data->dai.codecs->name = "snd-soc-dummy";
47
+ data->dai.cpus->of_node = spdif_np;
48
+ data->dai.platforms->of_node = spdif_np;
4649 data->dai.playback_only = true;
4750 data->dai.capture_only = true;
4851
....@@ -67,10 +70,8 @@
6770 goto end;
6871
6972 ret = devm_snd_soc_register_card(&pdev->dev, &data->card);
70
- if (ret) {
73
+ if (ret && ret != -EPROBE_DEFER)
7174 dev_err(&pdev->dev, "snd_soc_register_card failed: %d\n", ret);
72
- goto end;
73
- }
7475
7576 end:
7677 of_node_put(spdif_np);