summaryrefslogtreecommitdiff
path: root/sound/soc/fsl/imx-wm8524.c
diff options
context:
space:
mode:
authorShengjiu Wang <shengjiu.wang@nxp.com>2019-09-20 09:50:45 +0800
committerDong Aisheng <aisheng.dong@nxp.com>2019-11-25 15:50:56 +0800
commitc65041ddba3470615df3f32241d94c928673b46a (patch)
tree7665ce675477c189ec89aa7f51aaafbcfc90833c /sound/soc/fsl/imx-wm8524.c
parent134471ab8a51ca18f8a1d3b423105b15e3494492 (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.c52
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;