Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp103839rwr; Wed, 19 Apr 2023 04:10:08 -0700 (PDT) X-Google-Smtp-Source: AKy350bgizTDt9BkCl1NrB7nACbRLZzm5vOpEFF1g9fi9M3yEeWEEBCu7PxIPU78Zzhwbh82ZCEE X-Received: by 2002:a17:903:1112:b0:1a2:70ed:6cd9 with SMTP id n18-20020a170903111200b001a270ed6cd9mr5906047plh.22.1681902608167; Wed, 19 Apr 2023 04:10:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681902608; cv=none; d=google.com; s=arc-20160816; b=eZ4HwbCX2qtRodV7dEVbta2MreKzCX0iiici4Q8C0kODDcuTp8DYtLEvvg8+yU28pY waxAMcbg/2gltjjZjzbRk9e14jAaVuNTI/n8BeneyuMsf72u7+3fVfdA/Ex155rNLpqg 9A/U/XAd1c1fCnunoGa/qcHs31SCQolZdkI2Ccp0vlQpmNUpBPtxHTkVR1IpRnfQFt3p PWCKxmYTqmS+PChnO9Kx8XxpvQxI/zBlpvfe92N/InKsCfYeeqTbYDk4dbW9fOGcDQHm jUBw/tqZHwI5YPycBTQtWlG96xta0rnYRoGIxrN76MJTulmBqP9DP7AJZiOT+EdbNkWW NZew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from; bh=hX22bveoZ+qeJZ6k0RkrpGVRgVxIca2IxAl2SOSuxNQ=; b=xigGtIP+kq3/ELWJO2CkGAgnc2FSjMcS/SsMyCaf0aFTl9CA44S/Dom3oig1A5kmNd Cbcjq/AkVixPJRzl8hHfmNMdKs3NN3lcMhFXKvL4qGQgo1tGZTYL+iF4NTwvlbI2RBmX ogbMrSOwRZceum1T+peZCqvXMyIrO26HlPqBGQyqgUeJ8tVdmenQXqbNbB4gP8uC+7Yx MbpfogfL7nPSVzk2+RnBTd7Syo7SR+WvJnTTU3C119fLB0tupDLOsHl7zJz91RNVYdn4 5EseyIcH7/fhI/WYHENQNpFm7M4gqgZdrRMJy6JikdQqMyX1aFdFMYrJEgO3Y07MEtSN c3Ng== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d16-20020a170903231000b001a6a50d6526si13901684plh.579.2023.04.19.04.09.49; Wed, 19 Apr 2023 04:10:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232482AbjDSLI3 (ORCPT + 99 others); Wed, 19 Apr 2023 07:08:29 -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 X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 *pdev) for (i = 0; i < num_dai; i++) { struct snd_soc_dai_link_component *dlc; - /* for CPU/Codec x 2 */ - dlc = devm_kcalloc(&pdev->dev, 4, sizeof(*dlc), GFP_KERNEL); + /* for CPU/Codec/Platform x 2 */ + dlc = devm_kcalloc(&pdev->dev, 6, sizeof(*dlc), GFP_KERNEL); if (!dlc) return -ENOMEM; @@ -240,9 +240,11 @@ static int imx_audmix_probe(struct platform_device *pdev) priv->dai[i].cpus = &dlc[0]; priv->dai[i].codecs = &dlc[1]; + priv->dai[i].platforms = &dlc[2]; priv->dai[i].num_cpus = 1; priv->dai[i].num_codecs = 1; + priv->dai[i].num_platforms = 1; priv->dai[i].name = dai_name; priv->dai[i].stream_name = "HiFi-AUDMIX-FE"; @@ -250,6 +252,7 @@ static int imx_audmix_probe(struct platform_device *pdev) priv->dai[i].codecs->name = "snd-soc-dummy"; priv->dai[i].cpus->of_node = args.np; priv->dai[i].cpus->dai_name = dev_name(&cpu_pdev->dev); + priv->dai[i].platforms->of_node = args.np; priv->dai[i].dynamic = 1; priv->dai[i].dpcm_playback = 1; priv->dai[i].dpcm_capture = (i == 0 ? 1 : 0); @@ -264,17 +267,20 @@ static int imx_audmix_probe(struct platform_device *pdev) be_cp = devm_kasprintf(&pdev->dev, GFP_KERNEL, "AUDMIX-Capture-%d", i); - priv->dai[num_dai + i].cpus = &dlc[2]; - priv->dai[num_dai + i].codecs = &dlc[3]; + priv->dai[num_dai + i].cpus = &dlc[3]; + priv->dai[num_dai + i].codecs = &dlc[4]; + priv->dai[num_dai + i].platforms = &dlc[5]; priv->dai[num_dai + i].num_cpus = 1; priv->dai[num_dai + i].num_codecs = 1; + priv->dai[num_dai + i].num_platforms = 1; priv->dai[num_dai + i].name = be_name; priv->dai[num_dai + i].codecs->dai_name = "snd-soc-dummy-dai"; priv->dai[num_dai + i].codecs->name = "snd-soc-dummy"; priv->dai[num_dai + i].cpus->of_node = audmix_np; priv->dai[num_dai + i].cpus->dai_name = be_name; + priv->dai[num_dai + i].platforms->name = "snd-soc-dummy"; priv->dai[num_dai + i].no_pcm = 1; priv->dai[num_dai + i].dpcm_playback = 1; priv->dai[num_dai + i].dpcm_capture = 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) } data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); - comp = devm_kzalloc(&pdev->dev, 2 * sizeof(*comp), GFP_KERNEL); + comp = devm_kzalloc(&pdev->dev, 3 * sizeof(*comp), GFP_KERNEL); if (!data || !comp) { ret = -ENOMEM; goto end; @@ -34,15 +34,18 @@ static int imx_spdif_audio_probe(struct platform_device *pdev) data->dai.cpus = &comp[0]; data->dai.codecs = &comp[1]; + data->dai.platforms = &comp[2]; data->dai.num_cpus = 1; data->dai.num_codecs = 1; + data->dai.num_platforms = 1; data->dai.name = "S/PDIF PCM"; data->dai.stream_name = "S/PDIF PCM"; data->dai.codecs->dai_name = "snd-soc-dummy-dai"; data->dai.codecs->name = "snd-soc-dummy"; data->dai.cpus->of_node = spdif_np; + data->dai.platforms->of_node = spdif_np; data->dai.playback_only = true; data->dai.capture_only = true; -- 2.34.1