diff options
Diffstat (limited to 'sound/soc/fsl/imx-cs42888.c')
-rw-r--r-- | sound/soc/fsl/imx-cs42888.c | 49 |
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", |