From nobody Wed Dec 17 13:52:43 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E7108C77B75 for ; Wed, 19 Apr 2023 11:08:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232807AbjDSLIb (ORCPT ); Wed, 19 Apr 2023 07:08:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36206 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232739AbjDSLIE (ORCPT ); Wed, 19 Apr 2023 07:08:04 -0400 X-Greylist: delayed 552 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Wed, 19 Apr 2023 04:08:02 PDT Received: from inva020.nxp.com (inva020.nxp.com [92.121.34.13]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BD8887A88 for ; Wed, 19 Apr 2023 04:08:02 -0700 (PDT) Received: from inva020.nxp.com (localhost [127.0.0.1]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 7ACAD1A11F6; Wed, 19 Apr 2023 12:58:49 +0200 (CEST) Received: from aprdc01srsp001v.ap-rdc01.nxp.com (aprdc01srsp001v.ap-rdc01.nxp.com [165.114.16.16]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 168121A0F1F; Wed, 19 Apr 2023 12:58:49 +0200 (CEST) Received: from localhost.localdomain (shlinux2.ap.freescale.net [10.192.224.44]) by aprdc01srsp001v.ap-rdc01.nxp.com (Postfix) with ESMTP id 1F73D1800254; Wed, 19 Apr 2023 18:58:47 +0800 (+08) From: Shengjiu Wang To: kuninori.morimoto.gx@renesas.com, shengjiu.wang@gmail.com, Xiubo.Lee@gmail.com, festevam@gmail.com, nicoleotsuka@gmail.com, lgirdwood@gmail.com, broonie@kernel.org, perex@perex.cz, tiwai@suse.com, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, linux-imx@nxp.com, alsa-devel@alsa-project.org Cc: linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH] Revert "ASoC: fsl: remove unnecessary dai_link->platform" Date: Wed, 19 Apr 2023 18:29:18 +0800 Message-Id: <1681900158-17428-1-git-send-email-shengjiu.wang@nxp.com> X-Mailer: git-send-email 2.7.4 X-Virus-Scanned: ClamAV using ClamSMTP Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" This reverts commit 33683cbf49b5412061cb1e4c876063fdef86def4. dai_link->platform is needed. The platform component is "snd_dmaengine_pcm", which is registered from cpu driver, If dai_link->platform is not assigned, then platform component will not be probed, then there will be issue: aplay: main:831: audio open error: Invalid argument Signed-off-by: Shengjiu Wang --- sound/soc/fsl/imx-audmix.c | 14 ++++++++++---- sound/soc/fsl/imx-spdif.c | 5 ++++- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/sound/soc/fsl/imx-audmix.c b/sound/soc/fsl/imx-audmix.c index 2c57fe9d2d08..1292a845c424 100644 --- a/sound/soc/fsl/imx-audmix.c +++ b/sound/soc/fsl/imx-audmix.c @@ -207,8 +207,8 @@ static int imx_audmix_probe(struct platform_device *pde= v) for (i =3D 0; i < num_dai; i++) { struct snd_soc_dai_link_component *dlc; =20 - /* for CPU/Codec x 2 */ - dlc =3D devm_kcalloc(&pdev->dev, 4, sizeof(*dlc), GFP_KERNEL); + /* for CPU/Codec/Platform x 2 */ + dlc =3D devm_kcalloc(&pdev->dev, 6, sizeof(*dlc), GFP_KERNEL); if (!dlc) return -ENOMEM; =20 @@ -240,9 +240,11 @@ static int imx_audmix_probe(struct platform_device *pd= ev) =20 priv->dai[i].cpus =3D &dlc[0]; priv->dai[i].codecs =3D &dlc[1]; + priv->dai[i].platforms =3D &dlc[2]; =20 priv->dai[i].num_cpus =3D 1; priv->dai[i].num_codecs =3D 1; + priv->dai[i].num_platforms =3D 1; =20 priv->dai[i].name =3D dai_name; priv->dai[i].stream_name =3D "HiFi-AUDMIX-FE"; @@ -250,6 +252,7 @@ static int imx_audmix_probe(struct platform_device *pde= v) priv->dai[i].codecs->name =3D "snd-soc-dummy"; priv->dai[i].cpus->of_node =3D args.np; priv->dai[i].cpus->dai_name =3D dev_name(&cpu_pdev->dev); + priv->dai[i].platforms->of_node =3D args.np; priv->dai[i].dynamic =3D 1; priv->dai[i].dpcm_playback =3D 1; priv->dai[i].dpcm_capture =3D (i =3D=3D 0 ? 1 : 0); @@ -264,17 +267,20 @@ static int imx_audmix_probe(struct platform_device *p= dev) be_cp =3D devm_kasprintf(&pdev->dev, GFP_KERNEL, "AUDMIX-Capture-%d", i); =20 - priv->dai[num_dai + i].cpus =3D &dlc[2]; - priv->dai[num_dai + i].codecs =3D &dlc[3]; + priv->dai[num_dai + i].cpus =3D &dlc[3]; + priv->dai[num_dai + i].codecs =3D &dlc[4]; + priv->dai[num_dai + i].platforms =3D &dlc[5]; =20 priv->dai[num_dai + i].num_cpus =3D 1; priv->dai[num_dai + i].num_codecs =3D 1; + priv->dai[num_dai + i].num_platforms =3D 1; =20 priv->dai[num_dai + i].name =3D be_name; priv->dai[num_dai + i].codecs->dai_name =3D "snd-soc-dummy-dai"; priv->dai[num_dai + i].codecs->name =3D "snd-soc-dummy"; priv->dai[num_dai + i].cpus->of_node =3D audmix_np; priv->dai[num_dai + i].cpus->dai_name =3D be_name; + priv->dai[num_dai + i].platforms->name =3D "snd-soc-dummy"; priv->dai[num_dai + i].no_pcm =3D 1; priv->dai[num_dai + i].dpcm_playback =3D 1; priv->dai[num_dai + i].dpcm_capture =3D 1; diff --git a/sound/soc/fsl/imx-spdif.c b/sound/soc/fsl/imx-spdif.c index 114b49660193..4446fba755b9 100644 --- a/sound/soc/fsl/imx-spdif.c +++ b/sound/soc/fsl/imx-spdif.c @@ -26,7 +26,7 @@ static int imx_spdif_audio_probe(struct platform_device *= pdev) } =20 data =3D devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); - comp =3D devm_kzalloc(&pdev->dev, 2 * sizeof(*comp), GFP_KERNEL); + comp =3D devm_kzalloc(&pdev->dev, 3 * sizeof(*comp), GFP_KERNEL); if (!data || !comp) { ret =3D -ENOMEM; goto end; @@ -34,15 +34,18 @@ static int imx_spdif_audio_probe(struct platform_device= *pdev) =20 data->dai.cpus =3D &comp[0]; data->dai.codecs =3D &comp[1]; + data->dai.platforms =3D &comp[2]; =20 data->dai.num_cpus =3D 1; data->dai.num_codecs =3D 1; + data->dai.num_platforms =3D 1; =20 data->dai.name =3D "S/PDIF PCM"; data->dai.stream_name =3D "S/PDIF PCM"; data->dai.codecs->dai_name =3D "snd-soc-dummy-dai"; data->dai.codecs->name =3D "snd-soc-dummy"; data->dai.cpus->of_node =3D spdif_np; + data->dai.platforms->of_node =3D spdif_np; data->dai.playback_only =3D true; data->dai.capture_only =3D true; =20 --=20 2.34.1