summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sound/soc/fsl/imx-cs42888.c49
1 files changed, 31 insertions, 18 deletions
diff --git a/sound/soc/fsl/imx-cs42888.c b/sound/soc/fsl/imx-cs42888.c
index 6adf247531ce..2887fa06c15a 100644
--- a/sound/soc/fsl/imx-cs42888.c
+++ b/sound/soc/fsl/imx-cs42888.c
@@ -265,36 +265,49 @@ static int be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,
return 0;
}
+SND_SOC_DAILINK_DEFS(hifi,
+ DAILINK_COMP_ARRAY(COMP_EMPTY()),
+ DAILINK_COMP_ARRAY(COMP_CODEC(NULL, "cs42888")),
+ DAILINK_COMP_ARRAY(COMP_EMPTY()));
+
+SND_SOC_DAILINK_DEFS(hifi_fe,
+ DAILINK_COMP_ARRAY(COMP_EMPTY()),
+ DAILINK_COMP_ARRAY(COMP_DUMMY()),
+ DAILINK_COMP_ARRAY(COMP_EMPTY()));
+
+SND_SOC_DAILINK_DEFS(hifi_be,
+ DAILINK_COMP_ARRAY(COMP_EMPTY()),
+ DAILINK_COMP_ARRAY(COMP_CODEC(NULL, "cs42888")),
+ DAILINK_COMP_ARRAY(COMP_DUMMY()));
+
static struct snd_soc_dai_link imx_cs42888_dai[] = {
{
.name = "HiFi",
.stream_name = "HiFi",
- .codec_dai_name = "cs42888",
.ops = &imx_cs42888_surround_ops,
.ignore_pmdown_time = 1,
+ SND_SOC_DAILINK_REG(hifi),
},
{
.name = "HiFi-ASRC-FE",
.stream_name = "HiFi-ASRC-FE",
- .codec_name = "snd-soc-dummy",
- .codec_dai_name = "snd-soc-dummy-dai",
.dynamic = 1,
.ignore_pmdown_time = 1,
.dpcm_playback = 1,
.dpcm_capture = 1,
.dpcm_merged_chan = 1,
+ SND_SOC_DAILINK_REG(hifi_fe),
},
{
.name = "HiFi-ASRC-BE",
.stream_name = "HiFi-ASRC-BE",
- .codec_dai_name = "cs42888",
- .platform_name = "snd-soc-dummy",
.no_pcm = 1,
.ignore_pmdown_time = 1,
.dpcm_playback = 1,
.dpcm_capture = 1,
.ops = &imx_cs42888_surround_ops_be,
.be_hw_params_fixup = be_hw_params_fixup,
+ SND_SOC_DAILINK_REG(hifi_be),
},
};
@@ -386,8 +399,8 @@ static int imx_cs42888_probe(struct platform_device *pdev)
}
if (priv->is_codec_rpmsg) {
- imx_cs42888_dai[0].codec_name = "rpmsg-audio-codec-cs42888";
- imx_cs42888_dai[0].codec_dai_name = "cs42888";
+ imx_cs42888_dai[0].codecs->name = "rpmsg-audio-codec-cs42888";
+ imx_cs42888_dai[0].codecs->dai_name = "cs42888";
dlc.name = "rpmsg-audio-codec-cs42888";
dlc.dai_name = "cs42888";
@@ -395,29 +408,29 @@ static int imx_cs42888_probe(struct platform_device *pdev)
if (!codec_dai)
return -ENODEV;
} else {
- imx_cs42888_dai[0].codec_of_node = codec_np;
+ imx_cs42888_dai[0].codecs->of_node = codec_np;
}
/*if there is no asrc controller, we only enable one device*/
if (!asrc_pdev) {
- imx_cs42888_dai[0].cpu_dai_name = dev_name(&esai_pdev->dev);
- imx_cs42888_dai[0].platform_of_node = esai_np;
+ imx_cs42888_dai[0].cpus->dai_name = dev_name(&esai_pdev->dev);
+ imx_cs42888_dai[0].platforms->of_node = esai_np;
snd_soc_card_imx_cs42888.num_links = 1;
snd_soc_card_imx_cs42888.num_dapm_routes =
ARRAY_SIZE(audio_map) - 2;
} else {
- imx_cs42888_dai[0].cpu_dai_name = dev_name(&esai_pdev->dev);
- imx_cs42888_dai[0].platform_of_node = esai_np;
- imx_cs42888_dai[1].cpu_of_node = asrc_np;
- imx_cs42888_dai[1].platform_of_node = asrc_np;
- imx_cs42888_dai[2].cpu_dai_name = dev_name(&esai_pdev->dev);
+ imx_cs42888_dai[0].cpus->dai_name = dev_name(&esai_pdev->dev);
+ imx_cs42888_dai[0].platforms->of_node = esai_np;
+ imx_cs42888_dai[1].cpus->of_node = asrc_np;
+ imx_cs42888_dai[1].platforms->of_node = asrc_np;
+ imx_cs42888_dai[2].cpus->dai_name = dev_name(&esai_pdev->dev);
snd_soc_card_imx_cs42888.num_links = 3;
if (priv->is_codec_rpmsg) {
- imx_cs42888_dai[2].codec_name = "rpmsg-audio-codec-cs42888";
- imx_cs42888_dai[2].codec_dai_name = "cs42888";
+ imx_cs42888_dai[2].codecs->name = "rpmsg-audio-codec-cs42888";
+ imx_cs42888_dai[2].codecs->dai_name = "cs42888";
} else {
- imx_cs42888_dai[2].codec_of_node = codec_np;
+ imx_cs42888_dai[2].codecs->of_node = codec_np;
}
ret = of_property_read_u32(asrc_np, "fsl,asrc-rate",