OSDN Git Service

ASoC: samsung: tm2_wm5110: use modern dai_link style
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Thu, 6 Jun 2019 04:09:44 +0000 (13:09 +0900)
committerMark Brown <broonie@kernel.org>
Thu, 6 Jun 2019 20:29:05 +0000 (21:29 +0100)
ASoC is now supporting modern style dai_link
(= snd_soc_dai_link_component) for CPU/Codec/Platform.
This patch switches to use it.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/samsung/tm2_wm5110.c

index 31f4256..c091033 100644 (file)
@@ -427,38 +427,56 @@ static struct snd_soc_dai_driver tm2_ext_dai[] = {
        },
 };
 
+SND_SOC_DAILINK_DEFS(aif1,
+       DAILINK_COMP_ARRAY(COMP_CPU(SAMSUNG_I2S_DAI)),
+       DAILINK_COMP_ARRAY(COMP_CODEC(NULL, "wm5110-aif1")),
+       DAILINK_COMP_ARRAY(COMP_EMPTY()));
+
+SND_SOC_DAILINK_DEFS(voice,
+       DAILINK_COMP_ARRAY(COMP_CPU(SAMSUNG_I2S_DAI)),
+       DAILINK_COMP_ARRAY(COMP_CODEC(NULL, "wm5110-aif2")),
+       DAILINK_COMP_ARRAY(COMP_EMPTY()));
+
+SND_SOC_DAILINK_DEFS(bt,
+       DAILINK_COMP_ARRAY(COMP_CPU(SAMSUNG_I2S_DAI)),
+       DAILINK_COMP_ARRAY(COMP_CODEC(NULL, "wm5110-aif3")),
+       DAILINK_COMP_ARRAY(COMP_EMPTY()));
+
+SND_SOC_DAILINK_DEFS(hdmi,
+       DAILINK_COMP_ARRAY(COMP_EMPTY()),
+       DAILINK_COMP_ARRAY(COMP_EMPTY()),
+       DAILINK_COMP_ARRAY(COMP_EMPTY()));
+
 static struct snd_soc_dai_link tm2_dai_links[] = {
        {
                .name           = "WM5110 AIF1",
                .stream_name    = "HiFi Primary",
-               .cpu_dai_name   = SAMSUNG_I2S_DAI,
-               .codec_dai_name = "wm5110-aif1",
                .ops            = &tm2_aif1_ops,
                .dai_fmt        = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
                                  SND_SOC_DAIFMT_CBM_CFM,
+               SND_SOC_DAILINK_REG(aif1),
        }, {
                .name           = "WM5110 Voice",
                .stream_name    = "Voice call",
-               .cpu_dai_name   = SAMSUNG_I2S_DAI,
-               .codec_dai_name = "wm5110-aif2",
                .ops            = &tm2_aif2_ops,
                .dai_fmt        = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
                                  SND_SOC_DAIFMT_CBM_CFM,
                .ignore_suspend = 1,
+               SND_SOC_DAILINK_REG(voice),
        }, {
                .name           = "WM5110 BT",
                .stream_name    = "Bluetooth",
-               .cpu_dai_name   = SAMSUNG_I2S_DAI,
-               .codec_dai_name = "wm5110-aif3",
                .dai_fmt        = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
                                  SND_SOC_DAIFMT_CBM_CFM,
                .ignore_suspend = 1,
+               SND_SOC_DAILINK_REG(bt),
        }, {
                .name           = "HDMI",
                .stream_name    = "i2s1",
                .ops            = &tm2_hdmi_ops,
                .dai_fmt        = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
                                  SND_SOC_DAIFMT_CBS_CFS,
+               SND_SOC_DAILINK_REG(hdmi),
        }
 };
 
@@ -557,15 +575,15 @@ static int tm2_probe(struct platform_device *pdev)
        for_each_card_prelinks(card, i, dai_link) {
                unsigned int dai_index = 0; /* WM5110 */
 
-               dai_link->cpu_name = NULL;
-               dai_link->platform_name = NULL;
+               dai_link->cpus->name = NULL;
+               dai_link->platforms->name = NULL;
 
                if (num_codecs > 1 && i == card->num_links - 1)
                        dai_index = 1; /* HDMI */
 
-               dai_link->codec_of_node = codec_dai_node[dai_index];
-               dai_link->cpu_of_node = cpu_dai_node[dai_index];
-               dai_link->platform_of_node = cpu_dai_node[dai_index];
+               dai_link->codecs->of_node = codec_dai_node[dai_index];
+               dai_link->cpus->of_node = cpu_dai_node[dai_index];
+               dai_link->platforms->of_node = cpu_dai_node[dai_index];
        }
 
        if (num_codecs > 1) {
@@ -579,7 +597,7 @@ static int tm2_probe(struct platform_device *pdev)
                        goto dai_node_put;
                }
 
-               ret = snd_soc_get_dai_name(&args, &card->dai_link[i].codec_dai_name);
+               ret = snd_soc_get_dai_name(&args, &card->dai_link[i].codecs->dai_name);
                if (ret) {
                        dev_err(dev, "Unable to get codec_dai_name\n");
                        goto dai_node_put;