From nobody Tue Jun 16 20:37:38 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013011.outbound.protection.outlook.com [52.101.72.11]) (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 4DFC93BBA0A; Wed, 29 Apr 2026 09:58:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777456715; cv=fail; b=Q3UjTL0hN+uTk3kE5cVHGttciVAenfRG/1jTmAeHAblQ8Xak5N3FAab5a//wfY2spjxUc78vWtmz2o1J0M4O2uUUvsIIL9JdXOIsRt2yglaY70X/1tzhIVCgLvj+Mj9r7iqcRIRPWrmg2a5SjNqQMgN9RELeqNLWmYqRHCX0aps= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777456715; c=relaxed/simple; bh=hO9qIoBGSV4wFkwMmv8oDpZWvw7/UvRJjJiZ94gza/s=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=LQBRu42U5Rg705ZKqdG7vXjxvTS5s/balys4QkxIRlPlZJhca0+OZzBPRPlhBmBw1gYyywTouTdbCPCAzAuvgk3QvA25zUyEg8IiE/zXPiJKsLcGtv/dHFMmg96yuTibDy3OnnLkfM1USNiNfjwQHbME2OaKzyLVLgfJlhvtm9g= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=DgJrFsPP; arc=fail smtp.client-ip=52.101.72.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="DgJrFsPP" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=A6sVdoKp1kBrmG+5YrCohw78RxwLnaCNMp/kxY2G49PCxFgso7TFSgYJiRSPR8OQq16/mCQvvEFGrMTRq9XbkUy28+fGnTYaEGI6PFN2nPX/iwyZ8l9At60DnXhswP4gNWFEFKqe35rMHBWLFDRn7IIszFsjk1YiSoe2tXGvGCGEvw33k3JZhbdceiJrjJ2LSOA42hyzMse1LRUjMVoXzPips8LXsmQqW5bmMV9rI1pnREvtb9LI1K68pKETTdVx0SfB7k+Ylk4Wh3mS7aeiET4PQhIIUMLlJd4owvc6O4FMZdX4sw7PlVMDPcstP2uRDhF3CtEM7r7ms4hw1oQDZw== 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=WGjcGfh6rZFSyH+EJF3nu7I+miScj+Z0EKlyoHzPofg=; b=VMDk6Giw7lsyxHiXimGSNVoNK4w4+NeLWKo1bikYd1H4UPm27Or17chr15nBHB7hNM2XW7MjKtNA3GKHvbtl3W3rcusQLzHNqRVOVUzq61BRZTcHJNhVTXOc4GDl2mSF0mLPGMDWkeV3FhSU8/lDbjf54DljH/VmNl9FO3FNqe+cqJi2JdsTajnqV7UEygwi10zl59q8RUIk9YBU73OAhffcD9LpqjBxuLNPhckcEivnVdlytr0GVnA3id7+zxwtKSbiSJ3eu3bi3OlPIK6OBdW+J3cZdZ0jEnlXffpG0OovIq2PjMLJPCyP/3VDqDKsu4H/sCnao4WfDTGDP/gy/g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WGjcGfh6rZFSyH+EJF3nu7I+miScj+Z0EKlyoHzPofg=; b=DgJrFsPP9XQtumMr32YzuMoA5BzfbIs/oOl/9mzZ0CXz7YOa2Ycfc4juwzsmG4pEnUhU0j3D9SfimlERFYC6Fp1D4Vco50uCrmL1fvDaUtLELGWmtPDx9cX97/W1Fq3KSVSKoOJV0srMbGXK8HJ6xIissBt5aTyMcwYM1r0Hk0E8mETKNTCwvhD+nvyhAT7PxNpgRzU43mL6POSYviimR8plGT0f6+ENV7pJuADbkxyHx0GuGiBYcXQjXRdd8R+eLAW4zdS+YD/U40MZzyhnytyluP/kqYx071gN881Z9tA12vMHlkN5uXW0jfwP6T7f2YlvILVNOSUbDPjXLWkLqA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB7044.eurprd04.prod.outlook.com (2603:10a6:208:191::20) by PAXPR04MB8269.eurprd04.prod.outlook.com (2603:10a6:102:1c4::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.19; Wed, 29 Apr 2026 09:58:31 +0000 Received: from AM0PR04MB7044.eurprd04.prod.outlook.com ([fe80::bab2:d15c:fcf8:ef2b]) by AM0PR04MB7044.eurprd04.prod.outlook.com ([fe80::bab2:d15c:fcf8:ef2b%4]) with mapi id 15.20.9846.025; Wed, 29 Apr 2026 09:58:31 +0000 From: Shengjiu Wang To: 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, linux-sound@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 1/5] ASoC: fsl-asoc-card: enable dpcm_merged_chan flag for ASRC frontend Date: Wed, 29 Apr 2026 18:00:23 +0800 Message-Id: <20260429100028.2739711-2-shengjiu.wang@nxp.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20260429100028.2739711-1-shengjiu.wang@nxp.com> References: <20260429100028.2739711-1-shengjiu.wang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2P153CA0005.APCP153.PROD.OUTLOOK.COM (2603:1096::15) To AM0PR04MB7044.eurprd04.prod.outlook.com (2603:10a6:208:191::20) 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: AM0PR04MB7044:EE_|PAXPR04MB8269:EE_ X-MS-Office365-Filtering-Correlation-Id: 2aeafa71-6736-46e1-e57a-08dea5d5de56 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|19092799006|376014|52116014|7416014|1800799024|56012099003|22082099003|18002099003|921020|38350700014; X-Microsoft-Antispam-Message-Info: cHZKiy70SggED1R8ER2QfUhfKhlXYKv9UukyOBprTQWLQPln8q1o0aJAhu/nQOXR1juuNhP9B95MTDBWVcRDqZPT0HpiABtXMJwJG+idnabi7bNRwIT267hO2SL2kW3FklAoV18wFEujAQmxjiZDYtlkIV2MVnxLvy3W+VJZDwu2s2acvI2NwbAMWTYpqcEOQIjnhWZzfDqdmcjl/4EkooiBiwmAog17GJQo0alpQPga8dsw5Yx55frQ1gcEH+d4z5ur3H4l8J4PTpWsnaWJgt8joJmPzY7WHZ/GB/NjQM9kt5nkrtNVYqCRtTQd8CmKb1x7cJRIRtG3QJyCZ4MOS/o/YAujzuwI/70kZZ3iAiSY+rYnvujdByppPT+XaF+K3b31vcl/HlcjWImTejraO0WnNunyKgSagA98Dl4ip7m4b15Dswxh/jORLILRivKtRfVDEcZqwXGk5nJ6Zrr5DIKJCElME4ILTBN+6MFJVsy6PyS0fgtnxpjCSlKcizPqMG2RgtYNQJCrdHhcH3bGN2cgbIjecZ2Y5Kw+q587aJz6oEO3bKDFVsxPST54BcfJkhB3Z+Zm4iR/1cqL2WXzj3pWBOxVMe9pjQwn4zjdln7X4WdtSrJKlcQZUX/W4kMz8gDH3HOnGZ59Cly8R45v+vxOhL2xw4v9bWwd5OMy7iS6Sz2unQsKk2d/sCJekTfznfkRzjrW2cKcHEahVy312h4iBPX/x71j77peG1jrKOipQFUDxstie7HfNAjEuGR/5/lNVBBWfASSfwAt/QZ79wOhEku6yLeYo+oEFHGAHRt1Tceb3rLNhKE69KKiCMMT X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB7044.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(19092799006)(376014)(52116014)(7416014)(1800799024)(56012099003)(22082099003)(18002099003)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?f93bvOomBmLCgogWcULhuGM0rcjXYIYt+eFaYiKeVP2/ZEzUL0XhDhIZvk4b?= =?us-ascii?Q?8zlj/euWN83Dm5EFX/jieZGJQXvvY5VwpFzp2veaMq1Y+TEoUNWiexJu24D/?= =?us-ascii?Q?CXuSENSkFtYgR3m8CqPcRyTJYskUxF9MO1uGbQFM2FDBsep2MIOTefZnb31F?= =?us-ascii?Q?rWI4sfEFKLtfRZmEqZYuwbXj0XGCIFUERPZLRz5fzB4afs7x5RDrm9v8cr6J?= =?us-ascii?Q?ACE/oSrr4qiK2BucdAEjIhZ7EkcuU0XZePepEyM9NTNRzcJ8oJQ/0DE6PDV7?= =?us-ascii?Q?RsVSQfB2wUiUufNNyIfbCwlKPFyVFd/CTA87T1dqPTVK8q6eFLxfNzVgjUX6?= =?us-ascii?Q?pGgDs/9zmmzQW/Dxlgv4Mg95w4H9FVq/U3vfs4H2gvlInLojz5TUSQnUqly5?= =?us-ascii?Q?4vuTH7ldVl7XfiZZ5i8nCs9n/d5DqKRVk3PabSHP9st4v9948gr7b5B89BB8?= =?us-ascii?Q?NHzi2I/jCLK5oDFUwaIRceHBpYc3QMZpIOC2Pjq8whfjOLmyWpkUNsSxHxb8?= =?us-ascii?Q?odDP5mcPB5TkIYU1Za1o7tH88Z+o86kh6bk0Uop1BTgq+r+12bMZ/M4T8REr?= =?us-ascii?Q?1dcdnW2sktc65+ggm5Dq/mWOU7vx6y15M9iCN1cHpZC5AswXWaTzW0ICeCsS?= =?us-ascii?Q?l4e4jCn7aBDKStjgNna92GHYOHb8NwKhnOda4jfdVopWe1IzF4y15bJpcUc4?= =?us-ascii?Q?MI0lR7tgrEZ/LEzIl9VARUF/rbNOWu1V8WsOjWRP6cEhVqQBugQPsg1y3YPw?= =?us-ascii?Q?SqIhasS5BBczCfs8yNLy1529a1ciSlzTAfPa2yIBFoAy79Xy5PDftjG6WRf5?= =?us-ascii?Q?t0vGd0xPQqzMQxS2mapomDL/Dv/SG26FtpDcXA6Vg0nVOILbSVMLTms1ulBX?= =?us-ascii?Q?/V0c5egfeeAgtjzdiRHJ+cggOKRkzcyzfRyZymNx4UIRCBqdPxVnir7C5MTf?= =?us-ascii?Q?bfUfrCAJsYcVjmPpWbkKhb6YUp3RFk0rsBBAzP5ZtGs+4mNKhLQK9xH+ufAQ?= =?us-ascii?Q?eCmjgNc4Pkdb69epvJgjfBQM+p86HD4srlTdCbho5LmIWHRcOeNDuNzEZgbh?= =?us-ascii?Q?PZupeHJkhOcdQyyoeGCQtADot+ioZLlXawKMTGsTlIMojN/UxVt0xx+su4zO?= =?us-ascii?Q?EZP7zEVdNzRPshXaxXINRSFIRaRXGZr+XfHg3Kib7E5uKrlvfB2UmVDdzuDa?= =?us-ascii?Q?/JMIHSiUoLtVoyBraVgd22LMuA3//e4XZRUQOZcj4yOUVNrBXUZushECtcSi?= =?us-ascii?Q?l6/GC+k97kZafdd6lKS2KD+ahoK0MrdZQYdT/C07TwMmaSLOIEmkwekw8mNr?= =?us-ascii?Q?N1CiHtIqiVuUFLTy7cmidFDiXIgNvvLyNEaaGEl+ZpG4rCGIPWHI/ZDty1U8?= =?us-ascii?Q?5T4c293ghLxpHSx/ezWfsjw+2ZwNrZY91To9U0J1kY2mieZkIRsUE6PGnmay?= =?us-ascii?Q?knFUA4Zft8NnvYPgfWj6jot3oeOdPZWFSEHN359Y9k4Kc0FregTO7ol3/LJT?= =?us-ascii?Q?KZb6AL+kZLRXdtqOON+V4xykQ9qTZYaLfHM7Fb1PArxbJWF8gzbKJUc67Axm?= =?us-ascii?Q?PLFcQROcnkjLMrHgogs7C11tkaU8302ScfJnX8coLCLtuGTfCFjAljxfox7t?= =?us-ascii?Q?0MaJ9fg8dnFkAbKET70gONfjAPNshqUlyvEqBKXW7KpjkdU5LNa5kaiP6/RA?= =?us-ascii?Q?UyCpq35BupC/s4H27fy10Ea6lgaysFFGbd7VaqxNNNZbO+JTsfdjqAO4uRVN?= =?us-ascii?Q?9kh16DBLCA=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2aeafa71-6736-46e1-e57a-08dea5d5de56 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB7044.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2026 09:58:31.3889 (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: WLP2JmDmKOp4K+HjdNXSMFeI1lsc0Er9SllMFjvh+Xqt9nf4CNjm9nWQRHg6SmiCENkd6cuqLA+OvrwDprCY+g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8269 Content-Type: text/plain; charset="utf-8" When using ASRC in DPCM mode, the backend DAI (codec) may have channel constraints that differ from the frontend. For example, the ASRC can support 1-8 channels, but the codec might only support stereo (2 channels). Without dpcm_merged_chan, userspace can open the frontend with unsupported channel counts, leading to errors when the backend is configured. Enable dpcm_merged_chan to merge backend channel constraints to the frontend, ensuring userspace only sees valid channel configurations. This fixes issues where applications attempt to use channel counts that the backend codec doesn't support. Signed-off-by: Shengjiu Wang --- sound/soc/fsl/fsl-asoc-card.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sound/soc/fsl/fsl-asoc-card.c b/sound/soc/fsl/fsl-asoc-card.c index 70a6159430ed..41cd2fc2ea56 100644 --- a/sound/soc/fsl/fsl-asoc-card.c +++ b/sound/soc/fsl/fsl-asoc-card.c @@ -989,6 +989,7 @@ static int fsl_asoc_card_probe(struct platform_device *= pdev) =20 if (asrc_pdev) { /* DPCM DAI Links only if ASRC exists */ + priv->dai_link[1].dpcm_merged_chan =3D 1; priv->dai_link[1].cpus->of_node =3D asrc_np; priv->dai_link[1].platforms->of_node =3D asrc_np; for_each_link_codecs((&(priv->dai_link[2])), codec_idx, codec_comp) { --=20 2.34.1 From nobody Tue Jun 16 20:37:38 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010067.outbound.protection.outlook.com [52.101.84.67]) (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 C80B83C1973; Wed, 29 Apr 2026 09:58:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777456720; cv=fail; b=pJl0SG3cAvaSLSeOo86SrDCEfRJJewbga4KrxaG4HWviN74CbyUHHuzUruKYPKmnU4pTbfrt2+RLDYWc0bhdf5RUPz2YKdNJIr2SHinwkPmeBkYO1YHWprNDlJISQC7udTjxjvQ/DrWZXhsi4XPXLOzw4XzlrKrJi6SjYSMwROk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777456720; c=relaxed/simple; bh=8bDDbnKbHv8semqUINQ8U9C/dUeD6Agr+BMX3VkOESg=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=jTH7bCYHuQoxBcaydU/ef6grIoW32hrX6hvAPH/gHi7GSAF9RTPZVGSPNrsI6QCzzZFnqOZDcGRKkeSC08d0gU/fadHIEZzDg2Nt22YZRjfLEnruIFluDQmdXX66i77oKHDFgaj84dM5fy1cuJFkq9y+MxGAW5pIpwKugAWSMBk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=cqXSf6Pv; arc=fail smtp.client-ip=52.101.84.67 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="cqXSf6Pv" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Ui6jw9rFeukYAJ3Lh64vz0k0ELBBkv/pV5xN1DAA/Pt5cpftOuN4nU/eeQz29VqdfsQUIPzFBk/6wOyKSapNQiJQAOUV0GEy9EVzsoW8RGI7ELoo8VHjf8frc+8kwCnXA84HpuNl5zvpvYcM8GTPiqfxFcPRT2oMWVgjpEBE+5m+PQ0tMEVpcSC+lgAj2xY5a04c+xKoAchR8MaBEd0y+Kk6wfMgt2mYBvoHRfBd9xBBtZRggsLpL4bODLMYs9ygqUZdfF5YSRnhrtawyOMtwZ2xkLlC4KHP/SgUETTmLEviDvwzop/eQxI2ptrQnEFUCw9ns7FDb6XBkmRqRHsKVQ== 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=K9dLxSF8vWSwDKZjOpV6UUS3KQuTRkuRsAXWgr0KuTA=; b=eT9eSzQiSOubd4oqOTuAmnyp9xq3QQ9aJ7dZtDnduzk4D2/5O9srMvNBln3eHhzyDFI4Jy9G/tbnuSpG5+b+1ODotc9lX7lp0pPYesZWJqXwyTcbPEYlCjP4aY3Ji6ZBd6zOyAwC3HlNHaN1ATYogmfF4Ie3mmnmJuxznd/Qz1W+1PJ3lZwtiMRnnG4fO+yg7F31vNJYExySh7BKI17VYEEgDD+GmHaXpw0gu8bAxhAUgQp6po/+bGoIS2p8cc8rHOO2OunuQVC9duOiK4Q0LkpM+nFyMamKj6p8+/mzY0dljNDw/IrIeWu5eQg9GDj36R6EqsAMU0YNz9QzChCBNg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=K9dLxSF8vWSwDKZjOpV6UUS3KQuTRkuRsAXWgr0KuTA=; b=cqXSf6PvBl0VcCkjaMGjwdeZ+RfNpQiMCs/lioM2XpqZy6awiMpGwjdySfuwJ3vQ0LTiY9GtDn3UOedyGM7mB516BVDs0wb6R/MJcAtDRKfjvhqCuAYZGsguneC3m4C8Ev5Scr1RcXIIGy2W5DwvCtK3fwigw98x3L6F0qHV7VQ6sNCLstnH5exVJXK6K1NfZPzcFOoJCPpMo2XE+g1ZfWCW45Y0KxJf91AS2RbgVDVU+GaeT1Fb91wUUF4LiE9K+2Hs5FYRJfMxxBHi5X2DhPAKDcX6mb08aYk+bjJ7X6kicnbY6ePNMPN51hyDhoTWesFsxI6kTQJYAOSpDvssrg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB7044.eurprd04.prod.outlook.com (2603:10a6:208:191::20) by PAXPR04MB8269.eurprd04.prod.outlook.com (2603:10a6:102:1c4::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.19; Wed, 29 Apr 2026 09:58:36 +0000 Received: from AM0PR04MB7044.eurprd04.prod.outlook.com ([fe80::bab2:d15c:fcf8:ef2b]) by AM0PR04MB7044.eurprd04.prod.outlook.com ([fe80::bab2:d15c:fcf8:ef2b%4]) with mapi id 15.20.9846.025; Wed, 29 Apr 2026 09:58:36 +0000 From: Shengjiu Wang To: 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, linux-sound@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 2/5] ASoC: fsl-asoc-card: enable ignore_pmdown_time for ASRC case Date: Wed, 29 Apr 2026 18:00:24 +0800 Message-Id: <20260429100028.2739711-3-shengjiu.wang@nxp.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20260429100028.2739711-1-shengjiu.wang@nxp.com> References: <20260429100028.2739711-1-shengjiu.wang@nxp.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2P153CA0005.APCP153.PROD.OUTLOOK.COM (2603:1096::15) To AM0PR04MB7044.eurprd04.prod.outlook.com (2603:10a6:208:191::20) 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: AM0PR04MB7044:EE_|PAXPR04MB8269:EE_ X-MS-Office365-Filtering-Correlation-Id: 5d257dfd-1fc4-465e-fa01-08dea5d5e14a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|19092799006|376014|52116014|7416014|1800799024|56012099003|22082099003|18002099003|921020|38350700014; X-Microsoft-Antispam-Message-Info: 92Z2ma0rzJJ90iGh3mVayuzUPL7j/8iL+kEgbvwtNBzmHm/3vNuc24nRNGiSy3HPpKwMERHTZxk6sZKEHny2O9Wj7QjsQYMvPXCR0ZdEnReRb74la1TY6U+xeRkxldPSRZCT85PmifZVjUJ6vkiMacQYHfE2bRW7DZNw6OfHT+xtbAF1RnUe+wvsNRYb8QYAmk9pzaHCWulbwKoTeUfVTnImrkQKWeLBai5pMkM/0Wi+rafNYb1hrF5cj9OxiWAoY9boXMHZeWZWmzMAqQSXGPw1KRGojQ0wOevf9pobSbt60ULxdO+Aq7WeIyn7Y4nWFzKfOp3pSFysyJEpl6Cx/ZfuIBt73e48zAqNCdmgfdRh0kCgWtTzlmWp8SB08JWB+apv0zlg9BqxcTVDa8UBg7cFQB6XQuVa+T9+6hhS9NrXWBdUP98PyxGYrZjKiiqDwqk8LpBp4Y3Upm6Q/JRH0sczAoMjy6jW48s02Z4J5jtHUvAKzloo7Zolqqrmw7csZvGy+0yfpcV3+sRXrk16Tw1jsYiOmWwfmpMzhZO6Grfx/7wzS8rDqyOuuYC6c/7Ioyk0OJbzpd9P0w3DLWZLf2s3WxcOIDSfU6TsJwYwzRAbMmEik/o5zWWPddNuxED3turz+fSWvUUX5M7D2Pl+eKwhF2cRYRf5GNiVSEwriXkgoaezyY4jPBWLgLUw6AF8JN9yUKDZEXTE3JIuXGvvkL50gdzCVRo4oGOWHvrhMQH76HCzPGCggIaFNAtYp2gaCvjIWnN1/UaTT7hMetOkLKQ5X+I2nL36hmrnNfBo5wcOCJOoFP1Vw8MF6idVfZb9 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB7044.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(19092799006)(376014)(52116014)(7416014)(1800799024)(56012099003)(22082099003)(18002099003)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SVFndVpNSUVlbEN1aVlBODdKOUxGQ0ZzQisrY0lkUkRIOXpGMDhsRXdaWWJF?= =?utf-8?B?b2pvNysvbEJBbWh0VlRJaW51bFEyWnYySDlzUEZ2OFMrSWdURUdWS0tqKzdL?= =?utf-8?B?SkdTTnJrRHhVa3BQeEVGNGZVRVluQ2dmNEpKekYrc0tIWFd2TVpsaHpCNENi?= =?utf-8?B?NTRJeE1oVmpmYkQwWi9HZUhYLzd2ZUV4N2Q2eGEyMlpHTk1WdEZDY2VHcGNs?= =?utf-8?B?NGpWYkN2bXgxKzBLclF3dkZHNEU3a2IvbDJENkRjbW9pUG9telhKUThURGQ4?= =?utf-8?B?YVV0akFNbFU4MlRtamJFZzErb1k4NGZZaGtQWWIvK2RSdTN5SzJ0Q01HSWpO?= =?utf-8?B?c2VZNVppQjcxcitjbDV2NzlZcUVxaGVDTzBmNFZMSXJZYmcyUkVWMmhacHly?= =?utf-8?B?SUx6Qm9ud0NrbHhwTVkxaUpZeTY1YmdFcG40d08zbVpRUnplN0VIL3RYWW1O?= =?utf-8?B?S25wcWlsRUZwMEhqNjRRR0w3Vi9KSlB0Kzdobi9aQjA1R3hxdHFoT1AxWWc0?= =?utf-8?B?UnhWbTJOcGZxMUJ5N3JXQnFmS3NDZGFpVDJOSWxlZ2hyYy9QdXQxZG9LL2F2?= =?utf-8?B?RUtwdlBwTzZwOUVUejdRby9wckdnWlNHeFFjcUhxZHhZWFpqdXBlR2Nsa01h?= =?utf-8?B?Snd3UDduMWRiZXQ4ejJJalRjWnd6QmJXa25UV1FkRHlOUmZZSVNBNTJzSndG?= =?utf-8?B?alpMeUI3Ny9uaHpTNnIxcThib1I2N3ZkVTJ3UGlRb1YwMWpXbVdMVWdvRnRh?= =?utf-8?B?K0kxWStzRytqNytMNW9CWkwrSWtldGZaWXZma1krOTgxNGVZcFV3UGhNNzcz?= =?utf-8?B?OVJZQVRJZFJCVnRMWUtRVmhJUkh4UDJ0VWNuTWZGWEQyZ2VTVENZN1Rjc2h3?= =?utf-8?B?TnFVV2FLVWpKbVdkRFplV2VzL2RpL1ZBWHB6MkdRR0VESW9CMzhZQXZFd2VL?= =?utf-8?B?L0czVWt3VVpnN0p5VXZ4M0FSMmdhNURtNjNTV3RPVVBBR2VzeW43OVFobmN1?= =?utf-8?B?MjVHc1lnekd2dEN3Y1hzWCswK3NYR29FRldjcFc2UHZxTnRCSzUrQ0FEMHpM?= =?utf-8?B?WGFPRkJtYzlkK0YxcjU2T3VscDJzNzZlWHRyWmJpQWVPdVlaelFkdHhOVU91?= =?utf-8?B?bUg5enk2MU5yOW1UeGlWQjF2N0VJWDBmZm5WalVZOGJ0Wm5KVTNjMENicXpr?= =?utf-8?B?cUV3YzVDS1pEQUZUM3RQSzJiVjJDSzJhVHpxVHVBUCtZU0dOcTMyY2hQUllv?= =?utf-8?B?Z3N3OWFBMlZmUHAweVYzWGczSy9ZTjdaZE5XSzhkSjRPL3J6eXRLMDlhWll5?= =?utf-8?B?eEFyc0dRampXRmI4bU1SWUcySktkVFRmMzhoNVNQcVVjNzUyOFlTeDBPYS8y?= =?utf-8?B?YTczV0tBRVRvZlJyZmppSXgzbUl4dUZsMlBwdE9aZS9DUHBXalhOaUhLejNq?= =?utf-8?B?Ry9pdmQ1akRQTUhueXRRb0grTERpOVFSRy9qL3pWRTNrMnFSMklQYW1LU0JC?= =?utf-8?B?bFdNdGdFZEdobWs1ZzhwZ25GVzNQYjREYzFTV1JBbDd3Y1pFTngxNFI3YklO?= =?utf-8?B?dWR3QnBzZmFpT3M4TnQyRmkwdU1jMTlnZVUxZ0t5QnQ2c1laZEl3Y0FqNkVU?= =?utf-8?B?ZitTdkRST3cxZTcxc20wVXJ5K21xbUJrYlluZGdPMTJZSlF5bnJWRTVtUE9l?= =?utf-8?B?RTUxVWRDNG9kQmdGcHN4dnQrYWNZRko0emk4TlB5dkdFazhFeDlrT0hpK0RB?= =?utf-8?B?Z2dmUnZtZ1VEWFJTbGduQWp5QzRGSkc4R0ZDTk1XR0pMb1IzR1haaXNESDdH?= =?utf-8?B?emFQakNhdWRsYzNTL3JJcHkvREFrUjRaQjA2Y29xK21sZFp1ZnpVdDBRMTNj?= =?utf-8?B?MGNaeFkwNmdNbE1NczVEcXp1b0R3bjdDdlZkZHEraWh4STBJMm1FQTBOcHp5?= =?utf-8?B?SlBSZWpxc3o1LysrSWp5N1lXMEdVTGJCRzZFK1loMXVwK1FEUkFvYzZQeDZx?= =?utf-8?B?YWZydUxYSVdTMUM2OTZzYUt2eG0yWmwzbnBHeVVWOHFWUkFHUFgrUm1ocktU?= =?utf-8?B?K1Z1OWJyajhNd2wzVlcrakxESG5HckQ2VnM0Wm9vTjFYdmI3T1l1K1M2eVlX?= =?utf-8?B?RmZxcWhTdU9tOUw3QjhuVlJ5SHplZ0o2SFFSQ2ttZzBlWmdialJ1NHlod1Ev?= =?utf-8?B?TWpReVVZY2NvZE9Jci9KbTdiZ1pJdWpSNkxsU2JzS0dHYnN6cG5BZlYxUDVS?= =?utf-8?B?YVkvSFVacy9EczF3K0xmM0o2WEI4MmdjYVlaVURrMWN6N0xLd2J6UGlRZGJr?= =?utf-8?B?eDFMeDZrYzdmQ29UbktPTmFSNHJOZ3JvbTdRUnI2ZEQ1aEgySkErQT09?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5d257dfd-1fc4-465e-fa01-08dea5d5e14a X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB7044.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2026 09:58:36.0601 (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: VhmRSr3ZbqjbBIiS0a3kg/8H7tF6xwpSHnuh4WNsnvX9m9w2qmB2em51t7mrVjhQH5lZZ9e500HK5E/4mWrevg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8269 Problem: When switching from ASRC path (hw:0,1) to direct path (hw:0,0), audio stops after 5 seconds due to DAPM powering down shared widgets. Scenario: 1. Play on hw:0,1 (ASRC): ASRC-Playback =E2=86=92 CPU-Playback =E2=86=92 Co= dec 2. Stop playback 3. Play on hw:0,0 (Direct): CPU-Playback =E2=86=92 Codec 4. After 5s: No sound (DAPM powered down CPU-Playback) Root Cause: DAPM sees ASRC-Playback disconnected and powers down the entire path including CPU-Playback, even though CPU-Playback is still needed for the direct path. Solution: Enable ignore_pmdown_time for DPCM links to prevent premature widget power-down when switching between paths. Signed-off-by: Shengjiu Wang --- sound/soc/fsl/fsl-asoc-card.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sound/soc/fsl/fsl-asoc-card.c b/sound/soc/fsl/fsl-asoc-card.c index 41cd2fc2ea56..e08e135886f7 100644 --- a/sound/soc/fsl/fsl-asoc-card.c +++ b/sound/soc/fsl/fsl-asoc-card.c @@ -990,6 +990,7 @@ static int fsl_asoc_card_probe(struct platform_device *= pdev) if (asrc_pdev) { /* DPCM DAI Links only if ASRC exists */ priv->dai_link[1].dpcm_merged_chan =3D 1; + priv->dai_link[1].ignore_pmdown_time =3D 1; priv->dai_link[1].cpus->of_node =3D asrc_np; priv->dai_link[1].platforms->of_node =3D asrc_np; for_each_link_codecs((&(priv->dai_link[2])), codec_idx, codec_comp) { @@ -999,6 +1000,7 @@ static int fsl_asoc_card_probe(struct platform_device = *pdev) } priv->dai_link[2].cpus->of_node =3D cpu_np; priv->dai_link[2].dai_fmt =3D priv->dai_fmt; + priv->dai_link[2].ignore_pmdown_time =3D 1; priv->card.num_links =3D 3; =20 ret =3D of_property_read_u32(asrc_np, "fsl,asrc-rate", --=20 2.34.1 From nobody Tue Jun 16 20:37:38 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011045.outbound.protection.outlook.com [40.107.130.45]) (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 B348D3CA49D; Wed, 29 Apr 2026 09:58:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.45 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777456725; cv=fail; b=CUX1sIKJZl+XRoWc9lb4ubUxUWKS8YC8kvqfpzTUOSLJvUZe77YjRuiqjtEMxNOnFP5fa/HQwc1y5JzCwja3Jrx90VscexP7G8G72reddAr9hz1XPouixiuqHYIKeRhYprF0X0wCgO99IJgaIcxhQ/cLw+5WzvC0a4bbGDnHX3g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777456725; c=relaxed/simple; bh=ENAyh/2eIaUCiDDtR9ElWe5aTanJc5Z07L7zy202ANQ=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=PIYuJCuQn9gwb+3ulwgx/MuFnkYeHOnTueWlpNtXxvzddWs8cvj+zDGN9eWHeE3dPDD4u51W/ZO8MPMCdhGmmp2P2DSL1heDTjJl8JWeb0tkRK6+tQRFxQj/s8j/xTDAmT5DF1Na8XNFvh6tzc42LY19WGwg0TkW6NohR7J6R9g= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=cR8x0H9K; arc=fail smtp.client-ip=40.107.130.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="cR8x0H9K" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=D2ym+bXm8D7Z4GCL+axFPuASEFFBpoeFRtimYd1ZH6m5rNMaHL2Q5pZtcQndHrag2oAcg75L1mRK8p5qGnBllSxIKE1AeFaCpajNsxr+TNpAuvPEaaGEFxzc0XIlNKbbBS5UopRDBkq+gGQSNmtbgq+ir2ALZqnunuGSRJSh95ukWzIAQ8ygpRJ4AtFkZEEoqvE/hKvo0uqjKq0ocsZ4P1gQ075fg/TZpzJbFYxF/81+Nb+3j0t+/a8EuJBxJlflgOOXC/mgdoAnPUofO2eg9r3WH17XNv8tC2X2YHXTVYyvlVayvIeZ2TT0aCUVfDs3tkS13EA6bTn3ky7tsLGfHg== 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=HTt1TJCql10MN7yHqE6AMTCLTFedCZip5Vu8emkSp4o=; b=I86ojLYitU5eHVypQoCHDLjHL8ZGyBz2NyFLTwLXmvsbODN7mlOCUhM0BSU2t7/DWpzbGd5Jek2B8kW/QoyoOxVpJNehnRcPexSTQ1EGy3cWtrojs0ma5xzuyYYiqmz7F8xvSMFzt5pHS7mu8eB8tvBCfWeIsZs5Gv4WtdbM9yx5RN4UVllpzgwzYS21EFLYgEFj50GLZP8XFsiK/7y9k7GMPcRmcLvGw2hauy83OPvwVoU2gdF+llb3W7VJgVjcOdRweMUwT7yDmczo89p3jcLU6XSkDLRgoaVpFAy02uGAmV2oABOf5w28ksO5PUf7yhnVRUmxmpW/Z/ZgaERH+A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HTt1TJCql10MN7yHqE6AMTCLTFedCZip5Vu8emkSp4o=; b=cR8x0H9KMIpGBVzU/6OrpzFpaQ5wBXXgBrdS4DMpMy0bKMTStPXk8+wQEEFABnKXlYPiQ+YncKCwIeIa5hQ0UCRllQsQCD3+DA/p0WFS9OArU4oqd/M3fGy9LqhfLjg77ACFTKbzXN8w5E46nu3f4l8uEt0QbcdzbLBaof2eIjC6+oZRlqeGN0QOqcTCFWcCoxAJ532vPUGS1E/G7MFookv71W2XBT09pC8azOXy255Fw2TgguJLfOCjJGMjAtT6+KLLF3p7D3Me+z/SEqJ5ADVqogYB/RgfOBE0mybuKB42EpjBMa6Vw1BfBtKp8l1yVNbvpT4NL6AB0HGZEr8Bzw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB7044.eurprd04.prod.outlook.com (2603:10a6:208:191::20) by PAXPR04MB8269.eurprd04.prod.outlook.com (2603:10a6:102:1c4::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.19; Wed, 29 Apr 2026 09:58:40 +0000 Received: from AM0PR04MB7044.eurprd04.prod.outlook.com ([fe80::bab2:d15c:fcf8:ef2b]) by AM0PR04MB7044.eurprd04.prod.outlook.com ([fe80::bab2:d15c:fcf8:ef2b%4]) with mapi id 15.20.9846.025; Wed, 29 Apr 2026 09:58:40 +0000 From: Shengjiu Wang To: 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, linux-sound@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 3/5] ASoC: fsl-asoc-card: add channel and rate constraints for CS42888 Date: Wed, 29 Apr 2026 18:00:25 +0800 Message-Id: <20260429100028.2739711-4-shengjiu.wang@nxp.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20260429100028.2739711-1-shengjiu.wang@nxp.com> References: <20260429100028.2739711-1-shengjiu.wang@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2P153CA0005.APCP153.PROD.OUTLOOK.COM (2603:1096::15) To AM0PR04MB7044.eurprd04.prod.outlook.com (2603:10a6:208:191::20) 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: AM0PR04MB7044:EE_|PAXPR04MB8269:EE_ X-MS-Office365-Filtering-Correlation-Id: 0790acd2-1232-42bb-cf61-08dea5d5e40c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|19092799006|376014|52116014|7416014|1800799024|56012099003|22082099003|18002099003|921020|38350700014; X-Microsoft-Antispam-Message-Info: 1MkTekPGjbvrySwMInwprasi0uzaz9I6a/jbZil1Or4m2/9FskW3OGw5SpDC25LAjMmR8hMxJQXDPh5xYo7fiX1DexEaw68BAUxSF774UHgPv7RqSZ7+3nFlJc5dU+ph/7CTPwavP5LWKvV+76CeWRchapHlVGeQHI+nLvi2OLTL178QjpiPK1vK9a50c864c3VSwgzDFzCqAmxlkNdqjIi1s2iLcsRsqai5T+426qUL2jUvzNafxiBxha0gRrvEATIoVCEZYkRJCclXr47Z7hkiBiWXOXaTcqpYeSeMzCQBZhY1gjK5gDdUk6XODaxzjcVNZ93GsVcj73UAMFrIXK0/yJw6dITzsG4S17FnQw160StIkv69P2URgL3Pn97qkNm06UzLFnJ5aKqWXeDfVgsud0DbZL2sghJQON6BP9JYcWs2I6EwY1HaBy+lVQsxRmrOJif+lCfHKfKQKXRl56Y6/e/c6H2BA0VHmjIH5nnUGTXKLv01w498mQc7PqZBVOT9QEBdC8iYTuNBquvpKHQtzHB8y+hWJJ/zU5wTsKgQlpaz/9UByK3NRTXk3mhDAuzdWnpFHlMmjgE5XZO3P/WZq191TR4tJW+5+RZ49cOtiNL7+0tG/IVH12OC5hiLcDextW3Htc9qqS2jBEDrSbcoNmf1mjEXbY037yyk0HaXfySgy76plGLP+Ny9N4USPX9RmHoQhzF1t3agb6ki/J0+oc0eVDNWXRdOD0yWBzy4s5LgCa7uLQoUgQY7e5ijxreav72wEpsAhBBQQKSIIVMiIXDLRcDQOwvEvOSD5gc+Wi/F85zyqOLE7qzChVCM X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB7044.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(19092799006)(376014)(52116014)(7416014)(1800799024)(56012099003)(22082099003)(18002099003)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?X5B/NAvf/CrCLLefSUKJBSCUxi8cJVtH0K94zYnAuVzoORgQ1fSg99f3YLo1?= =?us-ascii?Q?+fwi6eiIDQGRDr+DNCJKkrlJXi7FQ2aphk33s2wUK1wbyjqIpnI51bKGYJk2?= =?us-ascii?Q?dNXZkajg/nLIO0DjftwJMqNem7odEcCHloKR5QPAMOgokf5FbalSN7+CMEHb?= =?us-ascii?Q?ylPBkB8VbTNE138iJAVmRCJEaV+ACa1u1QpfsMADMNdx8/N+KpiXJiuadDBg?= =?us-ascii?Q?4ZGsvY9IaQQcjes3g0KJr0bH4VrKvUP1RrSFGTkKTZDnIqfQTSesqhyi3PQ+?= =?us-ascii?Q?Xo4/6yFUil/WH1trh332myGxGxd6z4M7nJJhZa+NaAVyeKuIsi6Cd/q9CKie?= =?us-ascii?Q?wiAGwoXSl7EgTURQC5KI32GEHlKbMLS/a1z2JwLJVF4ntvZm/fshx10A1g2O?= =?us-ascii?Q?rxbSsl6da9DuxpyIvIT8QLVlM+TFvJirlRpC8000if8gN+vLpMS1QEzVtRoJ?= =?us-ascii?Q?ihmxeR7IL7S/5gF4JZykfRRGRftRClOk+x7VBvyRe9zIRZbcc8FYqniE4eBi?= =?us-ascii?Q?0gsX3tCskv4AbA0msBbnL4L2+X1S4dLFLgVkOWDnqvzfHfLjf7DyX8da90AM?= =?us-ascii?Q?pW+uAvOqha88egpnBl8Im99YNoTe8OVpST1ThbspN30i+ErWmf0g3ehayXCG?= =?us-ascii?Q?y/5TqtjPFXfAZqdnT+RdEJ9gkLOAx+/I8bovXRwertsWXOnbhzVlvZxNjpin?= =?us-ascii?Q?ruZD4H+CS4i72h5xlKvE/7+jwlSqU75dQrK2yniVdqGwh1zlMw1O8HJhyQ+6?= =?us-ascii?Q?Wbk5+5SXZujy3l+O62NLXfmBEDX94yDNuFcQ+nkvYg+fiiJhFz5egdV8E6p3?= =?us-ascii?Q?wAc3QMKDUpSEuw6+Krual/b5ITYqg2PxnHjkBmw8SM4YjaIT5Cvuiha/0wxD?= =?us-ascii?Q?rubgmci+A4WVA2XT5mR8rP8JAX9gPHPivKII71BLSl07oA1ruLoVeA22qVol?= =?us-ascii?Q?GQqXRrjcJI0X2HlfHeVdxEU6ke9vRs0TSkNfHh0TYdM++BJTlcpVynJvDHg2?= =?us-ascii?Q?yHB/fnRg08Hq0mpzPU7UIX3BP4qfe71ZFR7KsppZyvwHPzpaol8IHkzs4ghh?= =?us-ascii?Q?vVuaPksOeEWMLmmmbRFw5qUFQGDTBuuoozCagy0dDpkFeuemtw9dOKj3D/81?= =?us-ascii?Q?P+7clumY5v+W584JSrVbFYiSuAusnQsRyC8JhU6z6P1Emtw0ga8mF+f7XuuD?= =?us-ascii?Q?2R+wEqJ3J8BUhnY4cHQ6XWQers8ux7j9DSoSm7JCWM+2+e6J01v68zGrcBi9?= =?us-ascii?Q?WGZqEj4RO+7SZ6LvVr2NiEJu2GIbVUOdkGkB1syR8dF0qkRvnZrq78L+r6Rd?= =?us-ascii?Q?mSGHqfcI2y5M7ExhvJyGXifoqvXoHep/BWlXajuW1ykpftiAxVsmWIB1JAnO?= =?us-ascii?Q?hlTouf2uphk5mDTW72OVJkrZ9FRt3irQ9wgOj20pSdNYHyoGyuEKARrq/ALD?= =?us-ascii?Q?aCT1qWPqM65ZFp+3fc6dPMBueKfmAXqR5NpoSYPvHRRQTgZTqdzxxMUoVTjD?= =?us-ascii?Q?H/e5z0qLD7u2W93o6DL9fs5HuAuutjqFr2n38RfA1uaN5N1oxgeIMLXdFRkY?= =?us-ascii?Q?LXqPVmeXwdzUqPf3rfvZLl4iXO5wLlKMSOuCMRWHriVzfINkiM8UNnRXNTRg?= =?us-ascii?Q?Zg9S4MBSwPMQk3171GzVgxBMoo1QxhVDjvoAId8sD4TWxiN6fgVENJVWfp38?= =?us-ascii?Q?4iTl8XlYSEvh0rcReeufgMZO4ctE5uupifuZyQ0KKQhDBbxCUZinlm9IAGtA?= =?us-ascii?Q?QfTUSMs7Rw=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0790acd2-1232-42bb-cf61-08dea5d5e40c X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB7044.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2026 09:58:40.6828 (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: tQxogmjYWFvniVQe/ubYf3eYrFOg2Cg+9iVkRqFAl7rTq8Wf+6c4F3HbZfKmEyLZomGw3fgQ8Et8jKmaOwRlcA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8269 Content-Type: text/plain; charset="utf-8" The CS42888 codec has 4 I2S lanes with 2 channels per lane. Using odd channel counts (3, 5, 7) causes data misalignment in the I2S frame, resulting in incorrect channel mapping. Only mono and even channel counts (1, 2, 4, 6, 8) work correctly. Additionally, the fixed system clock on i.MX platforms limits supported sample rates. With 12.288 MHz MCLK, only 48kHz family rates (48k, 96k, 192k) achieve valid MCLK:LRCK ratios. With 11.2896 MHz MCLK, only 44k family rates are supported. Add a startup callback to apply PCM constraints for both channels and rates, preventing userspace from requesting unsupported configurations. Signed-off-by: Shengjiu Wang --- sound/soc/fsl/fsl-asoc-card.c | 71 +++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/sound/soc/fsl/fsl-asoc-card.c b/sound/soc/fsl/fsl-asoc-card.c index e08e135886f7..90414ac10032 100644 --- a/sound/soc/fsl/fsl-asoc-card.c +++ b/sound/soc/fsl/fsl-asoc-card.c @@ -40,6 +40,33 @@ /* Default DAI format without Master and Slave flag */ #define DAI_FMT_BASE (SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF) =20 +static const u32 cs42888_rates_48k[] =3D { + 48000, 96000, 192000, +}; + +static const u32 cs42888_rates_44k[] =3D { + 44100, 88200, 176400, +}; + +static const u32 cs42888_channels[] =3D { + 1, 2, 4, 6, 8, +}; + +static const struct snd_pcm_hw_constraint_list cs42888_rate_48k_constraint= s =3D { + .list =3D cs42888_rates_48k, + .count =3D ARRAY_SIZE(cs42888_rates_48k), +}; + +static const struct snd_pcm_hw_constraint_list cs42888_rate_44k_constraint= s =3D { + .list =3D cs42888_rates_44k, + .count =3D ARRAY_SIZE(cs42888_rates_44k), +}; + +static const struct snd_pcm_hw_constraint_list cs42888_channel_constraints= =3D { + .list =3D cs42888_channels, + .count =3D ARRAY_SIZE(cs42888_channels), +}; + /** * struct codec_priv - CODEC private data * @mclk: Main clock of the CODEC @@ -87,6 +114,8 @@ struct cpu_priv { * @codec_priv: CODEC private data * @cpu_priv: CPU private data * @card: ASoC card structure + * @constraint_rates: array of supported rates + * @constraint_channels: array of supported channels * @streams: Mask of current active streams * @sample_rate: Current sample rate * @sample_format: Current sample format @@ -104,6 +133,8 @@ struct fsl_asoc_card_priv { struct codec_priv codec_priv[2]; struct cpu_priv cpu_priv; struct snd_soc_card card; + const struct snd_pcm_hw_constraint_list *constraint_rates; + const struct snd_pcm_hw_constraint_list *constraint_channels; u8 streams; u32 sample_rate; snd_pcm_format_t sample_format; @@ -291,7 +322,39 @@ static int fsl_asoc_card_hw_free(struct snd_pcm_substr= eam *substream) return 0; } =20 +static int fsl_asoc_card_startup(struct snd_pcm_substream *substream) +{ + struct snd_soc_pcm_runtime *rtd =3D substream->private_data; + struct fsl_asoc_card_priv *priv =3D snd_soc_card_get_drvdata(rtd->card); + struct snd_pcm_runtime *runtime =3D substream->runtime; + int ret; + + if (priv->constraint_channels) { + ret =3D snd_pcm_hw_constraint_list(runtime, 0, + SNDRV_PCM_HW_PARAM_CHANNELS, + priv->constraint_channels); + if (ret) + return ret; + } + + /* + * Apply rate constraints only to frontend DAI links (no_pcm =3D 0). + * Skip DPCM backend (no_pcm =3D 1) as rate is fixed by be_hw_params_fixu= p() + * and ASRC frontend handles rate conversion. + */ + if (priv->constraint_rates && !rtd->dai_link->no_pcm) { + ret =3D snd_pcm_hw_constraint_list(runtime, 0, + SNDRV_PCM_HW_PARAM_RATE, + priv->constraint_rates); + if (ret) + return ret; + } + + return 0; +} + static const struct snd_soc_ops fsl_asoc_card_ops =3D { + .startup =3D fsl_asoc_card_startup, .hw_params =3D fsl_asoc_card_hw_params, .hw_free =3D fsl_asoc_card_hw_free, }; @@ -753,6 +816,14 @@ static int fsl_asoc_card_probe(struct platform_device = *pdev) priv->cpu_priv.sysclk_dir[RX] =3D SND_SOC_CLOCK_OUT; priv->cpu_priv.slot_width =3D 32; priv->dai_fmt |=3D SND_SOC_DAIFMT_CBC_CFC; + priv->constraint_channels =3D &cs42888_channel_constraints; + if (priv->codec_priv[0].mclk_freq % 12288000 =3D=3D 0) + priv->constraint_rates =3D &cs42888_rate_48k_constraints; + else if (priv->codec_priv[0].mclk_freq % 11289600 =3D=3D 0) + priv->constraint_rates =3D &cs42888_rate_44k_constraints; + else + dev_warn(&pdev->dev, "Unknown MCLK frequency %lu, no rate constraints\n= ", + priv->codec_priv[0].mclk_freq); } else if (of_device_is_compatible(np, "fsl,imx-audio-cs427x")) { codec_dai_name[0] =3D "cs4271-hifi"; priv->codec_priv[0].mclk_id =3D CS427x_SYSCLK_MCLK; --=20 2.34.1 From nobody Tue Jun 16 20:37:38 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011039.outbound.protection.outlook.com [40.107.130.39]) (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 4F4953C7E07; Wed, 29 Apr 2026 09:58:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.39 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777456731; cv=fail; b=UOjoYLqhASL0BEQtveMCV3OiC1mVjWmgZklsYc1HBj4E2nTHfmGnUBbSgN4xDPylG/FRF8ZxKRULGdwVe3vnYgk/gnK0nj0hrzU0ssq3Yx3qw9v8yJoRgwFvD0CocmskFmDfFIg2kveN9lsIyLSFv6s2HG1/DIgaxT+ZyQVdJPc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777456731; c=relaxed/simple; bh=uFWET0sTGiZFwRKraeYddGqlP0bul2LLr/Fl1IApWVg=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=h1hwUhkILFhtwuTYpa8FtTOjDUT6zgImlL5EtmnahhBo9HLlsJwyorQ2RFT21DmVC1rY5CwbPUJXEfAaQVvM1CzjJ/cftNrf0/KK3XZW9PiZxAzLeImeAkssGB9map5oBKrtfxywkOHETE0F8DpJngjEyrXcxT1yOOYa1dV/CbM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=LrzNwX6x; arc=fail smtp.client-ip=40.107.130.39 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="LrzNwX6x" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IX5y32InrgKSTHEMxQuLPwT/u0vGRDfwH0kDPukXVrnhrAn8FfNNEnPu+mChg/1DxWDRiGNWrfti8mWuOBMiOFZhz3d07jJJcSBaSueHoYyL2xV98cGB2emmmGaOAP7pL2SDiEYjcK0bxioZLw6SNUcX6l6Ugqkrep0yNxbzo9wiXuQtsKB441K/xNOYvR1RJhMx6cycPQgyScbSMMVGl0W1xxChqRBSIRnuXTTWciMrEzzWMr55DwHlajzv3SpK3HQLfPc1zg/G1sRLJllqfzIOpACuNmGD7NxVHEc9tIAwAb6NbzKskC7aL09vgdd9F2zdeX9XGhvZcYHuWMIx7Q== 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=4yRV3QOXiwUiIQTUCWPCNwvI+GZ0ZPve3PWmJ9M9mSg=; b=ugl2KIxn/PCDQknRPXEGl3d4SbdIgpVz/IMkcvqMpSYIKo0vL4G7Y1LRsEuou7HF5YKOMzQXcxQ2WqHmJ1Vx0ENzMKnmfSitDlbhv4uOqJONKxyXkZ1MKwczG+/oa19/lc/sNtSvACiSJSJOx5Dq/JnYoOdgGLHkBnbtv/0QXtyMKa+gyrUeo1o6VF0//dab83sFa0Lqv0249GgzWUALU5yN7xrl1tY2zSwIW4YGAd7nZF1TGN2SO7oU5gwhp7SXhjA1QT1LlYneJJUfTaUQrU/pLY1wQ1+AO/rSwOACR1ErszLQ5IssiiAvn2+JQCQ4Ng+UVhV8F7ibJDD2kbVv1A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4yRV3QOXiwUiIQTUCWPCNwvI+GZ0ZPve3PWmJ9M9mSg=; b=LrzNwX6xTvOjLxwsKFnv7cOU8RYMeBrwGxRoonFWFTcRFesXruMA3PmOohalbI+Q5maAuV7kIi1SaL7LG9WXgj3r1YHSTfbQZaJUkXcJ2OuGjiPvF0MXVxiDvZra0lkHhZuSdAm+1ZKD+HijgkYPTq09zNB3IszCCXsB3do2MG9xVrTA0tzZewR/0uNqhNlNn5fcD/j7X/pkgVlC1pOmL1hRBvap/rlhnCzG8t8IQNiyiYm6E3CoeBXNYDQ8kxSUOGTfKI6Ni31cPD6DeW6u8arKCHHG34FUD+e1gyTpiU4JqDHQKNwD+pb3phvYg2Axy8ARfJgkNQF3I6C4tfZI9A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB7044.eurprd04.prod.outlook.com (2603:10a6:208:191::20) by PAXPR04MB8269.eurprd04.prod.outlook.com (2603:10a6:102:1c4::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.19; Wed, 29 Apr 2026 09:58:45 +0000 Received: from AM0PR04MB7044.eurprd04.prod.outlook.com ([fe80::bab2:d15c:fcf8:ef2b]) by AM0PR04MB7044.eurprd04.prod.outlook.com ([fe80::bab2:d15c:fcf8:ef2b%4]) with mapi id 15.20.9846.025; Wed, 29 Apr 2026 09:58:45 +0000 From: Shengjiu Wang To: 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, linux-sound@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 4/5] ASoC: fsl-asoc-card: exclude S20_3LE format for WM8960/WM8962 + SAI Date: Wed, 29 Apr 2026 18:00:26 +0800 Message-Id: <20260429100028.2739711-5-shengjiu.wang@nxp.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20260429100028.2739711-1-shengjiu.wang@nxp.com> References: <20260429100028.2739711-1-shengjiu.wang@nxp.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2P153CA0005.APCP153.PROD.OUTLOOK.COM (2603:1096::15) To AM0PR04MB7044.eurprd04.prod.outlook.com (2603:10a6:208:191::20) 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: AM0PR04MB7044:EE_|PAXPR04MB8269:EE_ X-MS-Office365-Filtering-Correlation-Id: 0c7c35a3-405d-4c24-a50e-08dea5d5e6c6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|19092799006|376014|52116014|7416014|1800799024|56012099003|22082099003|18002099003|921020|38350700014; X-Microsoft-Antispam-Message-Info: OHaaGdpJGlhjcjNSwCCU/h+Olsnw5fMKDuWKfR0zGd7pj9d+t8a9l9ogvslnwVP13ldANCBsalyYpys/Ns9TGFYJ9ZULisaiJO6N+7SPDDtqJdWEKyxfzi57z9dnRz5CqPs9H7NP5yJcLT/jLh50xTPqeG74BWtzKBnTq+771ASpw7fG9MAH6rttoXM+By4UdW6kaLIXhcllNzmQgSLsJSsaTzRszGr+0FIGoIpmrFvnmMpfr3O4KUJnmkN/CwKGDeUN1HihZgrot5f/csCmruYMEpNptVS2cFxTyA6Dy9zMOg7EfAGEwy75lT945titgMJI/B0MohXG8g+f5QtDSK+n/mY217d+Va984D3N1GKcjgJWwVR8qDmNeCeC85YdSkY/biP5q2j0aMHJBSmkpIVmZTW9KCXVBjNUqCCI01DhiI9YaXJ6wwCovBy7kt7Ct3yM2ulecpyc8Fe+mEBo8/g527jdDUDJvWgxes4YXxLLdQ1GwH8i7NtOA4LAYJ4XYPto3A7Bs+OFFOiT5LWtkXg5IVtOctRHtroUJwYs7w9qtZkvkVEBA66+u7RZFp0gvml7xqVxBm2VdDVOpwFy1tUu0F4UyWN8hwasffmVf5c+moe7moahAT6PhzBYLignSksoTUWn3/XA60jsK1YbaigmvGn5DVnuEAxOXGc3G9fhE5qDVu/cNulJRSjWfIU/nUDLOJOnRMHnW1mNoEdFJOg4LheM3RjK9RF9sg1TUOUUPD7/r81pL/ncoTOQIsiTbfasSULfS/+8ADaRpFQqNcXcI0OI+/I6jFNVKlD72vTU1UmKBODpYspz4BXVLLEN X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB7044.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(19092799006)(376014)(52116014)(7416014)(1800799024)(56012099003)(22082099003)(18002099003)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VWM4ZWFsaUlGTWRYbzdFUC92Uk0rejdmWU5rNS9nNWU3TEN3VktQMEpDMjlK?= =?utf-8?B?L2xmZHF5WGRKajZVVEI0VFIxQVlJMzV1clVZTEdIelQ5RVRKdGN2TFNjdXRw?= =?utf-8?B?QkE1N3pEYVNESktoN0U4NUt3SVdoSjNPenlRRVM3cjhMSlY0RzdTTmt6c0JB?= =?utf-8?B?RXRuZW41RGMrTGlLUmFxMDcycDRBbXA5Ri9GaGdOYjc2eVQxMDl2S0JPNDFW?= =?utf-8?B?Q044ZE1nNEJVVmlCUzV6Y2o3bXJCZHk3R3plcjd0QWRXeDVNaUFvdUNhcGNQ?= =?utf-8?B?ZFViRTFvajFaWE5NMm1Ua0NCTms5S3VocHgyd3BFNkZFbnFtY3FRWjVzTFBV?= =?utf-8?B?a2FKRW9yUk03YktVQVRtL20waXhuTDZxbWxiZm9ORjV4emx3TStJUjlENkh0?= =?utf-8?B?b2RIdmtiUVpSeG1HK2Fidld2NHNLM05wbkNFWjluNUdQbFlzMllTM08zY3hp?= =?utf-8?B?Wk5oSjVTZTMwaW81REdwajJQT3ZITVN1cFQ0YnN5NGFmNVV3VHpES3VZejVD?= =?utf-8?B?V1M3WG1vQ0ZsUDBEUFdCTkswZlc0NW5jUlJiSlk5M3loeDlyVG04NjdibmlX?= =?utf-8?B?T1lQem4wZ1NqSmVKUDFpcUhJL3R2bThnaFd3NDd6WXdTbFV1S0xxY3Vhc2Ny?= =?utf-8?B?ZlF1MHNFSWtueExEd3BOR0pZb2I3dExiUStXdUxUNi9qM3JwL1BHMHEvbkpy?= =?utf-8?B?NU1Hbk5udkJKcmhnczhnK21HVGlqaTNweG54N2FJYlkyQXMwZUYxZExJQjAw?= =?utf-8?B?WUJlM3NTL1NYTWlLeUszTUtKcDZJbU5yWmJzSVBmNXFWY2JQYktrLzVtd2p4?= =?utf-8?B?aTVaYXRLRVQ3UVkwdEJFVmVCUlVtblMrZHQrSGhoTUhiRnhnVzcwWjhqZmRt?= =?utf-8?B?QUl6ME1waGM4Z0xENnh2S3hsdjI4bXdMWVVFb2FPdE9vSC9kQmttd1A0M2pX?= =?utf-8?B?bkcwdW8xK2t5cU5TZi93R21NZ2JEVTBxclJnUWx1MTlRcFZObHRKdC9rSkI5?= =?utf-8?B?THdqclhQQmN3ZnpDWWplUUJVWE9DTlBJdTRSdnlvYkgvS0NZK0xPVjFYL0pz?= =?utf-8?B?dGRTdVFNRmpQakZKNFZsY3VrZnRTQ3htaE1NQ3FIWnpDWXRlZEUzclpNc1E4?= =?utf-8?B?YXBHMUJlZ1JFS1kxRjR1Z1Z5OFgveWlxV3VBTzl3WnVKdGlwZWFyUWtsQzJM?= =?utf-8?B?MGdCaFRpOVQrbXd4QWhVbGRyOEFDeVNsVmhuTFJPQ1RNTDhpMFJmTTNXWUFq?= =?utf-8?B?RStrUTZLTFhrMVNLWUJ1Q3p3TCtLcE5nQkEybWIyQ3VOOEJ5UzZIZnkwNmkr?= =?utf-8?B?dVoya3ZNUWd5M0VCMUlMMldFRUpTaXFzUUxOQ04wejljVE1lOVhGUlZWN0wz?= =?utf-8?B?YVg0OTNEamFkZEdRMEZabk5QR1dIanZXWFNlcERIU1FqUk5VOHl5aDNOOGFH?= =?utf-8?B?c05BR1prNUE0YlE5YUhRaFZ6Q1RJVmt3dy9UcXo2YWNtNmx4Q1FnTVlsR2g0?= =?utf-8?B?Q1RNamEzOW1MRGNYRitqM1NkbmtEdUFyYWNVVkVRUHBscmhCRk1uOWVKVkgv?= =?utf-8?B?YVR1bjZ0eEFIZk5ZK2M2V3E5WlRyV3NDNEhkcUhlT1RSQklvdmRPRUZ6OE1F?= =?utf-8?B?RVYvWDlLeEJNeWkwQjhEU2tTZ1lPNXFBclpRYUVsKzVUSkRpVDkzT29nTjlW?= =?utf-8?B?RkJjQXA3V1crQlg2Q2NNY1Jqa3hsVHA0TUs3V0EwS1VoajJKMGh2ZDRFNU1J?= =?utf-8?B?K2JmT3M5NzZnNGtLa2dreHlOMVB2RnI2QVVTQXNJNXZ6MVovQWhtNW5WMy9R?= =?utf-8?B?SFV2WnhUaC9VaXBnTWh2QjdwQWdxbjlVYWNtQm92YWdyVzdZY1ZrSXRkV1dF?= =?utf-8?B?WWFLQXBzQ2w1RVhqQ0ZFbXVwalRGOE1NSVI4NHUzVTJ2dDZ2UjRrSXEyOTVD?= =?utf-8?B?aXJ1b29UOGhqdFZySklWUmlQZEJKUGs4Wkh6RkxUVEdnb2hkN2RleitHeVZJ?= =?utf-8?B?ejA1ZXd2ZUtjellhazF1Q1lrTGU3NVRBLzhuVkFTNTBpeDZrQUVNanUzQ05R?= =?utf-8?B?RGlJMEdMczNhaVovTkpleEFGYjVaaVpUbkN4dktQSDdjQUVYc1dHeWRudUt0?= =?utf-8?B?aFh2WEdHQ2tBV0tjcWw2UDNaajJUdjEvN2xvMmJJT0lwUi9rdjMxQVhseVZh?= =?utf-8?B?VW1PanZKY2NySktmZlRTRCt0UlNIbWQrMUJXQm9qNjNhWkJzNUdKbk5leEU3?= =?utf-8?B?NDNkU1BEQnMydmRQdzdqcldlWEhsZUNNSG85MEE2SGRrdTNtNllLeUM1S214?= =?utf-8?B?QklidWErdkRxMFIyNGR0MktxblMrZm9uYzFZY3ZYem8xZ3RibDJLQT09?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0c7c35a3-405d-4c24-a50e-08dea5d5e6c6 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB7044.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2026 09:58:45.3218 (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: DTVweAUtr+BG+eMqL5n2M5wj8ZEwplSo1UHbMKbEFIJTsSxShg+2erWKLoyA5G/PdQUbp42MJn4K/FRXvqzs9w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8269 S20_3LE format cannot be used with WM8960/WM8962 codecs when paired with SAI, due to two distinct BCLK generation limitations: 1. Codec Master Mode: When WM8960/WM8962 generates BCLK, it cannot produce the exact 1.92 MHz required for S20_3LE at 48kHz stereo (48000 =C3=97 2 =C3=97 20). The codec uses fixed dividers from SYSCLK (12.288 MHz), and the required divider (6.4) is not available. The closest divider is 6, producing 2.048 MHz, which causes right channel corruption. 2. SAI Master Mode: SAI derive BCLK from MCLK using integer dividers only. S20_3LE requires non-integer divider ratios with standard MCLK frequencies. For example, 48kHz stereo needs 1.920 MHz BCLK, which requires a divider of 6.4 from 12.288 MHz MCLK (not an integer). Exclude S20_3LE format for WM8960/WM8962 when used with SAI to prevent these issues. Users should use S16_LE, S24_LE, or S32_LE instead. Signed-off-by: Shengjiu Wang --- sound/soc/fsl/fsl-asoc-card.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/sound/soc/fsl/fsl-asoc-card.c b/sound/soc/fsl/fsl-asoc-card.c index 90414ac10032..44083d15f6e5 100644 --- a/sound/soc/fsl/fsl-asoc-card.c +++ b/sound/soc/fsl/fsl-asoc-card.c @@ -122,6 +122,7 @@ struct cpu_priv { * @asrc_rate: ASRC sample rate used by Back-Ends * @asrc_format: ASRC sample format used by Back-Ends * @dai_fmt: DAI format between CPU and CODEC + * @exclude_format: excluded format; * @name: Card name */ =20 @@ -141,6 +142,7 @@ struct fsl_asoc_card_priv { u32 asrc_rate; snd_pcm_format_t asrc_format; u32 dai_fmt; + u64 exclude_format; char name[32]; }; =20 @@ -329,6 +331,14 @@ static int fsl_asoc_card_startup(struct snd_pcm_substr= eam *substream) struct snd_pcm_runtime *runtime =3D substream->runtime; int ret; =20 + if (priv->exclude_format && !rtd->dai_link->no_pcm) { + ret =3D snd_pcm_hw_constraint_mask64(runtime, + SNDRV_PCM_HW_PARAM_FORMAT, + ~priv->exclude_format); + if (ret) + return ret; + } + if (priv->constraint_channels) { ret =3D snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS, @@ -850,11 +860,30 @@ static int fsl_asoc_card_probe(struct platform_device= *pdev) priv->codec_priv[0].fll_id =3D WM8962_SYSCLK_FLL; priv->codec_priv[0].pll_id =3D WM8962_FLL; priv->dai_fmt |=3D SND_SOC_DAIFMT_CBP_CFP; + /* + * WM8962 has same BCLK generation limitations as WM8960. + * See WM8960 section for detailed explanation. + */ + if (of_node_name_eq(cpu_np, "sai")) + priv->exclude_format =3D SNDRV_PCM_FMTBIT_S20_3LE; } else if (of_device_is_compatible(np, "fsl,imx-audio-wm8960")) { codec_dai_name[0] =3D "wm8960-hifi"; priv->codec_priv[0].fll_id =3D WM8960_SYSCLK_AUTO; priv->codec_priv[0].pll_id =3D WM8960_SYSCLK_AUTO; priv->dai_fmt |=3D SND_SOC_DAIFMT_CBP_CFP; + /* + * WM8960 in master mode cannot generate exact 1.92 MHz BCLK + * required for S20_3LE (48kHz =C3=97 2ch =C3=97 20bit). Closest availab= le + * is 2.048 MHz (SYSCLK/6), which causes right channel corruption. + * + * In SAI master mode, SAI derive BCLK from MCLK using integer + * dividers only. S20_3LE requires non-integer divider ratios + * with standard MCLK frequencies. For example, 48kHz stereo + * needs 1.920 MHz BCLK, which requires a divider of 6.4 from + * 12.288 MHz MCLK (not an integer). + */ + if (of_node_name_eq(cpu_np, "sai")) + priv->exclude_format =3D SNDRV_PCM_FMTBIT_S20_3LE; } else if (of_device_is_compatible(np, "fsl,imx-audio-ac97")) { codec_dai_name[0] =3D "ac97-hifi"; priv->dai_fmt =3D SND_SOC_DAIFMT_AC97; --=20 2.34.1 From nobody Tue Jun 16 20:37:38 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010008.outbound.protection.outlook.com [52.101.84.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 ADF2A3C8724; Wed, 29 Apr 2026 09:58:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.8 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777456734; cv=fail; b=m0EQZR5MiZ6YAaE0V2do4TcG8FwXTf7lYs4r/ANBH4ISXuein49/+GrcRZCecbuOYy3ZSxfDJhM2HpzKrcmY2j8w8JshogwhPlJng1zTc0avgSX8uVJYsHw0APZylr8+3QNSO4Qn53iV/RgFU6SBaxzCWZK+d8fsidnLXRaIYqE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777456734; c=relaxed/simple; bh=wPgiNOxK7Jdpznf+zHd+bQ6akJhh/2Z2La3tXXRmy1k=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=YRi3eS5fhA5pCA7+kMtiRQ9kKJh+D7lsvr5jzK655iqUZ7oRabb1rluFOnMH+N7ySYE42lSSyR6MiqqIeJhEqdmf0j2YKKf79w1IJ4xB91QbPnZ/gAN8tS788McB2ivnC9gkvWyJgbq19BBs4YmAzmq74pacQuBEoqE685EBYkg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=GlPuKi3x; arc=fail smtp.client-ip=52.101.84.8 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="GlPuKi3x" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KA4nUr/ph4QUs7AVr1M4qN4KAyIYwq23tSrMAPUTAGBv8p+PZnj8g300lJiTjfTulebe5Rde0oCEeDTIZfKoDIMCuqtB+CVPOs+QD9frneUaGwrs7u5fnibRII50P5ifqLFjocy8O4qkfkctfel1bEDjOMswKb78atr3QUL3GW0FR8/Skf8rK5kT4zv+ZtAiKaLCrzwv1yKytv6wclHyUhDQ7FyJ/ym90dQvTGk0aFl11pF0iXyu8EhnSVE50ApGvjm+c7m4Avb+Btkr2EYOG715gWAq58J0OAmg8aVlqN75oNDc9IFZJpETWxTqxFXuIJUbkBNPtErDLrE6vHyUlA== 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=t0Qx/JKN7UCYKtrFKJOHk4u2zJLqGN6fxPhI9K+8mX0=; b=wNqiNYtcSfVVVqBJIJyaE5in/W/2j21sxBswD8J4EiDKVlVBhXYa+CXCBfRE67Pn9y+ye9WtBa+LJJERu6FYAOXD4UNwo5OGMNQJUvZczaNwikYbRW9dx1tm0eBFOAB/XJ4uximwkGNjQhApMOYyQDQigRqwAfNVzC4v3LVHyLibySD5mQ+kt71zcdLuih+BmX/JtSs0GIKp3tXZAB1g3my+m9HNDV0uNMj9IXcFHE2uaFfaboFRx2Wd7uF1r5iovIhNlm3npmT3qVZ+1/W9xHJTafvNQpfCvlwG6/tn5XaYIvkKnGuUFdng5/JsxoVaH+Xa/wiuvqRnxXCzlmMKUw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=t0Qx/JKN7UCYKtrFKJOHk4u2zJLqGN6fxPhI9K+8mX0=; b=GlPuKi3x/68JVOoaEANKnr97hBvhMG0sqh+vGYevVwCr9JYx08zdO4wyOuFetoEYZfZVvbcNdGTwXknJbRqOtxJ7iTv5jfP+qWndd0EbSDe8AyIGHkwo0p5w3o/aF9rCkqW8AN0hPn1L699Ht0QQz4XgZd2VjTbaodRydUTWXgZT8lToc/1H2QhZgaHZBVs5CQhV7YSx0CuJtEfI0853tT3sq6Rfpe7sSY/6BTHLk1lVE4DHjFMjaZW+U+pFaQL08Yfo3NSvIPahzvGnSwRKr5Wm5ojeMszNasoeoUrNuqCgRqkV8fqImwdVDpK2X2VLXp5OEoBp6plNh3mh/0X9LA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB7044.eurprd04.prod.outlook.com (2603:10a6:208:191::20) by PAXPR04MB8269.eurprd04.prod.outlook.com (2603:10a6:102:1c4::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.19; Wed, 29 Apr 2026 09:58:50 +0000 Received: from AM0PR04MB7044.eurprd04.prod.outlook.com ([fe80::bab2:d15c:fcf8:ef2b]) by AM0PR04MB7044.eurprd04.prod.outlook.com ([fe80::bab2:d15c:fcf8:ef2b%4]) with mapi id 15.20.9846.025; Wed, 29 Apr 2026 09:58:50 +0000 From: Shengjiu Wang To: 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, linux-sound@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 5/5] ASoC: fsl-asoc-card: reduce WM8904 PLL ratio to meet frequency limit Date: Wed, 29 Apr 2026 18:00:27 +0800 Message-Id: <20260429100028.2739711-6-shengjiu.wang@nxp.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20260429100028.2739711-1-shengjiu.wang@nxp.com> References: <20260429100028.2739711-1-shengjiu.wang@nxp.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2P153CA0005.APCP153.PROD.OUTLOOK.COM (2603:1096::15) To AM0PR04MB7044.eurprd04.prod.outlook.com (2603:10a6:208:191::20) 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: AM0PR04MB7044:EE_|PAXPR04MB8269:EE_ X-MS-Office365-Filtering-Correlation-Id: 68b85a09-15b9-4349-f0c4-08dea5d5e98a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|19092799006|376014|52116014|7416014|1800799024|56012099003|22082099003|18002099003|921020|38350700014; X-Microsoft-Antispam-Message-Info: Ll+egqkJjs+4totX7qTYygz4sAxodZPoF6gQOolZAapW/Pmp345Y2rftBrmxZGJTgEiuDj5g9dB/JgllX90R5ZET+wE7597Z9jf23ODHq5/n3xedcIv+fNpw+2UWm5ojY6sxJaLMNeLpSEZ8mkwrKce8cEmmZSSQJZJnig80/dlyGwAY7blWpGIWe99wHOM9wbkWSFgWvWv3sbO9FJfjrIXeIlvC4Pe4CFgYM08cxvJ7/Zari3wBabXExRNNMP6n9bXDdvf0EaN3A3o0MiL8y8LhdGXGNW3oPnu1ze5mmhA76EpqTq10uRqb2Txw8JNAnS68edCkNgzXTZauFXYAFv8/k6L/QTI40nNOi/zPW50sBOuqIal+wrN2wrJmyHaIsfbXgy7rvBpa2y8R1wto+u21p3rwJv8leQj4+1C+MMvC5wVF+As+aR1HEhdOCmUyKIRUfb5ZhQqtUTRsy5ugfkDuOUvbld6R1iDVqFJ2TefBQ9Bzyq5hbF2LKw8PB9IL7MH/Lt6Hc2qpSqRgrNiO5he39G20S0G0x7ceuJLQozC0K2VIIUCPgC5okfKC0symwiqUvUWYz9YOmzVQ69beclBbZhHt9zZuybKT9k6L37LhO11NyyPHj7MAg99+9W+md0r/BAPwRbsGAoBEsZYDIhB43uWNNdlpjXSGDNDotr/nVx4rWO9CwrkgY855eDkrI8SlOS6CmBo1U+PkVz81Yak4KMcvhKpjjm3bik727YWOixY/ChWFHTLh9qOWtkaR9U76pT8FCK01+yYwyNDzCv7Ik9UlOgPaKe2m3RDVb7PXx/8T3KQA6pcKtHgy5CiA X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB7044.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(19092799006)(376014)(52116014)(7416014)(1800799024)(56012099003)(22082099003)(18002099003)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OC9Gdnkva3VxYjJQMEMrWXZYcUdhNHkvZVhHL0ZJOUM2bFZBZUV4aHNoRlUx?= =?utf-8?B?VXMzZ1NSMGIyVnc4NisrNnQ0TDFYVStkNkQvQ01XcHJGQVd6c0lDckhmV3FG?= =?utf-8?B?RmRVSE5XZENEZ3RlMmJtRGZ3V01LdWpIV3V2N0lFOG9nWWVrVzRwMTRoSU5v?= =?utf-8?B?KzNoeEs2YXZsaWhXNjhxb1AyTHYzRTAxT2phM0VFUVNQZmZWbDZqZzF5OElq?= =?utf-8?B?WFZ1MWE1dE54bkV5U2lDeiszalI3M2puU1p0OXRpNmhLeS9meWx0c0hMSlZ4?= =?utf-8?B?M3IvYjhRY1djRGZCL283dEQ0NUJHNUgxWGxCUlBlR29ZcXZBL1J1SzIwanMx?= =?utf-8?B?ZmdIcEJ5ZjBQRTF3cm1BZGNPY09za0lzZnJUVGw4bmNEdUZvZGNNeDN5MW5j?= =?utf-8?B?QWRhc1MzbzNzak1lK3pZZm0zUnVZb0RtVXVROWkxSEtxUW1JcC81dk1ub0Vq?= =?utf-8?B?NHdSb3NVTDVRdnJrVTlVaG4xK2JabE9jcUlOQWlvcnNRYnErbkJVYVVVa1Fl?= =?utf-8?B?M05vNnRJam4yZzBUVjUvZGRzNzJmeVpqSjYwL204TS9IemV6L3FkYzA2eDVj?= =?utf-8?B?Wk15RkJuTllSSjVNcmJFL2ZneXd2eUkxS1lyMUlOK3M2S0RxTWhjaGhZQlh4?= =?utf-8?B?ZUVPdVhTZjFOSWpxWWVlS0N5TEE0WjJ5cXZqYmF4SHBnMUpjcDNkMFJkNEZR?= =?utf-8?B?TlcxWWFhRVY2SHVUUUZDSkp0Vm1rejIrSW9oeWM1MlVMRklDSjA0cm5BaDFs?= =?utf-8?B?ZnFSTFpmNXJ0SUxGM2lxWTRCMjE0NGVpUmxqUnVBSVdCRWQxUVhxek9GZitP?= =?utf-8?B?M3AzYUZQYklEZmsydm45dkNBQndKcWY0c21VaFZiRk5IVnc2dTZSY1ZyaTl5?= =?utf-8?B?VzRQTHpqSnNxNXZrdmZqTGx2YjQycmdZS1c3eGlheFh2eHVlMTdDdW9mbTRv?= =?utf-8?B?U1REYkFxeUFQQnlFUWIzK0V0bng3WXJ1QmxXNTFNTFhKZUlVTlVwenRpMGc2?= =?utf-8?B?dEZoVkwyVUd0SUFBeFA0d0Z6NlNqVDBDUjdDcTFDZ2hyQmlZK1ZGZDUzeFJI?= =?utf-8?B?NlhRcFFOT0R1bnFoT1dDU2NncGFnMGwycmRweXdzWit1akxSWlJuL2ZjdDFF?= =?utf-8?B?RWR1NUdxNDlpMGtIdzNhMDZvT2Rod0ViOTZVa3Nvcjk5YWN6c0VqTFFVMUxF?= =?utf-8?B?dEE5VUJadHlSUVFjWHBiMytpR3lZeGxGT1JGUG83ZkRKQlpSQjN2ZkpNM1Ex?= =?utf-8?B?cjVoYUN2cnpGWjd6OFhIR2lUUVBWUFpqYUIzS3dQMEVFZjRIbzMxejlZaXlO?= =?utf-8?B?L0grbHVTOU5adCtTdENkdGFSbURHQk9hWGtYS0F5WUhPYVNHT0lFcnVhek0z?= =?utf-8?B?N1lTYW9iUlJSejF0OExmVTEyeUM4ZE84dXRGcStuQkhqQUxSOGp4aVkxVmcv?= =?utf-8?B?NSsyVGxtcU1CaFg1SFhZRW1URnlLYlRpeEJGeDBoOEdVV2xzRXVTRDAveVVO?= =?utf-8?B?YTVkaCtQcDBWcHUraDFCNzZvdDJESmZvVm5MRjNMQzZRbUU2ZnppYWM4ZjlD?= =?utf-8?B?eWhuTWdvNW5NSVpwUXZzbXU2S0YvMzRab1ZqUzZ5dEJNSXNxZTF1N1Y4Z0xF?= =?utf-8?B?NTI5R1g4QkZQVGsrNWExL29ta0tod0FKNlVNSHpVQ3gyY3hibFVsTDJvM041?= =?utf-8?B?V2NrM0xaajI4T2ZoUHBRL2dvWEVHZ0hKVG1kUXdmWHBpbnZpUDJreVlzMVJL?= =?utf-8?B?UmdMbVpSQ2J1czBFUHZjeDF6Z0xKdkVLOEpjMm1WOHdYc0JBYmQ0WHBOWHlV?= =?utf-8?B?RFNEWHhFeEVTSmNqNGtkMTk3em55NGFQcTluUHY5bkVXR2tJV2haK0pmZGV3?= =?utf-8?B?YmZoemdEQ3M3aUN2UlRHYThBdzNzc2hRMHViYkVjNGxJRGVuMWhJaTE0YmJP?= =?utf-8?B?NjMrekE2UTRxUkhFV3BjcUphTEIrT2JaYktzcW51ZzBOSVE0ZFArN25UWXBT?= =?utf-8?B?bWxBVjNqRVpUN2FzMjRyaGZXNFRsZ0lTK2lONUE2c3V1cUlDdFJqSHBjUDI1?= =?utf-8?B?ZkZQOEhUNUQ3ZE5oQ3FzL09KNEhBREYwcTlwM1FXbzRjd2ZFSGlFUjRNa3Vo?= =?utf-8?B?U2NpN1FIZzREb3hMbCs3U2lzUjN0SEpSWmhYV3JrTmRXcnp3S0RBOWJGT1BK?= =?utf-8?B?UkpLaGNrMjN1azBIVENIZjlxL3JOZHVlSjZSUEVlMTNiN1l6VGdSSmFqd3hQ?= =?utf-8?B?Q2l3SXBiYjg5dmdnMkJwb1lDWGF0OHJ3Q2FCVldPMlA5RXhkUHp5NXNaQXc5?= =?utf-8?B?K0JDai9wREtJcWZEekMzd0FGZmVhNGhxSlBWUFJjUUJXYm1xSWQwQT09?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 68b85a09-15b9-4349-f0c4-08dea5d5e98a X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB7044.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2026 09:58:49.9406 (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: iM1fd8q2Oj90H07XPcIeNShPU8UfoslYVpNYVSoM3wPk/WFDdURstqh70yv0xjTii/ME0osIq8sTE9NRTle2rQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8269 WM8904 has a 27 MHz PLL frequency limit. The current S24_LE PLL ratio of 384 exceeds this at high sample rates (96 kHz =C3=97 384 =3D 36.864 MHz). Reduce the ratio to 192 for WM8904, keeping PLL within limits at all supported rates (96 kHz =C3=97 192 =3D 18.432 MHz). Add codec-specific pll_ratio_s24 field, default 384, override to 192 for WM8904. Signed-off-by: Shengjiu Wang --- sound/soc/fsl/fsl-asoc-card.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sound/soc/fsl/fsl-asoc-card.c b/sound/soc/fsl/fsl-asoc-card.c index 44083d15f6e5..709543308fe9 100644 --- a/sound/soc/fsl/fsl-asoc-card.c +++ b/sound/soc/fsl/fsl-asoc-card.c @@ -75,6 +75,9 @@ static const struct snd_pcm_hw_constraint_list cs42888_ch= annel_constraints =3D { * @mclk_id: MCLK (or main clock) id for set_sysclk() * @fll_id: FLL (or secordary clock) id for set_sysclk() * @pll_id: PLL id for set_pll() + * @pll_ratio_s24: PLL output ratio for S24_LE format (PLL_freq =3D sample= _rate =C3=97 ratio) + * Default is 384, but some codecs (e.g., WM8904) require = lower values + * to stay within PLL frequency limits */ struct codec_priv { struct clk *mclk; @@ -83,6 +86,7 @@ struct codec_priv { u32 mclk_id; int fll_id; int pll_id; + int pll_ratio_s24; }; =20 /** @@ -255,7 +259,7 @@ static int fsl_asoc_card_hw_params(struct snd_pcm_subst= ream *substream, =20 if (codec_priv->pll_id >=3D 0 && codec_priv->fll_id >=3D 0) { if (priv->sample_format =3D=3D SNDRV_PCM_FORMAT_S24_LE) - pll_out =3D priv->sample_rate * 384; + pll_out =3D priv->sample_rate * codec_priv->pll_ratio_s24; else pll_out =3D priv->sample_rate * 256; =20 @@ -815,6 +819,7 @@ static int fsl_asoc_card_probe(struct platform_device *= pdev) for (codec_idx =3D 0; codec_idx < 2; codec_idx++) { priv->codec_priv[codec_idx].fll_id =3D -1; priv->codec_priv[codec_idx].pll_id =3D -1; + priv->codec_priv[codec_idx].pll_ratio_s24 =3D 384; } =20 /* Diversify the card configurations */ @@ -935,6 +940,7 @@ static int fsl_asoc_card_probe(struct platform_device *= pdev) priv->codec_priv[0].mclk_id =3D WM8904_FLL_MCLK; priv->codec_priv[0].fll_id =3D WM8904_CLK_FLL; priv->codec_priv[0].pll_id =3D WM8904_FLL_MCLK; + priv->codec_priv[0].pll_ratio_s24 =3D 192; priv->dai_fmt |=3D SND_SOC_DAIFMT_CBP_CFP; } else if (of_device_is_compatible(np, "fsl,imx-audio-spdif")) { ret =3D fsl_asoc_card_spdif_init(codec_np, cpu_np, codec_dai_name, priv); --=20 2.34.1