From patchwork Thu May 23 02:12:38 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 13671221 Received: from JPN01-TYC-obe.outbound.protection.outlook.com (mail-tycjpn01on2073.outbound.protection.outlook.com [40.107.114.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6D51F79D2 for ; Thu, 23 May 2024 02:12:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.114.73 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716430364; cv=fail; b=XGPoAnIhaCxafgcd6YER3JjSfZ2q4IDtqFk+rdYCoCAF0z1mlqQtgONiPHQpC5atPFsXV0X4IdNjRcCcxX3X2BOTWDlGXPmmLx9GR9RLBDJ+vkIhGBKzH23lLI9rYE8MgC5ePHbRmdtC8VBYog7BsZwS32Zt8lTraJp5/lUIdl4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716430364; c=relaxed/simple; bh=V26oq/jEBuHmtmzWmxKXdh/2CooPbdgxGoP/yXr9hJg=; h=Message-ID:To:In-Reply-To:References:From:Subject:Content-Type: Date:MIME-Version; b=EYRydel6kDXnx+PTm0DsocOK/vj69bhxt4TOqGafqY3lGkjyAVU4KPRWNA28DWelNnP6NdB6YusWJbaMtQXmXjteyc2JDCVeT5is300MT0DcMEzKarXDVyui7mM6pDQDgXxHAQLQ9Eyi8hlOAKsEcq6g941XydO7HMVzDVOtLW4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com; spf=pass smtp.mailfrom=renesas.com; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b=g5ldtBhY; arc=fail smtp.client-ip=40.107.114.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=renesas.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=renesas.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=renesas.com header.i=@renesas.com header.b="g5ldtBhY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KrUOxjkQlzWwXY0n1xSnG8Bm2+nh0AExX6GKngnPEAmtkGKJU4F9Mc4Ei4OAGtycqj8tFGcb9s3yBWKhK86DdUiog/bz4cy+xex2wfaZAIGL9gF59Pd2GoicXseEvXXlIUg1Yquh8efLsMB67gFrryjebCACD5bUI6jUE2LbKQkgL6L4u4VPaNlmAKwUYxqFQMJteJof1lt6W5LpWIb5T/4h7d6KHjooz6G/lBRh34+xDql+jD4cCK4w1BpRnX92GtDLMALZ5W1Ccart3KQ1DURJmWcqXi8cJ1WmXJ8zwWvP/Ebyin+gDBiukM9aq9YfKNDUlW8MlTXPJtNBEtTkiw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=CRUm0j8HbcTIps1RR/L4MoVoqYV3uliAQYSR4xdus4I=; b=lFY/W9OtxPShwLcTdqzyQVNKbNBoevcuszZAqLQ7k7qtAks87wX94h4T0YR83FyBV3wTbLbz/sMwN8BDf6v92LC9/o0z9VPVyoCLWdtquqsWdQV6ML47HxBEYoNSVhOW5NMUXWLnRKOv62maORn7+Zo9tPn1aWJpJP8hm6Y++75q7ueGP1tO9rgK0FmTJfGXnQ12/k1sGFKz9jvXAzkv2RyP6xKfsJRY/Bml23EENlSW2FTGeo0GCwJy2efwjD/+cjBoEY0YdQqlyaF5zwiqVGGs7guzIsWfhlbUW+0Y3vJDV3oOzLlqM4E+aEGwOLx469FBG+MwFeOSmRlHg9XfUg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=renesas.com; dmarc=pass action=none header.from=renesas.com; dkim=pass header.d=renesas.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesas.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CRUm0j8HbcTIps1RR/L4MoVoqYV3uliAQYSR4xdus4I=; b=g5ldtBhYX7s/j5aZXS1itzXLsByx3ZdvUGmG3PQ6XeeMROJm5s4H/MJlNmH8hyNcbijG/+xEsMyUoS6UH1BjNt9afKHDtUBuohMPDcIrQTS8snrvxYaDO20I/qWxGUNzjO2wCqm0OotDtFfzPk6VxJfoxwn9eXFs4j+jUNpyogw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=renesas.com; Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) by TYCPR01MB9434.jpnprd01.prod.outlook.com (2603:1096:400:195::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.22; Thu, 23 May 2024 02:12:39 +0000 Received: from TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11]) by TYCPR01MB10914.jpnprd01.prod.outlook.com ([fe80::c568:1028:2fd1:6e11%4]) with mapi id 15.20.7611.016; Thu, 23 May 2024 02:12:39 +0000 Message-ID: <87y181mg2y.wl-kuninori.morimoto.gx@renesas.com> To: =?iso-8859-2?q?=22Amadeusz_S=B3awi=F1ski=22?= , Alexandre Belloni , Alper Nebi Yasak , AngeloGioacchino Del Regno , Banajit Goswami , Bard Liao , Brent Lu , Cezary Rojewski , Charles Keepax , Claudiu Beznea , Cristian Ciocaltea , Daniel Baluta , Hans de Goede , Jaroslav Kysela , Jerome Brunet , Jiawei Wang , Jonathan Corbet , Kai Vehmanen , Kevin Hilman , Liam Girdwood , Mark Brown , Maso Huang , Matthias Brugger , Neil Armstrong , Nicolas Ferre , Peter Ujfalusi , Pierre-Louis Bossart , Ranjani Sridharan , Sascha Hauer , Shawn Guo , Shengjiu Wang , Srinivas Kandagatla , Sylwester Nawrocki , Takashi Iwai , Vinod Koul , Xiubo Li , alsa-devel@alsa-project.org, imx@lists.linux.dev, linux-doc@vger.kernel.org, linux-sound@vger.kernel.org In-Reply-To: <871q5tnuok.wl-kuninori.morimoto.gx@renesas.com> References: <871q5tnuok.wl-kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH v4 2/3] ASoC: remove snd_soc_dai_link_set_capabilities() User-Agent: Wanderlust/2.15.9 Emacs/27.1 Mule/6.0 Date: Thu, 23 May 2024 02:12:38 +0000 X-ClientProxiedBy: TYCP286CA0100.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2b4::7) To TYCPR01MB10914.jpnprd01.prod.outlook.com (2603:1096:400:3a9::11) Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYCPR01MB10914:EE_|TYCPR01MB9434:EE_ X-MS-Office365-Filtering-Correlation-Id: 478cdb76-d9b7-46ee-f2de-08dc7acdd25e X-LD-Processed: 53d82571-da19-47e4-9cb4-625a166a4a2a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230031|52116005|7416005|1800799015|376005|366007|38350700005|921011; X-Microsoft-Antispam-Message-Info: Tt+lw2GvyqSWDpMySd7MGEkibAQ2xqnVJI2PQMdCOvtxKVn/38NukgzWVJFF/Ac1IrzcZ76Zp15Co5BRzqStJMag6C96mKLwKfkZMZ+X2HjeDncE+Lfro5ZgJiGOoHJjNOid5S0T/E4kIwBItCUc9+vol0Z24BL6Fay2FdgqdddIiu4dWw8Z40y3Oq0Uf2R0Z7rUNPlARcIH1ljhLBrKIZ4LOOxR/1v5FQfMxJt/xqP4spvGLsm9VrJurAnXXCx4qisEBfditbPDrps+9XHYCpGd5HhCFOsYuL0Lgb2005bT7x7fdLLlcugpKn6h9SMaRcV+61pkNBaGwMgIjHiq4dSiIoYdu4p2R5s/o9Xr1SQlpz/14Zkj8/4ZpvV57SAO3qM+Qqw368fEWQeSDPxGWVfFdEZ9TtIBWvHGhgyLD8CdTjpDHe96SKKvVR6BN3/GTZADqBUvC4ODYJ885cP75qWzO5KQebwHB8EHKrFQn5Fs6rmcvZ35tDRDRgNaLe43UhP6g6atjxaYOI7I3VEKPJ3rXm7kgIpeBZm151LAGoU40NoGP3K2QpVlBRfXCbeG/YamLEMmt9PZYkxGDUi6Znj/rWXf6AOtZ6V7eJdRRG827s0Ea0A9D2fUuxLjqp51/dTcAplTx9oPcO3/YfW0YOOj73QNpQKXAs+Xic/cNrNOhl3HMx13AFthK2ZocOKrw/jmMfO8MJHALdgab/VgglVzrdEKlb0A8MdzjevOTzpFec+pbIh4r1oGzMac8LNPnzm6NG6mpCryPIB8GJywfOctOUfg4yM2Z7m+IAQNh8lRL4Du9lj4wl/HdMj5F7CtVWilDEPKcogc03lQ2iAjm5Q0nCGaues/iyDYyjEIQSFTBSD7nqErIIp1P1/2PXkaQRhZJ4WpFaE8Tc6WZ3jekuJyprJkaOG8FCVb0ySEhKby3drlQvg8/Ifr8wcN/XbeQRk8QhdIxB1g3U8QIIKhO6K9c49iDjVueepqG0LwqPn+ZDw2SCkSvhbC2lIFSTWC+yef7Zj7uRP1Bp+c+AAfUVOyuAmDxD5lodrBpU0KGYPrQWyIptZZxhT9MfUOWHcSJC7qKvMwtSTCxcC7Y0tEmobeOkBPeDxqE3J+vaLMwVHxhi67u4EB9uBiMAQaG+1FmLhox5eqf51gm384n/ssVsHXHXGusdqIy3e9EWoh6oVl7S/zntFQH4tuDTcOd9aQ3EFVBmW5K89J7vRhIGKgIhzguY0a9Vq4yd+W7Mmfl2Wt4CDT0NGJan7vRmICBNcyJKlpZyiOO1mrdH02WBtBk4SbOwhkrkv1BRfMSSko349FpbBrE3EaUPlTfEtCWadyp/YHXJc4KTw7nsJnmTqoYMiH0Fwfd0upp2e2iorcQS0= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYCPR01MB10914.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(52116005)(7416005)(1800799015)(376005)(366007)(38350700005)(921011);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: wvhbhqIlwW6sV2qFzLdyZ1+Ujo8lURVWAfuPwxGzlUDiNEH4CwsMQqQpmc+yCgfnIrqFAKr5L+HemTHvrWOD/hMcS92HGadBvrFRw5qxw+zy7t+r3xIFBaWZ5yN7AHGmhuUYCdM6Q/lYM/7jw77Ig/f2JwOhHkshW9W8vTOGjse711lpyRJLt1GZ/U+s2DfzPDSK4IlWa/tOWky8I4tLPFt2oPB6pQP9MYkmERSAvy1kMdpIZZCpRXImNrEk+Bz8XTZ1cfP+rx68PaCouo/BfJD3wl1a67+h5QDNe384w2HFGcFZ3bOhKLez10RJ8qvFgA9q9MweL9DTaK70gyxJwHJUrh3+FFLA7SFuX7rKNhi9bG1EWRgl8oAMYX88E5fNNHI5BN3yVYQYcCbhQA+WdH+1EydkboCgPCV+8olnhagh2vDf6b9gswMY9JpTv0yTrp6TJsPu1NxnBwXHyZV9zce2rnbZQSXhV04liQAL3/UtUDEejkArhLRREbBASxelMULSwtt5THYqDtw/gUtpQ2LkqB1SM1pxHL04XOlGSDSrE7+U31PDSwYJzSqwXPdS2Y5u9zf14uo4SArmbfoiezBXWBl525ISHHDjgcc0Ofup755pNWp72UVfH+sSqRc/7ONFu1u5DH1r+KGS2LKzcDlzD01nlT09t8sBNUJby17tWkZAOSrrtGL2QDXBvWSdMyFwDOC0VSIosIIR/urQa5wpWNbwQ5xgbjV9pxFuT0RNjvFVueVi2Xdxuu4VchhplT3/AnJ1w7NsUMWx3BERC/reMqAQ91GaJt+XuTMYjdlJucgAiEhuTGOaFxdbRyrUec8PM/AHB32DUh2001H0EtBeDqMGKJaD8l8za29sUmO7iZzaGleMefIjsm9lVCwiJo/cxBro7oxvnEDiIX7W4uZFIG3kmios2SHpJYW1hIDBLqBYIh5ajq7LdK0xSEYa9EjICBqvK3+a1MuEjEwu4k8Aua6ifP16DetPUR/5gy6yUy9aXrY+0GRnXAmYWh9qgAje8IcQFWaFgk95JZRr03vyGzgwZhXsyIAVgN1dQWCXdHKFTlP/NEqKXLfFCur7M0bCp2OITLqoCAnLztKm7qxsKdPtOm4tEi5PgT3D+D3GoT3aa97nqA1T9Bea+fY5c0Ew9Rpt3Gpof1uaDsdYkPHdsQ5OydUxP//Kj5fjXMPC39Y63XLrGlLjI+IjoP9Wvngq6dAAtIqtPLzpb4EnkEQEAxBpsT+09+vLPmQlefX9Za/d/le/jFIRo7yxUEJzVlyHZc0znC/acTOBZmoF7nJSa90zfco7tL8Lz8ilSJ8Y9aaJ1MnDRio+VIre6NKfy9WLmCszNxe5dTa2P3Vmbma3j2z2jX03F50L6q3KkPO1zg1hyhL9bcEnn2x5u/RXY/ukGaY0uxv4LTT0JDQxrDfU+TrIBw6wEIzNnWs3tR+PGkf4jFoQVUndOpxsGcx5L5H36VCnKKfd3KEWumZxnRsFPbt7qqrIsOywkyjfItFfsPSC6ewnS0sL/4cdSylkcEjHwvoEipoe7p/7lsVOz/sfB/CdTGcNP7PKS16mxOYqaEbVbuMfle0cXU4QM9I0W5FczMkRxC1BHrhwGL57a6ri1E3fI0jpht3DFBzzH8g= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 478cdb76-d9b7-46ee-f2de-08dc7acdd25e X-MS-Exchange-CrossTenant-AuthSource: TYCPR01MB10914.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 May 2024 02:12:39.7143 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: VI4/IhYIrJ4xxMSX4LesWbfDJNK2CL+takLqi/TbkrXM+/OtV+JMhPaaTYubhV1AVS3S78yLxShkEUmNlaJmFgYbMzh6BHIz6SNRxSThlJlw1IgtDSet6nQNwYUPm8Dk X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCPR01MB9434 dpcm_xxx flags are no longer needed. We need to use xxx_only flags instead if needed, but snd_soc_dai_link_set_capabilities() user adds dpcm_xxx if playback/catpure were available. Thus converting dpcm_xxx to xxx_only is not needed. Just remove it. Signed-off-by: Kuninori Morimoto Tested-by: Jerome Brunet --- include/sound/soc-dai.h | 1 - sound/soc/fsl/imx-card.c | 3 --- sound/soc/generic/audio-graph-card.c | 2 -- sound/soc/generic/audio-graph-card2.c | 2 -- sound/soc/generic/simple-card.c | 2 -- sound/soc/meson/axg-card.c | 1 - sound/soc/meson/gx-card.c | 1 - sound/soc/qcom/common.c | 1 - sound/soc/soc-dai.c | 38 --------------------------- 9 files changed, 51 deletions(-) diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h index adcd8719d343..69ba1a628eab 100644 --- a/include/sound/soc-dai.h +++ b/include/sound/soc-dai.h @@ -219,7 +219,6 @@ void snd_soc_dai_resume(struct snd_soc_dai *dai); int snd_soc_dai_compress_new(struct snd_soc_dai *dai, struct snd_soc_pcm_runtime *rtd, int num); bool snd_soc_dai_stream_valid(struct snd_soc_dai *dai, int stream); -void snd_soc_dai_link_set_capabilities(struct snd_soc_dai_link *dai_link); void snd_soc_dai_action(struct snd_soc_dai *dai, int stream, int action); static inline void snd_soc_dai_activate(struct snd_soc_dai *dai, diff --git a/sound/soc/fsl/imx-card.c b/sound/soc/fsl/imx-card.c index 0e18ccabe28c..98b37dd2b901 100644 --- a/sound/soc/fsl/imx-card.c +++ b/sound/soc/fsl/imx-card.c @@ -650,9 +650,6 @@ static int imx_card_parse_of(struct imx_card_data *data) link->ops = &imx_aif_ops; } - if (link->no_pcm || link->dynamic) - snd_soc_dai_link_set_capabilities(link); - /* Get dai fmt */ ret = simple_util_parse_daifmt(dev, np, codec, NULL, &link->dai_fmt); diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c index 83e3ba773fbd..714ce1f4a061 100644 --- a/sound/soc/generic/audio-graph-card.c +++ b/sound/soc/generic/audio-graph-card.c @@ -246,8 +246,6 @@ static int graph_dai_link_of_dpcm(struct simple_util_priv *priv, graph_parse_convert(dev, ep, &dai_props->adata); - snd_soc_dai_link_set_capabilities(dai_link); - ret = graph_link_init(priv, cpu_ep, codec_ep, li, dai_name); li->link++; diff --git a/sound/soc/generic/audio-graph-card2.c b/sound/soc/generic/audio-graph-card2.c index 81e84095107e..6aeb578891f6 100644 --- a/sound/soc/generic/audio-graph-card2.c +++ b/sound/soc/generic/audio-graph-card2.c @@ -925,8 +925,6 @@ int audio_graph2_link_dpcm(struct simple_util_priv *priv, graph_parse_convert(ep, dai_props); /* at node of */ graph_parse_convert(rep, dai_props); /* at node of */ - snd_soc_dai_link_set_capabilities(dai_link); - graph_link_init(priv, rport, li, is_cpu); err: of_node_put(ep); diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c index 9c79ff6a568f..5e66812ffadf 100644 --- a/sound/soc/generic/simple-card.c +++ b/sound/soc/generic/simple-card.c @@ -276,8 +276,6 @@ static int simple_dai_link_of_dpcm(struct simple_util_priv *priv, simple_parse_convert(dev, np, &dai_props->adata); - snd_soc_dai_link_set_capabilities(dai_link); - ret = simple_link_init(priv, node, codec, li, prefix, dai_name); out_put_node: diff --git a/sound/soc/meson/axg-card.c b/sound/soc/meson/axg-card.c index 8c5605c1e34e..09aa36e94c85 100644 --- a/sound/soc/meson/axg-card.c +++ b/sound/soc/meson/axg-card.c @@ -339,7 +339,6 @@ static int axg_card_add_link(struct snd_soc_card *card, struct device_node *np, dai_link->num_c2c_params = 1; } else { dai_link->no_pcm = 1; - snd_soc_dai_link_set_capabilities(dai_link); if (axg_card_cpu_is_tdm_iface(dai_link->cpus->of_node)) ret = axg_card_parse_tdm(card, np, index); } diff --git a/sound/soc/meson/gx-card.c b/sound/soc/meson/gx-card.c index f1539e542638..7edca3e49c8f 100644 --- a/sound/soc/meson/gx-card.c +++ b/sound/soc/meson/gx-card.c @@ -107,7 +107,6 @@ static int gx_card_add_link(struct snd_soc_card *card, struct device_node *np, dai_link->num_c2c_params = 1; } else { dai_link->no_pcm = 1; - snd_soc_dai_link_set_capabilities(dai_link); /* Check if the cpu is the i2s encoder and parse i2s data */ if (gx_card_cpu_identify(dai_link->cpus, "I2S Encoder")) ret = gx_card_parse_i2s(card, np, index); diff --git a/sound/soc/qcom/common.c b/sound/soc/qcom/common.c index 3d02aa3844f2..11cbcb588336 100644 --- a/sound/soc/qcom/common.c +++ b/sound/soc/qcom/common.c @@ -145,7 +145,6 @@ int qcom_snd_parse_of(struct snd_soc_card *card) if (platform || !codec) { /* DPCM */ - snd_soc_dai_link_set_capabilities(link); link->ignore_suspend = 1; link->nonatomic = 1; } diff --git a/sound/soc/soc-dai.c b/sound/soc/soc-dai.c index fefe394dce72..f8e46bec6f80 100644 --- a/sound/soc/soc-dai.c +++ b/sound/soc/soc-dai.c @@ -479,44 +479,6 @@ bool snd_soc_dai_stream_valid(struct snd_soc_dai *dai, int dir) return stream->channels_min; } -/* - * snd_soc_dai_link_set_capabilities() - set dai_link properties based on its DAIs - */ -void snd_soc_dai_link_set_capabilities(struct snd_soc_dai_link *dai_link) -{ - bool supported[SNDRV_PCM_STREAM_LAST + 1]; - int direction; - - for_each_pcm_streams(direction) { - struct snd_soc_dai_link_component *cpu; - struct snd_soc_dai_link_component *codec; - struct snd_soc_dai *dai; - bool supported_cpu = false; - bool supported_codec = false; - int i; - - for_each_link_cpus(dai_link, i, cpu) { - dai = snd_soc_find_dai_with_mutex(cpu); - if (dai && snd_soc_dai_stream_valid(dai, direction)) { - supported_cpu = true; - break; - } - } - for_each_link_codecs(dai_link, i, codec) { - dai = snd_soc_find_dai_with_mutex(codec); - if (dai && snd_soc_dai_stream_valid(dai, direction)) { - supported_codec = true; - break; - } - } - supported[direction] = supported_cpu && supported_codec; - } - - dai_link->dpcm_playback = supported[SNDRV_PCM_STREAM_PLAYBACK]; - dai_link->dpcm_capture = supported[SNDRV_PCM_STREAM_CAPTURE]; -} -EXPORT_SYMBOL_GPL(snd_soc_dai_link_set_capabilities); - void snd_soc_dai_action(struct snd_soc_dai *dai, int stream, int action) {