From nobody Fri Jul 24 05:23:08 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013015.outbound.protection.outlook.com [52.101.72.15]) (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 B61A83016EE; Thu, 23 Jul 2026 02:19:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784773172; cv=fail; b=rs5+0HmHOTXk4gizjqoF/xDDl6QvtUD2ukUE8ST+rOKmus4FVt6hDfMg29RMSQx80Ww1Dotcu9XWupz5v+C8amwqTJtoXTBoyzfWyw9bMXNNjTYTLexcnCJhtIL7QTb/9enCpGHqhA6+EsU4HqsXAQqAbEkWt0OzK6ITKwZj9Kk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784773172; c=relaxed/simple; bh=LpMECwjTJrgOGHUEqn9ZKrhWb2WkMmQLPSmcMJ5pg38=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=sKkHfTAaPejNybApkKkzOcV8DD9wObrcd8ZQDrFlkrGnLXdmN/QsBtqSPkoD1bh03VgRkhQaVHcqUer2UB5nuP64JogmhDR4sG7vX02s4OO6wOP7qKnGP5Nnmqi1x/IcizAh22CwyWIq5w2m6Ly37QQp/Q0ReHMTbP63bgSgUtY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=oQ3taVIE; arc=fail smtp.client-ip=52.101.72.15 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="oQ3taVIE" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oJXzwZA/1W+JlsFynLKzKP0O4YuMNRVHqDIUR6xVsJEowlKCErEQKnHvwqV9I4PQQ3qyUSVUlzvZyY3DVwg98Ubmk1/Rrqqj8Be5DqOeoR72ssrREpHLvRyWmQarhekd3CxIbMMQMxh4HhUi7F5OJCukrmPLWiLihKLxQOmAgKMVPZKe7fjjcdl01bJlL7dTEDVD5YMya059aMQi47Hm/s5AvcgmtkX29nFC8lY8MAHmGAUtdMYwFRSpdY/whHss5K0EYFigGiNYPbpcw4sspnp8MLW6+4BV96KmU4KYYa0MUw0atasmuVnU2auA/tt3/+MX898BCyo/ZeMQCQZ4KA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=Mh6TmC04DTTArJ17QjXOaEgpBxOBd6xooqSZ7trbiEM=; b=IaIl+tLVMUtT6oVeUBm8ySs9eooglqWUeHwBn+BP1BdtFGRSlfrj5i+BvKMqwYGsXFMxdIckPWg3Lf+t+E9ildRPo3RQqwxQ1fDXic/tKzEEpmE6UFl5dTOBRisJLss0c6mwAHrpbxybyC8MR5jPUtfcPJt10vydkFJUS33XSjjYg5Dy66fYN42C0E5QTy2TQKVDqGt9iHDGXq68v26CRJ7zaTzbzgtIHBjQcOAHgnpaeavkifC9Uf+rkQVKuTK/ts+/+3sjkn4SvGcHgae6sTwUN8PN6IFF0Ha8HuAdOkzdedWVvhyTz+A+Fk93DnSA+v77U6uymZ8/LMMMqM+UbA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Mh6TmC04DTTArJ17QjXOaEgpBxOBd6xooqSZ7trbiEM=; b=oQ3taVIEm4X0mNiiEbrUScPXlE09mNP08o0/K/+cDOlQvXRlmyl7Zsd37ztgc6CRCpE+sV13SfG9pCIq1ajz0+dGoxXgm+wIUp3XOeP6j3cM68259lAmGIqmz4pffCyK/RZB9qv9+NVQXHoUOPBN1gbdwTssTo7ocZHbOyISmrcOqktKqehHgafsQvB7qbhW7dd/WIjuMU289ttctkI5iNMpmM2G1hQfK/pI59mPfnRWbqIZ6WWzZ/AeM6tmduHWHhSiyd4PqYw0x3XNCq7nkP8FXCZk6sezZFlmksRVBRWLtyT+eoK7zNwgmSW0oVqSFguUKOMqdo1qThpAXYn+yQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PAXPR04MB9351.eurprd04.prod.outlook.com (2603:10a6:102:2b6::17) by DU0PR04MB9252.eurprd04.prod.outlook.com (2603:10a6:10:353::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.10; Thu, 23 Jul 2026 02:19:27 +0000 Received: from PAXPR04MB9351.eurprd04.prod.outlook.com ([fe80::1058:a430:52c1:5aa]) by PAXPR04MB9351.eurprd04.prod.outlook.com ([fe80::1058:a430:52c1:5aa%6]) with mapi id 15.21.0245.009; Thu, 23 Jul 2026 02:19:27 +0000 From: shengjiu.wang@oss.nxp.com To: lgirdwood@gmail.com, broonie@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, Frank.Li@nxp.com, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, shawnguo@kernel.org, linux-sound@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, shengjiu.wang@gmail.com, Xiubo.Lee@gmail.com, nicoleotsuka@gmail.com, perex@perex.cz, tiwai@suse.com, linuxppc-dev@lists.ozlabs.org Cc: Shengjiu Wang Subject: [PATCH v2 1/5] ASoC: dt-bindings: fsl,imx-asrc: update port binding to support multiple paths Date: Thu, 23 Jul 2026 10:23:09 +0800 Message-Id: <20260723022313.1905051-2-shengjiu.wang@oss.nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260723022313.1905051-1-shengjiu.wang@oss.nxp.com> References: <20260723022313.1905051-1-shengjiu.wang@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MEWPR01CA0307.ausprd01.prod.outlook.com (2603:10c6:220:1d8::17) To PAXPR04MB9351.eurprd04.prod.outlook.com (2603:10a6:102:2b6::17) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9351:EE_|DU0PR04MB9252:EE_ X-MS-Office365-Filtering-Correlation-Id: 700ba7a5-e329-4dcb-99f9-08dee860d1e5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|23010399003|19092799006|1800799024|366016|921020|6133799003|56012099006|11063799006|10067099003|18002099003|22082099003|3023799007; X-Microsoft-Antispam-Message-Info: hWuwKrRSiyWu/27j3fSeU7gGNiYBrvkBvjgZtD914IWlhYswywML/9x5Ozcf3PVC0TUcsdd5XAidq0VSau2mUQ3QPBvus4il0qLYMYrKYBMIMRPsUz4M5jTDUuReezE7ZCwE1vgaIPEUxD3VRzJf2QdYDVp/5RA6vlOUta0k1AgyIw7DTPW4ZSrTYW4eZ4lh3wFnkBRPqQraaE6SStmxYdx8MjDShNRXTeH5EIV9G8hZvn9HQTZ7XA5q3tJ4QLku1UiDNMeCZWJOgqIrKp5ZyxvDxpF4nCHnEdtxMVc8UJpiqPlo+06JbWVVxpiQEIDFM/+LX7cvUvWnN19DrNFSj4NC8ZGQijNfSGyDJBRzbZK+7TSjJuwHZqTUpnHmX9RPVbn+3/rtln3/dCDDVeLfOnQY/8LqEv0zD0U+1+bq3RTke9iUdeUu1IzZX1C7ZC6pZo00BjjDLGJQf6fFIdW3UvV3MjKoFiEiK0pQDImre9MEKkzazFMNhWES7dVMU8FaoXl0/Vf1mrro1sGpOh6WGAR1GC23bj8zcHWYfaMD44dex5/r4sOxZLBFvYksrD9FArGK/evbHL4Fnd2ezLQgTQlu4vtry/QRlhDz2v3fr9GMUErJcPkcEvj4YpHdWfW8BvjirVHNA8RJ8SwBxGJCYqfYwoDr8BszC47X5umIrCaSSp7DwJ4MiDt/jcipRZXhcjrcaWZAvf9wJXYbgFrmHQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9351.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(23010399003)(19092799006)(1800799024)(366016)(921020)(6133799003)(56012099006)(11063799006)(10067099003)(18002099003)(22082099003)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?EBZQQazDN9WX9Qp5fo13e9GItwDnlurExu7J5QRWBKtunECSo19tcyCT3Vvb?= =?us-ascii?Q?+aOsNZH+4mLu9UJ8ag53UqpoivjcaQHiqRcbVxTOH+ybILVlGshFHJgafGvB?= =?us-ascii?Q?rNboGWXoBD7D+1EUIpE0XW8XBhlXdt4rj5G5bX05R47uN8ee170sajPoEhMr?= =?us-ascii?Q?nDpu7xmAu8RcqxVQj1ddpVwu86KCQS+9p3i4sN+UCwfw9pH0bheZcccEFooo?= =?us-ascii?Q?vPPsuO4+bJKMtRc0YMrjVk2tcncpBxQPVRrS80HniuEFWCoWDqhDe9F2TTz4?= =?us-ascii?Q?CmjzEk8R4QUAB0QEvdfBwAyY34qQ1UMIVCxmr0UNs1/jSECBsURMDI9QyHRK?= =?us-ascii?Q?oQTWgoIIWBUfVKZFtiOE84lsgLr5oT/xGNJFT3J/xZEKiNW1zWDf8F+Vz5Af?= =?us-ascii?Q?WuLpqVaAGRszTsupf/6GPlYlHk1GPf1uhXAUyhN+jeIWfhlV3cMbHgOnV+CD?= =?us-ascii?Q?RfD6afVeqrHkOQRoKIQ+saiEijo2EHPpnRGBnegV9nwL0SNymYX9JomChZ51?= =?us-ascii?Q?JCcj6mnvQkSGk5Uqf79tLlUkjoog+wG7tI52giZzRy+Am9fvv8l0hqqYpFfU?= =?us-ascii?Q?4lYGZQjowBwbJiHr2RkIoIEurXFh9iPZsgNTDnaFxyTTMFV/f1/icktBylEx?= =?us-ascii?Q?RKDaYP8UhjhK1jOJRpK2abA4MbwzvGJQTEauBJ3YjrS+lPGekHr0akgKcIyn?= =?us-ascii?Q?T0Rmsi7VphRMJByEQbmIyTFHRkAAWjreoRRLf3gKPjWP2GPzD1pAc/jN8QUI?= =?us-ascii?Q?iKnM8MydvM/hsJuuDC8t3Ft6Fr6APlGOf8hRjF3S8IFFN2p0T5AMvlSKs0Ne?= =?us-ascii?Q?HldWVn04EYbADpL6BNugPRvQZlV+UStERTDX7g8YytENw+/g4nuqes2L3Itk?= =?us-ascii?Q?pEYD78RVpAK6qcVyMrEQPRUrovCuJx6w088WpXmTHIN24jtkG6/SdyzmFpsG?= =?us-ascii?Q?1vd9ixyCR82ppr8PUb5bw0dGUQiLofhSf6vhm7qj0I54Y7JEWJegjtQaDMXs?= =?us-ascii?Q?aHepus3I6jhSA0cqdGJlfd3PxkUiSV06wpFjugJ4oV+tJvBAqRK2mWAcZxnc?= =?us-ascii?Q?+5lXYGmUwDAEPXM966mafhDJvDdsBnt/+GzPON5wYzo0TPAggZdP6Ycl1eRA?= =?us-ascii?Q?u+FTs9DFoFiLfFNStB+304EBs4DKvR99k0423u9j4cw8cTH3PhyBPAXpk8UM?= =?us-ascii?Q?g2NkuaIzgnRFGSLopD7MCk9DjIRgVR7y5B++yk48sHC7N2FTVEz2qJgQ8Wb8?= =?us-ascii?Q?IZPZWYsa/x8KPZvCGCmSw0RxuSy22OhjfqC8zxz5IWsXXjm7vWrQUhzzw8QQ?= =?us-ascii?Q?Pn6yRHm4DFv66CKHbSmVJgdaTOlALTFcIUWy3wy9o4EyaSHsMQUVjq64IaWp?= =?us-ascii?Q?SHwmxBVESs8Kj9UQWUOmrXinWPIhG8AlxpbJQ+fE3UY4xX+SJ6fgM5UZH4Qp?= =?us-ascii?Q?jpFUiqCxKjpaBUqQ7Ggnpbv3pmNd/0/oiBDULPsbcLINvVzhnY6DUcFXOeKH?= =?us-ascii?Q?XWSF69Cg8y9s6vR/eXmUibAs6tlz1lErKaK/rOqdcusF3/QVun4S+w0t5MtP?= =?us-ascii?Q?+wEwst2fbkcvoBxpBSVSjYzkcHigkR5Hmz2J1zF703R24mcBLNiIpDZw90Yn?= =?us-ascii?Q?N5qXfCwQm4ZVqEG+c4lcnskYJvWuQsJraztReuAiisrWBSgbU04ag7MyLtvM?= =?us-ascii?Q?HOvc8IoW8pGUhpgcQFEPd0SB/+Afa/UaQB+gsQWtR/9QUrGMFAn9N5M/dUpZ?= =?us-ascii?Q?o0hWkG4c3fjbnPmfTwpnYu7oVykh3oXRSKbvrTvvzE+xIb9Edlaj?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 700ba7a5-e329-4dcb-99f9-08dee860d1e5 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9351.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jul 2026 02:19:27.2231 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ehpRSRemEbNUArY8BIjSKaAw4OV+e1bh/78BGNTMqDrbL59vuCJxM9RmKlH6gAs0HSGxtXIMrRiXWbnugZ/cEojSJDnqvaMtEGV9tDLRDrNq1gAC/sAPXsqSHeft+FMs X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR04MB9252 Content-Type: text/plain; charset="utf-8" From: Shengjiu Wang The i.MX ASRC hardware supports up to three conversion pairs (A, B, C). The existing binding exposed only a single generic audio-graph port, which cannot represent independent conversion paths when multiple pairs are in use simultaneously. Add a ports container that enumerates up to three sub-ports, each representing an independent conversion path: port@0 -- conversion path 0 port@1 -- conversion path 1 port@2 -- conversion path 2 Each sub-port references audio-graph-port.yaml as before. Hardware pairs are allocated dynamically at stream open time; each active stream direction (playback or capture) on a port consumes one hardware pair. For backwards compatibility, keep the old single port property but mark it deprecated. A schema constraint (not: required: [port, ports]) ensures that both forms cannot be used at the same time. Update the examples to show both the new ports form and the deprecated port form. No existing upstream DTS file for fsl,imx-asrc uses the previously documented single 'port' node, so this change does not break any in-tree device tree. Signed-off-by: Shengjiu Wang --- .../bindings/sound/fsl,imx-asrc.yaml | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/Documentation/devicetree/bindings/sound/fsl,imx-asrc.yaml b/Do= cumentation/devicetree/bindings/sound/fsl,imx-asrc.yaml index 608defc93c1e..ecb0aacba456 100644 --- a/Documentation/devicetree/bindings/sound/fsl,imx-asrc.yaml +++ b/Documentation/devicetree/bindings/sound/fsl,imx-asrc.yaml @@ -78,9 +78,19 @@ properties: power-domains: maxItems: 1 =20 + ports: + $ref: /schemas/graph.yaml#/properties/ports + patternProperties: + "^port@[0-2]$": + $ref: audio-graph-port.yaml# + unevaluatedProperties: false + description: port for an independent conversion path + port: $ref: audio-graph-port.yaml# unevaluatedProperties: false + deprecated: true + description: deprecated, use ports instead =20 fsl,asrc-rate: $ref: /schemas/types.yaml#/definitions/uint32 @@ -125,6 +135,10 @@ required: - fsl,asrc-width =20 allOf: + - not: + required: + - port + - ports - $ref: dai-common.yaml# - if: properties: @@ -188,3 +202,59 @@ examples: }; }; }; + + - | + #include + #include + asrc1: asrc@2034000 { + compatible =3D "fsl,imx53-asrc"; + reg =3D <0x02034000 0x4000>; + interrupts =3D ; + clocks =3D <&clks IMX6QDL_CLK_ASRC_IPG>, + <&clks IMX6QDL_CLK_ASRC_MEM>, <&clks 0>, + <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>, + <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>, + <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>, + <&clks IMX6QDL_CLK_ASRC>, <&clks 0>, <&clks 0>, + <&clks IMX6QDL_CLK_SPBA>; + clock-names =3D "mem", "ipg", "asrck_0", + "asrck_1", "asrck_2", "asrck_3", "asrck_4", + "asrck_5", "asrck_6", "asrck_7", "asrck_8", + "asrck_9", "asrck_a", "asrck_b", "asrck_c", + "asrck_d", "asrck_e", "asrck_f", "spba"; + dmas =3D <&sdma 17 23 1>, <&sdma 18 23 1>, <&sdma 19 23 1>, + <&sdma 20 23 1>, <&sdma 21 23 1>, <&sdma 22 23 1>; + dma-names =3D "rxa", "rxb", "rxc", + "txa", "txb", "txc"; + fsl,asrc-rate =3D <48000>; + fsl,asrc-width =3D <16>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + playback-only; + asrc1_endpoint0: endpoint { + remote-endpoint =3D <&fe00_ep>; + }; + }; + + port@1 { + reg =3D <1>; + capture-only; + asrc1_endpoint1: endpoint { + remote-endpoint =3D <&fe01_ep>; + }; + }; + + port@2 { + reg =3D <2>; + capture-only; + asrc1_endpoint2: endpoint { + remote-endpoint =3D <&fe02_ep>; + }; + }; + }; + }; --=20 2.34.1 From nobody Fri Jul 24 05:23:08 2026 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013008.outbound.protection.outlook.com [52.101.83.8]) (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 734873016EE; Thu, 23 Jul 2026 02:19:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.8 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784773178; cv=fail; b=PSzb4Re0ED+zJG7wEWm79paN0RaKIlZR7sVBT2vulV/e34cLvY7kCnIiJDwBYz/Kb+Z4DS03vvjKdnPEHhToGJksucajWXnBJalgeagopsrWXAZe6KF4MwjiWcnugEYgL7LDQ4FdMZHR6CQSvIhRfwgrNPk/pqQscpnQGCHtORE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784773178; c=relaxed/simple; bh=IosuL9GYlDecI1aNU2PAa0XXbvvslioARGKaTwA+SJg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=FjlELCr+nNkA9W6TG0vjVAKb++fbKvyvI3m5p15yHCd4Aecsx+v+C/vYxZNgrId9BXutmpwcfS2TQwKgXNBa/eIWytZr6MEsFlxCugXLGomWegdC17exMeQyfgfRNr2rhoITBCRwCDh7Nu3cRY7xuACdCzvs1jG55WbtLNlhrgc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=bKPbYq2D; arc=fail smtp.client-ip=52.101.83.8 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="bKPbYq2D" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BIcY00NLY1NMfUtmBXS2nPAgLec5w9X9pdbjWptej1zQCPjeCr2JOMXeL10AFjckw6rgMjun1YspF+0AoDP6w6tXXd2XMgfKLsO4R7RBBnLbTeMCjBL/zvzXEIVCWQ2lr5An5pFcFYU16cJizVeDAjPHZRa9eCnJZjJREXhm0EQWy0lwkq1o/UNceHP+UEfbsSOng6kaxY6GHiuiOrL8vqbVTMEVWJ1V/kK1QDn9C/GGF+mvLskfPtCnK6XTdxBmU4TQWToxzMBx1PSOs92NXqUFEwBFMTP6c5IuLX+OTh5wXBbyn3rC3dV/OpuMhSpTfumi2BvHJGC1/fyu47qNoA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=jGoTUaZn+jEpuQItU+51jvu6PzW/mByno1WJlMrtnI8=; b=UnxtD9MPF15DXK/hYnGOwifyRVWTWIRDrznQLApUwFuhEt8SSILqAawGSECtc7oR/ieUpuzaNtaMm2rFzgdhlKZP1b9ltzGzJnO9gPyqPUbwBcgx5RgaJx4GYDQ/m4ZEft31kbY0lOskLoDdUnSwNZv5WLh4HZ09wwKMjQd44XcIIW+8JbWqyHSKmYujr25/IG4PXBMQsJhSBFVKUeEFcer70DjPAPJpZziVlY7P88HdCPSnqyz2so1zwABQFD5X4E2d5/ONpgqcKO7FbyrzjyVNWaytHeogg+2Q01BShXeJZfbVou7GNnE3byso2vPbH8IHYsCVbvtVClx9Jtryqw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jGoTUaZn+jEpuQItU+51jvu6PzW/mByno1WJlMrtnI8=; b=bKPbYq2Dm6XDmBKKpAz9kdGZit08dS1i0ruVMXwBR3Jlz8GrINm9RZ5mT/NGVfDmf+zrHdbljZ0uh3stR39vgNSupkexChRaFyId7LxzPwjH5L6Vth46MKaLe1yiL+Md0Bct3fSxIAMh1CEXTLoECN1uijyYKcSG44DP9tllLf5adEkImDZ/v1JHFU0z8hw8MkPjRHXGlDEby03YN40WV2G8obKf+xXb6Qa9YzbhLISNmfhHLz16065h8MQqDpfqG6nG8zbrlIw6dYT/Fe77PDcbZR5JSbbhWDzynSXkCFNK4iF6oz+FQLUpyuvB8YaUxa0v2U8dpv7RcBHhq1X0pQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PAXPR04MB9351.eurprd04.prod.outlook.com (2603:10a6:102:2b6::17) by DU0PR04MB9252.eurprd04.prod.outlook.com (2603:10a6:10:353::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.10; Thu, 23 Jul 2026 02:19:33 +0000 Received: from PAXPR04MB9351.eurprd04.prod.outlook.com ([fe80::1058:a430:52c1:5aa]) by PAXPR04MB9351.eurprd04.prod.outlook.com ([fe80::1058:a430:52c1:5aa%6]) with mapi id 15.21.0245.009; Thu, 23 Jul 2026 02:19:33 +0000 From: shengjiu.wang@oss.nxp.com To: lgirdwood@gmail.com, broonie@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, Frank.Li@nxp.com, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, shawnguo@kernel.org, linux-sound@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, shengjiu.wang@gmail.com, Xiubo.Lee@gmail.com, nicoleotsuka@gmail.com, perex@perex.cz, tiwai@suse.com, linuxppc-dev@lists.ozlabs.org Cc: Shengjiu Wang Subject: [PATCH v2 2/5] ASoC: dt-bindings: fsl,easrc: add ports binding for multiple conversion paths Date: Thu, 23 Jul 2026 10:23:10 +0800 Message-Id: <20260723022313.1905051-3-shengjiu.wang@oss.nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260723022313.1905051-1-shengjiu.wang@oss.nxp.com> References: <20260723022313.1905051-1-shengjiu.wang@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: KUZPR01CA0008.apcprd01.prod.exchangelabs.com (2603:1096:d10:34::8) To PAXPR04MB9351.eurprd04.prod.outlook.com (2603:10a6:102:2b6::17) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9351:EE_|DU0PR04MB9252:EE_ X-MS-Office365-Filtering-Correlation-Id: 9f965174-6c3c-4785-d60f-08dee860d5e4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|23010399003|19092799006|1800799024|366016|921020|56012099006|11063799006|10067099003|18002099003|22082099003|3023799007; X-Microsoft-Antispam-Message-Info: Sjp4UquubeY5r1UXpwp96mn83gn+jJOzsbXZMuGw1I9RyWQ0RYrtnB7xZTpU2gdNxzFEGyJr2Hwc7zfsp4MSWLGsUDOxQCEGVu+BU/lIS93VXSL6qk2VjjFpPMGkL9q5vBBCNKRlx8rRAVp5MGF/C4UnG4wD9LmsSBGxV/R/XxWmv0ky9BUAgdIQLaK1APLZdj0L1i0jVr2rHZMktaFnF+MjU8h7xuS1hBS1xRENnapPleg1j6LNz0E1L0K/VcGRviL6TpRPqykcJP4nwyr5W8dV9bnm5kz4QuiWDEkT9J+LZs0vk1BEQ1dD6QsgwAKjDBs/mjCmzr2O/CENDVNJd6XfygxQRtTQ3TkcoSnPgzDoBEyHj616Wj4ABWR/2In9PZKcVYS8uu/ylctGBoZRcLA2VUkXv83hDgPnkBct8qPrvpKbxgjuwYHbK5orsTVuj6a8/sqUXiaeGcGsOgV8LgMKffvnul2Jx7UgQVRtMxVAaxHx9uALcwy5cylij33uSwKOrRqsN2Eg2dydbG8ZASb4t9pTtPyWWy5C0q+urNeXqjhr/0FjT1qpDjLJHYwKqRagDEdbGq73WDR8POSOOQk3DxjzOIlou+BnmzY6U+2RDmv1WE+ks0Bl77/gR14MMyXjDCvGWNj1Mf1MSSFsX3hIw1W4Bjcz6d9Dh5jYDnFVR6pWnKdljizdmxPjYzgouojHVLFReYlD2vdWF2WRnA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9351.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(23010399003)(19092799006)(1800799024)(366016)(921020)(56012099006)(11063799006)(10067099003)(18002099003)(22082099003)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?yY2+nOa1RcdCaWHn0BTux5quiA0YUPBmJu2QiBj/Sv5QCJqioQpmwvGFJXJ3?= =?us-ascii?Q?wjZj/h8fET76FR/h1jTMofu8MBTHrKuRIo/HgCH6Ez1rncam+jAugL1itOWP?= =?us-ascii?Q?cOFcH/dWChHLLOqg6PWllz1EQmEZnPDwcvZSTciRh7EJKPV1ftnD+mUED9Bk?= =?us-ascii?Q?Q70W8u1c+D5YdyWSXBT/eaGLwCws5/moXoGP4Bku677PV6Xdt0z9B3w3V6PP?= =?us-ascii?Q?RP28n6tMHqF/k6Mi7pt+5lumozDKeq23VeDdsv4p1zP04c8ylpxsCF+uahZ9?= =?us-ascii?Q?O5bA3SUW92dsQ7IoroGHAtbZdiorp8pp/7Lrxdad6ZiKe4FXiyg+hOWkZFtA?= =?us-ascii?Q?LfYm65FhigqOEmwtGId8ILDpmpOza1C5fYq9kysFYxZDwSTnLJ47ycw21S35?= =?us-ascii?Q?tZwchwjqp1tctHeV30sTIMvRQgmLQBQn2r9ktYoykOUbV7XPnjIhzlTcKEc7?= =?us-ascii?Q?132wd7LUOI31hOPR7IoPf/3VM5vsWzlhhMHinNpcHGcV4cmqzvCdfJZeA3KG?= =?us-ascii?Q?mkWBzO0cZfrsGhtAFwr4hJnu6R5CH+ZM2ys6rLMTaaimzqngOlWDLQ/+JjAP?= =?us-ascii?Q?g81PmWIWJVk4WTO19uxIG3A8A+s8R+dCtOSpmf6yabNP2uYfLW1RHzfBoRuy?= =?us-ascii?Q?0J0bgMxLhc3dJJa99Ab0qFNC5YQYae+B486/IaSh46ad0TEtjlvp/1LThyUC?= =?us-ascii?Q?7wuHouiaycJm3tBlRjguG5VRWeoYqUxOZDiWHcdehzUln6fxJ/XvMxaxoMI8?= =?us-ascii?Q?G39/efIEUG4LllSGZQYc2fA9B7BezdQsEBNW4RaBQMGeOrXC5q2KkUJhV4F6?= =?us-ascii?Q?UQ1Y42WiIfAP1DrVKglQQGBSrH5ufK3uvJTtP9j2y8X8xl67PPRVdhT7xhgo?= =?us-ascii?Q?dz2YPx93EGxH9z2peX0xVtRqq2Ois9PjG3nKzGbR8P88oZG4XyVfn1hJZ2UG?= =?us-ascii?Q?XNt40QQ8RVeGTHgdVlCIGtajV+CZXtstoLrAlXrnfRotDMWO/gOgIrCJJYsY?= =?us-ascii?Q?K6pbxY4ezA9ChsuDHN6rQvJKFrcw/Kuo0IIzjFGqLnbWSBTyH86sFBeH+WL+?= =?us-ascii?Q?nazYaufqQeZcU2UhZjfVmwZCN3Y2YmtFXWnaBqZNklfa2nLTZm5ph7z+4sXF?= =?us-ascii?Q?ncdkyQMwQhiz0SDDm2CP0sHrvtOJyFok6WBEXkANte8ZxoTB5DgZ10hRW5YR?= =?us-ascii?Q?Ua0909f4riylr8b2wgcFpveIVR6JSYWOsVqMwV8vei1vomyXI8VlZiTUHPQb?= =?us-ascii?Q?L0ixQ8tciNcfMtco4VgzE4DOkqvqW/QPbMqSWrJn1XYs5WaZ4RkxIfYmrt8N?= =?us-ascii?Q?iJhKha8iJPXSPD4z9htHKmw5RxXIPsYDWsPaMAtEVzPoRcM0M6B2ozra8RQZ?= =?us-ascii?Q?SH4oktOrsB0Hy0cA4U23V2Uv2lecnzMeNauirBiNFMMmCzquKLTR5qja5npS?= =?us-ascii?Q?SkcVOhSDYPj8I7db88kF7EabwIZDzoSbXZFnjAqm66aZl0+HHyWRDHVy3DUw?= =?us-ascii?Q?smzu3UOoz/HpN237a2EzMEAkVvOIwHN3YLA+DoyNid1bHvLN/ubR+qQrhvU3?= =?us-ascii?Q?/62GYphrQNNI1omr4j/jgpy9oXXHOxbU3uuzUQxvtimrZyQnKhfDnjz6vUTX?= =?us-ascii?Q?gNiCKWPl1rtPPP5V8LWNuXdnQypdo0SWbPcWayYInU/v2HMqoI0nXJFiMcym?= =?us-ascii?Q?pxt4tMEcwf0YPfTXqFy198KR9JcHrluyWZ2Gk+OMvEOp/KBGkCuH6rHOp6pc?= =?us-ascii?Q?U27pavAjRz9T5EKo/jJSMiCLJS85PgH0Tevvg+kS3Lv0m+Qma/E7?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9f965174-6c3c-4785-d60f-08dee860d5e4 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9351.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jul 2026 02:19:33.7923 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: MJnZvOgiC2QAnKNsQ4MJQrReGgJxlnfAh67JtrHFvVKKL/C11zqz2gVHxPEgKaGgEB3nsZtZJYO3qY1WG/PSIzO70RouBPxjAQVwpo1zcIQBlV2tCm5LTu8WSBkoCI2Y X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR04MB9252 Content-Type: text/plain; charset="utf-8" From: Shengjiu Wang The i.MX EASRC hardware supports up to four conversion contexts (A, B, C, D). Add a ports container property to the binding to allow each independent conversion path to be represented as an individual audio-graph port: port@0 -- conversion path 0 port@1 -- conversion path 1 port@2 -- conversion path 2 port@3 -- conversion path 3 Each sub-port references audio-graph-port.yaml and follows the standard audio-graph binding conventions. Contexts are allocated dynamically at stream open time; each active stream direction (playback or capture) on a port consumes one hardware context. Signed-off-by: Shengjiu Wang --- .../devicetree/bindings/sound/fsl,easrc.yaml | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/Documentation/devicetree/bindings/sound/fsl,easrc.yaml b/Docum= entation/devicetree/bindings/sound/fsl,easrc.yaml index d5727f8bfb0b..e6d7cae5983d 100644 --- a/Documentation/devicetree/bindings/sound/fsl,easrc.yaml +++ b/Documentation/devicetree/bindings/sound/fsl,easrc.yaml @@ -55,6 +55,14 @@ properties: - const: imx/easrc/easrc-imx8mn.bin description: The coefficient table for the filters =20 + ports: + $ref: /schemas/graph.yaml#/properties/ports + patternProperties: + "^port@[0-3]$": + $ref: audio-graph-port.yaml# + unevaluatedProperties: false + description: port for an independent conversion path + fsl,asrc-rate: $ref: /schemas/types.yaml#/definitions/uint32 minimum: 8000 @@ -107,3 +115,63 @@ examples: fsl,asrc-rate =3D <8000>; fsl,asrc-format =3D <2>; }; + + - | + #include + #include + + easrc1: easrc@300c0000 { + compatible =3D "fsl,imx8mn-easrc"; + reg =3D <0x300c0000 0x10000>; + interrupts =3D ; + clocks =3D <&clk IMX8MN_CLK_ASRC_ROOT>; + clock-names =3D "mem"; + dmas =3D <&sdma2 16 23 0> , <&sdma2 17 23 0>, + <&sdma2 18 23 0> , <&sdma2 19 23 0>, + <&sdma2 20 23 0> , <&sdma2 21 23 0>, + <&sdma2 22 23 0> , <&sdma2 23 23 0>; + dma-names =3D "ctx0_rx", "ctx0_tx", + "ctx1_rx", "ctx1_tx", + "ctx2_rx", "ctx2_tx", + "ctx3_rx", "ctx3_tx"; + firmware-name =3D "imx/easrc/easrc-imx8mn.bin"; + fsl,asrc-rate =3D <8000>; + fsl,asrc-format =3D <2>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + playback-only; + easrc1_endpoint0: endpoint { + remote-endpoint =3D <&fe00_ep>; + }; + }; + + port@1 { + reg =3D <1>; + playback-only; + easrc1_endpoint1: endpoint { + remote-endpoint =3D <&fe01_ep>; + }; + }; + + port@2 { + reg =3D <2>; + capture-only; + easrc1_endpoint2: endpoint { + remote-endpoint =3D <&fe02_ep>; + }; + }; + + port@3 { + reg =3D <3>; + capture-only; + easrc1_endpoint3: endpoint { + remote-endpoint =3D <&fe03_ep>; + }; + }; + }; + }; --=20 2.34.1 From nobody Fri Jul 24 05:23:08 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011021.outbound.protection.outlook.com [40.107.130.21]) (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 0FF763016EE; Thu, 23 Jul 2026 02:19:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.21 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784773185; cv=fail; b=IGbbOSzpNDuRvAgGZV88wAFNDwXN4X5lc8Aei8uNF2eN7GBOGIgcpPhkISjM6Ff1oTVTNLPELddEKyCqGJkd1NWqF673F4ofRpr+JYzgKRJd79HDkAewVxsQ7TPZ0imLbPjIHzqqMY9DSNfUi3gvWSk6SZW1FfHe0q34eCS1Y8M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784773185; c=relaxed/simple; bh=N3AtmAANtlkS09m55d2bOobWoIpUubGC/4hDoFuD+58=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=SeFu6kYPXdkZilCPqYaqTxmeMzLVgBg9FpyLjWAc+hTmQ6Dh2AHG1QPuBAfIl5jHYi7sz4huUcHwMwUnu2b2i1PserWevUbPQAsYvAGZMScFm/DlrexGLHld0Iy/jxZhBM09okhe9WtN6ml6V6Pn9NIqVoB1VNXwkh54fBhIkoc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=l1zRgOtG; arc=fail smtp.client-ip=40.107.130.21 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="l1zRgOtG" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=G0JDWG5+j6ruAr10IjV4Yo3NhYGU/IIhfYdXxGZQrQY6b2/PZ/25NTDjnHeVS3Uql0/6TNfAKKX1C80T7SUsep8Srh3OFFTiYkpFxsNOGnQfDv30q24LEuOBKErq7Czgn9HJ+beaVcZWBsZDKOV0HwgoLHpirFpNjut7MOH7Co/1nkc9yRVNBhFQMRLc76SwAuO4lefjgx65ekAjj2sC9bF4lHax4jUoYugyGqfnkbtcbNDu/7YB0KacaM8HQSCIfkXVGeOng/rRj9V7OQEK3tFRMlR5B7tX6JwTqc0chKYk0Ofgt4K3RoJmMFC84NayfsHKE5eOnnOa/OcnIL8sJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=qWZRFKKqtu5oiO5cFyFL3KD/Olr/VFR5kzTPGDjVHnY=; b=lN/toGqE43C7ZK6Mllz5PZALhm83XYLLEthHVaDyz5GFtlQPF5+/8xCYLhQmAFUIyWnd66mYzOO46X0gFq3mrqx3eiHcTzTUg43yzsRlEfsD1FLUQ9aZFcqFnj1avfVRFSdmYZ4q6fHagSJMNjKx+d14XRLU3VouZksRptfw1Bp8phbBOUMGX3tUDb1fRNpZhhTAOq8e9XUb0yCJyui04GSfbFPF2I+Sljk77i85GDhNdOYEDqPt8xIH7IuKn5yJ0zgPOW3A5fWbLhNWR8MKREnM9/eLVjvtCRVQDWoGKIMHrYeFNmREh+9g84Iyp/RdvpuT2jcuexXYw+qI4cwn/g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qWZRFKKqtu5oiO5cFyFL3KD/Olr/VFR5kzTPGDjVHnY=; b=l1zRgOtGaowwBQ43Dr4bI/tTkq5PihWa1zUpu+uTiZ57bqd0OkHF2+BOz4vHg4QTwRFFy8mgPyNk/ptFWGkfgHTJbNZpnvbFsNGDeGCGqg8Cbiy0OOGsC/B4rzZ4dSugwrzJWiZRxPKybmi3HqkbnNetNqqhFA+D5UeEpc3fMFe/9TzjFNNgWsdvynmXsATFok7pshgIV4aRdXxZRx2Ae9hqQ7aQeL/0+6lMHNxlqg99tj/N5E4MgTUAXm65ROLWpBwey9nqGQLPc+Dl7X5hJGXFBEEqSQi5dnEO+yVawLL8+/9vJbeZhZeJX2E2dmdDdT6B/KU41EFzXct1hYp+7A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PAXPR04MB9351.eurprd04.prod.outlook.com (2603:10a6:102:2b6::17) by DU0PR04MB9252.eurprd04.prod.outlook.com (2603:10a6:10:353::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.10; Thu, 23 Jul 2026 02:19:40 +0000 Received: from PAXPR04MB9351.eurprd04.prod.outlook.com ([fe80::1058:a430:52c1:5aa]) by PAXPR04MB9351.eurprd04.prod.outlook.com ([fe80::1058:a430:52c1:5aa%6]) with mapi id 15.21.0245.009; Thu, 23 Jul 2026 02:19:40 +0000 From: shengjiu.wang@oss.nxp.com To: lgirdwood@gmail.com, broonie@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, Frank.Li@nxp.com, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, shawnguo@kernel.org, linux-sound@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, shengjiu.wang@gmail.com, Xiubo.Lee@gmail.com, nicoleotsuka@gmail.com, perex@perex.cz, tiwai@suse.com, linuxppc-dev@lists.ozlabs.org Cc: Shengjiu Wang Subject: [PATCH v2 3/5] ASoC: fsl_asrc/fsl_easrc: move DMA params into pair/context struct Date: Thu, 23 Jul 2026 10:23:11 +0800 Message-Id: <20260723022313.1905051-4-shengjiu.wang@oss.nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260723022313.1905051-1-shengjiu.wang@oss.nxp.com> References: <20260723022313.1905051-1-shengjiu.wang@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: PNYP287CA0091.INDP287.PROD.OUTLOOK.COM (2603:1096:c01:2b8::11) To PAXPR04MB9351.eurprd04.prod.outlook.com (2603:10a6:102:2b6::17) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9351:EE_|DU0PR04MB9252:EE_ X-MS-Office365-Filtering-Correlation-Id: 9565db22-7a35-48fb-9b99-08dee860d9fd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|23010399003|19092799006|1800799024|366016|921020|6133799003|56012099006|11063799006|10067099003|18002099003|22082099003|3023799007; X-Microsoft-Antispam-Message-Info: lw/2Jjkr9yukgXsEObr2gjDyokUZfyBt5Khs2vFDT27IzXHSPR0NC9AexbRqIEIr8ioG5j0ZigsDrYjGFO1Db/c5eC6nmXzo0FCRkonx7c5lm/Q+y9w1ay7Hf/M3OexmajD2ug1L4R9Gt6aFlBI0zwGL6uiGoXzrT+5tP4L7cEt4g2iNqJS9WLAGcMyGlOyAuGUbVVY9YxqyLWSYCATaMoGVrFziIcKwteaW8GaTStN+yVNRvdgOdnzkUm+OmcgYdiLalmhLut8LrvcNJqyRS28xxQSOB0//960PG3IWR0JDcdQHAR0zbDNINiw7//AhITGUeR8izepR17NX8QrZKIKAa+UKKwrqFq+kBGun8ibKWCJP85QHDGWDFtu+61iQI9bLkwhaDnURIveYfr6AyL/FDhRtKlAHMbDVs2tAZ9095Ig2ZjelEKakY9drdGEmXN7+qFNXqnP2WSpdMhtnX0/9Vf1Bf59TtbrHUKCaDueNd676ieqfgtYwX/ZGx8OV28EkwfsQNii7441ZXvGP+/4tWMQMULTez0gbw/4mjkluzW++2d4IIyldmO5oTs+zSF54pLpWsSY+MRjI1BTE7VV0ilVOhfd+EhuGsmnZ7vHyBL6Y3ypz/Cgac4VzVcYjvkwSDY0KVPqoVr44Cz82gplFRecVDZeknVa6IEQV4iXwFO4KMmHxrIY9hUvG4AywnpVH8Z0nax9JBs9EumjtCA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9351.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(23010399003)(19092799006)(1800799024)(366016)(921020)(6133799003)(56012099006)(11063799006)(10067099003)(18002099003)(22082099003)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Uuj2xD6EeoDTT4mf41G6LgrMOySbg/oipzRarNBE+zhK15cJTojtCBWCIP4t?= =?us-ascii?Q?AjaTLjgXfWDRzVEzl3VFrdJ1t27a/X2BC9Zyd4nMWPYCbpeV2M2b8TlLqRIW?= =?us-ascii?Q?L1pQyAIndtM1YP0oaoSrVf5RZo38qViprZwv11n5sVZQROg0mJRkIwfkeGuU?= =?us-ascii?Q?jn1v6LcEB2X5dHEDGZtedwP207Pj2f42v31iJCt9rqIJOqhOMAjO6mT9aLWC?= =?us-ascii?Q?4P4vtlX+wMgkdIYPWYJ+Tbls86uH2980QR+VCG+T7uPLEHKQp6WvDS8alHti?= =?us-ascii?Q?lN2KQXn5STy9q04AuW0MFmyD4s9158dk5Ayb39UvQg9gBiWOvIJOAiu0lPc5?= =?us-ascii?Q?BQN+fnt3AmCB7urf1Ar8FvrMUxnnn0ROnUpAM701tihWiGvb4R7njDTzl08o?= =?us-ascii?Q?qalaUdpKPzOySVM6Wbme0kbn2tW4BgfWAeqAIB2tmj9AQPf5C1wUON7CGern?= =?us-ascii?Q?81WFmgGgNuJ7HQaM4OVZn7WbANe8MgOsSiptPhOxRM6JL4VyKASOjieu6mAq?= =?us-ascii?Q?AVjySVLiUIx7KoMoX1pL0hU4RvtXufYhAMEQKr5AAiWnzLAz8u8sKpcRY8Rw?= =?us-ascii?Q?Neu5dZvbvMUM9oguMu25drLncGjj0DIJ1z8acR/n90dZnmGzR6aLMH2J4CqF?= =?us-ascii?Q?+h57B+tnSacYe7xbkxeDnz7lO+zE4ZJ9NXbeN3SDaYZrvirGY4lj+aJKdmFJ?= =?us-ascii?Q?2A1DWC0A/gEaOM+yO2o6/4N19yww4CxOhP5Bs6cPqHq8avyBkeG5G91/1eKJ?= =?us-ascii?Q?4/prytABjGG8prfispOSsPF1wlHsvmrP8/tPHw2VyJmxQqVw3k/0KhaAWYws?= =?us-ascii?Q?HwSscWCWa+gGr6Hc/Gkx2gjEoUI8QER+8xgcSUHEJrjoKwCbmQ2B0RhR0Oio?= =?us-ascii?Q?a47wJUl36o/EFCbBwigKVDKg8lTSRlZ49tScz1tzIOtjXt0PkxKD82H5n/pm?= =?us-ascii?Q?DAZfxk4GFVDo7XrvG2tY1CwSFCzARlGfRqLhV3XkNN8G327Ybf+PP0mwirDr?= =?us-ascii?Q?37tl3/d03MAo1STNzRi4J52r1FPuicneJB13nkh2GxaKrjcYWO7cfYLW8s/e?= =?us-ascii?Q?Vvb/kWxcHA4ZU4NGt72cUZa/7kJh3lCHSuDy1WP+e3YqF64k879mk8loMmmt?= =?us-ascii?Q?RAh/wv1ioiqKan0dH0tSTsE3dP0sgyaqaTpr5wjBm/7RaNWFp915sHX305MW?= =?us-ascii?Q?fxL1GQt6GdFat+yqe1gTqcF8hW6/bNHQ5lNE2vvvZD/EHrZwUsv+WkgAs/0+?= =?us-ascii?Q?l3G5S7wmPz+H/0cfUdEfkViD8GW15MxbJCXXd3SYyBtl7DVvZ/oS2+a/Utyi?= =?us-ascii?Q?xopOYz7FLWoLywq01cEZPp7/um/7HWs1oSEgF4Ai8LRGII5N5FLXgGoqydZM?= =?us-ascii?Q?KhKDjGkcoN2mzEjjapCwr2g0w/i/tVrj5/S31k4zmkaAsCG5aFRUG1veD3PH?= =?us-ascii?Q?J8BohpzhMo8CVTqJzIE3470N3tbHXQcCdGWVXL9tqPIDA+mSYB3GFgVF1sk7?= =?us-ascii?Q?k3O9OLHBBeZVkQkJ+BHcFOcp7GHJCZETV4frFxq271n84nxjJfLJs2XHq+3Y?= =?us-ascii?Q?I745QYfxu+AAfOFF+RSg7xHjjRdrYPaY7OkXc8VDRMneh7aFJmR8Hxzn5xbv?= =?us-ascii?Q?CVZoNrYVnOFh85ZMUI/g2L8WUO3YHrx3QSkNPIfgbfiwGUBphHrFFuS1+W9c?= =?us-ascii?Q?Cl7Xde+xJgPl/Wz1Dw/T3XZcFm2pS/1twZwZ5DPRgm0p3RHWHMfDX5RuBLu+?= =?us-ascii?Q?NrIJXOkv3EZ/w3zJ9DJ5ZiJKfZ53QqCSolC6faY3NYA375f2YAyt?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9565db22-7a35-48fb-9b99-08dee860d9fd X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9351.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jul 2026 02:19:40.6075 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 2N49z0uj8ufaQzLjNPSmUD5ea8YEX3AMwYJMo4+JW5ke9mVFmu/lVqu1ylwFvaMIHVW+h44nFtTYGx8XUiDv3YyF0x3GCV8sZOfE70ZthVCsZ+kQdxO2t36ZLDwywDy6 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR04MB9252 Content-Type: text/plain; charset="utf-8" From: Shengjiu Wang The shared dma_params_tx/rx fields in struct fsl_asrc were a single instance written by every concurrent fsl_asrc_dma_hw_params() call. With multiple DAIs registered (one per pair/context), parallel stream open+hw_params races would corrupt addr and maxburst for all active streams. Fix by moving dma_params into struct fsl_asrc_pair so each pair owns its own copy. Initialise them in fsl_asrc_dma_startup() where the pair is allocated, which makes the per-DAI probe callbacks in fsl_asrc.c and fsl_easrc.c redundant; remove those as well. Signed-off-by: Shengjiu Wang --- sound/soc/fsl/fsl_asrc.c | 11 ----------- sound/soc/fsl/fsl_asrc_common.h | 7 +++---- sound/soc/fsl/fsl_asrc_dma.c | 14 ++++++++++++++ sound/soc/fsl/fsl_easrc.c | 11 ----------- 4 files changed, 17 insertions(+), 26 deletions(-) diff --git a/sound/soc/fsl/fsl_asrc.c b/sound/soc/fsl/fsl_asrc.c index 0b28bcfa47fe..986a2e26819a 100644 --- a/sound/soc/fsl/fsl_asrc.c +++ b/sound/soc/fsl/fsl_asrc.c @@ -781,18 +781,7 @@ static int fsl_asrc_dai_trigger(struct snd_pcm_substre= am *substream, int cmd, return 0; } =20 -static int fsl_asrc_dai_probe(struct snd_soc_dai *dai) -{ - struct fsl_asrc *asrc =3D snd_soc_dai_get_drvdata(dai); - - snd_soc_dai_init_dma_data(dai, &asrc->dma_params_tx, - &asrc->dma_params_rx); - - return 0; -} - static const struct snd_soc_dai_ops fsl_asrc_dai_ops =3D { - .probe =3D fsl_asrc_dai_probe, .startup =3D fsl_asrc_dai_startup, .hw_params =3D fsl_asrc_dai_hw_params, .hw_free =3D fsl_asrc_dai_hw_free, diff --git a/sound/soc/fsl/fsl_asrc_common.h b/sound/soc/fsl/fsl_asrc_commo= n.h index c8a1a2b5915d..4e6b00cb5d63 100644 --- a/sound/soc/fsl/fsl_asrc_common.h +++ b/sound/soc/fsl/fsl_asrc_common.h @@ -53,6 +53,7 @@ struct fsl_asrc_m2m_cap { * @dma_data: private dma data * @pos: hardware pointer position * @req_dma_chan: flag to release dev_to_dev chan + * @dma_params: DMA parameters for transmit/receive channel * @private: pair private area * @complete: dma task complete * @sample_format: format of m2m @@ -76,6 +77,8 @@ struct fsl_asrc_pair { unsigned int pos; bool req_dma_chan; =20 + struct snd_dmaengine_dai_dma_data dma_params; + void *private; =20 /* used for m2m */ @@ -92,8 +95,6 @@ struct fsl_asrc_pair { /** * fsl_asrc: ASRC common data * - * @dma_params_rx: DMA parameters for receive channel - * @dma_params_tx: DMA parameters for transmit channel * @pdev: platform device pointer * @regmap: regmap handler * @paddr: physical address to the base address of registers @@ -128,8 +129,6 @@ struct fsl_asrc_pair { * @private: private data structure */ struct fsl_asrc { - struct snd_dmaengine_dai_dma_data dma_params_rx; - struct snd_dmaengine_dai_dma_data dma_params_tx; struct platform_device *pdev; struct regmap *regmap; unsigned long paddr; diff --git a/sound/soc/fsl/fsl_asrc_dma.c b/sound/soc/fsl/fsl_asrc_dma.c index 38f2b7c63133..64d66420e7ad 100644 --- a/sound/soc/fsl/fsl_asrc_dma.c +++ b/sound/soc/fsl/fsl_asrc_dma.c @@ -390,6 +390,20 @@ static int fsl_asrc_dma_startup(struct snd_soc_compone= nt *component, =20 runtime->private_data =3D pair; =20 + /* + * Point the cpu DAI dma_data at the per-pair params so that + * concurrent hw_params calls on different pairs each write to + * their own struct and do not race on addr/maxburst. Use the + * per-direction setters so that a concurrent open of the other + * direction on the same DAI does not NULL out its pointer. + */ + if (tx) + snd_soc_dai_dma_data_set_playback(snd_soc_rtd_to_cpu(rtd, 0), + &pair->dma_params); + else + snd_soc_dai_dma_data_set_capture(snd_soc_rtd_to_cpu(rtd, 0), + &pair->dma_params); + /* Request a dummy pair, which will be released later. * Request pair function needs channel num as input, for this * dummy pair, we just request "1" channel temporarily. diff --git a/sound/soc/fsl/fsl_easrc.c b/sound/soc/fsl/fsl_easrc.c index edfd943197a0..e68f6cbdd653 100644 --- a/sound/soc/fsl/fsl_easrc.c +++ b/sound/soc/fsl/fsl_easrc.c @@ -1582,18 +1582,7 @@ static int fsl_easrc_hw_free(struct snd_pcm_substrea= m *substream, return 0; } =20 -static int fsl_easrc_dai_probe(struct snd_soc_dai *cpu_dai) -{ - struct fsl_asrc *easrc =3D dev_get_drvdata(cpu_dai->dev); - - snd_soc_dai_init_dma_data(cpu_dai, - &easrc->dma_params_tx, - &easrc->dma_params_rx); - return 0; -} - static const struct snd_soc_dai_ops fsl_easrc_dai_ops =3D { - .probe =3D fsl_easrc_dai_probe, .startup =3D fsl_easrc_startup, .trigger =3D fsl_easrc_trigger, .hw_params =3D fsl_easrc_hw_params, --=20 2.34.1 From nobody Fri Jul 24 05:23:08 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011063.outbound.protection.outlook.com [52.101.70.63]) (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 37FC330F924; Thu, 23 Jul 2026 02:19:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.63 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784773192; cv=fail; b=jqNzQQodD6kSIUmy4Gu/MtDhPl1u1MJgSmDxUkyNcji6uMJ0nLlzWRpFYM/tDYmve+BU7OJMrClcIo0dXtT/LEZi9/NxVKcVp+/y8WzDLwB8CAowefiay9old5s6nGCbTac5W7cSmQGPxlb3UQLQRzZHVmux3aNVGANRj7Qew9c= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784773192; c=relaxed/simple; bh=5SUGZJigEIVhS++LmDVqaexbYhYieGUN8AX4y0VYk2A=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=f1vy41QITBd9Eskt67xDjPPY1l/vLm6sxMQdPUiFOj8MoHwl+2cLY/Hy9SeHiMWOPQII+Mm3Sk04ZsphkBzxkG5M8V6gQ7/Fd3s9AjiDLYpVAMHI59rLVfHetxsZ52stfzsZ7FJ8rmfP/SgNBzyT/wyUTtUZilvMmlXHEv7unBY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=MupXsH6B; arc=fail smtp.client-ip=52.101.70.63 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="MupXsH6B" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fAuYQCf/0rv6hxRf9cKYceBBzdllhzQyB7FvL2XxzkpbxLCeTQ1RLiEUkOebQ5wmZuUSq5DhO1kH1HA1ztv7yJRkGtDE7yBAntrxZ4zsrzu+h9FfCU9JOpXWXaAD00Mul4Gge+3qUroghtcbEm9VMWLxqGEmvyu/R3ScANl61SgCwbEWojqXDRuZfGY/YOL86YcreAcV/zhXWz+ZMFINuUqZnEDV1Zr/Yqlozx0Chg1gEtQtTu05xPwFyjikzBFPRew1hzPv5dN6Bmxcnuow5lQEpgRiv0pBb50ydV6fKxxc378tC7H0j6la90X5mBG2ijFoQCTbNv5T7B0cDr2m9g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=gmMJi99JFX7mEi8VLEMcVPjrqji9FJUb1DFUKo4RIXw=; b=RpYdGUEYm+I0TyzsEv1IlBzUxkPG3S0VXTDzjfyaLsMR8BftKBKgVAqZPzEKe4DdUoIIsH6jvB0ppGwORrK1NeIkrRrKZTfKT4JSstVhmlN0iMLGqGVA5jqggDBfMfWuF15yWrcrhW+NDXH96k76gCgaAWRYKnqLNsxA3Otnq63vOks1uk8bpaPo3bBGzuFra51txtIn0pLzjWogMJdi6dnLuGIZMbMpyufzuE41+T0svnnLlePdmiuKeBRE38QftlU5N14NF+2Q6I0UQ38LOwZYEYM1tNN3giAZ05lxjTrNg6I2GmJHSmAyErjnIMkZ5L4GjRIN2rRF9noX65rYBg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gmMJi99JFX7mEi8VLEMcVPjrqji9FJUb1DFUKo4RIXw=; b=MupXsH6BN62q60gadK7hBqu2Ije3OjXOmMhYd2HE7rlmH/7dhOBexFScDx+MN92wBmypCPZyTSDh/0Qdsp+cOGH/qs3Vhy8uALs3LkcO4QMKYHsP+imYKrR9o6p0z5JPuMVOHkZuvsEC10OFDXZoi2LSU2+nNs7Rwe5AQD+BdzLTapr4CL34BlwYhFS+QC/USTnnbYRDzYO05ZavDCk+lDJ3cPWp2B6My+sh95g3HgKB1DFfiBI1PHPF24eQjN29QFseOEO1VS1eodsAHrAOz3s2HuEYHXK1X4dAwXCqA/Oe+v3tx4Lxbxq8/MEPRVjURdRBzsvN7tlW7wkrW5n5Rw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PAXPR04MB9351.eurprd04.prod.outlook.com (2603:10a6:102:2b6::17) by DU0PR04MB9252.eurprd04.prod.outlook.com (2603:10a6:10:353::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.10; Thu, 23 Jul 2026 02:19:48 +0000 Received: from PAXPR04MB9351.eurprd04.prod.outlook.com ([fe80::1058:a430:52c1:5aa]) by PAXPR04MB9351.eurprd04.prod.outlook.com ([fe80::1058:a430:52c1:5aa%6]) with mapi id 15.21.0245.009; Thu, 23 Jul 2026 02:19:48 +0000 From: shengjiu.wang@oss.nxp.com To: lgirdwood@gmail.com, broonie@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, Frank.Li@nxp.com, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, shawnguo@kernel.org, linux-sound@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, shengjiu.wang@gmail.com, Xiubo.Lee@gmail.com, nicoleotsuka@gmail.com, perex@perex.cz, tiwai@suse.com, linuxppc-dev@lists.ozlabs.org Cc: Shengjiu Wang Subject: [PATCH v2 4/5] ASoC: fsl_asrc: expose individual DAIs per conversion path Date: Thu, 23 Jul 2026 10:23:12 +0800 Message-Id: <20260723022313.1905051-5-shengjiu.wang@oss.nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260723022313.1905051-1-shengjiu.wang@oss.nxp.com> References: <20260723022313.1905051-1-shengjiu.wang@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: KU0P306CA0100.MYSP306.PROD.OUTLOOK.COM (2603:1096:d10:22::7) To PAXPR04MB9351.eurprd04.prod.outlook.com (2603:10a6:102:2b6::17) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9351:EE_|DU0PR04MB9252:EE_ X-MS-Office365-Filtering-Correlation-Id: 9b0161e5-f340-4c08-241a-08dee860de88 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|23010399003|19092799006|1800799024|366016|921020|6133799003|56012099006|11063799006|10067099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: SxTrrXVZ/5K7f3yG4im5sWroupOj/mzxXQpC9yCVRK/FIBxzDGf8za+N409uzjP1khUKeHNV/+FfTjulxJNu82IwOa0k/gNEL7b4JMUmqIYdnV1QLnnK9iam0uCP/dT1V7HzI0fVed09QDAzB1m2qrO2m9XvPAzvoDW71otVOxygGX5gBtgyaxtx4fabz1zi86QMCzWErHKwbYtwb6YDfvl2s6PijN0a9/4fgcYoczBfCwoHfHZtQlAIc/4lPaaUxc43ySZJ2HZ2HjKtrsin6/Qwodbng4e9CL1kGkHYXi27nklzZ3FaXlxkiNZT8aeCMYp9/n5CELU1Hz7Rcgzl3tFd4n7t/9+8pKpeCYhfafkBsdICFqimbWV1sW9kDGqK/EkHYAz1ppI2ft9A4pTDjQZdivYRGVK9sL38cT6qlnQu5djVksV74Q5+gUD97Ygu2M6K2r8RBu8Sj/i3FlHhpZ/6Eohh90/kEvlvLZu2Ez956JEbp3pruIJSQzPpFV/ZEeKeA8PkgGzhsx3HvKytgTSRfT9vPRIa2pC0BaPPJUo/nbRuqZn4yuQM9SrCYWlg7JU5N1Ra/Ylny/oUtwNy/C9PVrN6NY9fIYb+ROUB1gnhnbXofVKHg+aHviDoXD0j7gBhjo6xSZeEb0yF9t57Fhvt/Rcw0r/bGM/+AKSQGdVBEyhtSqAI7KVB6rkHX2hfotfQbPzLdCyu3y0ZK78I9g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9351.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(23010399003)(19092799006)(1800799024)(366016)(921020)(6133799003)(56012099006)(11063799006)(10067099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?HYzf1KaI9T90QxEoUg1NqRbjFS0Xstx9mlhNjXUSdtsMWAKt8v/v9kGip+Zm?= =?us-ascii?Q?gy4DE+wuEplfv1t7OpR0xeXjp84+3ViK65JWp6j6oM0N3380M4D8bXT+fsga?= =?us-ascii?Q?R34NnwHZ4kU/llM4WTu6UFcqr6kR1LSeoGflL0IYouEGNhXC7YVcS7zjfe9P?= =?us-ascii?Q?jC4Jvdn9YgTVDwlSmKsuBLrCwfHWf2iWiv0ZyCYe87rfu2BJ9bEyBEF9Vvlg?= =?us-ascii?Q?RWYhetQaZu1b/x9dBuJyjG0XaDk5YLeadNsjWtdALry0hbA4iMRr2KqF6KKU?= =?us-ascii?Q?ZeuXs/wiOhG6huNEhdlOrFA+5BzUJ8TSt6YrApQXggHz5yszhVHXvyMANg98?= =?us-ascii?Q?tVn2RgMAe0CsU5vYKnyjbKfNLREJJH8/fhnG5PZCWZRMMS2h9FrCWaH8Wj93?= =?us-ascii?Q?H35G7CNYAWRMUtJfiYcwyrJQUFLFFuuz5TGAUkNtAJnhp4mEMNoIe9PcvaLR?= =?us-ascii?Q?Hatcknm0eZHWwcv37MWOmZu2oBU0gc6d1nJxwmD7BPU889tFpz3V6+zy6gg5?= =?us-ascii?Q?T29BhQ1LgN61ZQND3M31MdjO2th3hHN3WJvZ/K8Jk84aH90/5qIdBhGUnQ4z?= =?us-ascii?Q?uVewcYZWF4r5vQj8jsObOcbBSsVifjAH+w2icdmJkbXlefZ5ZrIFOs0ojmHn?= =?us-ascii?Q?G/V7QE9WuIpM/oXOmoWiencfsznMI+rgbjzbtF4JXXtqI4+lxX/aa9DNx6R6?= =?us-ascii?Q?oExLCb4kReyVujWegfk9q1N0TffgPf07NrnJrHu+tmofHpL4llj6F08d/p8V?= =?us-ascii?Q?VeILriTsPjq0PLDgpx/gzmnXMIZ7rF0PfRoMzxc1k6wUfc3s6Pbe7a1uKtxg?= =?us-ascii?Q?Z/51nCaIbP86B6jq+Z0X/CJO4Fko7ky5sxbZnihofm1/t/85+cRidq2b0nO1?= =?us-ascii?Q?Wi7z+db2qa+8Syf5dvY07uwSEkxHe124Z7g8zsp7c5zShRZQPPqD1uX1B7g3?= =?us-ascii?Q?Xl2S4BLU9BEPbPCh5T+cM8ipV98fswvIfquN0r69BdHfzZ9ocos9ogBbH1RM?= =?us-ascii?Q?71a5Ad1Et4GLa06FyGL/U//8H+3jD67fJKKNwhlwZA5g+1po+mjTKvNSy/eU?= =?us-ascii?Q?/w/4/IsyHShq3iCOuOjpL8H0elqoQWjUl+F2MkQ64rN55q3nb/hJYC9HGb7l?= =?us-ascii?Q?kn5lcyNTDGFkTF49PAJvFYL2PtHlK2uj9pyTHIU/sVp2BFSZxQXqZMdzi1vZ?= =?us-ascii?Q?L2LrPWx1wN9i7d5/homGXCvEBbx5CwNEzycoKuN1nmq9RYL28kNl8rogRmS7?= =?us-ascii?Q?r2Im7xcFZwnOjohcFAtjs8agpLin10ax5ciHpZ265ueHorsXnGdepAYY6I8A?= =?us-ascii?Q?a3VgTFdTsL4JAnmAnaOsysFkDPh005cC2HZDvMlZ3w0gwNy80mb/1Y52Mhyf?= =?us-ascii?Q?2km+ZFE1LfF31Q3vnvklijSzS5m+/2laGlkI89A05GltrJ5S3l6rx2RHXOpg?= =?us-ascii?Q?IDCy/TLfNEaC6a3RmSP9CGDKZTpP2D154d2g4J9Xi2W5xgOMF+xAq5y2u7sc?= =?us-ascii?Q?hKumx0YALXIWUYHMKtfRNA9g8PC+/A0+lk/FSqly0/97GuxAFmV7WhKHm6e4?= =?us-ascii?Q?/P/E901dpVIHbdJ82JxHHIBSU/A28N7R3q5mnXuYkaK3BOv2zaJ1plmkxHbQ?= =?us-ascii?Q?pk92WYBpcjNQFrBTK30xlNZzv0vOMFLS+r5p93fa/VazyqLx2gibaTpWA8ci?= =?us-ascii?Q?ZdQ9hz38bFk9vk5ZS7+X86Kj74YAvT2kaJySRahJgHFSMqQk8E0I4OR5bPIb?= =?us-ascii?Q?ofEXq/ASNONrVKzRjeu8lMnVrj8hNOFotbkzIQMaQPaw1VHmEldo?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9b0161e5-f340-4c08-241a-08dee860de88 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9351.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jul 2026 02:19:48.2244 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: wD/W+4JwOJCDYKnyb+DgX5aQpAhoHJGV9otZfvghFsnUkTHmfwudFJoO2rqSQeuwz1DKZVhUnSCRfj+M+VpKxMHP6hIyVmy2qo/qR4wgL2sWXRyc37TGUB3EdBFrrIaO X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR04MB9252 Content-Type: text/plain; charset="utf-8" From: Shengjiu Wang The i.MX ASRC hardware supports three independent conversion pairs (A, B, C). The driver previously registered a single DAI with generic stream names "ASRC-Playback" and "ASRC-Capture", which prevents multiple independent conversion paths from being used simultaneously. Replace the single fsl_asrc_dai instance with an array of three DAI drivers to allow up to three independent conversion paths to be active at the same time: asrc-0 -- ASRC-Playback / ASRC-Capture (backward compatible) asrc-1 -- ASRC1-Playback / ASRC1-Capture asrc-2 -- ASRC2-Playback / ASRC2-Capture asrc-0 retains the original generic stream names to preserve backward compatibility with existing machine drivers and board configurations. Each DAI retains the same channel, rate and format capabilities as the original. Update the devm_snd_soc_register_component() call to register all three DAIs. Signed-off-by: Shengjiu Wang --- sound/soc/fsl/fsl_asrc.c | 89 +++++++++++++++++++++++++++++++--------- 1 file changed, 69 insertions(+), 20 deletions(-) diff --git a/sound/soc/fsl/fsl_asrc.c b/sound/soc/fsl/fsl_asrc.c index 986a2e26819a..4cb24b8de462 100644 --- a/sound/soc/fsl/fsl_asrc.c +++ b/sound/soc/fsl/fsl_asrc.c @@ -792,27 +792,76 @@ static const struct snd_soc_dai_ops fsl_asrc_dai_ops = =3D { SNDRV_PCM_FMTBIT_S16_LE | \ SNDRV_PCM_FMTBIT_S24_3LE) =20 -static struct snd_soc_dai_driver fsl_asrc_dai =3D { - .playback =3D { - .stream_name =3D "ASRC-Playback", - .channels_min =3D 1, - .channels_max =3D 10, - .rate_min =3D 5512, - .rate_max =3D 192000, - .rates =3D SNDRV_PCM_RATE_KNOT, - .formats =3D FSL_ASRC_FORMATS | - SNDRV_PCM_FMTBIT_S8, +static struct snd_soc_dai_driver fsl_asrc_dai[] =3D { + { + .name =3D "asrc-0", + .playback =3D { + .stream_name =3D "ASRC-Playback", + .channels_min =3D 1, + .channels_max =3D 10, + .rate_min =3D 5512, + .rate_max =3D 192000, + .rates =3D SNDRV_PCM_RATE_KNOT, + .formats =3D FSL_ASRC_FORMATS | + SNDRV_PCM_FMTBIT_S8, + }, + .capture =3D { + .stream_name =3D "ASRC-Capture", + .channels_min =3D 1, + .channels_max =3D 10, + .rate_min =3D 5512, + .rate_max =3D 192000, + .rates =3D SNDRV_PCM_RATE_KNOT, + .formats =3D FSL_ASRC_FORMATS, + }, + .ops =3D &fsl_asrc_dai_ops, + }, + { + .name =3D "asrc-1", + .playback =3D { + .stream_name =3D "ASRC1-Playback", + .channels_min =3D 1, + .channels_max =3D 10, + .rate_min =3D 5512, + .rate_max =3D 192000, + .rates =3D SNDRV_PCM_RATE_KNOT, + .formats =3D FSL_ASRC_FORMATS | + SNDRV_PCM_FMTBIT_S8, + }, + .capture =3D { + .stream_name =3D "ASRC1-Capture", + .channels_min =3D 1, + .channels_max =3D 10, + .rate_min =3D 5512, + .rate_max =3D 192000, + .rates =3D SNDRV_PCM_RATE_KNOT, + .formats =3D FSL_ASRC_FORMATS, + }, + .ops =3D &fsl_asrc_dai_ops, }, - .capture =3D { - .stream_name =3D "ASRC-Capture", - .channels_min =3D 1, - .channels_max =3D 10, - .rate_min =3D 5512, - .rate_max =3D 192000, - .rates =3D SNDRV_PCM_RATE_KNOT, - .formats =3D FSL_ASRC_FORMATS, + { + .name =3D "asrc-2", + .playback =3D { + .stream_name =3D "ASRC2-Playback", + .channels_min =3D 1, + .channels_max =3D 10, + .rate_min =3D 5512, + .rate_max =3D 192000, + .rates =3D SNDRV_PCM_RATE_KNOT, + .formats =3D FSL_ASRC_FORMATS | + SNDRV_PCM_FMTBIT_S8, + }, + .capture =3D { + .stream_name =3D "ASRC2-Capture", + .channels_min =3D 1, + .channels_max =3D 10, + .rate_min =3D 5512, + .rate_max =3D 192000, + .rates =3D SNDRV_PCM_RATE_KNOT, + .formats =3D FSL_ASRC_FORMATS, + }, + .ops =3D &fsl_asrc_dai_ops, }, - .ops =3D &fsl_asrc_dai_ops, }; =20 static bool fsl_asrc_readable_reg(struct device *dev, unsigned int reg) @@ -1393,7 +1442,7 @@ static int fsl_asrc_probe(struct platform_device *pde= v) goto err_pm_get_sync; =20 ret =3D devm_snd_soc_register_component(&pdev->dev, &fsl_asrc_component, - &fsl_asrc_dai, 1); + fsl_asrc_dai, ARRAY_SIZE(fsl_asrc_dai)); if (ret) { dev_err(&pdev->dev, "failed to register ASoC DAI\n"); goto err_pm_get_sync; --=20 2.34.1 From nobody Fri Jul 24 05:23:08 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011023.outbound.protection.outlook.com [52.101.70.23]) (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 46695342538; Thu, 23 Jul 2026 02:19:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784773200; cv=fail; b=BxhMEC/vWMM0cKAmPU34f1MeeMbtoVLtITuOklR9SyPbJiPG6py9i8FqgtHpa6R5tjE/+Ft+gfg2rJMun5vKVEIm1hPcU877vSyKp9Z+StQ493Caf+rmqOj52R5rslL2ZkdRUZWLycX8dRAvA40+002eQNDX8NT7YgyGEAG0Gn4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784773200; c=relaxed/simple; bh=bZh34oFqIh4MvbHgvoOlnpPQ6EvKxMRasqUzeEASFrY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=JRTsiJORxoXLrnAXinEvxq9WBmChgAcfNBXN4DLMGasybq9Jm9/a1lgcqQL+a1b7Zls/2+1f0YUIPI1mj3ENRce3ywNK4RCdh+o+lQDIFVg+oBFHiN3h5+wo81ecoltVKbrWTjeBxf4pDbwG8+cva1udaI6iLiWZ2z9kUIEiKPs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=F2zpgrwS; arc=fail smtp.client-ip=52.101.70.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="F2zpgrwS" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gKtLFg96qOW4LczZK5A4sQVss3mmLB6ogBgUV0ekSrE3ot6TGDoKsnkqcqry3R3s77qWEK3UBkez25gOQxCVlxMkMyObqgox5dMapvC0I/fnR2G67E2QVsNsKd5iD9eky73WUo8vFnqQ6/Aa3D0VerZuOV2HiVo44KmZsn2Z5gV6LThuod4KyOLfZ2ZcJEf1rTkQXdc3PQlol6SmNP7l9EO/tE+99mESrytpRhYCiUetnWOBMaV9+mWWut30Nmkd/wXvTHIgAIj6q0r84KeY0xDvgyKTFZ8nGoQcNsfEmqYjYmvrDVwtfOuWO99+G9xx/HS6qlWzhfHeJBiqBGsSiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=gwzohd4gnzgydc8pnQ27HyzZf77uVO8FACmnw7IqlZU=; b=beOhpqxwfELwTW9h01rQX0YIToQO8YX5/xKeKotAddfP0eRUj5ZxXshHdUKVAmEN9FkDm0w1hik3kwTC4YqI1bBVkACLD405cYxnqoP1Ar1CL68KOChDuCmrRuerpOFLM8wnhJ8CS9uYuY3ktzvTZOvwCtrSEP13Gi0GPN6aaXLCs2Ok29107MwewZTLmf/K0V8hEaazEhNlgiq05eJHXdhiBnUKQm/wKKgFKuLknsE/KvajpiwXH2W4kmihnupWz8RlZei85twi8eYMDmSvDLxHBdTYLj+L6TabNiUkKeXXULC9jBCaT55wm0O5rCI5/6NFCd+RpYGuIu9mFM1ZGA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gwzohd4gnzgydc8pnQ27HyzZf77uVO8FACmnw7IqlZU=; b=F2zpgrwSth64kdiL0tghylsbPqNf5nAaTbx3OLnSjG6WLuCIdnJbx1F5cH/j/j97YxpCBGzHYW56snZeL6FCIGQ93aUecNtoU3czXAnoIuJMHGH8AlQBatRStvbhjg89MqkokUbwfMX5XuHNErKz+D2lxJVux/EL69OmSjzunKbmKLYuaY6l2W1UwlNyPfb7qG55L485NZxbUpYrSWjuPsFEuOUebwz70NxFetDjft0D2iEEuv3tMsdmT4VECeFOzEC9XZxljlWPm3kFXw30Dn1+Pnc4y4ydJ2CHtf8kn/vX+kIxUFbLEny0mBQJva+DgBjrnNiGhvpnKth+YMdbcQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PAXPR04MB9351.eurprd04.prod.outlook.com (2603:10a6:102:2b6::17) by DU0PR04MB9252.eurprd04.prod.outlook.com (2603:10a6:10:353::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.10; Thu, 23 Jul 2026 02:19:56 +0000 Received: from PAXPR04MB9351.eurprd04.prod.outlook.com ([fe80::1058:a430:52c1:5aa]) by PAXPR04MB9351.eurprd04.prod.outlook.com ([fe80::1058:a430:52c1:5aa%6]) with mapi id 15.21.0245.009; Thu, 23 Jul 2026 02:19:55 +0000 From: shengjiu.wang@oss.nxp.com To: lgirdwood@gmail.com, broonie@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, Frank.Li@nxp.com, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, shawnguo@kernel.org, linux-sound@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, shengjiu.wang@gmail.com, Xiubo.Lee@gmail.com, nicoleotsuka@gmail.com, perex@perex.cz, tiwai@suse.com, linuxppc-dev@lists.ozlabs.org Cc: Shengjiu Wang Subject: [PATCH v2 5/5] ASoC: fsl_easrc: expose individual DAIs per conversion path Date: Thu, 23 Jul 2026 10:23:13 +0800 Message-Id: <20260723022313.1905051-6-shengjiu.wang@oss.nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260723022313.1905051-1-shengjiu.wang@oss.nxp.com> References: <20260723022313.1905051-1-shengjiu.wang@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MA5P287CA0141.INDP287.PROD.OUTLOOK.COM (2603:1096:a01:1d2::6) To PAXPR04MB9351.eurprd04.prod.outlook.com (2603:10a6:102:2b6::17) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9351:EE_|DU0PR04MB9252:EE_ X-MS-Office365-Filtering-Correlation-Id: 87156165-146a-4887-15a9-08dee860e303 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|23010399003|19092799006|1800799024|366016|921020|6133799003|56012099006|11063799006|10067099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 5cegR5ddw3b2VdZRONhKF4uRifJ10vGTPTcSzUq0LJl83m/JpB8jbQvDW4vdFQ8BnFvU0cczUTXiRqqMnKjlC/bzB2/cQxZlogGzjRqhb5uB9Lo3KyPlddnWLFObZsbgVEg2wR8zyCLo2sKIK4cr77SYGb7GVor/Y+2PmKb6RvbRDBBFI8tNLh7JuAR7knHj05mHSkAIlnaZBzVRz3bo0oBL6Eb/akyEVUC6IghfJyK5LDUxu4Vi6EWYnOnbYvrcbmDN8EySNAdOruKdDkKmwSDvkh+Ck8NGFCi8aXgtEyCMxBgoRJTv90bYgZ1saHixKK/IMycvsw3mLQS9qNLcJ2iDa3UkJMjOSKrSuCHN8zwCXJcQTtJNo60TUSO1uOtj8yRvaMese3OdkSxsN5YS3rvuCgEZV7hR4GRuw56tkXBRj66LlY3AinWWkmieq+PlR7bf8rtCsNuDAiBuHoLDdpqYVGpoKj4A/mnpfPRKV6NWZuXXdutnQymULMYbokS892hOA9jva0h2AulCJjLfBHK/nyKj5chJund0mRlGZ2I9Oa2XRnkZN+c+HF+b4+kF0iNsLgJSEz1CzfPRFQr7d7jc3AkW5ZSJbNh1KStPVp6fw2mL4PcxvWK1C3GiUWcDdlAhfdHpc0YTt2OXMLeGYRfh+Ueche0g7euncKbCvBegcuN6dwUaPsqOHwAR6PDrqeinv3aH5rSCzeZqcKZTYg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9351.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(23010399003)(19092799006)(1800799024)(366016)(921020)(6133799003)(56012099006)(11063799006)(10067099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?NttoXwrSW7xEzo3bfKTCC/LnzDLGDhBzPd42aneiCDL4zemNJkIRKT0esgLC?= =?us-ascii?Q?nwAVg/u5zzF7JlGHYRmo5zth4s69WUHJk/zR2VoRnP/FYC4WAY8Aqr9+Yj/z?= =?us-ascii?Q?HU0awkClh2Fo/snYkqFdIDT4J48SNP5pI13XN4HBqzKfbYxvQUC/cwrRa4/+?= =?us-ascii?Q?q2gal+uQfeKB8R/6hMA1SvWO2n6XfhpO4pOLxd3r3m6Dx57qpDbJ5Vd/Vi4+?= =?us-ascii?Q?hVo+dTyczQgmNCN9LE8e0MvSlfkNiPeYKD2xcbPOQaq4LIaDOXW4wNi9DAHu?= =?us-ascii?Q?/6VwViuUxQspWkuN9bsPPzn1LZWzitSS0H7bggC08nixrcobF2q4ELZslqNJ?= =?us-ascii?Q?GRMkl0u5jBBjF6FPXHpqssQZLSE0Qe3UvHnIERt4+L79zly++PpJbiq3AxEl?= =?us-ascii?Q?h66P/2pK+l1yGuvbW/Wezi4APLCfU6Zp473kPYa4ePZEyZVte0q6yKaKb9uO?= =?us-ascii?Q?2dfDk71bC/D4A/Kf6ZUgnWf2+8ost5fJK/jAt/vuPh6xe2m3zzekQfaY5OPi?= =?us-ascii?Q?Cxelb3FkTS8LTHeZ5dFtyzwRdMWTo+jS23FLR20jfXkJloksc5awR1aIY42z?= =?us-ascii?Q?G5LjPb+zFNQ0KoMJTOOCzru5+87iep7nhywtUwq4EoNouIb+Z665fneS01MD?= =?us-ascii?Q?nu6BGFGeWGo5velg5qKyfii6Gox4bYYqWo04dSUISuDFnPdNXZdCLGMVkcGd?= =?us-ascii?Q?IEqIISwUvfjNXBlph5yNv66dyx95DKesxYkEBpt9bFVFwWiYccQDR03IZezt?= =?us-ascii?Q?1L8zzWr44zTaA2c7WlXAj1cd4D54HXAbtjGWpcAS4CUEM63qBVjfBH+uPGL8?= =?us-ascii?Q?pK7/jG0+hQxcYWofu2mNMdHOadoAj1HohHGRzCD0s56rZhK3XFiGzJ+pC/Rs?= =?us-ascii?Q?JDdRssAgnr0glYzdxcV5ACTpmMeJNVABvGGgvkbYa19kn5Ah8neTcaP5FKwH?= =?us-ascii?Q?1lAJHaD6/V1oRb7EYLpU6LfJSRlnYLmETI8dLsWWCetd4mDi7I1WPKXarwB3?= =?us-ascii?Q?rHivSQZrrGnIn6wPdbmqrw1VLpeF4+u5sfjNLgRIrI99osPNZPcTI2QH/lY1?= =?us-ascii?Q?pmmfkT9L6op4yRBOT0UqyhOySKnZmlt7wEt7kWQQvKsV7qZSIXAReqzB8xSN?= =?us-ascii?Q?a7Ns3yepUuaefoyCpLTzjQO6w6PhvK6QNt07AmlQ59FIZ36qLufZ42BD+MJf?= =?us-ascii?Q?2WJ4eD2Xxbnl6uOT1oL0oC7Awk0fXjAOCirwYUORYQ+RsWFZv6M8q1tiLfic?= =?us-ascii?Q?Zknj9jMUmm8rbc0pglm34la9v5Smhek8IstsX+gXLNM85IKAni0WPZCnbpYQ?= =?us-ascii?Q?9ouTDznxCsQfJMtsvBot8ueBWwjB3E9pIXoh7J7tp5TyXMJukF13aW5tvufR?= =?us-ascii?Q?keo7cIgSnSSqIlhNEKf8UoQqZ4aH3zutHaDWMx/HVdR1RfOqPQ//ZwQm5IrI?= =?us-ascii?Q?x8Z8UkzjEmO3CP4q0sw4DQhVsMAJdS3MxHleuOT4tqkRUuxxCR5E2Cei/8sa?= =?us-ascii?Q?RW1nETRAS7AVBvYs21ke7JvLGWZ8UowdG8hGGXTgnF6njVNAlamGMN+IlcGT?= =?us-ascii?Q?bdTSYeuAh1OKD4KVk8tSo8sBXCZKaObZfnPHqJacc8bV3/JmElnD4jxh2dm8?= =?us-ascii?Q?cu1gVkRfPc7L6MOSA8qBaG/9ctj/RqJMnoIsVHykYYaicmCKmoiJOOXknwkG?= =?us-ascii?Q?r40/DXGzSWXzI18v5lXWvH3BP0Xtr07h8Q6RmeOgExAO8iZ+bX7eIKb9ZPPj?= =?us-ascii?Q?jEqS+2jgv3BfcacgHbF6PlXpfo4/7OUyyWUHfBC6Ea6PDYPYt0LB?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 87156165-146a-4887-15a9-08dee860e303 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9351.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jul 2026 02:19:55.8142 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: LzIp2vl/d4sp9qEGA2L/ny8LprmmtWMW8AIE6UM9wez3rg2lkP9Uk3W54U1WU6mulzAJ+I4Hxz7qrAc1iLwaUadF5oHYMj0GAGvUtZ6iSwAGa91fzyDPdyDKYXzVRqFk X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR04MB9252 Content-Type: text/plain; charset="utf-8" From: Shengjiu Wang The i.MX EASRC hardware supports four independent conversion contexts (A, B, C, D). The driver previously registered a single DAI with generic stream names "ASRC-Playback" and "ASRC-Capture", which prevents multiple independent conversion paths from being used simultaneously. Replace the single fsl_easrc_dai instance with an array of four DAI drivers to allow up to four independent conversion paths to be active at the same time: easrc-0 -- ASRC-Playback / ASRC-Capture (backward compatible) easrc-1 -- ASRC1-Playback / ASRC1-Capture easrc-2 -- ASRC2-Playback / ASRC2-Capture easrc-3 -- ASRC3-Playback / ASRC3-Capture easrc-0 retains the original generic stream names to preserve backward compatibility with existing machine drivers and board configurations. Each DAI retains the same channel, rate and format capabilities as the original, including IEC958 subframe support on the capture side. Update the devm_snd_soc_register_component() call to register all four DAIs. Signed-off-by: Shengjiu Wang --- sound/soc/fsl/fsl_easrc.c | 112 +++++++++++++++++++++++++++++++------- 1 file changed, 92 insertions(+), 20 deletions(-) diff --git a/sound/soc/fsl/fsl_easrc.c b/sound/soc/fsl/fsl_easrc.c index e68f6cbdd653..8571fa0bfabd 100644 --- a/sound/soc/fsl/fsl_easrc.c +++ b/sound/soc/fsl/fsl_easrc.c @@ -1589,27 +1589,99 @@ static const struct snd_soc_dai_ops fsl_easrc_dai_o= ps =3D { .hw_free =3D fsl_easrc_hw_free, }; =20 -static struct snd_soc_dai_driver fsl_easrc_dai =3D { - .playback =3D { - .stream_name =3D "ASRC-Playback", - .channels_min =3D 1, - .channels_max =3D 32, - .rate_min =3D 8000, - .rate_max =3D 768000, - .rates =3D SNDRV_PCM_RATE_KNOT, - .formats =3D FSL_EASRC_FORMATS, +static struct snd_soc_dai_driver fsl_easrc_dai[] =3D { + { + .name =3D "easrc-0", + .playback =3D { + .stream_name =3D "ASRC-Playback", + .channels_min =3D 1, + .channels_max =3D 32, + .rate_min =3D 8000, + .rate_max =3D 768000, + .rates =3D SNDRV_PCM_RATE_KNOT, + .formats =3D FSL_EASRC_FORMATS, + }, + .capture =3D { + .stream_name =3D "ASRC-Capture", + .channels_min =3D 1, + .channels_max =3D 32, + .rate_min =3D 8000, + .rate_max =3D 768000, + .rates =3D SNDRV_PCM_RATE_KNOT, + .formats =3D FSL_EASRC_FORMATS | + SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE, + }, + .ops =3D &fsl_easrc_dai_ops, }, - .capture =3D { - .stream_name =3D "ASRC-Capture", - .channels_min =3D 1, - .channels_max =3D 32, - .rate_min =3D 8000, - .rate_max =3D 768000, - .rates =3D SNDRV_PCM_RATE_KNOT, - .formats =3D FSL_EASRC_FORMATS | - SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE, + { + .name =3D "easrc-1", + .playback =3D { + .stream_name =3D "ASRC1-Playback", + .channels_min =3D 1, + .channels_max =3D 32, + .rate_min =3D 8000, + .rate_max =3D 768000, + .rates =3D SNDRV_PCM_RATE_KNOT, + .formats =3D FSL_EASRC_FORMATS, + }, + .capture =3D { + .stream_name =3D "ASRC1-Capture", + .channels_min =3D 1, + .channels_max =3D 32, + .rate_min =3D 8000, + .rate_max =3D 768000, + .rates =3D SNDRV_PCM_RATE_KNOT, + .formats =3D FSL_EASRC_FORMATS | + SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE, + }, + .ops =3D &fsl_easrc_dai_ops, + }, + { + .name =3D "easrc-2", + .playback =3D { + .stream_name =3D "ASRC2-Playback", + .channels_min =3D 1, + .channels_max =3D 32, + .rate_min =3D 8000, + .rate_max =3D 768000, + .rates =3D SNDRV_PCM_RATE_KNOT, + .formats =3D FSL_EASRC_FORMATS, + }, + .capture =3D { + .stream_name =3D "ASRC2-Capture", + .channels_min =3D 1, + .channels_max =3D 32, + .rate_min =3D 8000, + .rate_max =3D 768000, + .rates =3D SNDRV_PCM_RATE_KNOT, + .formats =3D FSL_EASRC_FORMATS | + SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE, + }, + .ops =3D &fsl_easrc_dai_ops, + }, + { + .name =3D "easrc-3", + .playback =3D { + .stream_name =3D "ASRC3-Playback", + .channels_min =3D 1, + .channels_max =3D 32, + .rate_min =3D 8000, + .rate_max =3D 768000, + .rates =3D SNDRV_PCM_RATE_KNOT, + .formats =3D FSL_EASRC_FORMATS, + }, + .capture =3D { + .stream_name =3D "ASRC3-Capture", + .channels_min =3D 1, + .channels_max =3D 32, + .rate_min =3D 8000, + .rate_max =3D 768000, + .rates =3D SNDRV_PCM_RATE_KNOT, + .formats =3D FSL_EASRC_FORMATS | + SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE, + }, + .ops =3D &fsl_easrc_dai_ops, }, - .ops =3D &fsl_easrc_dai_ops, }; =20 static const struct snd_soc_component_driver fsl_easrc_component =3D { @@ -2234,7 +2306,7 @@ static int fsl_easrc_probe(struct platform_device *pd= ev) regcache_cache_only(easrc->regmap, true); =20 ret =3D devm_snd_soc_register_component(dev, &fsl_easrc_component, - &fsl_easrc_dai, 1); + fsl_easrc_dai, ARRAY_SIZE(fsl_easrc_dai)); if (ret) { dev_err(dev, "failed to register ASoC DAI\n"); goto err_pm_disable; --=20 2.34.1