diff options
author | Shengjiu Wang <shengjiu.wang@nxp.com> | 2019-09-20 09:50:45 +0800 |
---|---|---|
committer | Dong Aisheng <aisheng.dong@nxp.com> | 2019-11-25 15:50:56 +0800 |
commit | c65041ddba3470615df3f32241d94c928673b46a (patch) | |
tree | 7665ce675477c189ec89aa7f51aaafbcfc90833c /sound/soc/fsl/imx-wm8524.c | |
parent | 134471ab8a51ca18f8a1d3b423105b15e3494492 (diff) |
ASoC: imx-wm8524: Fix compile error
API change due to:
adb76b5b9c47 ("ASoC: soc-core: remove legacy style dai_link")
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Diffstat (limited to 'sound/soc/fsl/imx-wm8524.c')
-rw-r--r-- | sound/soc/fsl/imx-wm8524.c | 52 |
1 files changed, 39 insertions, 13 deletions
diff --git a/sound/soc/fsl/imx-wm8524.c b/sound/soc/fsl/imx-wm8524.c index a35b90e94f17..f788a580b54b 100644 --- a/sound/soc/fsl/imx-wm8524.c +++ b/sound/soc/fsl/imx-wm8524.c @@ -126,6 +126,7 @@ static int imx_wm8524_probe(struct platform_device *pdev) struct platform_device *cpu_pdev; struct imx_priv *priv; struct platform_device *codec_pdev = NULL; + struct snd_soc_dai_link_component *dlc; int ret; u32 width; @@ -135,6 +136,10 @@ static int imx_wm8524_probe(struct platform_device *pdev) priv->pdev = pdev; + dlc = devm_kzalloc(&pdev->dev, 9 * sizeof(*dlc), GFP_KERNEL); + if (!dlc) + return -ENOMEM; + cpu_np = of_parse_phandle(pdev->dev.of_node, "audio-cpu", 0); if (!cpu_np) { dev_err(&pdev->dev, "cpu dai phandle missing or invalid\n"); @@ -165,7 +170,7 @@ static int imx_wm8524_probe(struct platform_device *pdev) codec_pdev = of_find_device_by_node(codec_np); if (!codec_pdev || !codec_pdev->dev.driver) { dev_err(&pdev->dev, "failed to find codec platform device\n"); - ret = -EINVAL; + ret = -EPROBE_DEFER; goto fail; } @@ -176,13 +181,20 @@ static int imx_wm8524_probe(struct platform_device *pdev) goto fail; } + priv->dai[0].cpus = &dlc[0]; + priv->dai[0].num_cpus = 1; + priv->dai[0].platforms = &dlc[1]; + priv->dai[0].num_platforms = 1; + priv->dai[0].codecs = &dlc[2]; + priv->dai[0].num_codecs = 1; + priv->dai[0].name = "HiFi"; priv->dai[0].stream_name = "HiFi"; - priv->dai[0].codec_dai_name = "wm8524-hifi", + priv->dai[0].codecs->dai_name = "wm8524-hifi", priv->dai[0].ops = &imx_hifi_ops, - priv->dai[0].codec_of_node = codec_np; - priv->dai[0].cpu_dai_name = dev_name(&cpu_pdev->dev); - priv->dai[0].platform_of_node = cpu_np; + priv->dai[0].codecs->of_node = codec_np; + priv->dai[0].cpus->dai_name = dev_name(&cpu_pdev->dev); + priv->dai[0].platforms->of_node = cpu_np; priv->dai[0].playback_only = 1; priv->card.late_probe = imx_wm8524_late_probe; @@ -197,22 +209,36 @@ static int imx_wm8524_probe(struct platform_device *pdev) /*if there is no asrc controller, we only enable one device*/ if (asrc_pdev) { + priv->dai[1].cpus = &dlc[3]; + priv->dai[1].num_cpus = 1; + priv->dai[1].platforms = &dlc[4]; + priv->dai[1].num_platforms = 1; + priv->dai[1].codecs = &dlc[5]; + priv->dai[1].num_codecs = 1; + + priv->dai[2].cpus = &dlc[6]; + priv->dai[2].num_cpus = 1; + priv->dai[2].platforms = &dlc[7]; + priv->dai[2].num_platforms = 1; + priv->dai[2].codecs = &dlc[8]; + priv->dai[2].num_codecs = 1; + priv->dai[1].name = "HiFi-ASRC-FE"; priv->dai[1].stream_name = "HiFi-ASRC-FE"; - priv->dai[1].codec_dai_name = "snd-soc-dummy-dai"; - priv->dai[1].codec_name = "snd-soc-dummy"; - priv->dai[1].cpu_of_node = asrc_np; - priv->dai[1].platform_of_node = asrc_np; + priv->dai[1].codecs->dai_name = "snd-soc-dummy-dai"; + priv->dai[1].codecs->name = "snd-soc-dummy"; + priv->dai[1].cpus->of_node = asrc_np; + priv->dai[1].platforms->of_node = asrc_np; priv->dai[1].dynamic = 1; priv->dai[1].dpcm_playback = 1; priv->dai[1].dpcm_capture = 0; priv->dai[2].name = "HiFi-ASRC-BE"; priv->dai[2].stream_name = "HiFi-ASRC-BE"; - priv->dai[2].codec_dai_name = "wm8524-hifi"; - priv->dai[2].codec_of_node = codec_np; - priv->dai[2].cpu_of_node = cpu_np; - priv->dai[2].platform_name = "snd-soc-dummy"; + priv->dai[2].codecs->dai_name = "wm8524-hifi"; + priv->dai[2].codecs->of_node = codec_np; + priv->dai[2].cpus->of_node = cpu_np; + priv->dai[2].platforms->name = "snd-soc-dummy"; priv->dai[2].no_pcm = 1; priv->dai[2].dpcm_playback = 1; priv->dai[2].dpcm_capture = 0; |