From nobody Thu Sep 24 20:03:34 2026 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010010.outbound.protection.outlook.com [52.101.69.10]) (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 DAAF147FAFB; Mon, 21 Sep 2026 10:46:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.10 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987621; cv=fail; b=SyuoiIh3UxV+N4oubrB0YWQxdYIh/TTL/DCb7OPAz9XNl3LKVSkKh4B7yb3DX49JKcRC2qtUTEn2FhggQQxOHNP6KbHhyrQjkCYMJzIpDEY01ctdXAPYn4Nc3GmaZWDvIBxfkgTht15FLdCOEdBqB987zpQHTgGkiHHkfkFCbdc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987621; c=relaxed/simple; bh=c7xnN5kAv/DZQbbn8SLYdEX5Ut8bjYu9XqB5HOe924o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Lo+hJwPVZAQ3u/ayrHP3CUfJfTmzn25sXVInNFvI5tbw6/p9mflg8ubIl/+Lg1ZGi4bcn9sc9niL/ZxVwZEjuFU7Z9uhKEb+gNKEQ2dSOEvMqZfzT6UzqILmPXoAvd3zv2aAR+Mh0I/EXFps9AF8acInt1/wzNkmOv9ul4XcCjs= 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=iAlzu/zC; arc=fail smtp.client-ip=52.101.69.10 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="iAlzu/zC" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=opJX0PivM5UhgT5GDb1hU5Mx/vLmjOl51zBEEpeddR+depbymhskrdMTFza0OkejUxYZMDgaNxkshVjy5Vw5K7mcR8YiTzoACpyhz6FwTbCiQCatFxgdRh/ElRwQG6dtoc43ufuuHsEVM6CDd9czt3eI5nlTxqbfi8xDiaL+SxlWkoLn4SM3G/tkgrWSjJ1U2ICVEY2zpt9zcpsIZV/K8feHwc59BEI3EMGeJ+NNLCYdb+n1Aj3FbKCssGtduf3fWOHJh9WzP9zCyxB7XnvKYEZnXUz8uxDe/i4D+kmPMgn2CqMTm1lr/WRnfjRSBtM1U5UBm00AkqIsT8vXMjCIgQ== 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=ZZQVQZf/6Uuyp9pKwkWGP7D52T71N5AtDOq4Fwo3zvo=; b=JAMwxQbd/PqCvH//XfkQUfoFYtjpMqYZepOF2WOQTyLIcy5sNWeffnrnGdEgyZz2xenojcCq3dp3ZbMtWcH1G7T8ahMLSFPQwMVf6oj1RoV8v45yOTGvgFCorQ+snxyAmKurSjs7e1LVPwUKl6xgPg4uQDNE/2Ljr+1cKNd8VkWNHCBYQ9Mk+sY1jT+JE7pLvlJaVK/X9IwVR3HckLyq9YqmCCVn37r8K9vJpF64HXBjx1hsgLFEPrubPmcbIvGbwCQG3fddzZA2PVCiinhhOl2Xy44E3W+rxXUrylC2PvDRNKXsIRmI9UYAENumI+DKmLUJMvxJg0YkCoyeS/jenw== 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=ZZQVQZf/6Uuyp9pKwkWGP7D52T71N5AtDOq4Fwo3zvo=; b=iAlzu/zCMoFZVP1s4rdkpExvL/c5GOlr3VGm5rTp0UEjA+OhH/P71j+nMfCKUFDiSA/KH+uj+z+Nv4g/7DZRS8EYGIkQ9cDKtgKY4CclnHFEmuw7tFCo7rJh9Xqgv7mkVdqwkzbnEwk5ysBtdA7tyB/HjzPzTlwsR9vCwxGuDyGamQGrBq1Gtyop7UwLJX53WFqep0DI7VSK40vZXIQvSpsprcZA9yabNDtnvoQ8Lkgl8Me60m9okebhfiMUQwL3/Ux1jCNU41KM0HAeu0ikMny4xf8mTvq5c870vu6uKXxDmpgq8oURHCsf/MbzJra62OgR5A2Vpy3ZhwCibNLAPg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by FRWPR04MB11198.eurprd04.prod.outlook.com (2603:10a6:d10:171::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 10:46:55 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 10:46:55 +0000 From: Chancel Liu To: Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Oder Chiou Cc: Support Opensource , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 01/21] ASoC: cpcap: Fix devm resource leaks across card bind/unbind Date: Mon, 21 Sep 2026 19:46:20 +0900 Message-ID: <20260921104640.1941554-2-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> References: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SEWP216CA0125.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2b9::19) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::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: GVXPR04MB10021:EE_|FRWPR04MB11198:EE_ X-MS-Office365-Filtering-Correlation-Id: e2ca388e-b8df-4710-e1f7-08df17cda77d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|7416014|1800799024|366016|19092799006|376014|10067099003|56012099006|6133799003|18002099003|22082099003|11063799006; X-Microsoft-Antispam-Message-Info: AWMjRtqiMsWJFVstERL2XDFptSXLtlQbRZx/TFCbv5GDW2T7v3/pWf8zJBcOdh+gItB7Fn7g+rWrhMTmN155pGcni2oqcclg6mAjWp9ahtQbgtUxo+s7XaAXkzgrOnczGokvlzqVxwqTHu5C+j7ejRH0l75mW5tb4wRHs8KihoDTcGaSSOs/0t4EnQGiquU44HCpjREai/tJkqM4Hm8nNzAQXC/duShVThtOxt4uR+SkTDjOZHP2STfWa/qoLEBqwdJTsgiFb2r0Pr2LyQq8CZIUuB4QweJxXoVjwv0bPKT5WiTV9ICTnw69V1KeoITasJy0NDB/k0EoRH+PQbD2s+SRQ4gGodpB2FoiM4AtDH489oQubjECG9y+xhKrzTfnBDgt2+uEuVNCUcc1ib6C2cRE4sLhMYrRLaJisEcyUv5RrUaH/1o9aMcuyhb7TyDfQCzD5a3ari1Qy5Q543nx3orRgZ2WrShaBH1Sjnkv9EtPYM2T1dx/6smoK3OZSJM6RGbRJa9veIAPjjb1yuRSCt1DTG9XuCBKjQ0Xmre1Q/fJCz6zfBfKwqxpjGtiy+MB5iyxa1HRGKziwReKfVjxobkYGkutxIxGMMuoj0i/qcLXz5+ff2N2bmGiwDfeNT+HE3Z0FS6MOnpk9Y0usxcRWV7hCkTRI2AIjyFXXhNU0n0= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(7416014)(1800799024)(366016)(19092799006)(376014)(10067099003)(56012099006)(6133799003)(18002099003)(22082099003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kzm9jXqYgbNSeHY5PEQxdYUNEMIj37id7Ua3bQx1IojqrEv5MGzKxPp9NLGH?= =?us-ascii?Q?5nBlvP4uMM35I/5JmYJ/h4Yi4OGrW47urq8S7qXuh5vOJcUxvzABeHDmK1r9?= =?us-ascii?Q?7L2Tv3teFucys5ubWgLejPdist0bEWZmX0VeF4W5RjuFShwver8EFKug/v/0?= =?us-ascii?Q?admmTwGxl1yoU5B6uc78Cay73xbZXvxAKr6OpLe2mSQjbt3oVBx6UjKv8+zt?= =?us-ascii?Q?s060NNEp9vpiduQk3eENeVABsOEEqUYU8+BqtbkPZWCvl7nX9Y56wek4eayw?= =?us-ascii?Q?Y5xTh33kUrczHEE8htGfnEvttaFWD6YagmFXMDkdn7UAAM84rLsvtfh/szDB?= =?us-ascii?Q?aGvNvUpUbAtO8jrQOXKWB61zgyrMnkcdsXLnrKUDysYtqB9RNejX+mgUnQEC?= =?us-ascii?Q?dywfNrkaj4oNQQg+VVFO+1lnpm930/oTCiGFv8bW4RQ0JQEohxJQzqVjXTjQ?= =?us-ascii?Q?v52HFgbMtHaP/PPDhxTpI6M2or5KLvQAgwoeVkP+bcHrx870PEsAY0NmG6gA?= =?us-ascii?Q?qGj5B3VFPN0QL1EFGzNzEHGMEe1BFRtO+G931wvwj0eWoELD66lXTyrxYQ6u?= =?us-ascii?Q?K1bRpWzxVsLNbr3oSiagLXoUhgDEG1m1P4/xRxMJRQpLYmxBP/jDXd5GU5sx?= =?us-ascii?Q?IDxIfzQxd/BBS8nWwMiGXMd42dXRPYxahwAJaqT3qImHZYRdyZVOAPEXy/0+?= =?us-ascii?Q?NU6k7kxmHbt3bVz0dU5GuVh/ZrZjkFk6VBYibkzsHsVKpC0MJCQr34Z1LOjL?= =?us-ascii?Q?gTlWSLfRdoGYDj+EhstrndUP/eT3xED76tJYHBtHNlj8dZqZIQuDNrcl8619?= =?us-ascii?Q?dL4j3ArvackpAFMnN1d8tvbkCvtE5BU3UUrnGwucOgUxl7vYql+iMf9Ue71A?= =?us-ascii?Q?AZ96LqkQZDE5xZEHQop2a+1arU0VHZDbE6a6b4AuIruxKql662j9jh7sOvJ7?= =?us-ascii?Q?UFp/oHYNG7rqVOse20BTbBGqByMaPWkQUqmS/BC3Lte2ss9PmtUS79IZfTm/?= =?us-ascii?Q?gpdeRTPNF7oR5yugWneyivhWnEfVbs13dO4M5S8dXe55JoFA15hhYysOEbS4?= =?us-ascii?Q?KPo+NoUd+3fpbiJVpxhK6KbFtvW5j68PX6UuSqv0HBgQ/w2LLxATeT5qoiWB?= =?us-ascii?Q?P1MNQAdUD5F4rnEzv0Pd6kK7cbyHrywlhvwytZZ9ymKcbwyzoAv16i8HXj01?= =?us-ascii?Q?1c2hGk+bJQd/t8lO5VxdkF4vtvqvzhmSdH4g577D4713FLn5NH8cJv9vd/cy?= =?us-ascii?Q?OBTVlS/zpRaUr+qCAKojGEY++BJuD2+8HcEhxI0fxo2n98Nti3F2ptELgXPN?= =?us-ascii?Q?55q0zoxp21p9dFcwucLKVMmVgUQgsO1iiAaVxok+rVB3oHkSy5UCFIL/eNtF?= =?us-ascii?Q?9IyngF8TxHsFb5Wx/LqhATqyXSpqBxdhRN9y2eSX6KOuDO1KTQwrC8dt7TSn?= =?us-ascii?Q?F1S841f3W4vSbWVZP0OHsbi0pIPIb63oiirLuiMx/oUZbvgX0cjFwtw/FomI?= =?us-ascii?Q?lJa5diz6yGrFm6OvuvJJTBqCnvDsTadcqjxj/0VQI65QhtjNzjBtW2j8QOlP?= =?us-ascii?Q?6tioTIM/N20VQIK5l3oMvBcF7YYQq/jKdBx2gOS1quKpQQnXGpPKIzqEC6tM?= =?us-ascii?Q?fcQ7wPi7z7hGLdWLkQ0EION1DLNAyEM9h3LBnIANpdXL5KXs/fJQTQuWuzQ0?= =?us-ascii?Q?BhPRdn9zYjqrRfYyJASef+q3Mesom0gcEgQVUw/+XunzC0TxOUhkfvkQGPK9?= =?us-ascii?Q?XczI5vCp4fIfrG+Ei1YLlJfDGGkq/oalt8X7nE+R0sZW5rR3CaTH?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e2ca388e-b8df-4710-e1f7-08df17cda77d X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 10:46:55.7589 (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: +M4HFtojRrBMq8uFs8HRrWB3E3mo0jF3MbIPXQS//8iQw3dYkvKR9pRnYS2OvuGvCGP0HhgZ3RR9Fv5wgO8KvpiRNLoudiXv3sGTvbBu2PEIx/W/d8lu5bzXZ1IbuVrT X-MS-Exchange-Transport-CrossTenantHeadersStamped: FRWPR04MB11198 Content-Type: text/plain; charset="utf-8" From: Chancel Liu The ASoC component .probe/.remove are called on card bind/unbind, but component->dev is the underlying platform device. Resources requested with devm_*(component->dev, ...) or request_irq() in the component .probe are only released when the platform device is removed, not on card unbind, leaking on every bind/unbind cycle. The VAUDIO regulator is a pure hardware resource that only depends on the platform device, so acquire it with devm_regulator_get() in the platform probe where its devres lifetime matches the device. The headset/mic-button IRQs genuinely depend on the component, so keep them in cpcap_soc_probe() but request them with the non-devm request_irq() API and free them explicitly in cpcap_soc_remove(). Signed-off-by: Chancel Liu --- sound/soc/codecs/cpcap.c | 74 ++++++++++++++++++++++++---------------- 1 file changed, 45 insertions(+), 29 deletions(-) diff --git a/sound/soc/codecs/cpcap.c b/sound/soc/codecs/cpcap.c index 0262900fbb7d..dda68165b817 100644 --- a/sound/soc/codecs/cpcap.c +++ b/sound/soc/codecs/cpcap.c @@ -1622,21 +1622,12 @@ static int cpcap_soc_probe(struct snd_soc_component= *component) { struct platform_device *pdev =3D to_platform_device(component->dev); struct snd_soc_card *card =3D component->card; - struct cpcap_audio *cpcap; + struct cpcap_audio *cpcap =3D dev_get_drvdata(component->dev); int err; =20 - cpcap =3D devm_kzalloc(component->dev, sizeof(*cpcap), GFP_KERNEL); - if (!cpcap) - return -ENOMEM; - snd_soc_component_set_drvdata(component, cpcap); cpcap->component =3D component; =20 - cpcap->vaudio =3D devm_regulator_get(component->dev, "VAUDIO"); - if (IS_ERR(cpcap->vaudio)) - return dev_err_probe(component->dev, PTR_ERR(cpcap->vaudio), - "Cannot get VAUDIO regulator\n"); - err =3D snd_soc_card_jack_new(card, "Headphones", SND_JACK_HEADSET | SND_JACK_BTN_0, &cpcap->jack); @@ -1660,13 +1651,13 @@ static int cpcap_soc_probe(struct snd_soc_component= *component) if (cpcap->hsirq < 0) return cpcap->hsirq; =20 - err =3D devm_request_threaded_irq(component->dev, cpcap->hsirq, NULL, - cpcap_hs_irq_thread, - IRQF_TRIGGER_RISING | - IRQF_TRIGGER_FALLING | - IRQF_ONESHOT, - "cpcap-codec-hs", - component); + err =3D request_threaded_irq(cpcap->hsirq, NULL, + cpcap_hs_irq_thread, + IRQF_TRIGGER_RISING | + IRQF_TRIGGER_FALLING | + IRQF_ONESHOT, + "cpcap-codec-hs", + component); if (err) { dev_warn(component->dev, "no HS irq%i: %i\n", cpcap->hsirq, err); @@ -1674,25 +1665,27 @@ static int cpcap_soc_probe(struct snd_soc_component= *component) } =20 cpcap->mb2irq =3D platform_get_irq_byname(pdev, "mb2"); - if (cpcap->mb2irq < 0) - return cpcap->mb2irq; - - err =3D devm_request_threaded_irq(component->dev, cpcap->mb2irq, NULL, - cpcap_mb2_irq_thread, - IRQF_TRIGGER_RISING | - IRQF_TRIGGER_FALLING | - IRQF_ONESHOT, - "cpcap-codec-mb2", - component); + if (cpcap->mb2irq < 0) { + err =3D cpcap->mb2irq; + goto err_free_hsirq; + } + + err =3D request_threaded_irq(cpcap->mb2irq, NULL, + cpcap_mb2_irq_thread, + IRQF_TRIGGER_RISING | + IRQF_TRIGGER_FALLING | + IRQF_ONESHOT, + "cpcap-codec-mb2", + component); if (err) { dev_warn(component->dev, "no MB2 irq%i: %i\n", cpcap->mb2irq, err); - return err; + goto err_free_hsirq; } =20 err =3D cpcap_audio_reset(component, false); if (err) - return err; + goto err_free_mb2irq; =20 cpcap_hs_irq_thread(cpcap->hsirq, component); =20 @@ -1700,6 +1693,13 @@ static int cpcap_soc_probe(struct snd_soc_component = *component) enable_irq_wake(cpcap->mb2irq); =20 return 0; + +err_free_mb2irq: + free_irq(cpcap->mb2irq, component); +err_free_hsirq: + free_irq(cpcap->hsirq, component); + + return err; } =20 static void cpcap_soc_remove(struct snd_soc_component *component) @@ -1708,6 +1708,9 @@ static void cpcap_soc_remove(struct snd_soc_component= *component) =20 disable_irq_wake(cpcap->hsirq); disable_irq_wake(cpcap->mb2irq); + + free_irq(cpcap->mb2irq, component); + free_irq(cpcap->hsirq, component); } =20 static int cpcap_set_bias_level(struct snd_soc_component *component, @@ -1754,11 +1757,24 @@ static int cpcap_codec_probe(struct platform_device= *pdev) { struct device_node *codec_node =3D of_get_child_by_name(pdev->dev.parent->of_node, "audio-codec"); + struct cpcap_audio *cpcap; + if (!codec_node) return -ENODEV; =20 pdev->dev.of_node =3D codec_node; =20 + cpcap =3D devm_kzalloc(&pdev->dev, sizeof(*cpcap), GFP_KERNEL); + if (!cpcap) + return -ENOMEM; + + cpcap->vaudio =3D devm_regulator_get(&pdev->dev, "VAUDIO"); + if (IS_ERR(cpcap->vaudio)) + return dev_err_probe(&pdev->dev, PTR_ERR(cpcap->vaudio), + "Cannot get VAUDIO regulator\n"); + + platform_set_drvdata(pdev, cpcap); + return devm_snd_soc_register_component(&pdev->dev, &soc_codec_dev_cpcap, cpcap_dai, ARRAY_SIZE(cpcap_dai)); } --=20 2.50.1 From nobody Thu Sep 24 20:03:34 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011053.outbound.protection.outlook.com [52.101.65.53]) (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 D9FE8484239; Mon, 21 Sep 2026 10:47:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987627; cv=fail; b=cJJsSj7cRmV57foTC6hYeUqOjRbgVl00eS2VOC9YMvtQmoNYgwjL/+QEWgIo4vYl36YTo7O8B38ifcvs6CXfQcaXWxbaTjVAtpsy1ad1lSnejFs52v4AHboKIpwPH6/k5EgSLRl4xl+vseWlyfAsGsRB8Ydf+j0TkEqCvbWLQMA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987627; c=relaxed/simple; bh=j63a9iTwY2s2JYCC+5DeGojz4NUG4NZQ3puZpH5Oy9M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=uaR+lIPH5uTxM5x9o6EU7L6xhblBBuXBSO10vT6GtIoLpRt1wpF3b/7t6okHpuOqNKUQkgQ5Q+C+jTvxYvNZ/ECkn/JO7NO6IU4snecqoh2TqnMArI4f8qns/+uu3EeRBWRHroQhgllWXX2lODbPNQfcxHtWn9Wll99/qrLX9/M= 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=pQLtIO87; arc=fail smtp.client-ip=52.101.65.53 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="pQLtIO87" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Kq2q43Zzao9KG+q2F1F8JwN0NwxOc+Esq2V/thGGfySeJFP/6mQB64sqIZZnU9tL2tTXgwfj/5o97DdQnPO5Khn0259wenPmJkavoibWtNWogkGZS4f9vwFSaFz7sfg7dpZtoeY5cQ3EiL/ZOMcBeJ8jch5XUXzV3Bsg4uQsfKKC2oL3OFqrkPjo94gT7pIvGET5ryf7W4lluEeSGl5ke1HcLGddGi/7kvNmsznIzBSohjMtYoNn2zyGDL7WJ/sAqYrd4mBeK757wHHkTzirWNY/6sOvjxbTaLeWdpfdTWqgV9oho8raXzVVfttLPTYqHmcuu1fNJldjxZvBGxP/zg== 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=vuspjEBhcAWwrUpUYcbJuPjQhWhUPDhZQs4WpBw2HG8=; b=SPzy/L1Zti1hh+7xMzkRBYK+rDGs/dvYhkgxldAQr+StY5t5iJhvrEKn7capWnqx9WCsICBmyjyVXWRNCWpxZ0bDOOLXL7Jesc3v1F7zK+QUhiSpDeLP+SVy6I16o1mp/pcniE8rAxOAjVJGB2S8ri6eGPz4FDMLlQf9W0K+ATUnWNlzm5PRzwjCldBKKKSaXtJ50WWe5bpEd5oBNPF9nW5Ut9iPsj4ayQAhgQtgZGBtl0IwhiB+LPbh5Fh1eFvu+aOj5yv5/iyRz54hQWrCFNgZM6OJaY3EBqz/R1LG2XJ7eq8NfRK0b5YIo1/shnvxknP340LAISdqTEItbJwATA== 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=vuspjEBhcAWwrUpUYcbJuPjQhWhUPDhZQs4WpBw2HG8=; b=pQLtIO870z9nm1hITpfl3Ek2uy3hFo6tZxScZt9KRlvYnQq2YcKo7gyPxVgapohrulmRQo+NKK5/LYa6+2+epIaG6FjmArjnG9WeRhBH2vY2vBltStDzvuAnSX11tbRuKP1vNzYOGODDnjaHLOl6po/lMmov1BEM7nxusYHvT7A7sgb4Zx3NlMHnIjhNIK1cdFaDkLr28kH3I9csIdLFk8k82xlSvmdEi5JFzGHN95v7rVTOhWth3YxR4IlrG3nJb4yjvMnYflWVG0pnBuLzX3t05FBBbTULtJZUog21AGJt+IYO565jVl0q8TFLlIkyc6Iuh+f+XQ3CinkjMaJg6A== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by VI0PR04MB554873.eurprd04.prod.outlook.com (2603:10a6:800:361::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.13; Mon, 21 Sep 2026 10:47:02 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 10:47:02 +0000 From: Chancel Liu To: Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Oder Chiou Cc: Support Opensource , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 02/21] ASoC: da7218: Fix devm resource leaks across card bind/unbind Date: Mon, 21 Sep 2026 19:46:21 +0900 Message-ID: <20260921104640.1941554-3-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> References: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SEWP216CA0121.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2b9::17) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::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: GVXPR04MB10021:EE_|VI0PR04MB554873:EE_ X-MS-Office365-Filtering-Correlation-Id: 02a2d702-a51f-474e-1fdc-08df17cdab8c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|19092799006|23010399003|366016|10067099003|11063799006|56012099006|6133799003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: DJMzdFvdEc+kVOQvXQwoF+5354i5ZOpjTkBpJf9aygIxGFKuQAIElauQOfdpqn706jj9Qc2msAnvrO41ul9uzdV3Wf38iXc1y4GwHB8rINBNMbvJAGuurdyputOZHioUKe/aUniYMq8q3mAOxksGxNScvyf9qciGXJNfoSmXcV+9pfGlp3Mkmq/i5CCgBaLYjXPKjppGp5DePoZBE07l0EXIobNaLHL+FOidO+6CYHFNzKVFstPuLQVqoYwOejqgbC928LlEomcpCfTeHlWlIOy3wMcaN0sayFrPfDJDnmW8OcBKsu+doqUQkoYJf33yFHFt9nx8BnYqWNrSnhNQYlrfBIs2CBuwXPnjtRggfYNYGDAwA8+PwcBZD3fbKaOu3AjaxHup8W9/HCz2o62b07QLt15KcXgDiBdReFwa2dIZBTcL9aVq59xBSHlw9gCWBW806hp1L3n0w250zB2ofLAMNX9TgkhzMZCAp6eFlGsj55eipTYWZQ03BFuOcTGPwLfapXgOEauUMV8TWKeob27hm0jPRmqJmq/QnA3La2OYr5W7jrkws7ulvNqRcQGhx09JeVwpoii837jxhrFUm3u4ahBHOhDWNDeZbjeHEMywYoYF8uFedXLwaz3kYYFPDDoEAVZPa8dWILKZOHsb+w/pbewt/BIL/mi7GEEPXtM= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(19092799006)(23010399003)(366016)(10067099003)(11063799006)(56012099006)(6133799003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?0FF3TtKEfY+jZgfbMdBwuRWyE3DGOxgKrrbsY8IwX1AgQAM9GQbMIiSWLh2d?= =?us-ascii?Q?7Ec8rp/V+FyaiKulshrDYwHqDY0+O427m0WSko72oHuVqeHPWWYB+4WyYeki?= =?us-ascii?Q?OoWgst/VN6AdqGX7YfEps+L5UmHYY8ei4+4IAyhNpdAg2t4igjOuPqxeHz1/?= =?us-ascii?Q?4aWPgrvGCgA9sZ108Hv2XaDSmSpQRUE8iAFfvrQLjhABzw+mUP7W2Pfbi0tn?= =?us-ascii?Q?hXOqkU1rS5A0rSbRK/WcmX2G87l8lsNDyDrhqKpb5uyS9n0LikXD8g7DD3kY?= =?us-ascii?Q?3MTUA3NmEe1t8XVjdZRDOxtu+ak8O1Chxsc6yA+15eTopScTyDvHlUdY4hi9?= =?us-ascii?Q?oIBTtDReqf/j9rb8wiKRBcupmchKwmU4LVn0Hzs0slsmbjGE9He1Ff7r0hwm?= =?us-ascii?Q?nEmVJ+EoExMn1bv1oAkaiyKvlQIxz2nBkMdd7Rzb6mVFqGtF4szGCaRy7D0F?= =?us-ascii?Q?BJfSxXC/FCddkGY7wlcmki/BzIb8cmx3PeOCsg1wIHRaZ+HJ4sTwo22taqvA?= =?us-ascii?Q?xzuRqIjRPAqOFeArsNIK4MReORmM7j8XmiaCAasxyNZs91FggbJzmFaeHK04?= =?us-ascii?Q?XnaPIY6OAQAt56hNmDdxz7E9hg8Wos0E6/gReCGLgjEJid2lMdtcRPK9wnhf?= =?us-ascii?Q?EVGQW/0obe90vliz4rri47j3J95L65aVizg9VimcSkKN6hYkWaQCA+tGzIzB?= =?us-ascii?Q?3Y9gvS88VpT+l95VV5cW1AwZEZrZxt9dWNZyXG1xueqRRSIDBmT4ZwJPlWpx?= =?us-ascii?Q?dW99ImKEbUXzQHuxagY6ZDn4WJIrajN0w+BYVZPWVNtA7fNYIGHWTN8M2nUa?= =?us-ascii?Q?NdU9DBvB43atjAIvLrzHOkGq4CKrbsanSDTKtfKy+FiinHuntc0yTeKaCMwi?= =?us-ascii?Q?+wL/N2S8wPWBQmCpZj8sJnmABS9Dek2L5EUDMAWtEi8izy6n71pIulPoDqGh?= =?us-ascii?Q?MmV9lovWFl/w6a7k+TePZHDTI8hmpCUpfkfqRHk5DotoTungfvJNYHRLMsJZ?= =?us-ascii?Q?6CMSKTTtDOVtKIKKROwQ3K2yfWhywdtXjBQCsFoZrSE8LTGNtR8kwQOWOtzB?= =?us-ascii?Q?gFR4ETo3t7r+XoNCG58jasjaDAI4RiByEvjkdRh0rHVWTehL9rb6NGhUM0Ib?= =?us-ascii?Q?lP/lwwWFmAldwnz3qf0OGWOXrnBqnuvzKuBgshxj9kqfLpow1NhF13hRxLuj?= =?us-ascii?Q?Cig6zcEzhYa6wGZKlqFRFZFpCc0lOFShR00AbQVIMUkMcilpvj4hNFIBaKZD?= =?us-ascii?Q?wS7FWtiDq0wErTkpdJ5WirfNsxNQyhu3aR6v9sVjxiQrb81tqzB+bNQo9OUX?= =?us-ascii?Q?zpkH55JuHtIOD5q8Q8ptLrJggN8vb5xp0+L2ypqQ08MFR5jj4Z80ZUgzLfAo?= =?us-ascii?Q?4rR2w2c0HJPtQz8tnaEXjGhTa4xX6i8jJjM3GuuYT1FsSS2FGqNTnk0SGcB/?= =?us-ascii?Q?M9pDQLtp5dgsrdLON6+c1mkZbgMBVNymve49MMNSCZbMrSLNtX/a6SNsLNZB?= =?us-ascii?Q?vIwZiNz++fslowhfzZlhv3cZA9/jWV3Zv9Vy1CL68yWuFdgok6J61NN+8HAD?= =?us-ascii?Q?PdBH5ultXtDo6yNFe++KyXe7iKkhSgGZ/bTLOTu7bCwNMkRwyRE+snWoai+s?= =?us-ascii?Q?kVwspRVZbDM526RmcOgSxFkxJ2yaUMQIogo9n47knDYujRp/0PKrMXRfVVME?= =?us-ascii?Q?Ka44I8f2ArELnTPbgeXxP+a/zihWONaVJHEBuZfkibQonIjP+9Bc+KN3W3LT?= =?us-ascii?Q?jptdw2DV2bPrtZAUWxkNVQu51/LbfUrvhG2pdIx3PB8CRi1h5fUv?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 02a2d702-a51f-474e-1fdc-08df17cdab8c X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 10:47:02.8032 (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: JmJeM5pXTB6rkuHZLR/zP2HCcaimvGxKA5CRnV4BtgL+uLmGB3GHLXKFHtPwGmezxvr21b8vdr0DdkTlI9sH7UC6v3Zx3I6Lr3MnQndLcQrnM+T9uBAfLRdJleCt3Gtb X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR04MB554873 Content-Type: text/plain; charset="utf-8" From: Chancel Liu component->dev is the underlying I2C device, so resources requested with devm_*(component->dev, ...) in the component .probe are only released when the I2C device is removed, not on card unbind. This leaks the mclk clock, the regulator bulk and the IRQ on every card bind/unbind cycle. Move the mclk clock and the regulator supplies (pure hardware resources tied to the platform device) to da7218_i2c_probe() using devm on &i2c->dev. Keep the IRQ in the component .probe (it feeds the component) but request it with the non-devm API and free it in da7218_remove(). Signed-off-by: Chancel Liu --- sound/soc/codecs/da7218.c | 49 ++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/sound/soc/codecs/da7218.c b/sound/soc/codecs/da7218.c index 361daf14152e..f8928545b70f 100644 --- a/sound/soc/codecs/da7218.c +++ b/sound/soc/codecs/da7218.c @@ -2638,18 +2638,7 @@ static int da7218_handle_supplies(struct snd_soc_com= ponent *component) struct da7218_priv *da7218 =3D snd_soc_component_get_drvdata(component); struct regulator *vddio; u8 io_voltage_lvl =3D DA7218_IO_VOLTAGE_LEVEL_2_5V_3_6V; - int i, ret; - - /* Get required supplies */ - for (i =3D 0; i < DA7218_NUM_SUPPLIES; ++i) - da7218->supplies[i].supply =3D da7218_supply_names[i]; - - ret =3D devm_regulator_bulk_get(component->dev, DA7218_NUM_SUPPLIES, - da7218->supplies); - if (ret) { - dev_err(component->dev, "Failed to get supplies\n"); - return ret; - } + int ret; =20 /* Determine VDDIO voltage provided */ vddio =3D da7218->supplies[DA7218_SUPPLY_VDDIO].consumer; @@ -2895,13 +2884,6 @@ static int da7218_probe(struct snd_soc_component *co= mponent) =20 da7218_handle_pdata(component); =20 - /* Check if MCLK provided, if not the clock is NULL */ - da7218->mclk =3D devm_clk_get_optional(component->dev, "mclk"); - if (IS_ERR(da7218->mclk)) { - ret =3D PTR_ERR(da7218->mclk); - goto err_disable_reg; - } - /* Default PC to free-running */ snd_soc_component_write(component, DA7218_PC_COUNT, DA7218_PC_FREERUN_MAS= K); =20 @@ -2965,10 +2947,10 @@ static int da7218_probe(struct snd_soc_component *c= omponent) } =20 if (da7218->irq) { - ret =3D devm_request_threaded_irq(component->dev, da7218->irq, NULL, - da7218_irq_thread, - IRQF_TRIGGER_LOW | IRQF_ONESHOT, - "da7218", component); + ret =3D request_threaded_irq(da7218->irq, NULL, + da7218_irq_thread, + IRQF_TRIGGER_LOW | IRQF_ONESHOT, + "da7218", component); if (ret !=3D 0) { dev_err(component->dev, "Failed to request IRQ %d: %d\n", da7218->irq, ret); @@ -2989,6 +2971,9 @@ static void da7218_remove(struct snd_soc_component *c= omponent) { struct da7218_priv *da7218 =3D snd_soc_component_get_drvdata(component); =20 + if (da7218->irq) + free_irq(da7218->irq, component); + regulator_bulk_disable(DA7218_NUM_SUPPLIES, da7218->supplies); } =20 @@ -3259,7 +3244,7 @@ static const struct regmap_config da7218_regmap_confi= g =3D { static int da7218_i2c_probe(struct i2c_client *i2c) { struct da7218_priv *da7218; - int ret; + int i, ret; =20 da7218 =3D devm_kzalloc(&i2c->dev, sizeof(*da7218), GFP_KERNEL); if (!da7218) @@ -3284,6 +3269,22 @@ static int da7218_i2c_probe(struct i2c_client *i2c) return ret; } =20 + /* Get required supplies */ + for (i =3D 0; i < DA7218_NUM_SUPPLIES; ++i) + da7218->supplies[i].supply =3D da7218_supply_names[i]; + + ret =3D devm_regulator_bulk_get(&i2c->dev, DA7218_NUM_SUPPLIES, + da7218->supplies); + if (ret) { + dev_err(&i2c->dev, "Failed to get supplies\n"); + return ret; + } + + /* Check if MCLK provided, if not the clock is NULL */ + da7218->mclk =3D devm_clk_get_optional(&i2c->dev, "mclk"); + if (IS_ERR(da7218->mclk)) + return PTR_ERR(da7218->mclk); + ret =3D devm_snd_soc_register_component(&i2c->dev, &soc_component_dev_da7218, &da7218_dai, 1); if (ret < 0) { --=20 2.50.1 From nobody Thu Sep 24 20:03:34 2026 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012034.outbound.protection.outlook.com [52.101.66.34]) (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 045764825D3; Mon, 21 Sep 2026 10:47:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.34 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987635; cv=fail; b=sDR1vMQSyH7PDEMSoZ+Mc1lrxNQC+cchfwre//xpOUFmdtCkOVKqO99p4GIO7gxAtURg37TosCjkjlBdXrfYEV1GSaQ/au+qYr0HppljImEvDAMRWvJ4RCyLAawKo40zfZ2AcD2OnOVreYlOj+LUJg2k/KIVN0HAjuoBL7iXzQg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987635; c=relaxed/simple; bh=qEMqprp8CWTdo7TMThRLU1Zh5CRm1eBW79ke9ElAD9A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=YTAjKSL8agKFjGMXLFdm7923qcEuV8wynmPIsNXmYI2HQ0ZsMIXtRjxTHyoia7VQM/ZIRIupFc9WWq5QNawlgwTJyWKKxGJ509sqKD4KanY3DmfG07Mpv9Abifujm4al83yXRwLqC92RasM6BkVs+2mUQP4KUQKHsxUIvDiOOOM= 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=OF1msDl+; arc=fail smtp.client-ip=52.101.66.34 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="OF1msDl+" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BRBtG9cwpeC4mlIZBo+9guP/4PBjHkfb5dHM9biFWxbv88HbBD4vo4cijs/iZjDgb8Zop9mP6jAX5Sf7pnFPOkBKwVWrZfxIYt5ABehJDGsYVyWZdIBkEYfBkcu691/kWKPIq93rhoGEz5fmaJkmEwSLY9GYpEYXPhU5t2KJUvj0du7IVIdtgp+BbZECv/I2yM+rE+asLlpFuHjU4s6z7LG4xMJpf6hesIrPydT/bciJ8Jo1E4JxGD1ZY9m3a/1SH2szyZ9LAUGv7P3rogDq5CFYP94rajU+HwyiMrs6zM0HVaQXol42G5i0yTrIqxEIIo+3Uv9BOJjizrtG3peH0w== 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=Cv2W0k0/Ejzq2odJu2pL7H9Wi9Ka+zCk4zA7jrVjKUk=; b=I+WVGEp4/0FlC6UdAv4hp6ViULqqAz8wfqK8eMaehP8PTel0BDgp3W/ZPXdE8S1k69SKCzDgZwl9bwFRQi2zHc+9PnTzugTB396CnDdNoU+i35ccMeW4QkiLnKEkm81YfMhAWu/ddo9clO9yzk2D84qV4mA3uWrFw9nNpLufPtO40BGIPdR9FjA2pdsn2OtrpaOhx7rOrIh67mnPzxgNV8fii+Rn7i+LiNTXLVVvMbL/BX6axD3j9EA15dkBGXn1pGQySyaNjt49U8gvMbWtFt7JFPJkjRBLyVuFmN04bJ0/5RQXR5VLDhPFG9E7By84+rcc3xc0Iuhf5wW5kMlwMQ== 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=Cv2W0k0/Ejzq2odJu2pL7H9Wi9Ka+zCk4zA7jrVjKUk=; b=OF1msDl+7uFsEz5wPEYE4wcIAu2yTopp1qbDN2roF4UV1UnL0DiFKfdMeAK3RLUW887c6lSx+UeR0/cG65bfaSYYID8X+wjufMcHVefOwyycEx6ocgG33XizSj+ZzUw3LDCW884iaQgETeZl59WNKF8tZs0Z5TH3FmpXet81s6hRvH5s2kD8Wj0L9Rhqzt5swdOr8M6sQv4FOoNDKVVmKXAKizqSclAAkI83GZkgDRq+OsFs6HmuFHPMLBb99xeEuhEvN9ewO/Ya+uYousOP1XUvY/2BgcEV1ozVV4sHxy5l74mM9r9YKiCY7PZh4v/r8AUxGL0iDZoSSh5Tk4qcDw== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by VI0PR04MB554873.eurprd04.prod.outlook.com (2603:10a6:800:361::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.13; Mon, 21 Sep 2026 10:47:10 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 10:47:10 +0000 From: Chancel Liu To: Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Oder Chiou Cc: Support Opensource , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 03/21] ASoC: tlv320aic32x4: Fix clock leak from runtime callbacks Date: Mon, 21 Sep 2026 19:46:22 +0900 Message-ID: <20260921104640.1941554-4-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> References: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SE2P216CA0168.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2cb::10) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::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: GVXPR04MB10021:EE_|VI0PR04MB554873:EE_ X-MS-Office365-Filtering-Correlation-Id: 98ecf975-735e-477a-86d9-08df17cdb021 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|19092799006|23010399003|366016|10067099003|11063799006|56012099006|6133799003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: VoS9yhcYewibqOHJx18c6Za9UyD7W6b+TwNsGf3e9j3dB6kJV/7uAbIN/Wp5nAJTKvmI4Yl8ooGAVsxBsmFl6lUMoHxsil+zqLyGSK3vv5dgI2hFqzwXUmex/gYdODGpCAjfPQLPBJWxrmaujYWiGTSKLB2SINKYJQ4T9YfiZaU+BV3gemBo5XcWC1Nq854XO8l5VGlam6QIF2kE1TDI0NrmeOUzQikLg3VTRUtwxe9m8T6byFOL47Yp+3xbiPL8IG0ihfRqZi0tRyrC0rYkXrl/VxpZGhaj85GxrU+bZiRlPjwgTeT2RHVjnXqguHeNOIrCT/G62NyBfwN2ga9VOif36kFg7w1a24p8Zc+uruBdJbsuvvZ1CjrCZ8GRaz1J0QT+IazYH9ShLAfvzdM0zmzfyxiAnH4kLImym8UJC7s3SGrWj6g/sYnUWFGKtX2cRnZ3yyYGxDSSnqICaGs+cAeiO1M5w3AX+IrgBhL/3qzz5CgMNWcQzGIMkk1R4B06F7IATtygCPlULtjW3E2yw4u/bRffPZDGYfhfNep+OraVbpSu9i8Mwj1YH+ErrrPODNUo2YSpj8QN+Adpl3G4sltDdrY7e1To5m7GM6dJqvU76Y3D9fFtIqcrdb5UkUJzbl8VCLkJTjKODQ42nlNpRSBwtaKm3g339c9Ly7I/DrY= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(19092799006)(23010399003)(366016)(10067099003)(11063799006)(56012099006)(6133799003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+fSedBNzhbYQh/jNYfb4YAAZl5E7Ug0k3owcuBTsuglcc+6BCXQtvNm27GZl?= =?us-ascii?Q?H4X1gvhaFB0vr9gHgbP/VRRv+CCVitOd/eTmSMMuT6bP0/d4ZXTEIDM8Gqmw?= =?us-ascii?Q?Oazhqva0/gzn7RgMJLsm6buqVnUPBQq16f8a7/XU86m/C1fXsjBeAN/dL1n8?= =?us-ascii?Q?Ofwh7/5mwYVZK2q+lkU5ASqLN3EJz281NnxV0pc3/dzC06CItkgw4PniTHVM?= =?us-ascii?Q?5Y59ZnMoY7c1csRKr6k9yQ3J858XFid7S6YnhymGDmdmoKEObA5cyTqgwQux?= =?us-ascii?Q?Hn7OYU+hYHU6pv3IoadTcGlV29O68CtZod6CWrS1B7heOrkTCaTqBFuEXZdx?= =?us-ascii?Q?ZNQ6j4CptebGQbITb1hJ/iw3osB8Z9TVylq9XkcfuMaIKowf6xkPb+XGKnBq?= =?us-ascii?Q?OUjAxvqHEMFPeqTQPkz+EdgleUnybX0WhkvpdArnMY8eeFLLaf6+84i01EFm?= =?us-ascii?Q?ro4r8Z4wwNq7yPe5RYpsSEQy3Qr8k+Vrv4LrRU+LntFa4uw9nP5VN5V6G7PG?= =?us-ascii?Q?PDBJyPaucFtxeocxNjYtsimfq6b3+pAqfIzM9tC3TQd4J39rB1rcyrN5ault?= =?us-ascii?Q?ErXuLnRm78Nl/VeXiFMZP1XWHv+jqdIDDoap4LU6/vdNIneAR+cyB3uist5d?= =?us-ascii?Q?/WFcgwsHWTA/zi4zBrnw/tQNqRqO8V59McnfOnwtz+tyuFq2rfZN5MzzvbDD?= =?us-ascii?Q?UHzK1L78GNUvVmapXRjAKESR59JIP5IJfdqFEFV87sfTGqt6wZhlZfDTl4/z?= =?us-ascii?Q?x4TiSLkw0tXa7l806yr3/jiuOrSRmIw1o0mspYdgsr9scG3JeKnIec6N9VCd?= =?us-ascii?Q?2S21NgggZGeKiflaYykVaCWX/B/I81HXAVjxuvxbQFxO/xVwvfdLH+BhH9MG?= =?us-ascii?Q?KyMFz/xQtQ+GbGc+2TaxypaG5JxN+bDZPywL1OXtlOtWyZZPzN5FSSWBMZbq?= =?us-ascii?Q?DIevkLi+L1D34lbq/tNnu4b64PfE+9TySK/fxLBVv2QhF9b1UtRdGgfzVpus?= =?us-ascii?Q?h1LVXdXy9iNfaP2TleIcz0h3+X+LqjkBsKt93MP0u9kQDwIDGzXtQSzANb+0?= =?us-ascii?Q?BeT5NeIYQW86nN3GV+iVUBY4LaiUhXOZoQlJpT2ixTC6le56xen3bpfFAFmy?= =?us-ascii?Q?aBVpWt66bWh0sUe386jtRdYS3/i84e28a8cCxbftj+hZvaTPEUfW/+kI3gtc?= =?us-ascii?Q?kQ1NQacurbllb3afR73dcK3vM89dgsZTofdOiDHPXc39PidOBVxGFzqSxvLw?= =?us-ascii?Q?s5ELRraqBdjhHuXn8sK0+bRIqiKNCl1TFPYXYqCK9HGXQbaHLK2RMzGvARMY?= =?us-ascii?Q?GAqCbBM50bbjLzmqxbkfTmkfILQJvVwHASY8FeVlA6tPnuWeBYO0VG6JskmW?= =?us-ascii?Q?YXsd2mvdo8fgdywKaFNOAdAR4cSbQaggeMY9BpqrEtYxxBZya84Fv3qcsSOF?= =?us-ascii?Q?1kk62Xn+5VxRJTkkGzg13dkMk22wwrS9qReVNfQo0kv3UugyyNB7y24hTXf2?= =?us-ascii?Q?Xg9VBcJQimtHLTnkx/zpJWG2NbN6ZXz+l/kx0p4Gld9vrXQ43dzGyaI0QTgJ?= =?us-ascii?Q?iEmWUkZQSvctdRuVy/rrEY1js335uLa4ATFmaf8ikwtK+pCsSqWEpZV8a7dh?= =?us-ascii?Q?yBF5s4qNQBIN7//RzYFEPJucFxhp+WoAZGBTty5V6lOCrrxCCnK8/SURCr+B?= =?us-ascii?Q?Wh9vxUn2HcerGjbsXaDawqytzsk+Y0AhCTjjOM+m/I5DW27zQUPeuoTifCvS?= =?us-ascii?Q?jkyVyAMeBCoVZIpdcsTq2RCz75XqOEwNhwdJUwDvA8QDdUSggDf9?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 98ecf975-735e-477a-86d9-08df17cdb021 X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 10:47:10.2906 (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: GFvqFi/uws4higJyTV0PQ/pNq016zX/s08IUUocWlPBKxNz6Mx/CNmGeveu46WgVnk1I9BD/GrFNRg4cYQ4KCsQHxtv4rmxDzt+ws6eduEYbUy+7Vu5nHVnhxM+7wNoc X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR04MB554873 Content-Type: text/plain; charset="utf-8" From: Chancel Liu component->dev is the underlying I2C/SPI device. The driver acquired its codec clocks with devm_clk_get()/devm_clk_bulk_get(component->dev, ...) from the DAI set_sysclk runtime callback, from set_bias_level and from the component .probe. Because devres on component->dev is only released when the platform device is removed, each card bind/unbind (and, for set_sysclk, each runtime invocation) leaked a fresh clock reference. Acquire all codec clocks once in the bus probe with a single devm_clk_bulk_get() into the private struct, and have the runtime callbacks and both component probes reuse those stored references. Signed-off-by: Chancel Liu --- sound/soc/codecs/tlv320aic32x4.c | 94 +++++++++++++++----------------- 1 file changed, 44 insertions(+), 50 deletions(-) diff --git a/sound/soc/codecs/tlv320aic32x4.c b/sound/soc/codecs/tlv320aic3= 2x4.c index af4be5bee723..7fec94768afb 100644 --- a/sound/soc/codecs/tlv320aic32x4.c +++ b/sound/soc/codecs/tlv320aic32x4.c @@ -48,8 +48,18 @@ struct aic32x4_priv { enum aic32x4_type type; =20 unsigned int fmt; + + struct clk_bulk_data clocks[7]; }; =20 +#define AIC32X4_CLK_CODEC_CLKIN 0 +#define AIC32X4_CLK_PLL 1 +#define AIC32X4_CLK_NADC 2 +#define AIC32X4_CLK_MADC 3 +#define AIC32X4_CLK_NDAC 4 +#define AIC32X4_CLK_MDAC 5 +#define AIC32X4_CLK_BDIV 6 + static int aic32x4_reset_adc(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event) { @@ -591,14 +601,10 @@ static int aic32x4_set_dai_sysclk(struct snd_soc_dai = *codec_dai, int clk_id, unsigned int freq, int dir) { struct snd_soc_component *component =3D codec_dai->component; + struct aic32x4_priv *aic32x4 =3D snd_soc_component_get_drvdata(component); struct clk *mclk; - struct clk *pll; - - pll =3D devm_clk_get(component->dev, "pll"); - if (IS_ERR(pll)) - return PTR_ERR(pll); =20 - mclk =3D clk_get_parent(pll); + mclk =3D clk_get_parent(aic32x4->clocks[AIC32X4_CLK_PLL].clk); =20 return clk_set_rate(mclk, freq); } @@ -750,17 +756,7 @@ static int aic32x4_setup_clocks(struct snd_soc_compone= nt *component, unsigned long adc_clock_rate, dac_clock_rate; int ret; =20 - struct clk_bulk_data clocks[] =3D { - { .id =3D "pll" }, - { .id =3D "nadc" }, - { .id =3D "madc" }, - { .id =3D "ndac" }, - { .id =3D "mdac" }, - { .id =3D "bdiv" }, - }; - ret =3D devm_clk_bulk_get(component->dev, ARRAY_SIZE(clocks), clocks); - if (ret) - return ret; + struct clk_bulk_data *clocks =3D &aic32x4->clocks[AIC32X4_CLK_PLL]; =20 ret =3D aic32x4_configure_rate(component, sample_rate, &aosr, &adc_resource_class, &dac_resource_class, @@ -876,18 +872,15 @@ static int aic32x4_set_bias_level(struct snd_soc_comp= onent *component, enum snd_soc_bias_level level) { struct snd_soc_dapm_context *dapm =3D snd_soc_component_to_dapm(component= ); + struct aic32x4_priv *aic32x4 =3D snd_soc_component_get_drvdata(component); int ret; =20 struct clk_bulk_data clocks[] =3D { - { .id =3D "madc" }, - { .id =3D "mdac" }, - { .id =3D "bdiv" }, + aic32x4->clocks[AIC32X4_CLK_MADC], + aic32x4->clocks[AIC32X4_CLK_MDAC], + aic32x4->clocks[AIC32X4_CLK_BDIV], }; =20 - ret =3D devm_clk_bulk_get(component->dev, ARRAY_SIZE(clocks), clocks); - if (ret) - return ret; - switch (level) { case SND_SOC_BIAS_ON: ret =3D clk_bulk_prepare_enable(ARRAY_SIZE(clocks), clocks); @@ -970,23 +963,16 @@ static int aic32x4_component_probe(struct snd_soc_com= ponent *component) { struct aic32x4_priv *aic32x4 =3D snd_soc_component_get_drvdata(component); u32 tmp_reg; - int ret; =20 - struct clk_bulk_data clocks[] =3D { - { .id =3D "codec_clkin" }, - { .id =3D "pll" }, - { .id =3D "bdiv" }, - { .id =3D "mdac" }, - }; - - ret =3D devm_clk_bulk_get(component->dev, ARRAY_SIZE(clocks), clocks); - if (ret) - return ret; + struct clk *codec_clkin =3D aic32x4->clocks[AIC32X4_CLK_CODEC_CLKIN].clk; + struct clk *pll =3D aic32x4->clocks[AIC32X4_CLK_PLL].clk; + struct clk *bdiv =3D aic32x4->clocks[AIC32X4_CLK_BDIV].clk; + struct clk *mdac =3D aic32x4->clocks[AIC32X4_CLK_MDAC].clk; =20 aic32x4_setup_gpios(component); =20 - clk_set_parent(clocks[0].clk, clocks[1].clk); - clk_set_parent(clocks[2].clk, clocks[3].clk); + clk_set_parent(codec_clkin, pll); + clk_set_parent(bdiv, mdac); =20 /* Power platform configuration */ if (aic32x4->power_cfg & AIC32X4_PWR_MICBIAS_2075_LDOIN) { @@ -1127,23 +1113,16 @@ static int aic32x4_tas2505_component_probe(struct s= nd_soc_component *component) { struct aic32x4_priv *aic32x4 =3D snd_soc_component_get_drvdata(component); u32 tmp_reg; - int ret; - - struct clk_bulk_data clocks[] =3D { - { .id =3D "codec_clkin" }, - { .id =3D "pll" }, - { .id =3D "bdiv" }, - { .id =3D "mdac" }, - }; =20 - ret =3D devm_clk_bulk_get(component->dev, ARRAY_SIZE(clocks), clocks); - if (ret) - return ret; + struct clk *codec_clkin =3D aic32x4->clocks[AIC32X4_CLK_CODEC_CLKIN].clk; + struct clk *pll =3D aic32x4->clocks[AIC32X4_CLK_PLL].clk; + struct clk *bdiv =3D aic32x4->clocks[AIC32X4_CLK_BDIV].clk; + struct clk *mdac =3D aic32x4->clocks[AIC32X4_CLK_MDAC].clk; =20 aic32x4_setup_gpios(component); =20 - clk_set_parent(clocks[0].clk, clocks[1].clk); - clk_set_parent(clocks[2].clk, clocks[3].clk); + clk_set_parent(codec_clkin, pll); + clk_set_parent(bdiv, mdac); =20 /* Power platform configuration */ if (aic32x4->power_cfg & AIC32X4_PWR_AVDD_DVDD_WEAK_DISABLE) @@ -1362,6 +1341,21 @@ int aic32x4_probe(struct device *dev, struct regmap = *regmap, if (ret) goto err_disable_regulators; =20 + aic32x4->clocks[AIC32X4_CLK_CODEC_CLKIN].id =3D "codec_clkin"; + aic32x4->clocks[AIC32X4_CLK_PLL].id =3D "pll"; + aic32x4->clocks[AIC32X4_CLK_NADC].id =3D "nadc"; + aic32x4->clocks[AIC32X4_CLK_MADC].id =3D "madc"; + aic32x4->clocks[AIC32X4_CLK_NDAC].id =3D "ndac"; + aic32x4->clocks[AIC32X4_CLK_MDAC].id =3D "mdac"; + aic32x4->clocks[AIC32X4_CLK_BDIV].id =3D "bdiv"; + + ret =3D devm_clk_bulk_get(dev, ARRAY_SIZE(aic32x4->clocks), + aic32x4->clocks); + if (ret) { + dev_err(dev, "Failed to get clocks\n"); + goto err_disable_regulators; + } + switch (aic32x4->type) { case AIC32X4_TYPE_TAS2505: ret =3D devm_snd_soc_register_component(dev, --=20 2.50.1 From nobody Thu Sep 24 20:03:34 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013007.outbound.protection.outlook.com [40.107.159.7]) (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 AB9F0481A99; Mon, 21 Sep 2026 10:47:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987644; cv=fail; b=o56gw7izHJVvTnRpNSuoHbUkwqu8cEP7X75+aHLNGKcs8hIuqc660MVEDww40v0KnQbhYXvWuFWLIXUNDDjNp3bh5NCGbgO5di5B+N5mFpFA1qxnwB34D2W5Ga+Q/uN+dRABqLgLZpHfKBG73955ukUw1oqo5MMTnGkg87ze1bM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987644; c=relaxed/simple; bh=XP5kDniofYKa/9VQ7QhRDEBhaOJNuAK7XrVXn9wZjdU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=kWAx2Q+dQqRjKJWP0NUfv+fr7g7cHKm54cW/kpJsy+3vYPjqRtSpe4qrvrzwhMJlB+gWCSOljf64hjiXoi53BZMjYFTCGN/2biYxnUSMYiK/nYAadjltMjkSXuMEV8q+B5O2rytgnyFu6/ucesv7+KcrbXv3+Aqa3NNJSDJACfM= 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=Hj5ysARA; arc=fail smtp.client-ip=40.107.159.7 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="Hj5ysARA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ydGd43OCXCmiYhRX/152jOa7ftTvi4RmqPyJembuwKT/2iX51CnSOtxFvo9hEsNDhfkjFrSdq8gni8OOLDhl2MfnVyU5ULgBRn/qB+A+U1/ab/HLdDrYHoOoaqcfrul6r5aDuHmEs3xye50pOtuF3wRMEs/dJEWnd6wZ7zOcvSA6Jlq/c0Txgaix/L0K8sglDVQKERKfO6IsqKimD4Pu+R6X6zXiM3MDJM4Vvp2xRwRlC+/K5b5rsVA30VytNcu/fAolCID+oWKVEIPGq5Rr5CosqB77vTFgsweW7VlJQHatJXMD8Ekb+V/gYXoMcsNaYNiNEFjl2jE2pD/JOaw8Fg== 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=DcavGUxELXPW98RJksf9nLoEG+k/mtu5EkghU1zE0dA=; b=tpMzmZGuHKd37IX1h6NMNXthXXIVFIOwvYCO73buvumyYuUEWIy0At2stDfxIBUopJJtdPV82/+pE8IXMrNMm2sMLADR+18xHtXLZZQboLY+YXyDps0td2Eg/MXoG2xKa9KPGE0U9eqyQkWaEAopBukNLeGTI3xLuGEy/Kn06cJvMwFn6ZSrlSG1VC7Av+VNOxveTZTKX1qSFKEOU6KkuV/7Z2EtYG2vqnSvDyhTVz4nU/5QxJGQOTYLrwpTrudybpGx23ZSBvRLJTHFtTqu6hLX2+xC2fztHEVpTi3CwjHtslABPcELfB8iu9RPoS/ntY+5XGi5vnYvgfeLWJoDZg== 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=DcavGUxELXPW98RJksf9nLoEG+k/mtu5EkghU1zE0dA=; b=Hj5ysARAh4XPf8aArRn4InvrQWLf/lQWN/ikexMPC1msvBAunKRODdkFfLYpaXx91QPwOhGLYSS5A1k7MfVGsw6saxoFC0QoRhJYaF6geAGlmEclaPCGLDE8YWlLfvgMT0s4IzKjHnkb9+xQKTqkCRUmYfg78T+SrFntugFHwC/loQ75TLD+TaXx/fBWom7tDcysb0/QNX/eIFUqFbD6MLq5+7/oFf4L8KTx3eMjQoPtCIHuVrss66ggd8NhPcLqut8io9ybAcIAjYNETTkKrPn1lSXbSHVI6pMXD5e0lQ1IBX35h6BxEqacx4uChZqMH0CnBhZ9oFf8jdYWs21aAQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by VI1PR04MB6862.eurprd04.prod.outlook.com (2603:10a6:803:130::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 10:47:18 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 10:47:18 +0000 From: Chancel Liu To: Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Oder Chiou Cc: Support Opensource , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 04/21] ASoC: twl4030: Acquire board params and hs_extmute GPIO in the platform probe Date: Mon, 21 Sep 2026 19:46:23 +0900 Message-ID: <20260921104640.1941554-5-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> References: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SE2P216CA0167.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2cb::17) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::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: GVXPR04MB10021:EE_|VI1PR04MB6862:EE_ X-MS-Office365-Filtering-Correlation-Id: a078f764-b4d5-4baf-a648-08df17cdb4cb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|23010399003|19092799006|366016|1800799024|22082099003|18002099003|56012099006|11063799006|10067099003|3023799007; X-Microsoft-Antispam-Message-Info: jZl+/vkNCVzaW0/IFcC6VaHt749J3tAgYj1sW7IP0Q6FZqQL+agyqdl8SzR1IPyYzXqp8u2cxLoddV5EYZwPNzIM/hIWsMMjO3KRudLf51ZJRfnjAp8WNfqMum/Z1sIaRzaupIZAjwiUIMkJWxQ2FY+C3SdBSMacUuj/TtJI5tCRN9E9lFMtA6Ob9MNrEuoF8yIr2DKSfsxVcUU8lfVK2+9YrUCbfwStWieooyAv8bJyvXxAAYmQgKrsYGTw1KM+0fy69Q7ZiunzYMBQjS49wPrnn22mAmGWBx3JMUiR/jYVMK0QR3H+GiXsnRgdfEz3RopwemeA7azlysTSS5set+u/IyodWI8rFteINUwRkfFlL8/f7iLTby053G0CmYr8hZj8PL+pu79x0/PzpGNhjFecLZwR05p4YlR6f8fs+x37DV/Bd9QjjxYp23QpvobNAes1BXqnBClFw6wtrJwLLFGUM8DsxQ/O0LZoGtEl184UhAvFp3bqrfIN7WyDn9nuFmSRj4xiyolj0Quj/96tmB0MDgAS9lND1Danjr1YFp8IVgjoyQPSHRY8goNMvQqPQI5ppVmKANVXr4Jdl7xrmacW5Ig1w7jQ1ru/CvKLnIda/GvLgWrPUg5mpw7ba5o4FL+PmDMtB3MuxaTwr1niwRgjOJnQrJYJwtMFXgOs7Y8= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(23010399003)(19092799006)(366016)(1800799024)(22082099003)(18002099003)(56012099006)(11063799006)(10067099003)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?VTAQH/gjr7RAtNa2BSqUcgruQ6gKInyWlv/rVqZyRq9OiqF8IN4zheeHVwfG?= =?us-ascii?Q?3JmJ7wxv9TRlNn3gTzfU0F/4WDQbuC0pTR7bXr+zO9RgJccd59taLHB0XUPd?= =?us-ascii?Q?HDSlEV97L1XYlhD6RM7Jedfg0jS4SUHNpFopzBcSlHSRQ65qpf/E+mOjrW+W?= =?us-ascii?Q?1cF1hk9OyQ82O7HQPy9rHk8mZN3DqVrSKxCBUd0i1PjQvlDiuWQSqDgm+ERa?= =?us-ascii?Q?Ad3tEp+wKQf/3cpYo5KH5HVqCSvSr/85NKqbCad/s4DLFUc/+71cjPg/+Dk+?= =?us-ascii?Q?Gv91jnuwmxX5m3BA4B5lGGujcja7gGQOOvWPJFtQUcipHPVoG7S2BTfOj1/3?= =?us-ascii?Q?5972DBz/kGmgjTfgzKatYERreQn5kYaYhrXDbcoV14Tl2GJzca9395emYkfo?= =?us-ascii?Q?0sD9OjZHMvDZd0Yo7KXrLoQwxxFE2SUj5AeCOlkgjSJ2LMI0iMoPyD5YU0p6?= =?us-ascii?Q?0OCrHtf49lNw7SivwihH02Z4NMp8RhnmYbaxQq5ei11JzaQLDIJLNo0+2SPy?= =?us-ascii?Q?d9U6kJIIjnrLBlqNhW/f8Isz0ZOwk+N9TiXVsDphmbyWGc6ejPh7nlEsZ7Mb?= =?us-ascii?Q?4hEElZOp4oQ8jLGOSsTUKOEP7d2SMALHjU1lF35sYGgJUrDhfksCljraAthN?= =?us-ascii?Q?17dIUaF/v4EqCyWxUH7C/0HawZ6Kp4HyePyyGhzQonEfVDVZNavaCsoW7wOM?= =?us-ascii?Q?lABJcyy1SCsOc+xhmoA4ZyORZTIjQuB8euMpYcuwDXKKQ10Vh2OxcMZ3t+B8?= =?us-ascii?Q?hLUcYLipwNdOAmpKmNNliwiXPhRfuKbSKUOTegZ66E5YM9athFAuwmw6uKcl?= =?us-ascii?Q?kKMjt4T/4qZEgAoyLKVh1tLDadpDiYMXwzTEKHZyru5Semdi3HVdqclkNfnb?= =?us-ascii?Q?DTA71DVSHCgc0oZN+5eibKvhT80JN+JxbVKkWBZt8tDEFSECcUO7pVgskYgn?= =?us-ascii?Q?ssCYQ69iMREESYozMgVgehAgU5uVXDG+r//ZmrpA6L4h0f6NpH9xruLIZyh5?= =?us-ascii?Q?cacKUjoLxxKdBF23SjJpoTodnSAgMyi7GjbDDhzG6TdMUNWPKdzJT7X5l0n3?= =?us-ascii?Q?jP+5B5nlktbLx10u5yClQ0yhnL3jmXDcqBA6su8omvLPbNVPvmFKd0LTzx39?= =?us-ascii?Q?CdGM9459WpKZFqST23Rifci4Q610G+m6tuYCqSIhmReDnK2V55z4b7BLHzVP?= =?us-ascii?Q?cjpuhUV144sB5CpztBJpUO3yH4GgfLCVJLiC1NFPuB/7x1dqhJGyxc/uwL+l?= =?us-ascii?Q?c+2EMks/xkJhz3Bk77RVFjM5BhSchQUX3ig4TYKk9Ny5xDhy5MjSS39XUh29?= =?us-ascii?Q?HDtk69mtcQJQl+CPOFoDOfohewP1hRXLXpMLQobeu1WSWyTgdXVKNND3m6Zt?= =?us-ascii?Q?Y4urlZ8/hX/QHz85Cn0wjFZWIo4+Mm6az26pvD/HcXrWSrx94z+z5r0biHrM?= =?us-ascii?Q?lNVeQRsp3Gs13s93uge+e1aS2OG7JGVyd7sMOk+wrkT/eCdFDx3D9ngzgGaQ?= =?us-ascii?Q?isGi3PYFUIdlkCWTcGOZo+i8tBok8Waxd8E5kRbT4uL11essWcrBGe4vC6Xn?= =?us-ascii?Q?RdjI25VnM1ck+7Ycq8XNN3c5iJ0IGooIkb+UXDKo6G4IXZ+Rnp2JuieppZE5?= =?us-ascii?Q?uQNengCEcSgns9DRkkEL932UHqpGgdjOJt/OFdI9sA5Sedxl4tur0B/GovlO?= =?us-ascii?Q?27uRaUA+m9gKInelS6JoSXlAwcWQ7CBsqpfFwEJBxK156EdEFRJ9sF0XS20G?= =?us-ascii?Q?MHeHHFyVcGLpBB+2afTR025VNvHr2rhqFWSsg4Fg/BaZclbPzhtX?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: a078f764-b4d5-4baf-a648-08df17cdb4cb X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 10:47:18.0659 (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: 4OsifC+X1wyNvIf/QCalEbXkPNK+9UPeR5NrlpgIMOn6YF3putZ4/4K4OP8IGsAQYGPqMw1w1tkEOREuqao02MS3t2M6sOo9UoxbOTYhYVz5Xf2QPJi2VOVjQPzFnyUm X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6862 Content-Type: text/plain; charset="utf-8" From: Chancel Liu The component .probe/.remove callbacks fire on ASoC card bind/unbind, but component->dev is the underlying platform device whose devres is only released on physical device removal. Resources allocated with devm_*(component->dev, ...) in the component probe are therefore never freed on card unbind, leaking one copy per bind/unbind cycle and leaking the hs_extmute GPIO descriptor (which can also fail to be re-acquired on re-bind). The board parameters and the hs_extmute GPIO are pure hardware/device level resources: they only depend on the physical device and the DT, not on the ASoC component. Acquire them (together with the driver context) in twl4030_codec_probe() using devm on the platform device, and hand the context to the component through drvdata. Their devres lifetime then correctly follows the device rather than the card bind/unbind, so no explicit component .remove is needed. The component probe keeps only the codec register initialisation that genuinely needs the component. Signed-off-by: Chancel Liu --- sound/soc/codecs/twl4030.c | 63 +++++++++++++++++++++++++------------- 1 file changed, 42 insertions(+), 21 deletions(-) diff --git a/sound/soc/codecs/twl4030.c b/sound/soc/codecs/twl4030.c index b986ece55d5a..442624cf2a31 100644 --- a/sound/soc/codecs/twl4030.c +++ b/sound/soc/codecs/twl4030.c @@ -212,21 +212,21 @@ twl4030_get_board_param_values(struct twl4030_board_p= arams *board_params, } =20 static struct twl4030_board_params* -twl4030_get_board_params(struct snd_soc_component *component) +twl4030_get_board_params(struct device *dev) { struct twl4030_board_params *board_params =3D NULL; struct device_node *twl4030_codec_node =3D NULL; =20 - twl4030_codec_node =3D of_get_child_by_name(component->dev->parent->of_no= de, + twl4030_codec_node =3D of_get_child_by_name(dev->parent->of_node, "codec"); =20 if (twl4030_codec_node) { - board_params =3D devm_kzalloc(component->dev, + board_params =3D devm_kzalloc(dev, sizeof(struct twl4030_board_params), GFP_KERNEL); if (!board_params) { of_node_put(twl4030_codec_node); - return NULL; + return ERR_PTR(-ENOMEM); } twl4030_get_board_param_values(board_params, twl4030_codec_node); of_node_put(twl4030_codec_node); @@ -235,21 +235,22 @@ twl4030_get_board_params(struct snd_soc_component *co= mponent) return board_params; } =20 -static int twl4030_init_chip(struct snd_soc_component *component) +static int twl4030_get_hw_params(struct device *dev, + struct twl4030_priv *twl4030) { struct twl4030_board_params *board_params; - struct twl4030_priv *twl4030 =3D snd_soc_component_get_drvdata(component); - u8 reg, byte; - int i =3D 0; =20 - board_params =3D twl4030_get_board_params(component); + board_params =3D twl4030_get_board_params(dev); + if (IS_ERR(board_params)) + return PTR_ERR(board_params); =20 if (board_params && board_params->hs_extmute) { - board_params->hs_extmute_gpio =3D devm_gpiod_get_optional(component->dev, + board_params->hs_extmute_gpio =3D devm_gpiod_get_optional(dev, "ti,hs_extmute", GPIOD_OUT_LOW); if (IS_ERR(board_params->hs_extmute_gpio)) - return dev_err_probe(component->dev, PTR_ERR(board_params->hs_extmute_g= pio), + return dev_err_probe(dev, + PTR_ERR(board_params->hs_extmute_gpio), "Failed to get hs_extmute GPIO\n"); =20 if (board_params->hs_extmute_gpio) { @@ -257,7 +258,7 @@ static int twl4030_init_chip(struct snd_soc_component *= component) } else { u8 pin_mux; =20 - dev_info(component->dev, "use TWL4030 GPIO6\n"); + dev_info(dev, "use TWL4030 GPIO6\n"); =20 /* Set TWL4030 GPIO6 as EXTMUTE signal */ twl_i2c_read_u8(TWL4030_MODULE_INTBR, &pin_mux, @@ -269,6 +270,18 @@ static int twl4030_init_chip(struct snd_soc_component = *component) } } =20 + twl4030->board_params =3D board_params; + + return 0; +} + +static int twl4030_init_chip(struct snd_soc_component *component) +{ + struct twl4030_priv *twl4030 =3D snd_soc_component_get_drvdata(component); + struct twl4030_board_params *board_params =3D twl4030->board_params; + u8 reg, byte; + int i =3D 0; + /* Initialize the local ctl register cache */ tw4030_init_ctl_cache(twl4030); =20 @@ -288,8 +301,6 @@ static int twl4030_init_chip(struct snd_soc_component *= component) if (!board_params) return 0; =20 - twl4030->board_params =3D board_params; - reg =3D twl4030_read(component, TWL4030_REG_HS_POPN_SET); reg &=3D ~TWL4030_RAMP_DELAY; reg |=3D (board_params->ramp_delay_value << 2); @@ -2163,15 +2174,9 @@ static struct snd_soc_dai_driver twl4030_dai[] =3D { =20 static int twl4030_soc_probe(struct snd_soc_component *component) { - struct twl4030_priv *twl4030; + struct twl4030_priv *twl4030 =3D dev_get_drvdata(component->dev); =20 - twl4030 =3D devm_kzalloc(component->dev, sizeof(struct twl4030_priv), - GFP_KERNEL); - if (!twl4030) - return -ENOMEM; snd_soc_component_set_drvdata(component, twl4030); - /* Set the defaults, and power up the codec */ - twl4030->sysclk =3D twl4030_audio_get_mclk() / 1000; =20 return twl4030_init_chip(component); } @@ -2193,6 +2198,22 @@ static const struct snd_soc_component_driver soc_com= ponent_dev_twl4030 =3D { =20 static int twl4030_codec_probe(struct platform_device *pdev) { + struct twl4030_priv *twl4030; + int ret; + + twl4030 =3D devm_kzalloc(&pdev->dev, sizeof(*twl4030), GFP_KERNEL); + if (!twl4030) + return -ENOMEM; + + /* Set the defaults, and power up the codec */ + twl4030->sysclk =3D twl4030_audio_get_mclk() / 1000; + + ret =3D twl4030_get_hw_params(&pdev->dev, twl4030); + if (ret) + return ret; + + platform_set_drvdata(pdev, twl4030); + return devm_snd_soc_register_component(&pdev->dev, &soc_component_dev_twl4030, twl4030_dai, ARRAY_SIZE(twl4030_dai)); --=20 2.50.1 From nobody Thu Sep 24 20:03:34 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010036.outbound.protection.outlook.com [52.101.84.36]) (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 86AA5485921; Mon, 21 Sep 2026 10:47:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.36 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987652; cv=fail; b=IAaIM005HxyiHPN4cRFZYrndIXr+yXbU8MIWXQtG3VX9cFCBuGvMOyOWgA5z1U9g+WttNg9/UjBjsoeJ97GWgN7cCGzSUQXESyQa1OX23JKNjqISiB7OdKKLubIdLCVi7X/MevTU6mDuXt6TE2fWtqaOFcRG8vNCTKFDZQzxwYc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987652; c=relaxed/simple; bh=QjTRwWXeLgHnbSiJxCHL0q62L09aC/5C+KC63eh9SX0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=RHnHreoLCPp3/he0LaJkqPJ+O5+GMQjvP+cYGHY1dKNKA9pDkRvbSq8FXMT4gdRTc9VQ7peKj8Nvfy3jdp32L/DttDJmNwiQ/lXOm99OHWXKyif0JxM0NcGAa7XiRYLpZNn4b+EcOkdrNXiOg/km0lBUj+CEulk4bor5fAjuP2k= 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=qE5oWiNy; arc=fail smtp.client-ip=52.101.84.36 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="qE5oWiNy" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jCczyDOHwJcxY6vWB9E/l4Wf0M+URbDEsx6O1nTOCWn7PjYRCWrDKJCKgdWmte5svc+Ku5Ygcvjxh1Gh62y915KGvB0NsK6WPG6NCYJYRnz34CoXzyxFVbowyyyGCsWuXl4GpaB/J3Xn4rjgQEYnr3aEp+vAOjjvpdGljACF8Eo28/jkx2A9fHEgBzoCFO1dhSZe0H2QSSGcd5FF0OBDhd49oxS8TLWHJSFJW9Zr2lBVGwkcap00ExDO5JIoFtUM41+WjI2lMeA4YlswomQMO6LPv9PB339sbZOJMMSES6XsTEPdqcz//Ce/oHRqSYgR4Ssh5MLP6j/HTCN8pgf1LA== 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=2G/gwqRaBvMiPM7MSHBjpa+qTOS9DfoQPYr3z4aeoLo=; b=MY4V4L8JgeeyiOyaII6M9X57fly97d0KcKTjTcJ7K7CJDi22cbCRMiz2rxCZTkMwZEPuBPZGo7XoLpxtXl2rhrg0+K8GWaEDQaUxU2ficpnDWcnsQywTv45LvxO07sOuz3wrJq16yoazShKfQ0vFPKiyJkSmDkTbTT1U7Xowi79FU082c+UG+99nuBYkfAQMQOlMlg4JcsYRuSfqqIb3bWrrwF7yYCEUVGZvG9RG3n6Ahvt3rSb0RQ2n1JnBAwKsV9dkrGwA1rDUOIuonQjoGb8RBxMq4exj5wCBQPvB0PTamCK5tnsOXKm2DS71Oh1Z2jbf34iXMVr1D9jTrxp78A== 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=2G/gwqRaBvMiPM7MSHBjpa+qTOS9DfoQPYr3z4aeoLo=; b=qE5oWiNymMtlOZMFvcd6vJYm8WRN3TNz4Yw0Ik0U99q0KnMWq3atBFs/h5+gYDtXqu2GEirbDXA0K770HyKzXd69GCM+ITC0S/9A8VNleuO2Ka2WxN5efBj/UFlD83l0MxTZXnAHAviZfLc1fTrUjdmdPB5Vm3uIxRX3RgIB1AJ3kJLPCQdDfxqBFXyqFEbUofJy4QX6Wop4PYgfOBmNTY9PbW06+7zc4KHOH6E2IbQKU2RHcJrdSpuYU6F9dXyG/o4Zd1dgivmwhqBYSzAEywYw32NqLc4pzGCvacnRhmCKa9i7tL8/YBQu0fKa3bW9PcXMloFQHhtC8t4Ai+VqMQ== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by VI0PR04MB554873.eurprd04.prod.outlook.com (2603:10a6:800:361::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.13; Mon, 21 Sep 2026 10:47:26 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 10:47:25 +0000 From: Chancel Liu To: Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Oder Chiou Cc: Support Opensource , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 05/21] ASoC: es8316: Move mclk acquisition to the i2c probe Date: Mon, 21 Sep 2026 19:46:24 +0900 Message-ID: <20260921104640.1941554-6-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> References: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SL2P216CA0153.KORP216.PROD.OUTLOOK.COM (2603:1096:101:35::8) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::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: GVXPR04MB10021:EE_|VI0PR04MB554873:EE_ X-MS-Office365-Filtering-Correlation-Id: 27cd34c2-2018-4e8b-b7e9-08df17cdb97f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|19092799006|23010399003|366016|10067099003|11063799006|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: WMvvno3f6rPX/NVeN6Wxc1U+GxPqeRxs0N8ZnwF9c6WPOwMKFktkU34YKIpgHUiJMVycB2sxw0OGOrrT4Y5FNXa48LMNANcK/kAhaSmvWrcWPjW8PBL9cyrN6FZNIoEXMgwr3BTqGP7zUskG8KTC4ZJgvXuugcDFWa96aw49lDSPgvpG4csznDt11gvl5WcZA5cWYIsP4nZ80XfeeFqH6rokkXtURg9FVpMcdwX6AxbHOPhDeeDHjw6kqWz+GW4e/fpXI/SMm+lqskkXGhUEBbG24AyXWMVJH2hrjSbBGZtFfi1S8fTczYmI6Ib3lYJYUuBFo+Zz0m2xYTSExrJh0V33EgLJ50mD1EAMnGPsu0LmBiOu6MQEn3Bt7OOQyYTrinpIfvMbq+qMzaAR9Xt1Us00VwGtXMe1hWERFXb6nXjEhNkKjGYP8dPTPavfCVPy8c47IzTbQrDdltcwhtVGbJJBmtO9h72AplPkkuibkUx2gUGLdc+wG5vkGswLAfHWGW92tIEZYT8TineNLpxGGOkMhrMgl/N7EhFX1D/n22qD+fwB7nw7lCgc5yip4pCN/G+DLaw5O309+dFcgQNLVlr588KLNQGcd5TjMNPFVpnb5hssQm3+H45pV6v0kD/ixAgZQuWrH+B9cPYVAklb1Tkb40QxH8lP8upBjKtMHIk= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(19092799006)(23010399003)(366016)(10067099003)(11063799006)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?4MOA57x3qzfygEyKO70mUC57oNX+Clg3FmWUfhZp0BETC4GaRPjvAcLfKL0e?= =?us-ascii?Q?MEYgBgWmjg/p4/HL+HaHXeJbiNXYbRFeP3k0jVIfUzB7RXuObqKqKKNthm/k?= =?us-ascii?Q?2OR54xoCNdLGZ29lFc02wjQsGs1l5i2G6FvQSR3zDCICEeUcROBysUJESVgg?= =?us-ascii?Q?Yg4jwoDlPc1dndjBS2kSvbhaAXjDzpQANwbJfppzmf1754QQkwhIV9F9kZPl?= =?us-ascii?Q?YMtajja44m5SzN7YLLeqYOoBRFh3MLruk6JgI7KYZefkMj3+uVRu4OEiJO/t?= =?us-ascii?Q?Mvx+3UPpiduCmtO10j8l/eOz1MJFmhUhEFXj2ebB5vubQY+/YGKSYohdlPCb?= =?us-ascii?Q?0taErVFEScsNP2SvMWSey97Y66IuK0EIHKbIfgxHr19xyIfcRRaMuh5cvnyY?= =?us-ascii?Q?uwcNstRl1snee6mtC+pk1Bj5BbrDjBSXiO2IyAtz+FjXkA5Z1T45X+U3bfcG?= =?us-ascii?Q?Ai1GouP9hT15a9j2EOOEaVmlJbAWUebshln+w7cdHK2uU8j0CeWjpGlrKKCo?= =?us-ascii?Q?zUwlHIfqkS4BFGMSfzO9QsetAvKfo1uOickM8NEY/F85B536YaUWEGo4f5Q9?= =?us-ascii?Q?wKQOnI3wASLW0njrEVMA/2owMdx8+61GoQbO/LXFhvCyY/66E+Ht7VLkFSOy?= =?us-ascii?Q?eUxlC21ej9KwZIfu6UEJqMl/rxbps7X//Y9yXgTIWiKAD2a/zYJRKpVgKgXV?= =?us-ascii?Q?ncTIQXf4/9eq4kwzg6LalDPm6UcceJ8leCxUP+FA69j43NgA/abJzcVeliGH?= =?us-ascii?Q?H49YzaXHF/3g+P4EjY1CDGlBi5hirHVKo6nifAYQ4PpiZL4vDPQS5Nr9FMsa?= =?us-ascii?Q?eXEpWzze0Ro6shJArbNRLf+Op0WO47GBdoBdegwptS66fgVyyMQcLg6mhWzS?= =?us-ascii?Q?Jj5N1/TjvB9KKEqVOWYANwgAKVL8RhAbW3M2l8y3Iu5RT3bggVwlFdD8SRRW?= =?us-ascii?Q?xLBWTVmy0TGox48SUJRUFVLrCDtlYTLiczlIUYoejnv72vmpY/uXB3VxNcZ9?= =?us-ascii?Q?DVxORg4KtoTqFIxIUzexbx5Txvja+V9WQj71YrgL46GUI7+gvDnpsyJ6u1h6?= =?us-ascii?Q?y0JKR44AJc4E4N+deRZt7JaqAGqEWWmacKDhpAa62SKkvvWdAFKoQRy2UDL5?= =?us-ascii?Q?hj+2M/zASE8Oj24ycmOr4iMr8FkUMhuNXVWG5hXLxwJwWCtcKheB0p51q3A6?= =?us-ascii?Q?hQtySvKPKPvNEUmBTiCvNm0MLqvZj+A/SlzDISb3lJxuqEU1NdPYL1R9EZha?= =?us-ascii?Q?vvPpRl0vWNsygTbShvRLWP5tRlLVhl9HkDOMfL2eOqqQZ+5df7jB6VfTyw13?= =?us-ascii?Q?vpJfMpy3kzz7/0mnCmYYN9LXY3d2JUnbY3weJa6orAY+DXCteZKC4kBmQsoL?= =?us-ascii?Q?nuXzmWLRTaH3kRw+g44P0FIh8vv/djXbc8jvU+oUm4T77D3njPiR4og0jPw3?= =?us-ascii?Q?KlZgJZd4KbbHYX5mKQlFhkAY0ZklhAyYUECo7goW/ToNtyX9H+ZArFpIp/5I?= =?us-ascii?Q?/IqYizkWwiFWWJLQtEg5b9Zv9BbKf7VJCOdfVhfiKt0Xf9eYvY5AmrFoa+w8?= =?us-ascii?Q?0mnhqO8udY2nmJz6JBsl/N51FOHV5sUmZMQSNipIrsZ1QJEiPRB465NJMN0c?= =?us-ascii?Q?ljXJUYnRXar6wN4IBLeJGkwaBlWFnLLLEeB0kwd/9B/LfEVRPf+XW7LqvC9h?= =?us-ascii?Q?NdoeaeZRYarVp6oeGMFEfCEgjvlKUzN0FQklEqNI/LhL4nsFJDbVjMZ/oR2+?= =?us-ascii?Q?wjt+jeDX4pstv0bj+VrdhQda0RGc6GE3P7tVDVU6W0IPmqvrrVZc?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 27cd34c2-2018-4e8b-b7e9-08df17cdb97f X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 10:47:25.9270 (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: N1aX1TfvaSIBKen4Fg4EbVjS0plAy7zwWDC8ZsEeU4N+S9O2J1MTFB9FzpOUzUh/Smq1XfRQYWxHzfWIemKe7TljzsVR+fcZMxH7yYOrkgex24PYcbh2FAWMtIf70oIp X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR04MB554873 Content-Type: text/plain; charset="utf-8" From: Chancel Liu component->dev is the underlying i2c device whose devres is only released on physical device removal, not on ASoC card unbind. Getting the mclk with devm_clk_get_optional(component->dev, ...) in the component probe therefore leaks a clk reference on every card bind/unbind cycle. Move the devm_clk_get_optional() to es8316_i2c_probe() so the clk reference is tied to the i2c device lifetime. Signed-off-by: Chancel Liu --- sound/soc/codecs/es8316.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/sound/soc/codecs/es8316.c b/sound/soc/codecs/es8316.c index 59399476b9d7..5e7bf6f020e0 100644 --- a/sound/soc/codecs/es8316.c +++ b/sound/soc/codecs/es8316.c @@ -771,14 +771,6 @@ static int es8316_probe(struct snd_soc_component *comp= onent) =20 es8316->component =3D component; =20 - es8316->mclk =3D devm_clk_get_optional(component->dev, "mclk"); - if (IS_ERR(es8316->mclk)) { - dev_err(component->dev, "unable to get mclk\n"); - return PTR_ERR(es8316->mclk); - } - if (!es8316->mclk) - dev_warn(component->dev, "assuming static mclk\n"); - ret =3D clk_prepare_enable(es8316->mclk); if (ret) { dev_err(component->dev, "unable to enable mclk\n"); @@ -883,6 +875,12 @@ static int es8316_i2c_probe(struct i2c_client *i2c_cli= ent) =20 i2c_set_clientdata(i2c_client, es8316); =20 + es8316->mclk =3D devm_clk_get_optional(dev, "mclk"); + if (IS_ERR(es8316->mclk)) + return dev_err_probe(dev, PTR_ERR(es8316->mclk), "unable to get mclk\n"); + if (!es8316->mclk) + dev_warn(dev, "assuming static mclk\n"); + ret =3D devm_regulator_bulk_get_enable(dev, ARRAY_SIZE(es8316_supply_name= s), es8316_supply_names); if (ret) --=20 2.50.1 From nobody Thu Sep 24 20:03:34 2026 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013038.outbound.protection.outlook.com [40.107.162.38]) (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 48E61480359; Mon, 21 Sep 2026 10:47:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.38 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987657; cv=fail; b=p6Skaj8YFF+TauruNG75kItJI/gcvvjkTLBaUhF67m0dj/mK7a7A0W2RTp0rYsYa/Xqc9MC2nO2IF9DE4XovH5nMEBvlnDkMX0hJeVOzzaskjmeflKVDzJuTUovYDmNkiPH/bXaJjEfNVkRj+jO8Ur8WzMlRrKEjFPPnhROb+dg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987657; c=relaxed/simple; bh=otVERtQmvahCR+kyoSpgKfSzqyoRxQacGMeFwrAyqtA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=P63RP8h/ebY8uZhVrxw7CZQvLoY8XqW26Gt9uefrsEp2h4tMm9BBMwfF//h2sgiErCtH8A0wW+YH28sW1oJegmXNAghdyQQ1FV3Ninyji/Bh5fGL8GWAOJoSaFewIm9T+fZYR3nTH9mAev1se1H6iydUuUEPIE6+LAXl7+vDikM= 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=pkGDG3Ua; arc=fail smtp.client-ip=40.107.162.38 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="pkGDG3Ua" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EmQ2fzUVWWj5tuywKP8vYvoeLMzNuez8WgTrydAdQXvi8OKwh3JyBJwATNc6e4m5dPbQTjLYtNJOewT/yTTbV0pIg1cXX+UOGVs2W4H+4Rb1ii8vGs7Wloly0EoY86vvHQV1h6KX2ATyfxNXOrPwoJmAR9h3ZMhS15QEsCq9EYTNOit6bmjvpBwj74jjNFzWjgjyZH/oLOykhtr32kj5Xix7FDVcp9S5F+DeSBENlLN3B75el+eoTvxNILfEB874DLXrLO/7oYE6Rct1SuaBOBDRzOHOGXKKiz7+Bs6SRk1n3oeiZBLhc24qy1F0mRqoVZpaaCWojaSwYKwt7/ll+g== 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=40pim2tjUqNgzAtNund6F5DddjCKrbifPSD+sxRagWo=; b=gFgAv6EEMUosMwynyAzEDFhgKNw5SgRncMyDacmXgmHHRj+cmx70LMmIPC2M+uIBuMUzHtbWNYWPqShqQmtSRMHbPfNCb9I83JbmvY/ZByDKPFn++InuRE290YCApKDN4fRWCK2VAJteb+dmwxPaFYjhkHhLz3VYYjJdv0+xLgaDiMwLn4Y5UAJCoTc7B+/e9j1Htwl9LwMnyQzFBS33jnNVkp6hpL6khEhK+wvtcW7l9Y0YxCwQU4UYIQnUxh22MGDXIF06/i+/wMEtU6w9W0IgdAAKNJEdJ/aOhYLvA2p8pEMHMrwmwHN5t1p/0cpP9WmMx/yxbzyR6QC1zD8Gsg== 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=40pim2tjUqNgzAtNund6F5DddjCKrbifPSD+sxRagWo=; b=pkGDG3UaTs2CqYkwza+H8ZBn+9daIDIUqJWhNobQ59jMUGLq9z9c9ah1Cw6PepTGYuHupgCsZSWFYAacCXKEfOe2rCi4pt6OZWYrw7D+X/WjvmfNVuJIeas7whnZ8kcPd9HfnA15/y1XZ2WCgqnzD8ZZbqJsAvBGxKCzqfLakys6jcLtR4vIETO/zC/mlShqUCGoeFSJFEtZmXhHNpcSw926osnjuCzmBdpGgaH4nSR9y1kK+ekCDgke6cQDfJGl8HGTcWrPQ/b6Yiur/Jk7939b/wOM/bnBS1xoClRu404o28i81P0ggSJ8h/drnhXyrl7P2NT+oQR6uLWx07ywkg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by VI1PR04MB6862.eurprd04.prod.outlook.com (2603:10a6:803:130::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 10:47:33 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 10:47:33 +0000 From: Chancel Liu To: Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Oder Chiou Cc: Support Opensource , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 06/21] ASoC: es8323: Move mclk acquisition to the i2c probe Date: Mon, 21 Sep 2026 19:46:25 +0900 Message-ID: <20260921104640.1941554-7-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> References: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SL2P216CA0159.KORP216.PROD.OUTLOOK.COM (2603:1096:101:35::10) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::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: GVXPR04MB10021:EE_|VI1PR04MB6862:EE_ X-MS-Office365-Filtering-Correlation-Id: c399c205-ab40-408b-32a1-08df17cdbdac X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|23010399003|19092799006|366016|1800799024|22082099003|18002099003|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: IMVNZcRAiGP2DYq0BAEdIoAg8UV+LV9MTa9EZn+MM8QXFb9BoKvySEcXp1Yhcjcd6txBA08iyrM98dEb0LqjcSIKrV82uNCM2ZNkJDvnS81jsorUVJ4S+mbMZ7X4bVS5HVoCtjW5dlVktb3D4b/GdMsUqMp01RwqzjKu+VfIBFj3hK8qgJr3GovLJLERtCz2DTcGDTiLKzAZCH/xSoT8XxeEuiKlMGuycNldCJdTAdheTq7A/W6BGvE3EvyKyQjRRZbD9l/EEpISjzV+SaK1hS85aTYvAcO1d1vPs+amWr4LTsXbCLE6agXXwc6WE9vGucv2t5GdgVuctgb7+kDuI09QYPQHz5kyczEtrE69W9Pf+MSWaJYglLLcl6ELAFjF+1prtYo43ZG40W4nIpqnQsImiEqp2RdmYs7RGhGyjD32zNEuntTMzZi926WEA4RKbsSpJIK4rF9Akt8mL/EiIVCTyUq+G3+SpJJdn6f/JimI8GOCW5gwvSTHzK1D2Eh0A2PjKvlfZA9q8ANWMQ3LEpMR85uEcU5P/lNpqUjXkXTZpJ16qvf3lOkwN4BpmVTmbufsY8k5YEHOMt6d7Y9hnRN0vitl+sijZe5Y6pUIJ8RjK46AP+YetmKaAQCh0KI+Oku5+VzgvSnNo/TDte7Yj75IFl3S4JM5OSBIe9vjquY= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(23010399003)(19092799006)(366016)(1800799024)(22082099003)(18002099003)(56012099006)(11063799006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?iC6za2qEGemH8xTymY/grIK/qlNWRyuwWsQqbi1ZZtMNyrKOBXD04Wrv24QE?= =?us-ascii?Q?H45tYJfi1Ym0tuOcce8XXZde2BnmZX5JUBTiLhSQ/dwAmeDW76qBzSpipW91?= =?us-ascii?Q?2zV5Qxx29VM+trrnJXkoKJDgXiwg10bCO1DqDj1U0WdSPgGfVtYhiVl2kNQB?= =?us-ascii?Q?89pgP1X8siWEXqW2HybEoLSO9rBUgex4LKMsxgXepREgkSRFxHfM9sPc21i3?= =?us-ascii?Q?ib3BTbcUrOHEpLKujmLfwKHtwi9H5Gxp5t51LKVY28Tne4HZpvIV4SHtU8Rj?= =?us-ascii?Q?l3wopx9hja9RUVi9bDpAF1aECXKBAdzlGt2AZoFGFwh3YkqNuLNx5CnnMvZw?= =?us-ascii?Q?FMU7raEY7nuem4FudYtECFTuJGzhelWVKveZ2+25MX3vziizMm+w2yTvggER?= =?us-ascii?Q?Xs4yVcdU+aCEy+ufD7o42aaRhCSJODBl6qQp8pUs/NQ5oYHhGyjNaHajIgMT?= =?us-ascii?Q?AhQOw4+fHYSIc6OFz8AlSF7rImA7cvnDhX1kilaLn8e/GYCDqk4eo9Z4Y3/l?= =?us-ascii?Q?iwAl2paOr48dCSi/fvOguBHFAMMTmsDAIVS6mLTOR4HwcHebYWHnOQ3CEwnL?= =?us-ascii?Q?QUiaLxlNkBAQqIUmFYU+53/FbMXyBo12p5K6dxfiVFoMlomvDHhK1pFFTseE?= =?us-ascii?Q?DrtB884f5wFAUA2sbjzuCzBa9ZrEWnsRkuztnWOMMtfMV8zX6bmdc6HIzQVC?= =?us-ascii?Q?3u808q4baSlcJy/plvpn77rOGTbauzs2IhhOH1WwxyjsjPFgfZufAXKUp+nn?= =?us-ascii?Q?GBw1KhW1jiWmJ/FZmQX+WnahG2H3hN+T3avRNDVVR521lgcvg7RhHSrBwdDz?= =?us-ascii?Q?9lSV8HE0XHLIk9lpx75gXLY2VCCbnvxS5tS6U5BTl8OLZVOtgNrosj72zwiE?= =?us-ascii?Q?lQjx3lM0YTS6gXCuTUcWGGzNt2l+y/GaALm5OZGDAwCW5cUxdSDmh0OTEqYO?= =?us-ascii?Q?OnDOtbdbqEqL245BPUuCgAml1EKC9Cw4gHpqH4FLYBzA7AfJSRlOGPD0DnBa?= =?us-ascii?Q?8MxNgZjSyRQKgch2uffKLtjogltWyVll6SXbz7yZYOOyEEIeJG16Ru8jIJmC?= =?us-ascii?Q?RommNnmwqY49DuC9P1mB3Boq4Ai0NwpSg9oQrOJ2xBeAUvcyBmWFh/ydVdUl?= =?us-ascii?Q?dSp8Ay+0mHwtZSvt8FELoD6u9wr30WGPfhyT2dBr93WE+G9RObNMIDafQg/j?= =?us-ascii?Q?kP1nRR+AeM6q5t69FsYppegMnNNRVXlMsR4Mno0KOzo6KHkdAxFE/6kzJOfM?= =?us-ascii?Q?CDjypxTJ9KIHMuj2S/shC5Afs2IRlkRNnE7Fvu2oIgiRTFKUjzS5NF3eGeXA?= =?us-ascii?Q?odnR/8yTzhjRVTbiety42wMoxcUnLHi3xQupdwkc/6zn0TilFkmfMTy1oaaH?= =?us-ascii?Q?Pi4lWEfsWFcDt+2oxfn7ssk0biREPWCqGkSYoKXUWTOKXdrykD8YidI6ex7G?= =?us-ascii?Q?UEtbiCJNopLOuR3iiY9uLtkl2Lg0z/fz1Dy+If604U4elm8J9/HAGZ8u5qEF?= =?us-ascii?Q?lvIyImChjYbMHb44oLDKFn+xQwZOVJVGdqjRc/xn70HJqygEX9QBfZS2YhAr?= =?us-ascii?Q?HLHcEE/FaeBQmPwvBb43eY5MT57wifZlYztLG7wDCLolbPBoHeM4qprPm+Zh?= =?us-ascii?Q?NVmOBe30X+EqxxL6N3AbT2Frhadu9OjkHzxgHFJb4ek5iKtIy0uywzGFz7lH?= =?us-ascii?Q?2D8njs3ITTzao7lXFDRmIO79CH1XFCMc1cVQu6WOOmrax/u8/0ZXtLMcfn+J?= =?us-ascii?Q?gYsh+JR0wTjsAeR8oxpWt+4AY+qpoawiWkBU3vLxs8ezAVG6/cw6?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c399c205-ab40-408b-32a1-08df17cdbdac X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 10:47:33.1836 (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: inmjwoinvMCvWvVFUzNVnHTm6ih9fKhgyS8B/pk1W2ZRdS1j3CQryrTQyJqm9z6L8yv4+Pazzkoz19o2K/TeCc0Bw7Ft3OC7nIMaKr2Taj3EImsJ5nhyHouYGw30b+Dt X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6862 Content-Type: text/plain; charset="utf-8" From: Chancel Liu component->dev is the underlying i2c device whose devres is only released on physical device removal, not on ASoC card unbind. Getting the mclk with devm_clk_get_optional(component->dev, ...) in the component probe therefore leaks a clk reference on every card bind/unbind cycle. Move the devm_clk_get_optional() to es8323_i2c_probe() so the clk reference is tied to the i2c device lifetime. Signed-off-by: Chancel Liu --- sound/soc/codecs/es8323.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/sound/soc/codecs/es8323.c b/sound/soc/codecs/es8323.c index 12fcfe017ab2..3f7fbbdb111e 100644 --- a/sound/soc/codecs/es8323.c +++ b/sound/soc/codecs/es8323.c @@ -671,15 +671,6 @@ static int es8323_probe(struct snd_soc_component *comp= onent) struct es8323_priv *es8323 =3D snd_soc_component_get_drvdata(component); int ret; =20 - es8323->mclk =3D devm_clk_get_optional(component->dev, "mclk"); - if (IS_ERR(es8323->mclk)) { - dev_err(component->dev, "unable to get mclk\n"); - return PTR_ERR(es8323->mclk); - } - - if (!es8323->mclk) - dev_warn(component->dev, "assuming static mclk\n"); - ret =3D clk_prepare_enable(es8323->mclk); if (ret) { dev_err(component->dev, "unable to enable mclk\n"); @@ -789,6 +780,12 @@ static int es8323_i2c_probe(struct i2c_client *i2c_cli= ent) =20 i2c_set_clientdata(i2c_client, es8323); =20 + es8323->mclk =3D devm_clk_get_optional(dev, "mclk"); + if (IS_ERR(es8323->mclk)) + return dev_err_probe(dev, PTR_ERR(es8323->mclk), "unable to get mclk\n"); + if (!es8323->mclk) + dev_warn(dev, "assuming static mclk\n"); + es8323->regmap =3D devm_regmap_init_i2c(i2c_client, &es8323_regmap); if (IS_ERR(es8323->regmap)) return PTR_ERR(es8323->regmap); --=20 2.50.1 From nobody Thu Sep 24 20:03:34 2026 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013057.outbound.protection.outlook.com [40.107.162.57]) (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 387574825B0; Mon, 21 Sep 2026 10:47:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.57 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987664; cv=fail; b=SW/iev5DmzffYq0WQUp+NIUshMwQPbQNSzGxVo+ay8fIUW7bsszSPxEF/T52Ew3kRjfKNkUJMFULg8sBBxGrNuUtd+zcLW1pnFk2jalBudkSjbQSu3Pb2uCfqPV1wLkswShqwTAikMAHJ34DsGvjj3LNk75KX2ICp2sqgCkvLLM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987664; c=relaxed/simple; bh=PgK0+gRG8n/xAyp6jC++w5seWnYOcf9w68CNq3/LyX4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=VRiKQaD0nF/MV7e48QD/y/iYMKTI/ZNKim0/tJLNJG/dxxZSnykF1IA/qhROIENviVZgKobvvsuvRDmbKHChYgNFcX5qJl3hH6fpzhrcAvFCfseH2s5stPQZFegIM7oIbzO94T2KNw8SBVZhQj+er/p2F5U/eCgzLwTIO30Hed4= 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=wJYAbxbD; arc=fail smtp.client-ip=40.107.162.57 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="wJYAbxbD" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=H9OaeDaY6c9GBASHdp4LVJ4cp69FTtq4AVWM3p6kxkHH28Y/hW9egVrFQMXRJ5lgLoiNEZzHLA8KxOaWRdWVVo0JYnRmGb4bI8LoNQH+80Io1GmJuWJ7yoZdQ/+beZjBlU7Dj/KvVkumnrt2MKLflhxtii7wI2vHQgc+f78W1FKxZHWpa5cc+q44aE22JBgt6omDrBWgFtTtVzp+JQi0lwGPlkKUcap7NtyEd4b3YK7D8FI5bWIPq+6bKZJJkxUDI9IY7ie+SssSdqZkujCJayxyIM+PguA8ReYwqgaT/9Ch8MIseuWKv7OLJ7txdDwmhU9OgYr/ucORmNBGQEr44g== 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=bYRk6dum8k/ZLlscthqEH5dcpW8CX9F8697rr841jgs=; b=iHkXiE1RG5fL6taU/P9Oa0djSx8nkpCQ9O/cYwkIiess8b/vC8oTjQzSw4AJY7TB7jxsR+wfsH03BpXjpX0IeHu5ZhazWi0o7XDix0Z97XfkaUgWTk1RzZdO/c2obnv5YnXVtkVJOFk/Sjdcq9V6poZ4ReroRqMx6/8DJYP3QJ6e8ewUflUAV4VwKFjPOlHJ9ZYVjjyHE2HEm/J9//NBa1lOQHGne4WLiJyfeOGoZzkTZCgmWRNg2KChIIdsuy3dgP982n6HQML9em32b6C6rjBgryxbmlpx4bh6AqchyhtPAkPXfS7uMH1wqMiHECNNRfdDtaE7MInn7dF585HGSQ== 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=bYRk6dum8k/ZLlscthqEH5dcpW8CX9F8697rr841jgs=; b=wJYAbxbDvTzAOShqNVe59V+n7rRwdcqf7z1vBkRuGtH1H2PaAizJg7GJ4c/F5T5JTUyTwzTKLVqusSepUzQ8y7rlvQcnO+S4YkYjb/0SND2ipsFV/5W2W80/jZQSBLdSATXB+QA880wDApgrEXRe/MS3yijK4l6LkG4m5bMWbQ6ww8CxNn7/9y12NaRWipOSq1hzwClSyndSEKNfWThKKQTKugxPkgKmaza7o3tQXYsJWrROdmDnF3GTkG/vmw/mZFeQGrVtzlHJGCQUKtulAQ/hRwVqWc467p4k8fce9azoqojla4K+a20TnBFw1AP5G3etwoj6cOVvzPpdM0QRaA== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by VI0PR04MB554873.eurprd04.prod.outlook.com (2603:10a6:800:361::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.13; Mon, 21 Sep 2026 10:47:40 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 10:47:40 +0000 From: Chancel Liu To: Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Oder Chiou Cc: Support Opensource , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 07/21] ASoC: es8311: Move mclk acquisition to the i2c probe Date: Mon, 21 Sep 2026 19:46:26 +0900 Message-ID: <20260921104640.1941554-8-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> References: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SE2P216CA0133.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2c7::13) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::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: GVXPR04MB10021:EE_|VI0PR04MB554873:EE_ X-MS-Office365-Filtering-Correlation-Id: 11b7d0c3-a456-4d03-48d1-08df17cdc22f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|19092799006|23010399003|366016|10067099003|11063799006|56012099006|3023799007|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: /YeoDOSGxnfuWURK59QasBaSEApflSVRH3Aa/lroHq7TLIzLMUqppjfb/2yZjFklMicKNIi3QM60mEblv7WL5Tnaw0kmRGYT99ZcpWadbPH/EXZjvtmxuIOmL0GUgNm9fn5oS6US4EYe7UdFVDbLmGqrQdDEk5c16eP00LAbrsySsOHmhM+K9hnEFSIudV3hlOREAuwYslxEtaM/Pw9j1mPbVT+Y87PYe3BlGkMHM0uZyn4QRt8kDEC5Yb/aGWh9TfXlpVofx1ohLN1f/PSVM/yid4kpnC7SBo/i8bKq3sMPLt6UYEJhoHq/MgyLofnyQM58/QTiNILkXF1oMFntKldzwOC4fPE6CP+7/RxFq7gwoAvHIvlRAdN77zfJ3Uzs6PfRTqWgKYotQzvX5kM5UrqEjI7qaz9b6w0ttYS3eYrpWkiqk9bcRWZCHBIf8dyx7N5Ydwfb8owkna6ficpyzejmPhQftWPioMFnWd1X+OTScXiu1j9QJwPtw5FS//YdmPCZuYPd5A1ZBYySsVTSlupUNCQLzzgxSNT+Sp2Ne7vgCGkqx3/RYhmJGwiwzamXFK13OYlghKYfesUJvCW8rrmAGps+/QqDcGhy3dQxuja6iwtY78sPnzv/DJUOR7OOyq7P610RnOruk+EQ6A/ih89bGMH+4Yarl8RLXbkWYZ4= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(19092799006)(23010399003)(366016)(10067099003)(11063799006)(56012099006)(3023799007)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?zBnsUkuOUU/nXp06aoCVo/0P6x7owaWGhPaEqoIUq/YBd4XiGb9Gl/zywkSa?= =?us-ascii?Q?0pYiXsiq6QRkgsyWPiJ9zvVHXPxLfhMYbzKVy3JsljTlJ4qgr0Ylrt45RWpT?= =?us-ascii?Q?JXfDYXX5FqLeXE/uONpeZ4J+MbrBe29UUZmb3PTV0jc/LnzDb0jABKFNX0PU?= =?us-ascii?Q?tWfcW2rh1dFpJZZdfOazN9ffqs1CNGIHUYL0W5NS3lbqf2AjZ0g7PNyuCXVw?= =?us-ascii?Q?rxymRdtvLEuIWWiyfNVyv4LgqMewKtVHWU0Auh3tSpFCOieH8Caun2AB3cxK?= =?us-ascii?Q?I8cugTu+s0vcYcYEeL06sB2yEi5ifnYwbWj+3jz4i5bc2nMI+YaG0AmtUndf?= =?us-ascii?Q?0QMtliyjGwX8s+mNh2jtKOYiyqd0JxCIjGB4CNLWe5JJ0gOOxB+Tb+6cMgvR?= =?us-ascii?Q?pxGo6WTONyXBEKmEHoHcZqHsOIJUCoo0u+CGtFXKAH7JGVQxJXTR8NFSdA9I?= =?us-ascii?Q?weD6xFIsvGHkD1i97Ay2JXgfFTkfT73Fcp/pPMkioLjwLkWW+dMZGgDso06N?= =?us-ascii?Q?47ge/a1Tr87K4HV1UP5UaLNzf574U22v4zT3LBrsrKxffHbzxL7ecrFNkL+j?= =?us-ascii?Q?7IFPHtWChIbi/Zr2FWrLOhkxVM8pfXzpUBi0tw/WalJa6shC7NIcoP1WKDMx?= =?us-ascii?Q?P774W43AMz2FRJcDDPpl0kzY3+cQNqSVwSr8iu4Wz3faMKJPynxxtGWqGLSi?= =?us-ascii?Q?xHNXHUU/qwePuHk9uKO6705ZscppPduk6nGQAelu4fe63CMUyXi0fa/6f8j2?= =?us-ascii?Q?JAaOC7rGakcz6V6+dV5QbiivDddU94TamVH9hoVtT9zLahF/xuL8u+VBFN8f?= =?us-ascii?Q?U8qRHxh6cH0oIRM6pHxEeQVCogk2+kDm7alrL+ish60s6MY/+xfXAGQXmFXo?= =?us-ascii?Q?QN0IQNTH6erpi831ibbmHzSqGvzCEhuyUNoXtahsjYb1wwxVH6P6pJfs/JkJ?= =?us-ascii?Q?YGtN9Lwqm4rlboY76urXjQh2PPTc74EI9iXx4AFAD3eerTKFSikeKmRF/dbR?= =?us-ascii?Q?85qG6RcHqhZK6xVXa7ieIAYK7h1xGiyP8iXQTNc/S4+9t/n7KoGaCtjAsFpa?= =?us-ascii?Q?9cYXRYhyv72eEVf7Urbf0dv4JvDp0Fe7Xu44RFA3cuvngZSNna354VkYW9VB?= =?us-ascii?Q?AvK6KHjyAjXN2zmCNAXJHieJeA8uVU1d3Wu6tN5+LeBUJ66zLRJkNKRjSnA9?= =?us-ascii?Q?0W4lGHE2QQk/3DcFPXWMhaKwsaUqq7kIXD3CeKpGyV+6vW84tQjMTL3s8LFJ?= =?us-ascii?Q?RxMYSCNiUvkl2+t+ojI+U2pNW+cg33b3k83acZruAiYFYiYMrh9DlEBCvpMe?= =?us-ascii?Q?UpNlpknoLwBeo5chVsIEgNZPXyBtA0wvcnh/Xfbl8Ck0grYxQfzuKJNFY/7f?= =?us-ascii?Q?UyUcOzbpka++VeZh5PqMpKWMCzaR3LXXpyePCAM72GsK1hIMyp59Xpe7t1Ex?= =?us-ascii?Q?/pxvWu9OuLD2XUKuUKTdE+YtgMAEvNK4Ge7+azP036cHTpHkGLPs2VeGssrQ?= =?us-ascii?Q?3kNu/7rP8XF4JFY0B7sRVKxiMOfpJxL1rHCd9Fa9fszSG535Xuk/DDP8YHx2?= =?us-ascii?Q?QW0QFP3a5rgLC7GFCdHRs0z8Ipa0h4ih5GulePtR+xib1W0QAvQbAE1WGrI/?= =?us-ascii?Q?PBkt3S78Q+93Yo+TlcZI7TV7LlwOFN28rfTzAFhzTjQ+kX+CUmWhk/Lfytps?= =?us-ascii?Q?lLxgQbC7jJyyxJYJ2eNZiMXSHptnd+v8+4O7PIhX6NtH4jpjMeO0VxOfS7DY?= =?us-ascii?Q?Yad/+Bala9KwlfU+GKvE2XUFROa5nOA5YggTnAvSImdppbOxXh0x?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 11b7d0c3-a456-4d03-48d1-08df17cdc22f X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 10:47:40.5088 (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: dMQ8lTcud/noCL69Drvpri02h2cs9FuKwclgRU/VRzKo/UlfFD4NyVo/Ao2DbmQZ71/HSEUaHzbq5bff6vuufpI0a8nVTWs0dsdO4QM1seQeilG5mV3SUzvCDjqMqgWW X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR04MB554873 Content-Type: text/plain; charset="utf-8" From: Chancel Liu component->dev is the underlying i2c device whose devres is only released on physical device removal, not on ASoC card unbind. Getting the mclk with devm_clk_get_optional(component->dev, ...) in the component probe therefore leaks a clk reference on every card bind/unbind cycle. Move the devm_clk_get_optional() to es8311_i2c_probe() so the clk reference is tied to the i2c device lifetime. Signed-off-by: Chancel Liu --- sound/soc/codecs/es8311.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/sound/soc/codecs/es8311.c b/sound/soc/codecs/es8311.c index e46b85f11d57..ddbbfc2443b3 100644 --- a/sound/soc/codecs/es8311.c +++ b/sound/soc/codecs/es8311.c @@ -906,12 +906,6 @@ static int es8311_component_probe(struct snd_soc_compo= nent *component) =20 es8311 =3D snd_soc_component_get_drvdata(component); =20 - es8311->mclk =3D devm_clk_get_optional(component->dev, "mclk"); - if (IS_ERR(es8311->mclk)) { - dev_err(component->dev, "invalid mclk\n"); - return PTR_ERR(es8311->mclk); - } - es8311->mclk_freq =3D clk_get_rate(es8311->mclk); if (es8311->mclk_freq > 0 && es8311->mclk_freq < ES8311_MCLK_MAX_FREQ) es8311_set_sysclk_constraints(es8311->mclk_freq, es8311); @@ -960,6 +954,10 @@ static int es8311_i2c_probe(struct i2c_client *i2c_cli= ent) if (es8311 =3D=3D NULL) return -ENOMEM; =20 + es8311->mclk =3D devm_clk_get_optional(dev, "mclk"); + if (IS_ERR(es8311->mclk)) + return dev_err_probe(dev, PTR_ERR(es8311->mclk), "invalid mclk\n"); + es8311->regmap =3D devm_regmap_init_i2c(i2c_client, &es8311_regmap_config); if (IS_ERR(es8311->regmap)) --=20 2.50.1 From nobody Thu Sep 24 20:03:34 2026 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013042.outbound.protection.outlook.com [52.101.83.42]) (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 29BCF481FD9; Mon, 21 Sep 2026 10:47:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.42 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987673; cv=fail; b=tWSzEceoOu6gX9sFfxeyTLai8elJIfxWKwYsXfYG/3tYPWulJz/rq+nVLul7oBmA1CLU9V3+kwE8Pe5TBAqQhYobHM/H7JxZ05vBXy1jYc1Z/ZjNjjgwBQoU/gh8BH4u3zOiu/LQS7w96JftbN4t6kfvsi1BZnhAsGFLYynxoX8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987673; c=relaxed/simple; bh=fq8OvCKstjuQCBDVNJyovDL39v2BXdFT6zEDxUbx/5k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=hc4YnIHZsdlSmbTWYQ216rmHaCPrT8AWnXL+rE+twoYuHK2PDxe7BYKX8CkicIJH7VeKUhn5cckUskFcKTaAFaUmKDroCG3flWV+C1xN70hbKPdj/nH0sIQ94V9UzyU8I4D3gzzFZAJQ2miXV/Ja3Dts3K87VB8dvYHF8TLK03w= 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=e4FhXo7U; arc=fail smtp.client-ip=52.101.83.42 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="e4FhXo7U" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uAIGz8IZTHt7oUHqJ0VPwONqxt9ocFFtGumKzzPYQzex/u/DPxZfqciSxQcw4Lihv+S3kqVTQBTDfeehK2hXMVRvZXpGQZSGPysQ42fxpAVm1CVd2JdsAxYcUZ3UMAsjuyqmT/515rU5iw28hV2xPIJYG/4pLGGzRN+3H17QTtwx4lFg91UDc764OrQDokftPlngjp2pyw+voMtoM56ehCYn7uqEYG7WfAWkGB83KAcpcTB7r5pgIVwcDn2HAQI1Lme0306O2OfUQuK0nTuP+aprbD5aB58jM9CO8XbG3oEFvscxpt73xf+HbrCCj96L96kz+U971AWLXzz/xHmS3A== 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=Yz4ygMMBlRVEzKS1mK8PoExlQd1HxwMpcvKbzWX7ZhU=; b=WGv815a/AKrzn9i7ntBcLNMJ2Fo8KOSDtc/DEV8wJejc/pVyNH3ILR0V933cqIFDX9vstnTL25eaw0Th4x7DBjJ+JOUEFqEEMLblzWegUmRAjE9piz1c8J3optAP8sYUgWB5m7B4iWTJmyh9Nbn9KYyPtvaGn7zClns1Uasz1l/+nFvELQEeVNFQ8CgwRoZuEfE9fCwa3/+TpoCqKsBvr5wc49esiOQB4gWy6fP4Fq6qoDCVaUH1JGYeTRSUusReFTlVF9HzknpQoa5kXct6DRUZ2cjdB7HLqTF668XUpGGLzH1p0JsPhsqZ7fctYJIYAl/M38Idd9ho3YLy5nFzJA== 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=Yz4ygMMBlRVEzKS1mK8PoExlQd1HxwMpcvKbzWX7ZhU=; b=e4FhXo7UBnGdNzGQezXmgKcYS/fi46VWeHr0k61bfVICqXGBlZL9+IbAfyciTil4FHR4TyuhCA9sjTXm+pgGva1mxTkNNIS+YIIpEnnc52/VX1xEP0d/H4/mLI1Rhvyub1WXnRXTDQP6YqA5+FjyFEq2cbA2djmUqjclybP6br0zzte92ynioeWUk+yo2L0ujH3WR4zYABPc/VvxDD/uCuuyCBR6gzx5VF6qSVhcA6nUc30rgvgJv2r8k7BfOXporrkaKvlv9IZoWc/oYIzbZqDDdMbPBHJ0beRWXfgviBdGAtKbphmZG6myxTIMQuHYHNqn/ZDxrQxL5Rdz7sJU4A== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by VI0PR04MB554873.eurprd04.prod.outlook.com (2603:10a6:800:361::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.13; Mon, 21 Sep 2026 10:47:47 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 10:47:47 +0000 From: Chancel Liu To: Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Oder Chiou Cc: Support Opensource , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 08/21] ASoC: es8328: Move clk acquisition to the bus probe Date: Mon, 21 Sep 2026 19:46:27 +0900 Message-ID: <20260921104640.1941554-9-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> References: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SE2P216CA0131.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2c7::9) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::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: GVXPR04MB10021:EE_|VI0PR04MB554873:EE_ X-MS-Office365-Filtering-Correlation-Id: e6e3b664-0e03-4eab-7c31-08df17cdc65c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|19092799006|23010399003|366016|10067099003|11063799006|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: xELtksm8y4gA0kdPbdb9BFeMar4mIg5bHJAjTx8DtCFMgBWDGIO0T2kZciJYFIr0lCNjuA3QA+mLuHWo0i/FgH/1A5czVrDj5ezGNeoKm360H+gLZglmMcX4Z+eWumMrk1O9SLskYMEPmtX0eziMOrqcNT+1cQPdiRZNrSnVzKfq4ivdtaVvds+Ofbx8x7QKbWvKRzxRweL6026VtUR2hu0O8jUVNsM3i7bG0j74P/wpI6trk6j1saO5IDmJM6+lgrtH1EyhaLGOuNSKlejuu4ARchdY5m4pZ45J122+ROKBJVrKbi0dCLYy2rFF7vNX2hyKwVSIWeA8HHU5BXH+qYxHEjgDvaCzzMxfIWzYAEFoFzZGue9KxB2n2ESSL6oqF93jQjE49WxcUXAPgHNc94oKFwGz288In6WNww58FjKfr5/0sExOgE1OMEYXFLoFMQZQdCSeYKyPWajI+5FBUM+9XtQehQ3DQe5p/oVLBiqEYKKMM1jEdRCqoqXO2ga/O5Jve1LI3PTDrQS8w3S2XKbQy/WAvK3yNhVzI7If0NK8H3XBNcSwYKdnL44skyfvW32qDM83/CXh1yyPmS01Oo9Rh0ecWFyDcBCO7k4voFKNi71sYXL/xRzoNpY9N+kV0Qg0RrhKS6kXFdTsqAGo9uJgaA3txKTBuJKMh5D7EPw= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(19092799006)(23010399003)(366016)(10067099003)(11063799006)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?1yRl4JmNiqiatuFXktDTyhS4XfNjAIoVC9LFbGwTP4LSQafvlsXiY+mk6ckL?= =?us-ascii?Q?qYfAiSHVNLpsVt8pDbfBMuTkrk1JSglx0QO/rRj+nICcDlcLpzPH9i9BB6IL?= =?us-ascii?Q?razdKZvD3FPyP+btzQWBtqV3HG1MukDrBvk2TKVxL+DyOWP1vL/4nfC2feVo?= =?us-ascii?Q?3GEGNGqIjUZFyuJylXk8su4JXJXmg7SiwLJrDdrrYDWglRAjvkR+wIwpDAr+?= =?us-ascii?Q?qlb9Gb87MwWk01Pkr+9xiD+mu+m0i93NivVqbZ2PYd+ZjfyidjKBmGqy+3nY?= =?us-ascii?Q?ZX4sn2nrsj+9ovN5nEeHBuirKVTuCO6erVYQOGzaGTf9EhbOmgyVbA1HC3Q9?= =?us-ascii?Q?bSGco/QFffxVfzQvvggjeI96Lp0zFXnFaB7/viWxUqBOG+U0lE59eD0e/Cl/?= =?us-ascii?Q?aZvFu1u5HpqYg653tQt4L+sTLjulZhvmjmtWV7WldbB9XXi4/5UrQMnb/+dd?= =?us-ascii?Q?w7OAK2olWrNroyL3qwElwUPQSLLy/98WxnKVjn3L81wFKzEF3VIVU21oF/pJ?= =?us-ascii?Q?Z1HutG5sOHyNjbevpExT7w7Dy2XYLYl19j6PJ/wUuTDd2p0rFy++lyJy8Z7B?= =?us-ascii?Q?qZ/N3CNEkYLR8OeZVIEoY7HKcri+qbvTAjSpBkgV/dapifnkex5vfC+9atLt?= =?us-ascii?Q?fxlCqlPC6/vOfAHvkkxw8jSAvaVP8uCCDLn0Hd1nvqdMSKXzUMVa6iBivmSg?= =?us-ascii?Q?YoJ+4fof0xywmrzgl2HsZiL0iJCXrfUXfZtmOq1lSC18yNc6fxI0yV0/Z8L1?= =?us-ascii?Q?gZVQX8F5bUf5pcBOfaj3rbbx8Pfom95uh8jS/L1JdNhEab7XVas0cFnO4nPe?= =?us-ascii?Q?3b42717n799045xxurcDQzKW8Y3TZQppW7Tz1cKnOPl0C5Ha5RtT8h0IVXOn?= =?us-ascii?Q?mf6D5me5I/spVLX1GQ7nmHy2H3XPxrvnoTlfdgfchXkCcykY24n8HfaJhj10?= =?us-ascii?Q?F4iXp0X9FNuxpNtiGdSbHXhrrGM0pB5ywMthO+jsNA6i6sawpOj5yu0wift0?= =?us-ascii?Q?TvgEIVPovTSie0BlOfMTa8HQ1e/J4YtSaSleYBaVKttzOkfS3Nk29mNnMunl?= =?us-ascii?Q?yajLoUOWUmDS7Pv8yr8zW5qmCuc1hVMTxvB2GvyrOg4SRj/jlPCW0K+s/u2K?= =?us-ascii?Q?lxJ0nmWUzPNXLqvS/ds/DqUbF/sX9r8VF+T9s7g1urBeMKhI/LElr2PyjSoo?= =?us-ascii?Q?GXqNIfGbI6SYpg5BKGEe22WciTcb9IZ/bMyO5TUnbvXmhGCSvJ+Qigh3d9xY?= =?us-ascii?Q?qTDRXcO3RIg3UEbIGL9SEGDlY6cmVOVKw5ShR6cXXKeOuzyQZrGqEHOv2zqQ?= =?us-ascii?Q?m/LUgXsfQFcDh8LCARlIzjNR15U/8UGvgfvRSUkrrrKEBdXder+AdN5wQsMV?= =?us-ascii?Q?/KWRcu2nqwhFEpRAgZLSoWJH3fwXXbVe1JU3YY0n3oTAdJSZpfRhYwcosNbb?= =?us-ascii?Q?Yt2IjUHke+lidk3q3wgNjxYqAT9ph0pFAp6aKJ1vS5eeAxkI6a8NaDr8DNGx?= =?us-ascii?Q?A4JVVI29VBlWKZu51gAzI6qSknx1Po5WWhUZpTZefwlRdA7rqPW49xugB0Eo?= =?us-ascii?Q?MK8/lKX2zCfbQy3es7yI6uIOBzsgZnJVWguyTnfvKkpxfvPL4vQEDzwIAVYL?= =?us-ascii?Q?/EACmn8PvzWJGunruDRnVuQBeLxqRLt4sWzbTbIucp6LfH7tSYTqURS+Duvz?= =?us-ascii?Q?sFFWwrgyVXBeKcxpJrxqNKG426veSTxTN/UrOBOrzH9ki4orHtR9yvbzk6wu?= =?us-ascii?Q?p6aD8JKPGcE7d8rZu74LdTtKxspZUic+jfHloQNuL8cwG3boiznF?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e6e3b664-0e03-4eab-7c31-08df17cdc65c X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 10:47:47.5740 (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: v1X2BAg+GM9bspYfiSCqgG15DEjeMSUxBR/YDpX/1qMWY3k1RAQVAZ2CinQAzCOKkiFA1t+hctSUAwrCNZDUHuJEtPOUkMb8ZvnH3bOiyDeGwg2UvuS2O+rVD3gNjCPg X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR04MB554873 Content-Type: text/plain; charset="utf-8" From: Chancel Liu component->dev is the underlying i2c/spi device whose devres is only released on physical device removal, not on ASoC card unbind. Getting the codec clock with devm_clk_get(component->dev, ...) in the component probe therefore leaks a clk reference on every card bind/unbind cycle. Move the devm_clk_get() to es8328_probe() (the shared i2c/spi bus level probe) so the clk reference is tied to the physical device lifetime. Signed-off-by: Chancel Liu --- sound/soc/codecs/es8328.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/sound/soc/codecs/es8328.c b/sound/soc/codecs/es8328.c index 7d52b5d9d061..37fda2f42b0c 100644 --- a/sound/soc/codecs/es8328.c +++ b/sound/soc/codecs/es8328.c @@ -829,14 +829,6 @@ static int es8328_component_probe(struct snd_soc_compo= nent *component) return ret; } =20 - /* Setup clocks */ - es8328->clk =3D devm_clk_get(component->dev, NULL); - if (IS_ERR(es8328->clk)) { - dev_err(component->dev, "codec clock missing or invalid\n"); - ret =3D PTR_ERR(es8328->clk); - goto clk_fail; - } - ret =3D clk_prepare_enable(es8328->clk); if (ret) { dev_err(component->dev, "unable to prepare codec clk\n"); @@ -906,6 +898,11 @@ int es8328_probe(struct device *dev, struct regmap *re= gmap) =20 es8328->regmap =3D regmap; =20 + es8328->clk =3D devm_clk_get(dev, NULL); + if (IS_ERR(es8328->clk)) + return dev_err_probe(dev, PTR_ERR(es8328->clk), + "codec clock missing or invalid\n"); + for (i =3D 0; i < ARRAY_SIZE(es8328->supplies); i++) es8328->supplies[i].supply =3D supply_names[i]; =20 --=20 2.50.1 From nobody Thu Sep 24 20:03:34 2026 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012042.outbound.protection.outlook.com [52.101.66.42]) (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 E3501481FD9; Mon, 21 Sep 2026 10:47:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.42 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987679; cv=fail; b=nwHymrHnku/Eyk6hyKOg5QLd6f4rTQSRqHXyAJJ5qHT5/Tk/Y03FS31FO+ddhhXo1D1vqWS7inknEA4i0aisZO0giocSmGN28vpJaxq/WAiiCqmaNY3ll2G9V3hZalaluBRjjVaAcvcYkTDQZSMxumYgNhZpTQ8TY986VCmWjnw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987679; c=relaxed/simple; bh=WLeJFpAVqlmEfYoJcTigGbN9jJz7ZJjSG1F6yrWFZ+w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=ICwaMwGOfrqv5QLGDNwpigWMJZjK3jB0QWqNHyscztNkT3/lakw7v4rA35YfJL+83FJ+TLhDoHJlgzeNzCcl/Il0EEduuF1nrTPYg8f1Q1Zskg++Kh6sJl/cU33E/FPDjRWJzwrf6d4BpSowDKQjdtsmrvSuZmAHUOKGCxj4sL4= 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=yGntOChy; arc=fail smtp.client-ip=52.101.66.42 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="yGntOChy" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=mw2coah9vAIfMvIRNQDkAQCQS3J4CL/E9qEwh+k1KtINyFfPnZ9clJ8+2YStcrexp01EFLQUzY8APw9JStWnbPcg0Lrfq4k6pjG9OeY2YL/ZO0pE1L5DM09/9SuKBlq2pLVYcTCQebtvXCVsxZ0qgt6yBwkk/6uOD+7iv6W6IOhHNQVkHRPaeiUApmTbpUVBfuIedUfj7FZ2Z/o8lEd5j9oKcDyXczQKeaeYuQEvViDqNaoGpvLPx+F/KOvWW8lhgMgnRCfdzDV17T3mdyrFN+8mUz3sYy9k1a20hDTUtoJDV1dIq0j0D+xJ5wuHP1xD0vtvhnOioo0jqs5WTBTxYg== 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=aBvyA0mfcr8H75RCecxjR8A2y7Las6IvTZWTTXxcPMQ=; b=d7ZsTOhnp2Mr29QmfjmH3f/MdrT0ArX6LOW316pQhIq5ilXKzUKyHx5ZN3l2sErOLDCP90NfrQg5IFOa5AdWaCzM6+GCWWYp/Jj/ppbtoFWV/W/5uGxiaWEXBPuVLlSGgqFLyzQA0N1riFgiKpHSsq6ugbIYc6i/y+3RNzxcrPnh0y3g9yB2MD64XzfpWKVKwWKvAS0nSgtXgYzOQAU02qt767jO3rndjxoOi53VWsYsx7x4SFB/WYK8RKj6VqVbSZZxgdbDd6ZOwlDSzmODeU4ce5+5NmZzPRTQ0+LbkCLsxdxhuLvVdvJlX9eZhOFzxzygcW2Fcvff1ltiXz/jMg== 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=aBvyA0mfcr8H75RCecxjR8A2y7Las6IvTZWTTXxcPMQ=; b=yGntOChy+M3GTfZSVZgXuC7Yj6rTVqrJwGzolgRYG/tvD1SnuJ32lC5mQpsXInLB1LBK8P02kdDp5FTpvPrD/8ecSov03rqUhcPCAbI9tZerthZTQk3Kkn/rzW9wxr3f+2ks0nSPujfbkl3134vaY3dMk12dwHyvwKKjjTZoQ6ElzmZSWzIs2yV2ZO+6UvYybSevBZqAQ0DWOhjxd3+bA5J6yMO79QZEtOT5D4YH0i0nFbi0TuOAeT9mtjq8bhnsRpGV5154GbPo7bROWKT9Z9tuCl8zzCPtJrNHfTgMS0SDsmIbpTl9nJxOrry1NBBF1264vihIespNC1xsZQ0KVw== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by VI0PR04MB554873.eurprd04.prod.outlook.com (2603:10a6:800:361::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.13; Mon, 21 Sep 2026 10:47:55 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 10:47:55 +0000 From: Chancel Liu To: Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Oder Chiou Cc: Support Opensource , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 09/21] ASoC: rt5640: Move mclk acquisition to the i2c probe Date: Mon, 21 Sep 2026 19:46:28 +0900 Message-ID: <20260921104640.1941554-10-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> References: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SE2P216CA0083.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2c6::16) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::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: GVXPR04MB10021:EE_|VI0PR04MB554873:EE_ X-MS-Office365-Filtering-Correlation-Id: a6b05402-bf90-4f40-d714-08df17cdcaeb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|19092799006|23010399003|366016|10067099003|11063799006|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: wBB67atTldINyoK6cj9S9tssUc4wqVMPl1C9NMT5R4H25URvgk/xktV0p8qKrGmyRmV1ksOQ7StZDyjKYz4uYlZFnEoNil57oo445ZLaKjMuzNn9Y3yrnNZ6mpDwGh9zVaaXfsIva78mSukTKmtIDpNx0N4SNQkgYe4uL1m+g+1fPbWJlcC11nBnTwxeIU375gcouKINvymbcBJaQQx3MmNwlt0Neir/8PMJyBt5mESKQAPb9RdLjUz5hZlPNHA8BzHyT5wDrJy+i+sa9GXNitFqhIcOMo40d9W9/K/oEXof5ooihGgYOhaOZ+VH7TEeR/D1PXBiFsfyOAdlUhWtWdf6oZEQ39Htpq32TQOHlkHgdtOFff5JSg4+mEeYPgeUi9C9co7ruqgFhjCtnqw2FEIjz8zJXlE8EyBqezQHpaZ0rHJnS0qS8RNqTpEmq60OMUEbII/8j81KzqX3LFHluaxRWdps0wRXT7z+p3FQsBm/nmKu0QLrZHxWELmYD9mxxifdz0c1zVYFvbK37t0rlBcu/zSGRnpOuKNxnNJh+mb6ecddwRiJ+j5QX0/U7xC3Vrrbii5yzSfUdcG+ECrsDr+AZMPATrwI6OzXBw6nj3vpcnh7p/WTjeSFdiwRFiaNhqi0b9cTC9aY0KseFWP0WlUk88p0s2GNhH/VCDP2eao= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(19092799006)(23010399003)(366016)(10067099003)(11063799006)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?SVz4Hew2XJljVlFXPo1+fGAY0OX12j1olvBdfBwox6oDJTlRDA+UTmbruog/?= =?us-ascii?Q?cnyQct1R0GJv7HNIqXwFjFB+YICNx2KZ5BZV6uaX183SUGdrlE+JGkpwGiby?= =?us-ascii?Q?oKimvHoNQ6do5B4P4XxrLntm6xJprGEoYeVgy7rw7i8vSREbk7B1xxEFFxgk?= =?us-ascii?Q?R06hi1g/xUzXf2MytL6DH29QMEgCSs3Up8nWkWG4IbiqIdmbaJc9+W53ZMh0?= =?us-ascii?Q?5H0TzKmM9yoQICHKTNCh6wrg9laWWq7fWVuDgvGznSUgvcGKNCxQ4WJCDSr4?= =?us-ascii?Q?/pusqAs7FE4Z13wkFFV0c48re0HTyUDX3P7S/0sjzd0sIhEZfVEQTHoRZ567?= =?us-ascii?Q?DMHbM6jHbCPBT4/tKRF0CluGH8vT76EI3vwJrM7zjt+g9pOb+Y4ZDO/yUMUS?= =?us-ascii?Q?1/8Yu3upQcJOaBFtqOVOZKqztpglN/Rw+jnSct/X6venl+g4yH29+UmE4pQV?= =?us-ascii?Q?fU5UdBFvFcpsvD9dXXarw2tlM0t+rSYoCeiN0oJ+E0SxEE0RDY9QcpV+3eYR?= =?us-ascii?Q?l++vsE2xKn6m8WNz53aBxkMb+yIfIuKTQ1jIaOKnd1eXM5W9G/S1ciKfqLit?= =?us-ascii?Q?/4WVwew6pnsqgM7ZNLb/YunS7RxfZ2GSCNKw6fQL0Hstj+ALo1/dAU7aKBK0?= =?us-ascii?Q?D6wCdAqWU2viq7FTKr+xoldDFbWkHbViPWzwxu4HZfnrqLJWovQFFDTDR6kY?= =?us-ascii?Q?q3d5klwJ4kiKFCRKw8cIW50iPF71g4CjVHaHlJkpx6CYt3JzY81vtfAyrbFP?= =?us-ascii?Q?T294g+tenIGWGxtAj17JzEUtLSIs0jSowioZ/sE7chMb0rnRROaYfhoZb4iU?= =?us-ascii?Q?YoWVeJp21jmozW/8n4yDR7o0EvzWyMUUyXYmnsf7NdNwJow90uAZnJgfr7zF?= =?us-ascii?Q?1rymEAvb1mIEja+qRQPBzMlTeR4LyPgOSz4GzZcaCdXOkmc0Y6GmgEm2aFiH?= =?us-ascii?Q?KuVpNUhYSihr0UgDEsM4pIky2mMUUudVpLPlnYNAdqk04C2fZo5tX07CYIxO?= =?us-ascii?Q?slDjrs06Ujb3dKkkqS96cbgoe/bFA3VHfFhbGS4tx/WqFqXEKDVrGEgdcmsF?= =?us-ascii?Q?zBHTGiEQALfQZNGY0WFj9Q0+EsePXgsInL9Aq37uvVZXvLIsAQO7qI60FTPF?= =?us-ascii?Q?Fz9o8kMj/1/GfixtyZJ20H07gO09o8RyCdfIm3VypYiWXu+rfJaAqg7zI6Xa?= =?us-ascii?Q?ZrZpR+R9mfhVYhi8bNpWp5mGpw1v3CHDJb8HAd2yAQIhLLLLD2Jcpz1coUKs?= =?us-ascii?Q?V3wMz2qNwjECgAvkh7Wz5PxwYJZVtlj4tdwjbG1rzfrN/tItil2yfsg7wiUO?= =?us-ascii?Q?Q9iHeUDVVpseYBdr4OcQfAn/d1yN9xSgKnd7Y89BKzArrbYjcgdGwmvRqfs5?= =?us-ascii?Q?T3ZfHyYihKRXa0tfLe/nj+eb400UddbDMTONppEqZZMCdouChwBaZs1x3MK+?= =?us-ascii?Q?6MbuSm3daHFf88jpaihdnX+FrQisWxgewPq/h3Y6uQir4lJFAFvojTnN2HeB?= =?us-ascii?Q?JXjNJ2HFiw4RqzxvQRv9z2hcvSHMd1HxHb3ZUAkRq8hTNwFEQ7obbfiSuUnD?= =?us-ascii?Q?flAY6KwKGZwCNyF+mZ7RZVUWgpZ2N7mycej+uu8NnxbZXh50gP19+yS4xHqn?= =?us-ascii?Q?I0HjUQmmqSJ/505H97gVA7LedVi0O1u4yuUIEPag0r7V1qPCjv7Qtj0n2273?= =?us-ascii?Q?HHpfqMMgCuJnJa6cyldVL/wv6RDwh5LbgVxlLjWkP2EfPX2EQ36+hIiRllVI?= =?us-ascii?Q?M2cx8KK/Sefw4rYo2sLZNI2UliNNqlEY26R+GZMi/cFxSWkKdU8i?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: a6b05402-bf90-4f40-d714-08df17cdcaeb X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 10:47:55.1683 (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: xVVebgGizOifGrvS/yZjddiehh9uk521JRX25arezhczr+XiApjmNvKybCTwJKbLqPxRvqMT+L5zaZFZrR3Z9Vwy5d/lNR4pCNk0/gi4Sd7PCKOoOwhaDQ/0WYk69zz3 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR04MB554873 Content-Type: text/plain; charset="utf-8" From: Chancel Liu component->dev is the underlying i2c device whose devres is only released on physical device removal, not on ASoC card unbind. Getting the codec clock with devm_clk_get_optional(component->dev, ...) in the component probe therefore leaks a clk reference on every card bind/unbind cycle. Move the devm_clk_get_optional() to rt5640_i2c_probe() so the clk reference is tied to the physical device lifetime. Signed-off-by: Chancel Liu Reviewed-by: Cezary Rojewski --- sound/soc/codecs/rt5640.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sound/soc/codecs/rt5640.c b/sound/soc/codecs/rt5640.c index 03d0ac3359f5..1a45346cf6b9 100644 --- a/sound/soc/codecs/rt5640.c +++ b/sound/soc/codecs/rt5640.c @@ -2667,11 +2667,6 @@ static int rt5640_probe(struct snd_soc_component *co= mponent) bool dmic_en =3D false; u32 val; =20 - /* Check if MCLK provided */ - rt5640->mclk =3D devm_clk_get_optional(component->dev, "mclk"); - if (IS_ERR(rt5640->mclk)) - return PTR_ERR(rt5640->mclk); - rt5640->component =3D component; =20 snd_soc_dapm_force_bias_level(dapm, SND_SOC_BIAS_OFF); @@ -3053,6 +3048,11 @@ static int rt5640_i2c_probe(struct i2c_client *i2c) regmap_update_bits(rt5640->regmap, RT5640_GCTL1, RT5640_MCLK_DET, RT5640_MCLK_DET); =20 + /* Check if MCLK provided */ + rt5640->mclk =3D devm_clk_get_optional(&i2c->dev, "mclk"); + if (IS_ERR(rt5640->mclk)) + return PTR_ERR(rt5640->mclk); + rt5640->hp_mute =3D true; rt5640->irq =3D i2c->irq; INIT_DELAYED_WORK(&rt5640->bp_work, rt5640_button_press_work); --=20 2.50.1 From nobody Thu Sep 24 20:03:34 2026 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010032.outbound.protection.outlook.com [52.101.69.32]) (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 6E503481FD9; Mon, 21 Sep 2026 10:48:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987686; cv=fail; b=kzfT3C9QOY+F0Kq+/7uW6S/upZhq0R1AiK5SNGZ1ZQFoOpU2Ae0T4MNch4z7sE0eDFtXB2fAxE2u5mdcLPFJavIxEP1h0tbNZPUlzHLeemjfOGarYC48yE2KdAcdcWtsaT0RXNZeLK9w4l5dUzQLB+1kTxJGBhsY8msr5tUsb2I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987686; c=relaxed/simple; bh=ph+xmPDxXn7XAYx36aB4qfYrM7ZqswmfvI2Q3HkRxH0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=M/luEHlBBIPgNOnYCNU6qwOX+eQtt575Y73b1DNFjBWBaf5OKSi8fbH4J//9DKwzngXgsWvDv6UMCUWLNWAp6MkQjexemz17t9kXvlxFlap0YAZTQLQ/lqNC+hzmiinpw+HX9h1BOWTT9GrfSqPcvQT7siSicgVQpqSqah7HawA= 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=Qd8uqnYy; arc=fail smtp.client-ip=52.101.69.32 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="Qd8uqnYy" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aaGtE8oTKPj23Ur2v/ZhXlqpZccMWP5I44OVaGey67bvuWvH55q/AE3xJ/kedMXlwRza+5vr2c9HzDSscLs8QTZBZAK1w5OERwbep5Apvy2Hm76UFvRyirVtwDG2gPz+DXgPw0od78GNd09ATrq2zgEaPleUQFU2NFxNMhjDEUEM1h9GR+BT5KeC6qXGz2nsQ71gVng+/YwABSFa0jl77LLITVp4pO0F0DffuM1eN6KrjWw1J5jYx8baOrvOQ6sdoahk38NaiWdaabTesOn9Hj6oUozZb54wL3NNTAH1mWl5qlLKwbR2vIUhqCwYF4Mrl5JVzciX2h/XaMvFwt1gMQ== 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=pJYhUgDr42oyUnZnvcU3j8O69ycorETAiANoBIvFIKc=; b=EuZBazo1C+aCQD4mHAdVi2D1AVHG2bK1PBd5dvWQolarXixHcvkJbFL7DFQEY0NsALVwJ4Wceifvym4aac98dY1svKok1Yin7iwgd1eh+R305Fz5T7q7knqK0ZC2PcEdoqw7pKhlPWDGwX/0IS3zVxyVhfTWi6inRNDNq0LNa13cS6ZsCfQWmjgFGzt7WUPC+yRpildZ9L8sxSIlrEH1FIqNM/liaoWZLJCYXZfrY8VKhG5eygWzyV3k64L/8WQuasTXU4zDBYqqw7InI0wSuluu+8Ouf2XoE7HzfWGUC+a4v+FNAMbJoM2+TcQqWxdkXJpB+JHcwBz5lWTCGLocxw== 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=pJYhUgDr42oyUnZnvcU3j8O69ycorETAiANoBIvFIKc=; b=Qd8uqnYyupwRD69rTxHcxryJFI81AscveuXv2JmWYUoguojHCWdQlUSfA3fuzV+YG7SUAi8gS7X9vr2nGwxQHIZ3u4GJdkP1bFzYZN9Jc8Op1Ya1uwtIr8ddD9YBpXxcKs8GgooUSHVUjFMqCASfu1Wk2NtFHI6Lsj/JYKjmvGoWqUFZoxacNs7J48FAp+O0aW/IBZe0eGLBRsxq+UzQZ4XJodImweMYGOANcQfHZn0N/XG+z6j2FgiyQQYLP3c17RNo8gfX0mBWRX/EaDe2SmHnlqWAL3+Vly+tCjs12Wxi8dUnCpspxg5zLpIod5rvhCncQJJ4hl3AQ61xIJw7KQ== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by VI0PR04MB554873.eurprd04.prod.outlook.com (2603:10a6:800:361::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.13; Mon, 21 Sep 2026 10:48:02 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 10:48:02 +0000 From: Chancel Liu To: Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Oder Chiou Cc: Support Opensource , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 10/21] ASoC: rt5616: Move mclk acquisition to the i2c probe Date: Mon, 21 Sep 2026 19:46:29 +0900 Message-ID: <20260921104640.1941554-11-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> References: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SE2P216CA0084.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2c6::8) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::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: GVXPR04MB10021:EE_|VI0PR04MB554873:EE_ X-MS-Office365-Filtering-Correlation-Id: 20500a3b-e81e-46c1-5e32-08df17cdcf53 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|19092799006|23010399003|366016|10067099003|11063799006|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: jAJbuaR/OgTFY9tQABOgD1MJvIWU/SpUfUJ2AFa0sygG5//t9QLfFG9Yq3MooRHP/NOws3Sz9UFjdz08F69M+5wdhPaqBGq4IJsrpQ/z5KFOJAAKQY5MNzvFCud8/L2mym3OZYallbRkAR+NIR/TC6cI+Fizk4+kZw8MZzt650p//4/ew/cYk8IjBrRClkGFztjlQRO918PcE6nHc6PCf0MipsoxRuXnXxiWIbFxeaxYpx24kP6qaLfhAAjp0RuQkx05Y9x8ztP2rFvR6vsrUodrliOxJaznarBt88FLsFTs1ivyMZRcYoF9n9USM0aQGDbpyB4teb8Xpjo7xeFEZ3YitR8PeWR1ajmCizXNEKQ0jr7iyrSc+ArxrXjLq8bN+cqleAI8Bo0ST34+hPN7LnqZdEPB1O5gicECiLZTNPrNtIGWWuh4dxlhvXzl1pRhmE6c5q3APFGl9S11FvU/I/ifn55VW8Eig2mKylbwW0R9CsRX/gduv52AOEpc+nq/no5zhOb9uQIvvMnEdITNDxeXwlro/ithzGYGV245kHT8ma1LYNBv+sN/VywT3OWxG8kSBMfbs0f5wRX5TDyTatbcoSxvb/KnEgOgH4Y+xx3KUjQpobirNT1gJKqnhdb5QqgmwdejRVRY+PJlo/sXnvGnIyrz18q/1p7R+76WZ80= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(19092799006)(23010399003)(366016)(10067099003)(11063799006)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?YS8Uk42V8h5oEObMKSOBRuXB1chq4fzRNQRkzoIclcNuwujcamB1h74jVrRa?= =?us-ascii?Q?3RNh+/KktJPBukkk5jNDbiJo94jYPxBbKcIXmGsIXB9wUkXukWmxOznPu7f5?= =?us-ascii?Q?Za1MXl5ub+L5zV1pod0htI74JglxDJAK0EOSMdw6eTUdBrGXHbONUCEQtiTl?= =?us-ascii?Q?nXvDJYc47KU5VxbTuoLa0oeiN3+6JPcQaWVdKkCNSb+nzvXnK1+zBSFLXKBE?= =?us-ascii?Q?gq3+o9qoUTe2mwgqYI8isskAT+BRyOZVpYs7es327iywPnpqFg855aLN9LfB?= =?us-ascii?Q?BYYDrWh81fm6ZbUrFjQm5vcHUGmbMo1Y9pXTqR+fKZky17h9vBJ76Pbfa4m9?= =?us-ascii?Q?oWk9xNdbxufYKK0tluqTr/Aac8yV+TAn6cKTe7Z/kAJ0FNhReWGDTw5tXgCw?= =?us-ascii?Q?YQkbSPf7MznvjiD2wFglf0qWrSlAIbERuwngXdGUKLbBjIz9HdSQw3oEEiZN?= =?us-ascii?Q?LzD8UKT5uI7Z27Vf2Ifbe8uLckGLclz1daB+cbKamPAxapJuaahAmBLq571n?= =?us-ascii?Q?jlcA8qK2H8nbF5Dtfp0Yg0I0P0BjDKp6yAWRJngY6VCyiv/gU1ZUAJAtRp+V?= =?us-ascii?Q?NR7zbBRXsedqKd2vi5+dfIqDW7djGaMrhAeQ82YJZnJ3skIT7AqPS7B7ixFx?= =?us-ascii?Q?bJnuDVamuVDfuJKutyTq1YaVYu7OJsZafFeX/4FUiDi02OYPGVoREM8KSTe+?= =?us-ascii?Q?cy3JaokLl7fiTUXSMo19y3qvn4Qcol4eb5VeHMb+eOg1BlNDe9QyIXGHG8Y1?= =?us-ascii?Q?jLziAonVIPwPbWsJpD1qyEJHp6ukJMJFUBMx3v34OQBUXqMrDqPOus6ZSWqe?= =?us-ascii?Q?WnpsbPBLkylBqr0/cUdA8NZTPcFF2tO8kBBAMQbm5i9n0F6hcHBzhymSfVFe?= =?us-ascii?Q?CMcZx0DDwAxtoqKscmVCaX6C3kE/dwgvBkJrHY1JSEDl4TP+8i+WRpRuxsL4?= =?us-ascii?Q?m00gqrx0WS231uDn9CYRcbCngbXFV/5Z6j7/yg23O2p5bPcztFaeg33EEIGI?= =?us-ascii?Q?KfCbQ4DsGD/iGlcWJVvJtcEyn/yizS8e2AM75IhGdQeD6Wdkb+0vgLmKLor4?= =?us-ascii?Q?2QOEwZ8mdhcrYK870tpZsBG9NtXo8P+85nYYGoSZ24P7pbnpCORWaU5VRpRU?= =?us-ascii?Q?KmwAUtq7OGwM4XW60XvvIDfygz/+VuoF/3P6nFZ1xMKX37AnDxAVAIl1wL7R?= =?us-ascii?Q?3/ss5LjOMp2iORXHIFpBBy6dRYGCiDAHSYbX928TsZOioefBAfiU+eSeeome?= =?us-ascii?Q?l8QC0VomSFqJrd6LnuM4vwEQ4kKYEb95Dipx8J8fElaygY+9qF/XS2k+Ixdc?= =?us-ascii?Q?vl6UMgZQCA2ZR6BUlRNysU/0m7rUNKa1JtKT/oo0a6Q8OdaHNyvxS1btQB1n?= =?us-ascii?Q?/SYaFv7jl9WTCE1GRNZp6NfSB65e2gkQd3A0/Np2drS26o3OBqrk7KyhbYqA?= =?us-ascii?Q?w0ykjEtmKp8LA5Jvs15flEZxlnvpT9hnH1rQL8Xw9APKJ3LPo2t36ec2asCI?= =?us-ascii?Q?x3pzHwiF2V46Adyk9Xnyy5JamCQ+hjRD71//9/l2N5MPvXjsS1eIUVMF8C5/?= =?us-ascii?Q?PWI7Di8JLbWjRHZnBZN5bsRc+nMVsiUpqFdsmSoVtEAtTYEzYSilz+2d9lDx?= =?us-ascii?Q?5jlJWnEH0F2wkKqNFqxCQ55OCDWXxTWJbrqCLe9/oeRLGT9/p4JSoEiTLFRC?= =?us-ascii?Q?D3RIdg07DnlR+rbuaLhnaFa5YDS02qlLNZmWLE32/xoPtyJpA2LnvFbfnD6j?= =?us-ascii?Q?Pv4ydxmkgnp0QmCCH7BfCAwXcN8/8zerX7ahhkz/eDujOmXSnkr6?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 20500a3b-e81e-46c1-5e32-08df17cdcf53 X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 10:48:02.5398 (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: q5qJp4fqQvSXTTvystLhvz03lTakFFiL+FKQYErw9N5X24kZYS91/A0tFcRpaJRGUoH895XMYuJ4rWD3rint+LCxWmJv9iXbAmI59BSJerEo6yUBSgQxcra38c/2W/GF X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR04MB554873 Content-Type: text/plain; charset="utf-8" From: Chancel Liu component->dev is the underlying i2c device whose devres is only released on physical device removal, not on ASoC card unbind. Getting the codec clock with devm_clk_get_optional(component->dev, ...) in the component probe therefore leaks a clk reference on every card bind/unbind cycle. Move the devm_clk_get_optional() to rt5616_i2c_probe() so the clk reference is tied to the physical device lifetime. Signed-off-by: Chancel Liu --- sound/soc/codecs/rt5616.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sound/soc/codecs/rt5616.c b/sound/soc/codecs/rt5616.c index 3f9d97d04d48..e30e3b563c90 100644 --- a/sound/soc/codecs/rt5616.c +++ b/sound/soc/codecs/rt5616.c @@ -1222,11 +1222,6 @@ static int rt5616_probe(struct snd_soc_component *co= mponent) { struct rt5616_priv *rt5616 =3D snd_soc_component_get_drvdata(component); =20 - /* Check if MCLK provided */ - rt5616->mclk =3D devm_clk_get_optional(component->dev, "mclk"); - if (IS_ERR(rt5616->mclk)) - return PTR_ERR(rt5616->mclk); - rt5616->component =3D component; =20 return 0; @@ -1357,6 +1352,11 @@ static int rt5616_i2c_probe(struct i2c_client *i2c) =20 i2c_set_clientdata(i2c, rt5616); =20 + /* Check if MCLK provided */ + rt5616->mclk =3D devm_clk_get_optional(&i2c->dev, "mclk"); + if (IS_ERR(rt5616->mclk)) + return PTR_ERR(rt5616->mclk); + rt5616->regmap =3D devm_regmap_init_i2c(i2c, &rt5616_regmap); if (IS_ERR(rt5616->regmap)) { ret =3D PTR_ERR(rt5616->regmap); --=20 2.50.1 From nobody Thu Sep 24 20:03:34 2026 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012015.outbound.protection.outlook.com [52.101.66.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 DF44F4848B3; Mon, 21 Sep 2026 10:48:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987694; cv=fail; b=QkWNmahq+/qtu8L7cdjBWQp6/Ujz6NzL+9L2bP3njmI8eDcQ0pI0gUJYVMb3lS+0u1GIQQFSWL+KQcH9tO37kMyLWDQ9H83e9CiOJPNk45mRs/az4QKh0IuXvt18vH5ziQcmIf08dg+dKLnwpoR7q3HmL++opkYGSeHeckk2WLs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987694; c=relaxed/simple; bh=r/zTdlq7Jy5Tiwl8gnqpM08S5NLLfvLYcMs0BuBIvqY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=lxq5AhkULFlfnjiZv/gF00rTZRzRA8GHF455DTYgaTAFDvuvQBQ25aembQM8Y0Wmdygkl9iKgS0pochfKjRrJET/YMVgHdeeQfr8ITSLXQJ23UpQX5eruO4fxeU/HASpgQCKrpIvtLkoV5Aj/afRs5heW3aJnRyM6pr+U6QQeUg= 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=GHwueYCB; arc=fail smtp.client-ip=52.101.66.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="GHwueYCB" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nQ0CBh+Mopjc5wCGM50S62WeBWPu603FAdVHmmV7vBmgai68eUIqq2um1LEDOEli0scZq5FRn2IZhyOgieH8pv5wCDebguLTQiHj3jOdRnFDpOAERIm+zwEr6R86ER/YPndx6yfSJv0qirRc3L5IjtIzrBYG9UkYY4BFuY4gjpAkK2juNn3nZsyTKfjPlR3RFphOSDH0wgc8AmT3psOs1gq19rU1egSZ+FfKCHFvJWBkJWI/JX4ZP+PO9O+LTBGfS3xYLjm45BfYCA1RnjT1mFfCjkpbpgWFddpxo0sj4BlR+fS1wGlScaYmWEVIpibRVXlPpIngo4TDQvpa7A9c2w== 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=syyI4noX614QyhJXKFAb8Yn43sk5lPtVZT2395KgcIE=; b=gUpgVlyqZbe6SvgJt0kC1sMcJk6MLiuHUwBPUa/7/i1CYVJqN7lIlopL8GZQNuMIZX303xQMX/7SxBNqbSsWFvG82967EO7QQoEX67M0cXrcwsNyho6nrbYMtGBmJsnUVrdsRkxtGt7/8wJ/eWM57Xjo0QaddFqpl77IYc3fjFKumJWR/xgcYM2kw8DDtPybRyx6n9h9zQnKgBr6v6QusPi/+lftMDauYDP+fZfnxOnSqbiAaxmaeZ4vjc4oEZEEnvrLSw6IuXF6bdv05YnG3GPXc2cpF5SoVygcT2Dhwl1ob09IgeiUcm9zDZukm0tR/ppv0Ia19UuHZaZck2eBnQ== 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=syyI4noX614QyhJXKFAb8Yn43sk5lPtVZT2395KgcIE=; b=GHwueYCBt/pu4fpR8vLlMv5DVOuxiN97xntCZLJZSz8qKsTlro0WXlAi6099xAVriTQIo34z2z/TLyj9YuRyVmAqFlIupqakyDNF/yWtuQOoqOxQqfODUTOvl2etFOkbZOKoV8+1BtuUdrxO0ZpTOA2IyvIvlIhacN3wG5L+WQAuP/Ub/8d3vTWfOBth4AFyUAxD3cVj/wgvB+J/wkI3U/JMagXSjG3/QDPQ9MOiMXqRlPo3t8f7v7y4Hezyo59QObMQjfzp7/3lmsELCQ0OhWgi8l3eRWpfMmYwGFiuTE/9c3Bc2hmOYGncCX/HK7GHCSNZ9wzMR6If4iCDnLG6gQ== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by VI0PR04MB554873.eurprd04.prod.outlook.com (2603:10a6:800:361::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.13; Mon, 21 Sep 2026 10:48:09 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 10:48:09 +0000 From: Chancel Liu To: Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Oder Chiou Cc: Support Opensource , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 11/21] ASoC: rt5514: Move clk acquisition to the i2c probe Date: Mon, 21 Sep 2026 19:46:30 +0900 Message-ID: <20260921104640.1941554-12-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> References: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SL2P216CA0197.KORP216.PROD.OUTLOOK.COM (2603:1096:101:19::10) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::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: GVXPR04MB10021:EE_|VI0PR04MB554873:EE_ X-MS-Office365-Filtering-Correlation-Id: 8a87f003-fae4-4df8-3d79-08df17cdd388 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|19092799006|23010399003|366016|10067099003|11063799006|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: TD5eLQNqYkIUCLYfPkT44z4lQWSovuYw4kgJbveBSNs/BT7i3C3tkeX/NJnYH6Kp9Pla2NzI4KtW5/iBfDRe47O2Zg7iGcef+lKiu0ObnquFdukfHciYiP3Dkh4/RUhpcgzDP4XnH2qosFEdIDdeSi+tV/vZEqe5B/zoC7HdZph/2lPI+NZeaVvXcwInwG3p3w9xBhj706uPa/GuYX/LAfemy1eU82fOGOhEj/jZiZqUcd+EESV6X89OqIg1t/NmaCWBVsvY0E6r7Fufnk0PkBxhhoPZp5ECjL0lwcaufIFT07PJ9G+3qO+6sC9Q/OSAKokEueQfaVQ3v0gRmH2Cp3su+N7CZzVQNJJgzebWTCeg9Ve23Djf3FkSM1E9PK6+riCnVbSf3WTptkRCxh7aKKa9Tn1EhovJlom7YBdjKFYx2Y5/y7vbx8yzB6lcG82fWEVW0SBJbsMBU/lybxDJ/1RZ+TzZ2A/X1nGCEkJfcgi+t8lyuGZLGE0nrHlxJ808b4B5IAGBRsypwL847aYCCvEy/TIPe0P++snLe+JEMsfiy/bXrI3Kk84SuW3nLSXSIeP7/8Bq2v8Ni8aVXVPd+yJaD6x0MxSiNur1B/jtjKCrgTY2jFb1S17Txj3ijUmsNvFyFKXZI5CG8/mTdmJ9xj4b4uGKvz3lyD+iJ3ySISE= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(19092799006)(23010399003)(366016)(10067099003)(11063799006)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?to7dgwf1eivYlfGq0f/XXvNy0nUifjQJK3aC8ilRo0ynD5JxIPCbK/d4I8iS?= =?us-ascii?Q?ajjmLrIOHT2rtaPSzJRyNztZN5lM9tGti7WKELTSSdHKLTCGfoLci+aj4RTA?= =?us-ascii?Q?wex55G5/aWNnL20M1G2Wf8g9Po7Uq2h9+3NHDoIRL7QOocEgBi+sXjXgaGLX?= =?us-ascii?Q?4k/dY5WknNnMgxxaN8OsoEV+LfzOrc0KlcaMqPlsIRg5tE6ES13v0dZ7+AdO?= =?us-ascii?Q?yZHA4oYosZys1aVyKoe0MHwHQX/iHFJOHRJMUOp2QhRCnOZc5mMudcHKkYT7?= =?us-ascii?Q?hQhIVyzA48QCS6rCjFWH6fzTe/XgrzlnoIviwvV9mZkAQKtILCStzHs/lr3x?= =?us-ascii?Q?vHpEI78e/LJL2/OT/Zl/NpCVOb6Yd16Uwgqoxzg/sDgWrf/F4G1xPHNo7lwJ?= =?us-ascii?Q?gV8wjsoSfOhvNs29O/ZbDw8mqlAnTBhMnPdsH8CNNqaicWJscmf/MwKayr4/?= =?us-ascii?Q?tRP7djf+UcxbijMtrAxoiElfPMxWbEa7jGcm4dVyJRzBCJx4WPF6q9PJ3kMb?= =?us-ascii?Q?GGewDfQeva9I0ub7Ji5dEQAjn7AHzkKVVkTJa71x/LIwwvX8rHy4o5zTyZYj?= =?us-ascii?Q?n6OVyyMbNL8jzzqpCMSYWR26RjmFLk4nuBAIbJePeehI2f3Eel3yHlY1MzpD?= =?us-ascii?Q?y7BM2KDqhz1qTuE6dPdkQrPK+JFcfUb+jzA5VANqTWk7mt2cSowJUrBAo5jH?= =?us-ascii?Q?nevrNG5dSLbn1ZI216XpBCaIE0tbVNgZYuBnpeM+au3HTPm8wXAtHZO2CGhY?= =?us-ascii?Q?hUsVL6Gwc4msm8Zf1r4ojr9cEM+ZYboHOUS8Fzkp3MZTy1zIyAMOZidPhlPo?= =?us-ascii?Q?c3pttgOSmLpbwGftTuIN2T4onRKC7A9P9Offr2J6A1mFlIe/s/0vcugJo6kq?= =?us-ascii?Q?2AsUMtPLwVrvGJZjYs3W0XBfWP0n84JMEbuXmPz4bgPWw5OAnXQy2x5wfjMX?= =?us-ascii?Q?bTdPw/iNRj3ySifxfLsa7bDBs+j/7xq73ojHl56VQ5JsVzKI10lAiPuSnEVI?= =?us-ascii?Q?2OHefgfMaDtKgR1ucaw9/iNYOn6MtO1ZNI19MQya6c38khcUZ+lZmMZMGw0a?= =?us-ascii?Q?/tTqLCr3FVj995qX1pK0+fwB3c0QMZlm13JghUdSqOIwofoq4WS3EoAlsGJo?= =?us-ascii?Q?nMD0eDI+JE5uFwPROg1n591ntHqErnWfb4aEdZihDrYWK1dauiB78mCnKnKc?= =?us-ascii?Q?25+Qk7js1asswVIw85zFtHvadbGndTxQxYRe3YftO6+NzQqDBGx57H8m388J?= =?us-ascii?Q?U0XScPI4TCm5WgLMP6ReW8MpPzzLJdUz5ECiwFAJiDR3U9pNbGtQ815/shs+?= =?us-ascii?Q?9mZYAyk1tlq5Tp+BV53m7wVoF8TyblveplLkk+RCof9mZvaYuVpqbgPPCQAm?= =?us-ascii?Q?wqv562LjhsySL+b/5L9ASxrqHZIft25TQi8ZT43veGVAuExWkIqBxoNRP7yV?= =?us-ascii?Q?GOZnzoyugC+ZHqp7JpaK7gFeFrUQ3Shvmz3VKEd2rpGbWMRzizSoUbYVC8tm?= =?us-ascii?Q?HhMkx5x83p8X+L9t7EbxY07ALbdsvCl2qPdV9LfR8UD1SlB2nbpZlvIHvlg3?= =?us-ascii?Q?UkjE3ZhHgCy+i9Do6s25QDff/6clE01k5JFtr255HeXNKtDMzSfM9Q3cJtFE?= =?us-ascii?Q?jyvTPeyyw6e/4CF83iZFJUWoPCnjUpXJbRiQqQOnhifMfrfzFV6O50Do4CPQ?= =?us-ascii?Q?UA7vrNhUPmaBb9XDcZbjYhRPidWAcqarkdJkCBI/+nkuI3iYH11DpkzK/Vtl?= =?us-ascii?Q?BTIdeSDS5jR9k5LPKr8C3y2SSIUFvZHi3Ssel0IdjAUTLXEQ9Kjo?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8a87f003-fae4-4df8-3d79-08df17cdd388 X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 10:48:09.6960 (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: fT4LqXF9usgQVWS6NdCnvmdkMrkTMHWLPgaPOSAh5H/LPnY5dcsO+aFTAH5bncbwyGA/Qw/gEJaGRuYT6X9GDlnQtb6/WhCnhEm0tWsmEeJ2afncPezl6VEYY+MLjjIp X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR04MB554873 Content-Type: text/plain; charset="utf-8" From: Chancel Liu component->dev is the underlying i2c device whose devres is only released on physical device removal, not on ASoC card unbind. Getting the codec clocks with devm_clk_get*(component->dev, ...) in the component probe therefore leaks clk references on every card bind/unbind cycle. Move the mclk and dsp_calib_clk acquisition to rt5514_i2c_probe() so the clk references are tied to the physical device lifetime. Signed-off-by: Chancel Liu --- sound/soc/codecs/rt5514.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/sound/soc/codecs/rt5514.c b/sound/soc/codecs/rt5514.c index 753143e2d11f..a33fbc9fb047 100644 --- a/sound/soc/codecs/rt5514.c +++ b/sound/soc/codecs/rt5514.c @@ -1099,18 +1099,6 @@ static int rt5514_set_bias_level(struct snd_soc_comp= onent *component, static int rt5514_probe(struct snd_soc_component *component) { struct rt5514_priv *rt5514 =3D snd_soc_component_get_drvdata(component); - struct platform_device *pdev =3D to_platform_device(component->dev); - - rt5514->mclk =3D devm_clk_get_optional(component->dev, "mclk"); - if (IS_ERR(rt5514->mclk)) - return PTR_ERR(rt5514->mclk); - - if (rt5514->pdata.dsp_calib_clk_name) { - rt5514->dsp_calib_clk =3D devm_clk_get(&pdev->dev, - rt5514->pdata.dsp_calib_clk_name); - if (PTR_ERR(rt5514->dsp_calib_clk) =3D=3D -EPROBE_DEFER) - return -EPROBE_DEFER; - } =20 rt5514->component =3D component; rt5514->pll3_cal_value =3D 0x0078b000; @@ -1285,6 +1273,17 @@ static int rt5514_i2c_probe(struct i2c_client *i2c) else rt5514_parse_dp(rt5514, &i2c->dev); =20 + rt5514->mclk =3D devm_clk_get_optional(&i2c->dev, "mclk"); + if (IS_ERR(rt5514->mclk)) + return PTR_ERR(rt5514->mclk); + + if (rt5514->pdata.dsp_calib_clk_name) { + rt5514->dsp_calib_clk =3D devm_clk_get(&i2c->dev, + rt5514->pdata.dsp_calib_clk_name); + if (PTR_ERR(rt5514->dsp_calib_clk) =3D=3D -EPROBE_DEFER) + return -EPROBE_DEFER; + } + rt5514->i2c_regmap =3D devm_regmap_init_i2c(i2c, &rt5514_i2c_regmap); if (IS_ERR(rt5514->i2c_regmap)) { ret =3D PTR_ERR(rt5514->i2c_regmap); --=20 2.50.1 From nobody Thu Sep 24 20:03:34 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011033.outbound.protection.outlook.com [52.101.65.33]) (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 2D8C8480DD4; Mon, 21 Sep 2026 10:48:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.33 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987701; cv=fail; b=sE8Z9HA3ZQZkL6/H7bofz1DjInwrD8Lskd50IP3vPHsf2FrDGJkzsC608tyQe1ceclmRSYEWj526nwSj/Ccg0SAV7TMAwQBZLqECLUV6Nij9PTKqPNsWnAFg3Vrg9mqegqry5cu+A2TKosdwFLvGWWSYi+NcYSKIP65oOQAQxKA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987701; c=relaxed/simple; bh=0vFTS8m5w0yf+84s8SXUTpOrFH9XmCsdKUQ6a5PaB5Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=nSsLQVDz/gnTC2A+4uBr6epurfdpptP1Td+AExaeV7wUnKqzgpVx7iisFrjBp44SomVC4R8kW7UBRUgLeNJQzwzhuWzyNDk1sR+uZqxMg7ldfCTPmhmjz3wzq04/tORqjKQiGZXEdvu6z3TCclZMNPc+DFcqXYcu6DdL1ZJoagw= 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=ssi+L6Wj; arc=fail smtp.client-ip=52.101.65.33 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="ssi+L6Wj" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eDwCD8hJCt8csjq/M/72ol6J4XXLd4sHE1hbHR19fzuiCNBiljqS0gspDPZpkTcoprpnLfdcU+XA7Ny8CxcLdBTUt8EYYl9YnSWObcIweFON0aZvyLZZbKydd6Fr+ooCru/YnHlqbd3aHcA4sS/I7khIUmV1nAK1IBdqbBlqMTAz3KDcTN60V4/rbhWeAIiQzRxNjpakTdLzMYIRfMRYFHYPmv9hiXuq3Ytn95e4ItUztAW2o53U8XAXNak/dHkUmhgw6aIGgMBKJBiv9gdlgHJYyqUM/5AX8C0+HsVFhnLH4/p+hjCVmDbxrDKCT4kHm5AZ/Rod0vExYDAf07v7iQ== 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=uRWDHehRnHoYUn2YBoC2HbS4R8nIkzG6iVRGtts0/fg=; b=RadxHQyAdfiJ8G014z0y5AOFDzllt2zdVi8EWHZFTrCJ994P7+TzIy/7T6qFx9WeC/sT9XgXKO1Veqhjmb0xAXX0eOl0Lr8Tz2eFzf38hmVQhW14ZR8P9H1fhZ4Y5AQrNDFD7uu/gfDoYDYZUnNOcaroCP1npO/H1PeIVp8Q9v00rjofM3mOJGex7pvfBqCwYYjL1ua4M7vEwDHDe8kvXqXbKMA1Ul56QvE9Pjt1Q3nItu3vwLHSPzwkrwX5POBG7lB521d1bAASSocz0RSoDczbY/H4TUvRAvRArtjU0DPmYLfSjsaMUPhZVIZyN4MfANGBJz45RSdb4rQRapVeDA== 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=uRWDHehRnHoYUn2YBoC2HbS4R8nIkzG6iVRGtts0/fg=; b=ssi+L6WjNqo+kBgwEfsReRiIVUMBrGiOkx7yS2aB46u7wpBqOrkPAcJDN7PhM8AEtl1bBYkvQSGDlGraaZ4Ta8/FED5gK9AdE+oFKYrAVoHG7cQu6+LdkJ2H4VDqxG9cRRKbczD1nymP72pvp4uRUIpOicfsYi+At2PKUKrn7lhlw/33cENoKFzG7IwgSuOz/dk6PlM8NJImGnRm9IkhSBsgqodz8Kw16FIP/IuzfguczU1RuaO1pdGMKjbsyo0/VQwjgc9OgVb82UfhMCtHZWXJJNixG9F/4deImLfPB3GOACR28/w1GBvqfxWypTn7k5mRxMv4xRp7ikB7LxS1sw== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by VI0PR04MB554873.eurprd04.prod.outlook.com (2603:10a6:800:361::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.13; Mon, 21 Sep 2026 10:48:17 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 10:48:17 +0000 From: Chancel Liu To: Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Oder Chiou Cc: Support Opensource , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 12/21] ASoC: rt5682s: Move mclk acquisition to the i2c probe Date: Mon, 21 Sep 2026 19:46:31 +0900 Message-ID: <20260921104640.1941554-13-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> References: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SL2P216CA0206.KORP216.PROD.OUTLOOK.COM (2603:1096:101:19::9) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::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: GVXPR04MB10021:EE_|VI0PR04MB554873:EE_ X-MS-Office365-Filtering-Correlation-Id: 060420c8-d52d-4b3a-13e4-08df17cdd7e0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|19092799006|23010399003|366016|10067099003|11063799006|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: jLXQvnQ3y6GLQpdw1eKpPED8odYAXoc6w6cc7pMoq9VGbaXhQKMJVapBToPJu6+YvtCVwbGXc9cGzlwwDXR0BfdGdk4Uf0xKvqlv13myPp4jYnP31E79qi+KiaTK0jk4Pv4/k5LlbmQVhSWdXr9J/wQlYSjekIyeHG429Y/AyprmaKo/DzcQD+7e24ETHCh1JO/9mh9pFc6FUD1txQoZXxjxkAiAhgIds7kloZlEIOntyVIti9HC174rc4K6pGYxZJYhgrMGGJKAwCx7ytyl18cAFkuiLYK6CY7zwkyxs7mpn2WYImde525NmXhOfC2x+IghkKubdPyPDC0ABmb2yIQbVjkH0PDsAbpryw5TD4uooHrPR+E7Kr1Z8xRy0uRAdSTlg/NhBlBHDCuDRxTD4nMwk5rYIeVJJvuSZCDeTR20uPjTzQNDnGCAKDLPPuOKvKUVQAPZlLaJqzZS6UtlsCUflfr19LEpbCJ5ytpAdgB3H9bOLJDRsS8UOXBbRtiGZQOh9P5hP6AyhOW35ljuRR6pDBCcqq+kaUjSzAfe44oUY7kZNZHBdLUoEIBzh+QLmI1oI96gs23amqiasCCdgPoveEA5DHhYMvBPb887WjY6yAPgzcGv72qT9xblzw0S7Qtyldj6dnlb91x+ylkRI9uH6ZiqxXvMIhVhapL++P4= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(19092799006)(23010399003)(366016)(10067099003)(11063799006)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5AFs5puQ65YVJ6NmXpk5zguNND+VO2rFbLRXjxwYT8rmdX1A+EgF7wigiaGk?= =?us-ascii?Q?sqCg2+5nT9xKApu9rTd9HKUSIxUFum4WM/94kSBbs600WFengje6ag2cKu9E?= =?us-ascii?Q?gUIurrEwLqTH0yHlITxNaLugaHOv5RZVp4eMov1vvKlQFpbsoDD7Y+dO2NHE?= =?us-ascii?Q?7A/FwAodiEuNsC9/hNpG8hmOjhXNtv9N55EzVrzMKPj00zpXLdN49xO5FORP?= =?us-ascii?Q?vlf73M9+rf755p17WvHK2izxRh/3W7eciGV12gstHQ0XbHbB8JBnLjtQUlpC?= =?us-ascii?Q?JKuRB2KxXcP0shVaRT7UXmeSzZAz62He17YH2/1fupHPdfoWh1CiAoKQpnkA?= =?us-ascii?Q?7U/Emmfa6u7WwMmVhvqKmMC2/lKssYRscbgG4cOzPSSZpEnC9JL4mkLPof1g?= =?us-ascii?Q?N0Bpxc1Tmvnc5RM7o94slwVh1gToMtWTMOJAXL9KmNM0XVqEoMZsyHitLNLk?= =?us-ascii?Q?HtwDjW2qbYd7OVULCCOzBmnrLtPGXtJmseM6MOIv7mi8ahJ1K6DLsUIu55vx?= =?us-ascii?Q?lAglrcgtkv7FYJcruFmXvWZna2kOFS8cK7rnPctYDHx3Pc/9Xs7jn7vieoW8?= =?us-ascii?Q?72ZmKqR0CK8NyMciBnwNc1HOSz11jqTJoAA8WeX+24fftbfIge3kFO1bUxhT?= =?us-ascii?Q?eIL2tWLgQbo/aypND96tlfztbxGyzIR/CIU2NSZsH/3903gS1qdPacJxmXJ0?= =?us-ascii?Q?1jlYub8z6QLGGA+yMu/JgeeuCbSa3aMQgMgQbr3dCnkJgzaAr6AX5XG6FABT?= =?us-ascii?Q?jdbCiaxIYVAkdW5uTUS6LRW+anA4DkrlCX0gllJFcyIiRl8xU8uFUgtFXOYX?= =?us-ascii?Q?spKQldzcsKwbC3OhEEVctTq3gh0qGLc4YAI2p8eTSwe0Hsj0hlsKs8jCsrmS?= =?us-ascii?Q?/JOnkuoHH3yZ7nUIuL2+wEUPF9QK44UEmwxrvJx0Sn5QAKLzduydhFAnHwpr?= =?us-ascii?Q?equ3HW8ivWCv8aEkhSf2xoplbLJnB7My5JsvCs2zBh22X4l5gRemBOk3dqMd?= =?us-ascii?Q?D6EeWb3FIC7bo3OEEcmtu77s5i7WuAkezhZtttVEzRB4cXLMziAC3Cx6SGXy?= =?us-ascii?Q?9A6yt7WSAgAW5NkW5+qMp4pVcqGhWxVDZxIYq0dnRoxnVmYH6fBqpXMfaLbu?= =?us-ascii?Q?uPYRk8CUVEhuhiSzMSm30Eze2RmKmn1UMttJwqZitjniEZWYBORao9qFT1i0?= =?us-ascii?Q?FU6Ov1Nrmeyj6inVIrF6kGsraHet4sWrpKqirosXsSx+0uJwGZnmqyn1a5dF?= =?us-ascii?Q?5kadXGOXsS4E46OUuP71IvyNfPmGdX/etGvLC8ibwRJFofJzAXS3W1w3WmqW?= =?us-ascii?Q?fYYIPsSwwQ7qapGvP+6Hi6BUvnrKZbobeEZmKhVgCQcOyeRRejA/NmSJUwrd?= =?us-ascii?Q?lAevHUizf0MhwwIlUMi+ED6fx83XthQzKO75EEi8dLPyZLiKrxPO0gjr0iHw?= =?us-ascii?Q?T2ZIUoqLgcuWh+oA+NeaT8Rks2hpGWk2dR0V9eHcom2a8/6BdMp0UZ6QA4Dc?= =?us-ascii?Q?UbYwEl+zdTKo7m3h0FgM3p73TCaHeBGgSpfjwIl/Mkw3B4gIdP67dx1JLJ8j?= =?us-ascii?Q?0RhGIXWEjD3LZQZYxe/sdyQ8IXkiXhgu91Ri0OsfSiYC08Y7O1EmPe1v9zcq?= =?us-ascii?Q?wm0jTepY/n/v0xwV4HoAlIfueTT7nFAFXEIGZNNwz7UMK7CdaJgnxDIdrMKc?= =?us-ascii?Q?FrqRWv5Jiw7HEffhV5ewZZ5J9jIiehkf873t9Yo9Va73inVR/bnOQhVXVSfx?= =?us-ascii?Q?PprmV47p3FXZjLQ+sGPpFIJriV8vW5huzhy46Vj+JhLdbrRSn1z6?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 060420c8-d52d-4b3a-13e4-08df17cdd7e0 X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 10:48:16.9063 (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: fueDnMTc6EMKvY1QuTr2QCWrC5hohrc3xLK+Q95VkVbawbS5L5tKI8bm8vtmoBAuVg7H4sYVb+fyp2Xxv3WLbTcsGmUWq6JcpJ/2ulgonOzBpxYiVCRf3hvy5Cr3U5aT X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR04MB554873 Content-Type: text/plain; charset="utf-8" From: Chancel Liu component->dev is the underlying i2c device whose devres is only released on physical device removal, not on ASoC card unbind. Getting the codec clock with devm_clk_get_optional(component->dev, ...) in the component probe chain therefore leaks a clk reference on every card bind/unbind cycle. Move the devm_clk_get_optional() to rt5682s_i2c_probe() so the clk reference is tied to the physical device lifetime. Signed-off-by: Chancel Liu Reviewed-by: Cezary Rojewski --- sound/soc/codecs/rt5682s.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/sound/soc/codecs/rt5682s.c b/sound/soc/codecs/rt5682s.c index 6dd0d36a7186..0f80e4c32f57 100644 --- a/sound/soc/codecs/rt5682s.c +++ b/sound/soc/codecs/rt5682s.c @@ -2846,11 +2846,6 @@ static int rt5682s_dai_probe_clks(struct snd_soc_com= ponent *component) struct rt5682s_priv *rt5682s =3D snd_soc_component_get_drvdata(component); int ret; =20 - /* Check if MCLK provided */ - rt5682s->mclk =3D devm_clk_get_optional(component->dev, "mclk"); - if (IS_ERR(rt5682s->mclk)) - return PTR_ERR(rt5682s->mclk); - /* Register CCF DAI clock control */ ret =3D rt5682s_register_dai_clks(component); if (ret) @@ -3152,6 +3147,13 @@ static int rt5682s_i2c_probe(struct i2c_client *i2c) return ret; } =20 +#ifdef CONFIG_COMMON_CLK + /* Check if MCLK provided */ + rt5682s->mclk =3D devm_clk_get_optional(&i2c->dev, "mclk"); + if (IS_ERR(rt5682s->mclk)) + return PTR_ERR(rt5682s->mclk); +#endif + for (i =3D 0; i < ARRAY_SIZE(rt5682s->supplies); i++) rt5682s->supplies[i].supply =3D rt5682s_supply_names[i]; =20 --=20 2.50.1 From nobody Thu Sep 24 20:03:34 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011070.outbound.protection.outlook.com [52.101.65.70]) (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 ECE7D48592A; Mon, 21 Sep 2026 10:48:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.70 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987709; cv=fail; b=esfWYOoWgfzbnAsYcgtGPXUl5HYISTAD64okHzZTajHNwlFLpZTkXvn63RP+k/JqA8Haiy8r1rU0Esvgtb5/ZqK4EJPj1hK/p+vA8hk+EfsRZQSQqTY1XexZKxNC8osqzbjbamCSXWOCWbTsk8ZvikVAuIcMEMMltuWRCbXvPIQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987709; c=relaxed/simple; bh=OJ51+xaqdJ9LqSarlEliD9zBHik7ItrkR4skyjxJbFs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Nr/cLQhtOp/Uev1ONEorscjT2gVDAFd7c3RC9i9aj0rBK4UwdrddkkrRQYwVXPmlX923jgSESeIb/OewvX7nk+cd3WvtGIYCcczMW0VVaci8tsMIfN+IY19u4+k9MyeagsLHGNHYILl6zDYhGxh4/3S3d11/VIXJLWFLnDFsqWE= 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=xXUfRb+U; arc=fail smtp.client-ip=52.101.65.70 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="xXUfRb+U" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ue9wYtZdA+xpp37Sa5LQIUiTJhE5wFnK13ihkgDOXYQX/o1vNFYfCVwjb/eSoKJLHLsA3P1gp0t6BFOXSmZATQQYkcSfWSfaeKlF3VQQdPUczIdPE8fJaAFbYHkefc7U8gFvM3VZkYTwmkGFYim8pQlztvpOv3MjXcsWnHu6ModaQJ46tGLZiYRYkHfu5a5MtogjFnFo/rXlPQHKI3APAop77u3mi/VzUJo8d+oP0CnyESMSxh0IOGZ0fwUhhU6NgKSuyTER4PdiJxA58e3nABekIWbqc4ReZBpKaywy9TIBl43rwevGuKK4OvMhRgmrbEnd/obBHDkgsbT9n+pEzA== 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=jprutNdFgkcAYybSFgGpZoFZCil8zgrm1y90FJDPXG8=; b=tZPXggcOklE+igyhsnXppNhfiaRJUqNL3HQZPw3eQdhXp9KLoflD865YZlBn2jGbsGN++xz9MkxK6nV6zLHzzkx0TwUD4RkxtuXLmCzKdAV+oIVpazuor2nHqEwSREaU+mQBhPwDdYAaXxZyev8JoyUKOqxfvXkgYUj3CeM7FHCZA3g9zgYPynOjm04NuIILXA23ASkAiCA939DUcgk1fBpPVLmyNZVdjwHKbNUf7ijmWY9jlyjXO0Lj2uB/N4uslaMwFIWzhr9O+9LUpHPgrpK6K3jq1yBPOtoHD58UelCoGBGu1Bbot2ClLiQFsUZiE2R/4uoWSQOrUoyNkRy0vw== 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=jprutNdFgkcAYybSFgGpZoFZCil8zgrm1y90FJDPXG8=; b=xXUfRb+Un8aSTvku10S55ffBbEsTM/CHbCe0gRaaUrdHW7gXWm4BtOZKm46nXF9igTORCc2/Psb9m14Aux62B+IAaoXdo9xK5HTmZEs8B+gPcBwEF1sKmyZob/FgamfufaeyHnCe1M83KI4iYm7DCBanzygxEhZmL5eX24cE5khhrVsBDgc/bVuXw67y7HhKYIHs6YJQ3COVhDQuEKCv2atI2607xw0Hsaam0entDGpDeZHmw6AEtszOo5y1PrZva2pVW15aphkGf8sYk32qcoivumwERLqWGsv5RVjnp6WvqEgM/oPKie4nTfwR0HC/Yjo8S36mzBdr/lgX7XMF4A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by VI1PR04MB6862.eurprd04.prod.outlook.com (2603:10a6:803:130::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 10:48:24 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 10:48:24 +0000 From: Chancel Liu To: Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Oder Chiou Cc: Support Opensource , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 13/21] ASoC: max98090: Move mclk acquisition to the i2c probe Date: Mon, 21 Sep 2026 19:46:32 +0900 Message-ID: <20260921104640.1941554-14-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> References: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SEWP216CA0037.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2b5::17) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::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: GVXPR04MB10021:EE_|VI1PR04MB6862:EE_ X-MS-Office365-Filtering-Correlation-Id: 19dea424-0790-4c8e-0b90-08df17cddc50 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|23010399003|19092799006|366016|1800799024|6133799003|22082099003|18002099003|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: 7Vi1F4K35O+6Qdzrz0jV5V7O1bjJhTKCTXErB74pWX0q4joMpB4bQRsPcADkPVpvX4aUfOVPvQLgiOxkqfwkiIH3NVIKu/XTiSUYoEeojQK1jxF0xaaWhMJ77YXFPz7XllSvqvHH0rziNjkv3jo2aLFGavkXV4CoffWKZ2B/eZ0Ykj7B+kIkzEP2PaGkRMV2Rx2Txfp8Fl5hY5UHmN6dmbtXeyg1h9MG0uhr1mR+zPhZzOniDpSwhqAR85IRjVDHDn8kdczwRg3eqLRHNzgwlsNbq4Vgn4Dcl9hogbd0k2bThu345JWoAkBFWe2slGvy8Oz/eAVXK4Zm+JpGCme7HzyL+w5vpH+P2yuQIHfmVPluqLMmxaFM0cCsY1vxHVLaiajokdBpUM+pd5ollUfZ2tPLAJH1KhUnNb6rvMa6BODalaeY1wIDLMHoVLNaUIMWG3CntiMTY4xhFWRR+ZKTdx/hX4iGzPNR4wEasUcOJ9734owsKQUzIrG3Z6yt2rrew2MquTTOLcCM40QwkiLSgsrl0Czq1r2muEzZIYEuAj2Xn7TnET0X997Hd2QEBtFjV4yWr5eP1DZ8BBlK3gP7r2inQr4sURLt301lEJq80PomXrTm+seEBGaQiPJMmDjwzagUVwmMKnNQ38hwioAiXc4o9L+6RZcY/A9ZHreZEvs= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(23010399003)(19092799006)(366016)(1800799024)(6133799003)(22082099003)(18002099003)(56012099006)(11063799006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?8R27Qp5xWq6s+AuT5ZUTyvVGJhP3ywz8gQ/vHNRsDFCtay7pDNq+Lyp59Sfk?= =?us-ascii?Q?Xh7Yl9hjqDN8AvH1GpbXffaPn5DAobZZpAsDr7ZyQ7Pvt4NE90xmTv/Lm5z8?= =?us-ascii?Q?CgTBXXI06BwNLMJrUjjzAwJ8Bul5ns6JP3ypwpqpqSzyfVGtFPA4NVsQVEfd?= =?us-ascii?Q?nzrROzgpbmvNVJybqtJVSocQh/SmPBQs2VdjThXCoTUFyrc5Wrwu2iD64pUG?= =?us-ascii?Q?WRMVbOnI+BwAxsGgWuYjT8zpzz5Y4zylTTiMkB7IDudNZtbU9VovgxWZvd80?= =?us-ascii?Q?/LW79WTLbEh+obuyocIrxOSip371QDlEV2zCoM/qdlw8A2vnLi0dFk6lwxc5?= =?us-ascii?Q?o37nOGY0VS0RsiUqO5RX1Rzlpnw1DhA/C1xoYC8vRP3gFJl6EW6BfcpCatie?= =?us-ascii?Q?CHgl+Scles/4X87y2vN+nn57lEjzJgi4DcyM6bTW/ECl5NB1ucZ38TeJSRMl?= =?us-ascii?Q?4r09+SEp3Foo1o6Z6lAVmhfMuGau0KrsCVIGIJ5kaOd2E4ZJTHPxTZsN9gwn?= =?us-ascii?Q?4EIIoOxvhnDwdY6tGNeSfgXjlz2/hm9sMmN57KVJ+G+LGNmE/Ct7SGIOV7mX?= =?us-ascii?Q?X2MySdpKTg77GUS3MzUjuzmU387H9HMsy2hvZy3J8YrgQe5cfzDnHFGo6hNx?= =?us-ascii?Q?N82Tq04Wi9zoiopT5KEPQ/f36CPv4H3IppC4a8xVWIiflh9FSpUesJ/Ehk+G?= =?us-ascii?Q?Bvg8p+eKplPdlDJ7owrwOd0CFn56XCPUs0mKzdTTGQc0jmrQIMC68gdnVE03?= =?us-ascii?Q?xdh1CEj6DHKZmZh6Iqu4p8YR3RxXETm3/ZV8g4vDxf+aaVyTNAM8pABQHHi8?= =?us-ascii?Q?Lbo6rf8G+5YU/Rk86GZsdIcEBTMKfcnOdpP7VN+X7sVa07XN+lFGUBLc35M5?= =?us-ascii?Q?FcXrhN8hFW92oyVA+gSakiQ94HaIE/KwNQfrQ2Po0+tr+8/w7MXCS7b7HRzl?= =?us-ascii?Q?Ijd5iutNxQ5IsHg7IGUV2rwsLFazvuC5PQLlC7GDxaCZFU+2meI2zEw8q5TT?= =?us-ascii?Q?Un5uo5RmIBPEsvLujcr7j2g7vZF6ib6SroPoLYSt6E++O5Rd46n3dM2zNjDr?= =?us-ascii?Q?HAfxMpIWnA6cBJwSwkcaRl65PZZuBEhY3GnaWmJQtwXVSLpgKPcEKkWovOLP?= =?us-ascii?Q?3hNHVPCZpVMgN5LT9J9VYPwb94ZDjOpgcweMH24wwfSm+h7PibX+rJ11Lspj?= =?us-ascii?Q?jQtOs3SpWtAnq9dxWWjsDQsFfxtNOQW9ER+bHzuYDaQXUdciaiUWsnkIig1k?= =?us-ascii?Q?CLjx1Nj1uKci8eH+myqQnEqGbAx8D+oYOcr0YWhh2GbHNHwvy7Y6e/zNrOuQ?= =?us-ascii?Q?iiE5V7T6NDT58mV/Pl595o6Mg/9iVKngJVovAsZBDZpo3vowPYEo97JFuiBA?= =?us-ascii?Q?8lA1f8Q25PwSOPt+wWXJpQpRTCgigZNGaGuNi2lA55Gi3rRKjbpKTehkurBj?= =?us-ascii?Q?bkbLz/x5TEEIrdm2CwIi46TF62EXE/9QuBN1yY5nE4eyBHoYjht20nqtFr7B?= =?us-ascii?Q?hYJzCMsFRcD6bzP+Ut3az/jddTq84NZbJ7VprmoaKadvDaYb7EXtxtRCJXbJ?= =?us-ascii?Q?7lKgJJ9KSjuLxhubJ9xrdjR/rqZ3UZhuA4TwDqdIyJfjwjgmB8lG0jhKF+Q1?= =?us-ascii?Q?o3DLGYgvDNqnpi8bdWBUd6u0kamIjA0qrUK2WCZTFL3ACPs9S1RoMrOUm4HN?= =?us-ascii?Q?3xGhjJ1yRbJ/Fsw32AyvUP/z+wMhahCcYTmmqKwTr1mw6IZr3NKFpPy5RhgV?= =?us-ascii?Q?OijVd2dyRhcv0/P2hZhDbw1WEjHKeQwqp8gmvHh0pq0XryDcciBm?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 19dea424-0790-4c8e-0b90-08df17cddc50 X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 10:48:24.4489 (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: cguUSKNI+cNT0aFLJaE/jh2u+OsOOrz3jUlXg0Sc6MzW599WYwaMAtpCSCbpbZHoQ/HetqQ8/nEgym/igRgpy15z1CEcdZedysBfcz6sHJ1+tIpIkBqMggpHLNwJujoq X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6862 Content-Type: text/plain; charset="utf-8" From: Chancel Liu component->dev is the underlying i2c device whose devres is only released on physical device removal, not on ASoC card unbind. Getting the codec clock with devm_clk_get(component->dev, ...) in the component probe therefore leaks a clk reference on every card bind/unbind cycle. Move the devm_clk_get() to max98090_i2c_probe() so the clk reference is tied to the physical device lifetime. Signed-off-by: Chancel Liu --- sound/soc/codecs/max98090.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sound/soc/codecs/max98090.c b/sound/soc/codecs/max98090.c index c31f3d32fa43..4bb5478f4642 100644 --- a/sound/soc/codecs/max98090.c +++ b/sound/soc/codecs/max98090.c @@ -2448,11 +2448,6 @@ static int max98090_probe(struct snd_soc_component *= component) =20 dev_dbg(component->dev, "max98090_probe\n"); =20 - max98090->mclk =3D devm_clk_get(component->dev, "mclk"); - if (IS_ERR(max98090->mclk)) - if (PTR_ERR(max98090->mclk) =3D=3D -EPROBE_DEFER) - return -EPROBE_DEFER; - max98090->component =3D component; =20 /* Reset the codec, the DSP core, and disable all interrupts */ @@ -2633,6 +2628,11 @@ static int max98090_i2c_probe(struct i2c_client *i2c) goto err_enable; } =20 + max98090->mclk =3D devm_clk_get(&i2c->dev, "mclk"); + if (IS_ERR(max98090->mclk)) + if (PTR_ERR(max98090->mclk) =3D=3D -EPROBE_DEFER) + return -EPROBE_DEFER; + ret =3D devm_request_threaded_irq(&i2c->dev, i2c->irq, NULL, max98090_interrupt, IRQF_TRIGGER_FALLING | IRQF_ONESHOT, "max98090_interrupt", max98090); --=20 2.50.1 From nobody Thu Sep 24 20:03:34 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011038.outbound.protection.outlook.com [52.101.65.38]) (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 19252485953; Mon, 21 Sep 2026 10:48:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.38 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987716; cv=fail; b=kyWMUJZxe0jKhBQNcSH0Z16XH77AugYOsFgKV1VSXp+5XIbLwkDkufV1AASC6SX/g3OihKtk6YfW35qoToQ11GdlCzAbLEyJxryEgkBnt2oU0B6/H5k36SPwehLNVUlO9S2UZbKJdp+OlC5638p5erkZyN9KAMR3SK9+J2KF9F0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987716; c=relaxed/simple; bh=ACLIwfI6+MP/LziWe8+WT0hfuSfpBA+02D0LnAe94Jo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=F/A0EfBx1rgaBmFPZJ+6s9w0lVQAAV+MZhGZlFb8093aDPo2ubuZbt6KgKTn3FznUR1EF00kE+Igsv7e7ha3A3SnXcBH/Zmi5vDUV2rRyKR/7em4fdH13VlcrofQ9rYpHPqNopdtYs+BtmyYCXyMoNcqJAhe7MoT8GsFYuMHaS0= 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=PlRZYCzs; arc=fail smtp.client-ip=52.101.65.38 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="PlRZYCzs" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=n4Q9lIe+J1DMSl2bLmDrslk8LX0+CB5KGRJ2qYdVwMa9LmlSGbtoIokFS6CqOxZYHz3HGYSMj8rp+gMcs0g/h5wEo8wN2TKwxxp+dIuVs2vAdWrdud/TLiqXgYGgWF1QtQRW1Qherzs5pXqEK0+xsVJ6JZfWyFf4BBsbCKbemaTPKOkG7wYAQMDI10zWfcjg+tKmyfECvkLcARE5BxKnJCmleBnFPxuMVoW0iGGcQ9cNIuejVfkDB7nBuEK+M0+B36lQ9I7SkxPCpnxlaF0oyo22CKUSVKgd/tWp47T8BP4lQJHiNpyjo+QfnQOwKAafN6m2QRf+Y61aojr5kaRLiQ== 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=YqlcUEgwgpt1Z2duAXgZuNaoc3t0vkQSgRKbhRZdnwA=; b=rUO2N7zO2tb+mw1LL85Wq6YtbYXRbBuERY5U2ygcANPJKdwQyFv9K2dzE7NqHn+gJcashN/IXrdx7dcKEbN/PUO+odmoYZrqFRcdixJ4jyLOZ/wcsmW7/BJq8u8a05PUcY5SwBfpWod5spR+NDkWT0RtICUFj6af5FgyGkIZMKYA/sfsB1RG6TKcz/MycXKa5Rd17Tigs0ZoJ0ECwhjxCS1ENNiTZEwn/3M6crp6ppl9/A6/lcMpZpRCCAFWas3SRyqZR3z8DyFEWVJt6n/24RR7/FQEhmA5394QKKyHxS8w5cqMz0J2xu4U7WlVm3mXxruidvWOF5yje9X3JGhfWQ== 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=YqlcUEgwgpt1Z2duAXgZuNaoc3t0vkQSgRKbhRZdnwA=; b=PlRZYCzsmpK3qzmK0dgSYaRpL+ZK8EpJYvKgW7mTMss0hhtK6QdaRDNOpRUiE/R4bwSIs5kT/nhvShZziBXXo2x98T2xEIt/DfX9Jzq6rPZN4Emx6lZHVfX3YWGZwChaIAM5aiZR6vRLZBvtoWIztQkgzpvEZH5mpaeB5HN9aaJ4fP45QzQNgECoqoopNFVo7CCiS0JqxImw9gBGPyZ88ETdQ4WGYHpSZYPvsFNtJ5YCtQ9QdqkV/RWKgD25pCWh0sMjHqZUHxdxxmlSaUeWTLvHIHKoA1yKy+4G3O6eUSIZg9LCwVdGG+v0LFmmYZItynyAFiZdwEWrjn0tin4a7w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by VI1PR04MB6862.eurprd04.prod.outlook.com (2603:10a6:803:130::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 10:48:31 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 10:48:31 +0000 From: Chancel Liu To: Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Oder Chiou Cc: Support Opensource , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 14/21] ASoC: max98095: Move mclk acquisition to the i2c probe Date: Mon, 21 Sep 2026 19:46:33 +0900 Message-ID: <20260921104640.1941554-15-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> References: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SEWP216CA0039.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2b5::13) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::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: GVXPR04MB10021:EE_|VI1PR04MB6862:EE_ X-MS-Office365-Filtering-Correlation-Id: 3653e5c6-23d2-4bdd-0495-08df17cde06f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|23010399003|19092799006|366016|1800799024|22082099003|18002099003|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: FlHBFWMyBzftOKWOAf7GfrQ8TTWvGlvN+mW73Uyrhi0pLoJLGJKs1FWpEtM2JfeUMnJq/Y/zzDgC5eTNqU2wttNQaYR6rljbrTGkieQvoPA7S2UGiCOAfJ3QBbhKO99jSDuBwJkAUuy0sq9O/4ZJ35qjP29sEXs5hUlyCeeRV/kNhmkvcXc0DnCsZqVTWMgUkCR2B9LOnVl+AAzfel8EnBvqGQby0nwc6A4sTbXi2TaGknkJwl3KhZmkMwVWjV8jKF/NECWCXOASa98aZq/kn87Ch2u4dxVmesJ2/7OLbJoq3ECsmlFwTk1/BWiaqqgNgVzUOAs6Z230b6mXpCxEnBNM3QDAw2j8Fnvts7EW/hgmWaULbFvZvNxIh5GsPS+K5rnfxkD+YUyTxCfk9I4Oo35GcpRdyFABhzCJyixZgZSxwAyAA5FFrwyvcgdvgYRxMb5TDlUjNiFBhqiy6bfdr3bodhU65dMG0f1kBUfLJ1/AQK9Uugixj2tYIZfzfvF+HSmiyoO8mefukl692TeNco0BYUDhWmt8O/NL13OXNzCPyvrN7NHCxb3QhVBKQC4mw0oqWNOiGywRjiHlGdBpxHsSk7lRV0iyLFz8ODB+lfg3B+MAqi3Ann4hqC0c3KkdtLh3/V7VPVXe6fnUa5jHtOYjRYfGCfhHD71i0KCR/v0= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(23010399003)(19092799006)(366016)(1800799024)(22082099003)(18002099003)(56012099006)(11063799006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Hqj8mFY5DoKX7fC4qVwbaBZdBQHar1HXTJNF24OWFYoyFQ8u1vVdZYQSp0RL?= =?us-ascii?Q?2PEhBc+/nbK2NVyE0wNOACEpNV2lHuPzmrMarQBuIP2F0SnKm8dSQlmoAOlJ?= =?us-ascii?Q?h51zBsQb+6wEYClogxK3fMHRgQC+fReU9ukqYXViRsE0ombI0GJMmKVAcCD/?= =?us-ascii?Q?IPZpc/jUW/+Yo2kWAsdRX1suUWhvSr1eLkqDASquEQq8PHwLa5V+S8sNn5zM?= =?us-ascii?Q?y78/5nORCQ0VWAoRHMkLxwyJMULHDQgDg7amENNK6N+f4LHh/tArjpIejt8a?= =?us-ascii?Q?YEtsmgjWns7Oo2NtBZlFeH/4v9N1+ndgacyZqlUAv5LRC/lJllaZRn54aeXk?= =?us-ascii?Q?CHV1mLjlvgMPzUAzN/vCYbMeITmxZ2hpwiHxiWYk1X7Ku8xVanZwiLx2neHa?= =?us-ascii?Q?Vlwf0SvdY53cXeH7kEcvNLXA/Qofla1wt/gbAHQnZaRN+vhsT498tLuQ4HO8?= =?us-ascii?Q?zOTHi7DEKAMr5cMroX9+t0aAtWMw2ByUiPlfJPWMg7uVKEaiJM1ph0ShVkK/?= =?us-ascii?Q?+BfRK7UuvXjO8sjqT8hCcsoOs4bjbdo4BlIJQytNZCaU/sEWtD4QmZuO/XDl?= =?us-ascii?Q?9H8zb+DWMqs8diDyXUQ3KzpMMWbLi4a4v6dME5XnTJMsq72hOs3yg6iBsGBa?= =?us-ascii?Q?IUErOcHiO7RVdgMxMkyIOn1WTo8jYJ5WE9vSanRTEf9E2+7402d+rCYnNdVy?= =?us-ascii?Q?ae2z2D/y9VDLWl6HTv5S5gCjIhQVYnJ3DK0Gcduj9NIbnz6WC+14ZAMlf9XH?= =?us-ascii?Q?TzhsLVcqxLUrJ7kXnYYVfAQMyoQrYD7TVHzZ3ueUWsIB/X/GJX7vMcoxEW4u?= =?us-ascii?Q?LymYYpwKrviLRsLr+lb0navS/5OCQOjLxObyPzwev38IAQtL67tKVRMhamrP?= =?us-ascii?Q?xyH0hPtEMGkVYCsW7ioByfSy76RjIfhwHlhX8M08FVFJW01jD7mSq8AFRbDt?= =?us-ascii?Q?+dYFepDUEBEXPLMEjot9F0Ilxpi/WUznE44ya7oQaj+yqiAk+82z9OMd6WhT?= =?us-ascii?Q?tSiAmVQxA4Crx+Y9KCiLAUDudj3VwDrJhpG6V7uBcfvn+n6uJW8DGjsdPGtb?= =?us-ascii?Q?K3NKgAWokuVLwngxWV3Pj3S5GJnQETQkWw9lAJWUNvOt39QB7FAktm69shvO?= =?us-ascii?Q?i+H7PB/tT2oJRHOJfCLI2Dov0NaYH/0LHDt9B5Wfdb1ftrm/XBcXOa/Y/TxA?= =?us-ascii?Q?W9kgzIInHDWU/c/3bEn59JNU2UB73ZA3olaKfUuIsea2iPNYiFoZ8rJaosc+?= =?us-ascii?Q?r/MfRAJc2yUXa1LL7TWq4SicIbVs4RRe3wMQWkOpYu+vAJrFRPlIZpgFw/dS?= =?us-ascii?Q?FM/9U3ma8+9MKj06dPtW+KPGUUIqE7DvlsaPh0RqgJeYILZSNOiOed70Sazy?= =?us-ascii?Q?IDr+9CGj7zex676Ot2dgbekXMjgvu7DpJNNlq66DsUngkQ8KbgoMm62x6Riy?= =?us-ascii?Q?/lQzk+uSVu3wdaa1jLUH404RRMaWq7DduArXFnD/yEp13XfnWDlZZ7ctTENy?= =?us-ascii?Q?UxGeALm6H8Z76FSxnXP9bObf3fhX5PYzizRWzgvExlwIzucTinJixvjMbUYv?= =?us-ascii?Q?XE+9lcPQT2z27/Gd9Nu8nh9kNxZzNDf193Ai9TLuy6CHi61wpcjfls6O9Eyn?= =?us-ascii?Q?ty/sfE30O7++wjlRQ+E3SSD3hjILwOr24Yi+4OqRuTFLXCk3jcDCC+Ra8I/k?= =?us-ascii?Q?7XYqCpCjT8nbl7T/DNys/UG6iY2ApGU4yzcqIThm3kYTpBEhQWFiPBpf864B?= =?us-ascii?Q?rsjbcLhFcBZ/H5dW9SscOB6JiRN5meOKEsfY+cfxdlL7xt8PSoAR?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3653e5c6-23d2-4bdd-0495-08df17cde06f X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 10:48:31.2977 (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: 93YzYxkAeCevh5NOWt3cCL1HB1Jt+DZDG0C14YoYXCohWfYiqoVTr9cdfKj+FiSzDbZBgcGNIwj/GtTchOwOmx4XHk5Vu4ELlUgGTsW/MTjRDWGp6gTR3rs+hjbas/dF X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6862 Content-Type: text/plain; charset="utf-8" From: Chancel Liu component->dev is the underlying i2c device whose devres is only released on physical device removal, not on ASoC card unbind. Getting the codec clock with devm_clk_get(component->dev, ...) in the component probe therefore leaks a clk reference on every card bind/unbind cycle. Move the devm_clk_get() to max98095_i2c_probe() so the clk reference is tied to the physical device lifetime. Signed-off-by: Chancel Liu --- sound/soc/codecs/max98095.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sound/soc/codecs/max98095.c b/sound/soc/codecs/max98095.c index a64a5ba00379..c827fd47a5b0 100644 --- a/sound/soc/codecs/max98095.c +++ b/sound/soc/codecs/max98095.c @@ -2005,11 +2005,6 @@ static int max98095_probe(struct snd_soc_component *= component) struct i2c_client *client; int ret =3D 0; =20 - max98095->mclk =3D devm_clk_get(component->dev, "mclk"); - if (IS_ERR(max98095->mclk)) - if (PTR_ERR(max98095->mclk) =3D=3D -EPROBE_DEFER) - return -EPROBE_DEFER; - /* reset the codec, the DSP core, and disable all interrupts */ max98095_reset(component); =20 @@ -2153,6 +2148,11 @@ static int max98095_i2c_probe(struct i2c_client *i2c) return ret; } =20 + max98095->mclk =3D devm_clk_get(&i2c->dev, "mclk"); + if (IS_ERR(max98095->mclk)) + if (PTR_ERR(max98095->mclk) =3D=3D -EPROBE_DEFER) + return -EPROBE_DEFER; + max98095->devtype =3D (uintptr_t)i2c_get_match_data(i2c); i2c_set_clientdata(i2c, max98095); max98095->pdata =3D i2c->dev.platform_data; --=20 2.50.1 From nobody Thu Sep 24 20:03:34 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013067.outbound.protection.outlook.com [40.107.159.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 01D734825B1; Mon, 21 Sep 2026 10:48:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987724; cv=fail; b=laK8CR9pxS7iVbcAkwW5FEk+ckBeohURo0TSSCI/JIC9X//JOwj7kux6b2X1kfpLSc+rI3w201P0UTw3gFleKNqS+42TP4JQHA8tAgGAF0r80G165pxNu1rjWe3PdY7f6h3+VIQN+QuJ8TfDV9m/wC0eCZoy1NuthA4fOxMMYYo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987724; c=relaxed/simple; bh=ITfPrC10+OpaqY628PnqkzwlL9dvu8d6IwkPfdLRf+w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=h9Sktk4Vwfr6nB+JvSQGkxdWV3zi7hr+w2lzTKaRN8TQz6FuBE0nNfT5QfJTQhrgkyOt7vm2HrteE3J5R/6Hoc+rblM4EwBUBBdz7U6TZK1DwHx/q83LIgayIsJiAbjdY1FjFAkxRjK0MPkS1o+fvgfHleB0nhXYdtxUB/1O4/k= 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=iO0aqr77; arc=fail smtp.client-ip=40.107.159.67 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="iO0aqr77" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Jp+YdO38wuWDehwefKn2m/0mmjhRSkFf5eBr1kyT3lmHzyM/+0Uo89r3HJ1JZ+qnafsE2uqnbPv5wTcQbQKmCa8uM53Ax+M7ayTb7fEJYg86mbmIKY2XS13Pl0V/NB3XrPcSxdDRtjzksHwCQm9+FAlXDOhqnfIWTj34HBYawuI7agDHJC4rgL+nnJcMG1r3UMRbMwJKs/f6L/gnfHlZojPK38u5cza+3D81FavGDRpZRqHOZ8qCaxy7MshusZIwc6rP/NihSUt4Ob5V6pY+xT3LZmw7WrYGpgyUzAcjoYGFyLT46Zxn6kbK/LvwphcQSQFA3YWflymRAMYirAnPsg== 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=owCd+tNvS6Dia/vzOGT5IVhPhXkY78CKcPE8jbkEjWI=; b=SXqOZOvabt+d4IQeD5kUor5Ij89Wc55rSd+ZtmResZHbezLUdL2eBusBdPld5Cdw5CGhy6nfu8HzpA2agn/koHAC9+Wwtjr/LzCx/z8ge9vHl5EbzswVu13N0dxShzq0/8eqUVnAVoBrkAf2Y16JgGBKMn5MGSA8FRBJ5wxT2C8aAOCttPRyURXE0soabYMKObtJlEtM8BGPmmc4vTOFtxfxaRel3c2kkSm5f+p0nHdhn/h5K6lDM4cwhYiligwj4V+PnFg2aPPuk2hR+LAcE7zfdluo74HGtNMp9rhFY2rj8+c9op+/PZkBEx8pjTJ1Vcap54V0apZruxROJ0gDBA== 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=owCd+tNvS6Dia/vzOGT5IVhPhXkY78CKcPE8jbkEjWI=; b=iO0aqr770bQ9n4I7Tdnql+8tHrr0CXM1bFK5pt+M0IfaK0uEIpkjCpZDk9aDYolLX1WEmexN2kx96NLYg4maQL+1EUhh0Vh60xsB08qqiENZqYjOGXJWKc44Eo930pzOpaDyL8wicLppby82xHoWQNW3iwWclGfggPtNUaowvAjbR6kBKIK8dmpgMR6RG5jvfEt3NhPQrDleOua4m30HWY/7pAf+PhECm8OeAOXUCiqOZOTO5LtY8BiwwVIx70yR5yJFdZuYB6q8gfOOoiOCQgiQdVFtAUD76zcHwFClbtugLJthYlqcynDV0HhoojMbPiJ4DiHw7RXIU9kWszHjdA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by VI1PR04MB6862.eurprd04.prod.outlook.com (2603:10a6:803:130::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 10:48:39 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 10:48:38 +0000 From: Chancel Liu To: Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Oder Chiou Cc: Support Opensource , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 15/21] ASoC: wm8985: Move regulator acquisition to the bus probe Date: Mon, 21 Sep 2026 19:46:34 +0900 Message-ID: <20260921104640.1941554-16-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> References: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SEWP216CA0013.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2b4::14) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::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: GVXPR04MB10021:EE_|VI1PR04MB6862:EE_ X-MS-Office365-Filtering-Correlation-Id: c18ff782-3036-4eab-b05e-08df17cde4f3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|23010399003|19092799006|366016|1800799024|22082099003|18002099003|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: to875cFAaNDr7Va5e4GWKrKOVHwejhxCvRVYWSSB5Ckvhyi6DGymlTXLmUPvIexZcrBrX3uNl4n9danva+w5ly5b3Yf4AzjX4P7i4WFkyzGxblyPjfCfxAwnZR3AVSMYWRXylDyX4orSgPqx6mpq2GSSlvlh2qx7hC9hvTY1GmRyxRdh2LyohEHUQ4UUZU8Ac9WbnIfpPS6vUV+38zUJX9twUELdgmE6nAfewPFSetvbLXxnKfZeNtylPNS+Cv8kPzZLZp6V1KntctOGWLLzCMjHc3Zx9/y3QGcX02v8dFGzTSb5d8G+Zh6u0SpnE+58cqQYE3Dyhwd8zImpAboHfGkavXKxILzMLOzRxSkdpLaDH7xuHbCQSVS6dI7TKNoIwOd3jpDruxFRFJvHm8mR0bonhpOI+ju8R4Qw36eSPOuJp1+KwSteLplj9nBFcsh+Q+obkuy14McoFvYCZnDU+1VyU/OPHaB9bk9ZHFP+6JVQiVF8NRlFqmfJGIxdSfVy7dNShxBTo2R2AGV8yB88lPn933YxJhfow9FTPrkFz39Prwl45a1QMNko2qzWgSiylML+t3FKANVD9yRw371g2ty3OH4Lp+ZAyb+Kny1o3OhlKTOp11hbRMltMcgKomWNPu/U1ahTyhlzLk2ed0tgpHRkxIDjg1BSWkzZNtE2+Zc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(23010399003)(19092799006)(366016)(1800799024)(22082099003)(18002099003)(56012099006)(11063799006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QqL+Vm1c95RZRGJUQE/BuhJ864xX45EvNVBWkdJZ0jYCz/oFdBaeBv8o9RJf?= =?us-ascii?Q?VyBJJiB9EKut2CVAn93XW38Db0GQGa+1Ig1N3Sn8YRcTYLJbXEv3AjIFeO4H?= =?us-ascii?Q?J5dvHXbntaRFEppltGAuj92NpGCBbZNkMhPmwcfbQGIegDmfKkKOmM9m6A8B?= =?us-ascii?Q?wdJR0WbkrgD2IrxWVe5DGusTsjvwUy/9AtaGqlMLySm2MOmUysa5mTLQrML7?= =?us-ascii?Q?vgn4cpPFfZgxVL7w03jsvl+TLzAL1tqvvLs4Eh3D53TGTSpzzxyAAgMeglBq?= =?us-ascii?Q?Djoekp+cXRF4G5C354KJusYahze21Luxq13UcCrL6Gunp5Zu5qqiPYCW60OK?= =?us-ascii?Q?dBTS/nRpABE58nDOXcPR2cS1rBBvHaG+O2nByezqhfD9Tx8bCnpc5EJjJ351?= =?us-ascii?Q?a0gEm/22Ot3jne9DUb3FS7R3k+n3derKUOqTG8cKl13oXvHBYYtYef3fr3UX?= =?us-ascii?Q?CFdwxWd9dVi03ma0lIz3g4RX3i6wDUu2uuG9XkJDo879jNhBL2+rvKGE3EJc?= =?us-ascii?Q?N8wPTAeljsuL7gs5GYQiH4CEhIXhWBxueZ1Ke4UdQo8k/y/Ina13cZ2tDYEx?= =?us-ascii?Q?zdqi4LYczs5zcUw3HBFyFu7EY+XHpoJpOBhF4mv3RhJD5J7prbwsP6TmXamn?= =?us-ascii?Q?QGNdNeNmQxxp4741AAgMt2xF0uGZdQz4+rnRut5GGJbWMyknMufmjq20c16y?= =?us-ascii?Q?X/v2zww0+gp1Mrs23K5D4Nv2Wj4iV3PVvuZGkOZQ16lCYVBshJq2Jv3z7dwh?= =?us-ascii?Q?/pgF2r04L+qAjcZiIgeUDaMmVNaUuycPxZH8clJtn7XUQSgXkzqTIiGheP/n?= =?us-ascii?Q?at1yUdXJu5kkLwD5tdNv8qZuxM6UoM6rrTYtR4lbGVn7byy0UKbJGu7zZ0zM?= =?us-ascii?Q?aDQxiNhW7xATS2RDDwHWZMMsnirv8K5WBgTEXp+0htrgZ6j1vr73Dpc+vL5m?= =?us-ascii?Q?4KCHl7RHFS/Ny2lqo8yXdGEwHXuuAZFncpnytaYNNo8E7KiRlOP43xKXX6C0?= =?us-ascii?Q?DHyzH0f5IRFFXK+2SdqtNPzAnPX9G93RRBY5BzX9ahvRQxvsWYqc3d+E0Cn8?= =?us-ascii?Q?+9VhZLutMkgdQv2ptojiMIVILYwP/M+U8tTdL80LFn+CiRzuL67auesz/c/p?= =?us-ascii?Q?RQJAOYto/qBrCWYQ27T6o8Q3Qu5Iz0ItHsVhRz1vqurMy59a4Xp2qY84NvV0?= =?us-ascii?Q?GlU4zH2LUsKLhobz9z4nPV6Lo0mPncDoCxCJ51RSLY6imM9rc9yN3ExZgTvb?= =?us-ascii?Q?00U3VhuyrVruEyE87y0P6ZZ5/1I0X7Z0PwD7aijKeqqj7WG8E330Itcj1C9l?= =?us-ascii?Q?ETVZy/wRjzmm8XM66M4m4Praf6TudYeAW0syJq2MNZq8DY/H2E9Dv+P25gXh?= =?us-ascii?Q?iz0sMz4BMrfXqAXcp5CKOoDt1yRUYfF7U7IIH0IkkHfDHr3oBiE8B1n22gR7?= =?us-ascii?Q?BAB7St6eyIhnm5Mo3VrUdGVvXrKANxhI84c1X4EzGw+ysnEgQRAXbsR+RyQ8?= =?us-ascii?Q?LneDygnrPKnmPLD1ByLBN9lM0Q5gY8zZ4kar7sjBfVFYjNHU5Z2aQFGzuEfy?= =?us-ascii?Q?1D5Om3FPyXNS0GARlQjctZweJ+FCtUfY2QI+58GB6zFerbM5976O50+JUF5e?= =?us-ascii?Q?boO9pkTr3x3tH66nrZ2CXRFDwK81b2v7GV/02LoyF+N9VjtGFeCXASYOochs?= =?us-ascii?Q?7pKCYdRaJbcjqfVj+uHAv1gf8VZhArq9dfsa9Oxbew8PKO6NK+RzlJqhESa+?= =?us-ascii?Q?t7YTJ2wBZH04JfHIf6T3lqRBTRZnFVIndvMe0p2JT3f7/NWrPsfG?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c18ff782-3036-4eab-b05e-08df17cde4f3 X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 10:48:38.8730 (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: AyeHWkllvXAokUPUZq3x2Z66B9bncuo+1xODlAcSdmB8omxH415Prz0ZJJinImTGjOTb9q5tJefFRgkJ1xgUai1e79SYl0qEQLLAmUxq7f/xILibP6zGkLhaHvYQ/Oia X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6862 Content-Type: text/plain; charset="utf-8" From: Chancel Liu component->dev is the underlying i2c/spi device whose devres is only released on physical device removal, not on ASoC card unbind. Getting the regulator supplies with devm_regulator_bulk_get(component->dev, ...) in the component probe therefore leaks the regulator references on every card bind/unbind cycle. Move the devm_regulator_bulk_get() into a helper called from the i2c and spi probes so the supplies are tied to the physical device lifetime. Signed-off-by: Chancel Liu --- sound/soc/codecs/wm8985.c | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/sound/soc/codecs/wm8985.c b/sound/soc/codecs/wm8985.c index 877a691c188b..70d0b8667b90 100644 --- a/sound/soc/codecs/wm8985.c +++ b/sound/soc/codecs/wm8985.c @@ -1029,6 +1029,18 @@ static int wm8985_set_bias_level(struct snd_soc_comp= onent *component, return 0; } =20 +static int wm8985_get_regulators(struct device *dev, + struct wm8985_priv *wm8985) +{ + size_t i; + + for (i =3D 0; i < ARRAY_SIZE(wm8985->supplies); i++) + wm8985->supplies[i].supply =3D wm8985_supply_names[i]; + + return devm_regulator_bulk_get(dev, ARRAY_SIZE(wm8985->supplies), + wm8985->supplies); +} + static int wm8985_probe(struct snd_soc_component *component) { size_t i; @@ -1037,16 +1049,6 @@ static int wm8985_probe(struct snd_soc_component *co= mponent) =20 wm8985 =3D snd_soc_component_get_drvdata(component); =20 - for (i =3D 0; i < ARRAY_SIZE(wm8985->supplies); i++) - wm8985->supplies[i].supply =3D wm8985_supply_names[i]; - - ret =3D devm_regulator_bulk_get(component->dev, ARRAY_SIZE(wm8985->suppli= es), - wm8985->supplies); - if (ret) { - dev_err(component->dev, "Failed to request supplies: %d\n", ret); - return ret; - } - ret =3D regulator_bulk_enable(ARRAY_SIZE(wm8985->supplies), wm8985->supplies); if (ret) { @@ -1176,6 +1178,12 @@ static int wm8985_spi_probe(struct spi_device *spi) return ret; } =20 + ret =3D wm8985_get_regulators(&spi->dev, wm8985); + if (ret) { + dev_err(&spi->dev, "Failed to request supplies: %d\n", ret); + return ret; + } + ret =3D devm_snd_soc_register_component(&spi->dev, &soc_component_dev_wm8985, &wm8985_dai, 1); return ret; @@ -1212,6 +1220,12 @@ static int wm8985_i2c_probe(struct i2c_client *i2c) return ret; } =20 + ret =3D wm8985_get_regulators(&i2c->dev, wm8985); + if (ret) { + dev_err(&i2c->dev, "Failed to request supplies: %d\n", ret); + return ret; + } + ret =3D devm_snd_soc_register_component(&i2c->dev, &soc_component_dev_wm8985, &wm8985_dai, 1); return ret; --=20 2.50.1 From nobody Thu Sep 24 20:03:34 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011065.outbound.protection.outlook.com [52.101.65.65]) (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 651C8486BAB; Mon, 21 Sep 2026 10:48:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987728; cv=fail; b=Mwb9OXTGnbIdSy6eyLnqFzlx++UzCt7hqilrIfKNhVnxViXzDeLtn11uOvngHq9QS6D5d3meIIvCn5xjrrvB3XM0BSq2lqPdn+weRMCQoxQNSPsJyLN/WEtjMwP5JG8WfEht9WBxM7rnW6nfF1fV+vsv6mx99rHw1s4KDiL04L4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987728; c=relaxed/simple; bh=+GttOVpo7uqOKv7hIZ+nZywPTS4hrcbT8v7gArqrMko=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=BTd3xhz30iGKB9B9RP2P+ivwDvgkZVl3lqn3exusdLPMS0+b9MGUHja7cWvlk5dHzpQzO9M/b12w5YC7grcn0Du33ck99W01SMsLOviCWbYxd6S45L75WZAOsm25uhjND8yZgjwp6duQ6Og4whSnMZqKPjqOaBuQXxi2PUjo+YQ= 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=Rum8BygX; arc=fail smtp.client-ip=52.101.65.65 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="Rum8BygX" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uRGaWLv4L0OZCaBlKYDpf1v3OXyNZ+UIstataySvKAPz+9kb9K4yRgofyKHtIzKcp9O7F7mpT8l5Duor1y7sVOLlwFIDMcF/O+NSNiaiO5RyGyyOHDiKbvDHEeUssd+mC0JbSpgaK03C/yIb/QoPodRDQk46/dY1xyjyyu2Ek9NDkY97uZFROf7ETghiZzebsOr3yZQU/UtouKCSm7q4rxbiBy4+4j/GPeFcUhOnHwSq4jbXodGL7Y4APR0+4F5z+JXARCSMm8LfaAt5yAAX06r5sCbtLcxE8X1+4CnKqxw9EZ+gCf2rGqKxhX1CRSNp4I8WsxO4UHDFYb1MgCuc/w== 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=pQ6BIyYDeY2w7CsnkK71yGOHvGFOo4FlHEiIi+FVmeQ=; b=VyCLhWGuwyYPqU2kOBXLFcrM09why/rj4+uY6G5fAgz8i7uzch+K3frEeEuaMsr4iOlrqe+aTY3Ce6q5WRr5O0B8X0qRtycCSu6jOitX//kOZ94GasViJ7yTVOgPF5tqDb1gXpO5DS8ETEmavebuqqQ4TsTBstsrtxLB0I+TtKlMZ3ydBrhII+GRxr59eOsGke28H7Szu6ZzENJHkQ3WXO2g0zhIjgsw/4AEAAC89bbHZomKNcszb08kjIoK6T1ivBgbgzxDtp9q/RrBPsbhNKTMU29xRSCcU8XB9BQ4GcAgS44mE/sUZBVymhcV9srM2b+a6Mx7Qb5h48mpJ1CxJQ== 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=pQ6BIyYDeY2w7CsnkK71yGOHvGFOo4FlHEiIi+FVmeQ=; b=Rum8BygXtpV64HLWE3XQgLwhbMWxCWbfB+Q+MQ60SNRIDjebCIQfJ62NZNVXD+PD227fSOO/OVISebVNtmVqfOaDbRtIGYdOPZpmlfcTAqgZ2k8ZWsM6mMFmhgX0QE5pyq3eYezQk0AxwafohgXk/xiFYEX3nukudsYiptTdwAiwfIi4H7gbz+mgKMxoDp4XIiXfvQsV/ekg+mqGERx5ExF1c7tSNxko5IfJzAYPyCF9zanJLgTO6jl49FD0oqb0b+XI7GAKOkBjOFqnffYOgs0hhC+tmuncyDQ/Iwv+6G1GxzdftisaJIdx1D/dZSLb42pjm/JVoxJVXbWhkeWurg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by VI1PR04MB6862.eurprd04.prod.outlook.com (2603:10a6:803:130::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 10:48:44 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 10:48:44 +0000 From: Chancel Liu To: Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Oder Chiou Cc: Support Opensource , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 16/21] ASoC: wm8955: Move regulator acquisition to the i2c probe Date: Mon, 21 Sep 2026 19:46:35 +0900 Message-ID: <20260921104640.1941554-17-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> References: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SEWP216CA0013.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2b4::14) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::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: GVXPR04MB10021:EE_|VI1PR04MB6862:EE_ X-MS-Office365-Filtering-Correlation-Id: f379e921-47eb-4a4d-67df-08df17cde83c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|23010399003|19092799006|366016|1800799024|22082099003|18002099003|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: N7fZOug/edRrecJlDym649rIUdxWfyPMKRuE/Dej9xeG/R3Ud3Ti1lYyX95N/oz31DyFBokRk/vh48DolwqTqjHyp8zCBA92E0thv7x8v9zYxgM2VrTEMHc4j/B0gX0IjtlN/8nVxbGTv3qPBOWxXISs8Z4A+c+6YtkZZnw/lzBVYhshaNVWhP1lzid51tfiEygaD9Ms6TmgafdCXPduNXp9MKmlKq/ZJ/Pd3PZQEcd4COdtrnb70J+QHAldcQvK4TkG3bXlL6pOjTTgBC5+OtWS0//6pBk2HdwSQXEKburgOqAUMNYDq73GDaa8W1WWrHCf+vydVZqfQM+wQLZrLJAmaNaXseT3hmQUCtQRy4jvJdwoZpImdoWyHpXH6KlwQX9DwdfHmVMIu7t7Y8xLQnQPAKVlE6rNLOFerRBP8EzVle7wWphlXbU+jq9UMYUHTFl5kzLWDIFUukYgd+vr4dUQZcVIeon1YdhK/D5+oC7JLU7zPDdjeaNAwUY37fqARMpk3Bv+/KqmmFwKQ870zjoVGRPXUD/oBNwYRVGoXKpVTskj9bk5vRcJbrDhgpZuAhB9IYdVscRstY+r+pFxy30bQ61D5CIHc6EnkuKeq3R9W2WBPEHZ723dSeKEa/VcUlKaSwiLURuQFFSs0k7uluEA7nvYVGxw/hrsn7cSf7k= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(23010399003)(19092799006)(366016)(1800799024)(22082099003)(18002099003)(56012099006)(11063799006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?VqbXwNZ/iJq9hOr01hDHqjewi9cjhL0FktfuzqgHo+EsyVFTsjgswvUVfTrj?= =?us-ascii?Q?QXdmKDyhrJIh6zgq53ZwxRk+PTXytHR2Cw9QWZ6x00vbABS6sS6dFJsVFS+g?= =?us-ascii?Q?8WFcgVAdr9IcmZKBD1yI36F9sU8QMPvTgIxjl7QXoYhIFq/jI4qiYGXezumA?= =?us-ascii?Q?cB/mGRJeC3HEgf3VbZGGA+VbCa8pxgW5AuusTaeL6tt4PlBcGSD5TA9ViU6P?= =?us-ascii?Q?gyBbtFLoUWJLm93Ko8pUK2n/RfQfwbVBTH17/D+hNOe0scZrxYc+SHDhRmIN?= =?us-ascii?Q?lzP/cDjJvvWtmQb8I4xkp9xw4xlQze9cN8SnxZcMoHgq97XR+o38fC5tS0xX?= =?us-ascii?Q?u6gcGotH5TKUIgDrXRqt9TxHNubo96H4gk8R+3KCTroQezrOLVr/Kt5C30YF?= =?us-ascii?Q?B/fYX8TTtovoTY24TBIerqE1hI0Ka3END21AZLiCJ4FZqamaCMK5M1O0dbtr?= =?us-ascii?Q?uudHkY35u8Blo2F7sckBXNWG0M7k+vdmgN6tLs7jUnuG9MzpB6Xcdb/Ir7Gf?= =?us-ascii?Q?M+xPwXsVwn10VP0d+rJiD01vE2dQFZkJQuxsyoYdi3KvGYB4zN7722/z0iyT?= =?us-ascii?Q?p+TuKkJ5r5xajXpvPo6LUnGGqNqwCcCVzutXpI/VvyZ1waIn0crYY6qDF0b0?= =?us-ascii?Q?kx7St211DZUHx3OgB+mD/1z4in1Fu4VTY1ERZyv3CLMqIjfVanY6xl/GLUKh?= =?us-ascii?Q?zqVTEbevTAJ3ve11helrdeG2Owo4hJgVqdVChNHDxC+zTwBoZE5q60o85C8q?= =?us-ascii?Q?j7uKF5MLtsfFHa8T5e43ghIyymo1eZV6qwpslwO5QSQRto9Al8AlFe6g2awn?= =?us-ascii?Q?EsSCjVCrTW/VZfQ85npxCWmP+qJ9m/nexIbHPMmjRZD1MRHTbId73ZQoxwWf?= =?us-ascii?Q?RXOJcroaNFiOcZn/COquZfFrVWrn+kX6HnmTl/L319uD8CdA2IirRl4+pMLh?= =?us-ascii?Q?bpQDws2WSBxnmK8UUtocjwUd8DYCJfJ31dzBEmt3mYeQxhElJOPZ6zHtCLL8?= =?us-ascii?Q?IY+ZyWAPNkOS+/pVzKo1bb6U3Xw8Y4xLprmxQCT/PoYLSy/hyy0yPATjvkd9?= =?us-ascii?Q?uKaDm907oGEcCcP23J1bBFLP/Tt1uGXBLoakdnSPXtvW1UtJDDQ3OWTVRq0S?= =?us-ascii?Q?eG+0rfPUBsMI4EhQbvsHcQ6pDqc7uDf7ZbI1rHU8rLr5/AItlID260pD/WV7?= =?us-ascii?Q?Mfh2P+Tq3ey8+rDIBr0k6U+Pu2fvNm4hb62tLNPwghcFmETtL3ZRCbOWJV0+?= =?us-ascii?Q?GazIU5KD1HcGOJYn9ghslg0g7i3ANFZVWu9ndX9/NeOiOjtP+nRr0zrR1ug4?= =?us-ascii?Q?PiaJc3Ca/dW+34IBooaWwB7W1iK/647T7IIudpq6X64HrMbyZFbB/u99wUYK?= =?us-ascii?Q?8jT/EGuOkHjwlJAeiQlSkJuyEke/SzOUhG43v6b1nfrtrieiVzK54WF0Ekuu?= =?us-ascii?Q?+ZZqi9JOuWCuzHTToeFb2riZDXbgvwANBGCpbe6+moX7LgXs1+1NTosiRSRu?= =?us-ascii?Q?uak9wuQSovKVJhOJ5Q2Hgbn9im2I7L8toVNg4Edpe2/wUBojzXzH9xJXWNHH?= =?us-ascii?Q?IWxkLQkaMr45LX8M3rMnH27p435YXTC461cEWo1guKB5bcntfrzhY20KmLtM?= =?us-ascii?Q?WUQ1QpqtgV4rCbO8x34JqPldqu8cBQdOSBdz47U41mkiVhTRAzCmgQT1PA6g?= =?us-ascii?Q?G5LcwLCt9Rrm2ASL/TaPGa9XrldKFJVTUYtT3kY4uMIoXlDLIP7Prja6B3vt?= =?us-ascii?Q?jCoiGlvNxKBD79/d62XB/JpQqg/F9OIhTLTdwgZMpHI3hehYTF8v?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: f379e921-47eb-4a4d-67df-08df17cde83c X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 10:48:44.4093 (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: G6KcuX8BY7PiB7x/UwzLDL9pv/zJZ4RBkAbo8mg+qK21HYyK3fhT9sF7c4AUhQwvmKsmHsL7VxO7gNzH75fjQxw+MtUKv9AbqnAZIKNzN7v6555XslzLDFBRzgplrL9x X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6862 Content-Type: text/plain; charset="utf-8" From: Chancel Liu component->dev is the underlying i2c device whose devres is only released on physical device removal, not on ASoC card unbind. Getting the regulator supplies with devm_regulator_bulk_get(component->dev, ...) in the component probe therefore leaks the regulator references on every card bind/unbind cycle. Move the devm_regulator_bulk_get() to the i2c probe so the supplies are tied to the physical device lifetime. Signed-off-by: Chancel Liu Reviewed-by: Charles Keepax --- sound/soc/codecs/wm8955.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/sound/soc/codecs/wm8955.c b/sound/soc/codecs/wm8955.c index 1d367a957f3e..017ec2e37d1e 100644 --- a/sound/soc/codecs/wm8955.c +++ b/sound/soc/codecs/wm8955.c @@ -888,17 +888,7 @@ static int wm8955_probe(struct snd_soc_component *comp= onent) struct snd_soc_dapm_context *dapm =3D snd_soc_component_to_dapm(component= ); struct wm8955_priv *wm8955 =3D snd_soc_component_get_drvdata(component); struct wm8955_pdata *pdata =3D dev_get_platdata(component->dev); - int ret, i; - - for (i =3D 0; i < ARRAY_SIZE(wm8955->supplies); i++) - wm8955->supplies[i].supply =3D wm8955_supply_names[i]; - - ret =3D devm_regulator_bulk_get(component->dev, ARRAY_SIZE(wm8955->suppli= es), - wm8955->supplies); - if (ret !=3D 0) { - dev_err(component->dev, "Failed to request supplies: %d\n", ret); - return ret; - } + int ret; =20 ret =3D regulator_bulk_enable(ARRAY_SIZE(wm8955->supplies), wm8955->supplies); @@ -990,7 +980,7 @@ static const struct regmap_config wm8955_regmap =3D { static int wm8955_i2c_probe(struct i2c_client *i2c) { struct wm8955_priv *wm8955; - int ret; + int i, ret; =20 wm8955 =3D devm_kzalloc(&i2c->dev, sizeof(struct wm8955_priv), GFP_KERNEL); @@ -1007,6 +997,16 @@ static int wm8955_i2c_probe(struct i2c_client *i2c) =20 i2c_set_clientdata(i2c, wm8955); =20 + for (i =3D 0; i < ARRAY_SIZE(wm8955->supplies); i++) + wm8955->supplies[i].supply =3D wm8955_supply_names[i]; + + ret =3D devm_regulator_bulk_get(&i2c->dev, ARRAY_SIZE(wm8955->supplies), + wm8955->supplies); + if (ret !=3D 0) { + dev_err(&i2c->dev, "Failed to request supplies: %d\n", ret); + return ret; + } + ret =3D devm_snd_soc_register_component(&i2c->dev, &soc_component_dev_wm8955, &wm8955_dai, 1); =20 --=20 2.50.1 From nobody Thu Sep 24 20:03:34 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011002.outbound.protection.outlook.com [52.101.65.2]) (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 0993248167A; Mon, 21 Sep 2026 10:48:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.2 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987735; cv=fail; b=nIIL0AgUdt6cxgpPzU1VLSeaulKmU5SZKhRVf5AMf1QQeoulWgIUIqIm1lV/Kx5UvbWBU6ncvPuqQD1DQ6VrGSPJ2ebMJW4h547WFvdnxBYTDorhmJGC0jgbEftzVmnMjkcEacbm4uDgEfrGjGkTICVV0Xvsz6yT/aGr8gzmNiU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987735; c=relaxed/simple; bh=2dGct7pOPoGeoZwRwlhBZ9zVmMRdsa9mHkQBqnLdYgY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=mx1aLQv8GNhMJd8QNr6EKbrrKV42Tjjh5kEcl1eHPQetN73OAv2wJpdapbvobCde9AE88bPqutfsWFT0cXZmpVdmrI5Odw7uEZNmcSz3i/KIwdyUluJMNpeD0lUrXAy83jpd4ON41AwLC3G69Al7cKMbPEfba/1ZNfPwufjc3gM= 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=eHJ0gKrY; arc=fail smtp.client-ip=52.101.65.2 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="eHJ0gKrY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=O+gtJxS1g/BJAkKJ3KCkQjXO91aJeFnkdnqzp9v10utzpcwD6/8MjTwnInpOaJPyNmDb/RQwjn7JbttdmONA1frOkbD16csQ+Wd0M1bDQD0N9cI7oGBCIVNKOCkoqLLgDH6La7G237ksv8rBMzVzhI9lWofM/2wl8N9omKXFeE21xPjRXwcv7SQF5T8ydADSe9VTPHjlXJls34zPwwaUGRwm2d7SErio1cviiFXrPnpMvS+Wiu8+1uLZ/a7aHtJBj/7QPbZII/yRRT1t6nf/OXC/AV11ythAkjnF/e7sPzavV4kp5HF2ILMa+4akzOfPGkhhYNz211t5h1N9vQ5XtQ== 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=YS8TVnn968W53jbx6UjxUYC3bdbhAgN4q7p6A440Zrk=; b=dWtKz+vmYS9BVwvJp2zarlkFnL7PI/XHT6hI/600dyrlQQxfmw92EGhpnsIgwx5mq9g0Lc1QkUih6S8QSozQJYQyn/o6kU7oNCxz/YJGdA+OGM1/dcmT0hfGYBzdp74d5jKoaa2rluOiibT3wvlJs35VkMaH0gdS0akhmZeH5lEccuKasPGuJJx4z7SU1u4Aqo3K7Cwh6dnXgwHL72sVEx5VtdlAf6lJsMElJNZXl/LmLsbUDlYsxwQFv3SikEtr7Znxa6SXGVi6vSqS44wcsPRvDYfSai4TC41oTvcDrs78EVbsmrbgorHnC/dXtMWtkMN84H/Yzw5Doa+J3MF/4w== 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=YS8TVnn968W53jbx6UjxUYC3bdbhAgN4q7p6A440Zrk=; b=eHJ0gKrYaJElBVFmE7ywVUMCzQX5nUmDmC8hUdyCdyDuGkgQXJWcOCldLkMQmafI1hVWPWbim/EiNgjQcbqFHAAd8jU/rajpM/QrOPPjvm7bDcZw54vMq1QICWhj8zk8E4FRYopCJd957u8iRS9+87bqgVUBlUHMVOeGCLoB2og6yuqtx3EzvqoRKnxK6bgcSSxQdnaF1yNfJKiZQEKV2tK6C41d/6UVsDDGirgKPJaxQ0/INLgyhvQKhr1mreUUiPn9AhTCpMJ1OhkT5fWDOUvAubLYAEBiREpHWaWymUe48yW7YiH3yAeaCW8d2pJGCN3NrphtBWh0BLIdeOCnuw== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by VI0PR04MB554873.eurprd04.prod.outlook.com (2603:10a6:800:361::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.13; Mon, 21 Sep 2026 10:48:51 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 10:48:51 +0000 From: Chancel Liu To: Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Oder Chiou Cc: Support Opensource , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 17/21] ASoC: es8389: Move regulator and mclk acquisition to the i2c probe Date: Mon, 21 Sep 2026 19:46:36 +0900 Message-ID: <20260921104640.1941554-18-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> References: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SE2P216CA0148.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2c1::14) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::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: GVXPR04MB10021:EE_|VI0PR04MB554873:EE_ X-MS-Office365-Filtering-Correlation-Id: 8df89988-d549-459a-272e-08df17cdec6d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|19092799006|23010399003|366016|10067099003|11063799006|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: x71ZbUz+jpo1fPXUSRFUy1ha4Ddrj19vHU/vVVsCCfC84mqW3I6kxzOM+P93qf7fl+BBXjYdldcqZRZyyaYUVLbsBrxEkR3WZk02KOv5g21JV69CAj9vBBAy2wM7Qzjo/bGWLTdVy4LvNFpYYr6ZSP3JGPqNyG7a11AqCVIPDtcHPUQBRdVS2Kay3wERxQxgPNfZvUPRlqtWMPWv//aNGh7nUltFwvt+6ioA3ar28WaPSPeSsdcVuZRxi9URdiQe6cNs2p0fEFTYnv3hbNwML93oxi5ziahxK/ZDrq5t/S3icsXP5I+VFhowjvIZKj79arqx5qHzSgM8irOTTaYYzstkcxV0KthIbZLrhqov0lIaVC1wHmJS9af037nQ+Giiwzd2LFYoJxZzigEInQc5lXYEkXOTToQG7gTRFC5Lld7VJ27TwtEhZwzoSLE0eJ4RKSyOBoLsESQm+dkw2IKKTT9z6QNqMBu0mWkBtPF2BMYh/Ty9reR+4b034iEiRrPMa9sam4cB6QhvCA9eQ+dgOkWlsJcegGSf6qCb8w2ZR7hQ48khDNlCG06BpNRWkvDvwhFSXi0hFXeqVru7iKyRwqtGr2QnOa6+/Dg+DjmZf4Uf/1gaDPJ48v4SPQt2et4+BPTN14EDnZgA/D7dUPnMDMQ5fLMCNIhMMLyllDX328k= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(19092799006)(23010399003)(366016)(10067099003)(11063799006)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7HCyqchZKeO3B3c/fy0cxZ13pJw2vnKdboUSujOe/qJwcbjEJh2EYKCPl3rN?= =?us-ascii?Q?1ALWOzMncsiIyf5bYl98m5rK1ZoIKv7++0iDsiBFtTzXihV06MOhQepyBz2k?= =?us-ascii?Q?PdVqD9F/bq/PQNNxWNQqKA8WcYXTbjhVrm7CXilNOczHKcm7FnzMNqdMJttT?= =?us-ascii?Q?OkJpkumtobB7z7FIZ84JL4S/c/hq27ZpajLtLa+wo51UAsyu5fqMhrnMtneh?= =?us-ascii?Q?mQ8t+oPrOduUQDp86AtBmVuxPKW5kekguTBYF8aTSgNM/9OFBT5/tFbkMqQl?= =?us-ascii?Q?d2TtlqL7hg2THRrBZXxSqKmLn1nlPOLQkb4GU3D46koCWLBdaO6Th8GdIcoq?= =?us-ascii?Q?4CgY7D+b0X4jnHnjMsx/d/gBozIWdYN4L8UodWGMWX6YkpoGj3LGJsWI1OMS?= =?us-ascii?Q?tk+Vo+vK2eb/uG9jjczE4p6PvxGRktFrX+47xJSkDg7h1h1z0Cn22nIlSNNL?= =?us-ascii?Q?/mb0uelNXNvZonlrLBAb+fTieXE/GuTjuGW3+5vixyNv9+0VfCtKKs/7rGnt?= =?us-ascii?Q?fYvya3WY7AxNxxl9a3unXXATRxZaYow5e245UFrBtw3HKcPYDtw0c1nPoDwB?= =?us-ascii?Q?1HNkqJXmeDD0rTO5U4IC2oA8Si48Jz3FD7DPUQhInfZuBnxftNDERNzb3TvA?= =?us-ascii?Q?9tV9m2DG7IwdX+pSpx+9z8fjttTLw3oMNHzH+6MOSsxX8AblJDKVKD88LVUX?= =?us-ascii?Q?lkyUm6D7MAE0u4xMIP+Bb1VawOXNAz63pIDfnQtSPm3Bz/iWBMGHh+2P1K8J?= =?us-ascii?Q?3NlC2ADAzZyIe4VWeIP/fFbM+4IIrtbgSzlgBilKTn81ijUltCHk3x1Mtmtk?= =?us-ascii?Q?Gy9mqvVmkuxVwAzXRPnL3KFMg9ZV79ApirbtFHUJbOKpgDfZcfXumrkB4+sR?= =?us-ascii?Q?5rlG72Lm6SFoX/bVj0RPLgODWfZQBWdZ9x7CBTWHyN+pI+tGYqdxvz2r3Yxf?= =?us-ascii?Q?QyvlSCQwjffAh5FWnLay8n3+gxEU6JDt6/6wn5emXLkgXhDzdKmZsI4KzlNd?= =?us-ascii?Q?LksITG6Z47VIpXnnS7cbvEMPtTpJYtEP2JLhIDBP9aUwL6lQuUHGuh36gkjZ?= =?us-ascii?Q?r9EIw4+cWSnGiHBqOYIvoH5TabpvlyI+e7sKFvLYnVqxouwECoLQ1FM53isT?= =?us-ascii?Q?XrGr+zQvZx0+ZH8U4W39djz6x5kDq4lZO7zcwPp9nESqe1SWY0p71HP6EhJN?= =?us-ascii?Q?lIDALA9y8/sHX3rgUEWSmZXLck8aUSyXvapO1PoKuVkvRcP70DaDMLLmEPgW?= =?us-ascii?Q?CUUob5nWwwVa/OHMuFaSDuWYLpn+nY3P26GTxNbNtdblDm3Ru8LIUp4waEmq?= =?us-ascii?Q?UpgK93Mmh1HEEeV2G5cwWrCZVInsqWGQ3ssEC9BKYYTwpWpscYkm2Wmkwzg3?= =?us-ascii?Q?HBEbfBnhWcoTW69xV1DG1JjyiW3R3vYc6PhHrSS6WTYtNm7IQsS/SxNixyXU?= =?us-ascii?Q?4td2ZqYdBEHoG9I+9iocg4nAcVlZRiB4QY97WHjgKxH1TLWQt1kI6DPTy9IL?= =?us-ascii?Q?PqZBr1eArKebFtHdcNo3XHi5FBSklqVfqf5amd946Qa+FxzacUTCt81fG0/u?= =?us-ascii?Q?bVELV7M+DGnH8Sssr/NTM8/s2seOBf4qoCZZfqpCbrMjFXB22HuDbSMQoGSY?= =?us-ascii?Q?ALFU5S67Wl9soH9jT9lM81rlFqFqy1LV84eLGDDokFjN+74ceyt04HJP21Me?= =?us-ascii?Q?1KaZkvRMqNe/vhSwLAqG2bAc7MkKMov4b2AFAPiKw82EMJcPwWdKXFV9VXD6?= =?us-ascii?Q?7vukVLnSYaSB0OQMEYxmsh7jCTG3rqdhUMwh5KCdEKarIjHb/fNz?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8df89988-d549-459a-272e-08df17cdec6d X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 10:48:51.3776 (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: fHTrxJ731UdfETHEB3VWfwv00A+PxTMcyPbiyHAmzclI0NSDZknIRnXiFGqMaZhmvMFa2eSvIGwvqP2dnEZOCp2sgHic5XEUThphlMnoNFr4bgc4lxu9WWpxZhX/FTxF X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR04MB554873 Content-Type: text/plain; charset="utf-8" From: Chancel Liu component->dev is the underlying i2c device whose devres is only released on physical device removal, not on ASoC card unbind. Getting the core regulator supplies and the mclk with devm_*(component->dev, ...) in the component probe therefore leaks those references on every card bind/unbind cycle. Move the devm_regulator_bulk_get() and devm_clk_get_optional() into the i2c probe so the resources are tied to the physical device lifetime. Signed-off-by: Chancel Liu --- sound/soc/codecs/es8389.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/sound/soc/codecs/es8389.c b/sound/soc/codecs/es8389.c index fe341fe56760..931577e5e29f 100644 --- a/sound/soc/codecs/es8389.c +++ b/sound/soc/codecs/es8389.c @@ -1076,22 +1076,6 @@ static int es8389_probe(struct snd_soc_component *co= mponent) es8389->mclk_src =3D ES8389_MCLK_SOURCE; } =20 - for (i =3D 0; i < ARRAY_SIZE(es8389_core_supplies); i++) - es8389->core_supply[i].supply =3D es8389_core_supplies[i]; - ret =3D devm_regulator_bulk_get(component->dev, ARRAY_SIZE(es8389_core_su= pplies), es8389->core_supply); - if (ret) { - dev_err(component->dev, "Failed to request core supplies %d\n", ret); - return ret; - } - - es8389->mclk =3D devm_clk_get_optional(component->dev, "mclk"); - if (IS_ERR(es8389->mclk)) - return dev_err_probe(component->dev, PTR_ERR(es8389->mclk), - "ES8389 is unable to get mclk\n"); - - if (!es8389->mclk) - dev_err(component->dev, "%s, assuming static mclk\n", __func__); - ret =3D clk_prepare_enable(es8389->mclk); if (ret) { dev_err(component->dev, "%s, unable to enable mclk\n", __func__); @@ -1179,7 +1163,7 @@ static void es8389_i2c_shutdown(struct i2c_client *i2= c) static int es8389_i2c_probe(struct i2c_client *i2c_client) { struct es8389_private *es8389; - int ret; + int ret, i; =20 es8389 =3D devm_kzalloc(&i2c_client->dev, sizeof(*es8389), GFP_KERNEL); if (es8389 =3D=3D NULL) @@ -1191,6 +1175,22 @@ static int es8389_i2c_probe(struct i2c_client *i2c_c= lient) return dev_err_probe(&i2c_client->dev, PTR_ERR(es8389->regmap), "regmap_init() failed\n"); =20 + for (i =3D 0; i < ARRAY_SIZE(es8389_core_supplies); i++) + es8389->core_supply[i].supply =3D es8389_core_supplies[i]; + ret =3D devm_regulator_bulk_get(&i2c_client->dev, ARRAY_SIZE(es8389_core_= supplies), + es8389->core_supply); + if (ret) + return dev_err_probe(&i2c_client->dev, ret, + "Failed to request core supplies\n"); + + es8389->mclk =3D devm_clk_get_optional(&i2c_client->dev, "mclk"); + if (IS_ERR(es8389->mclk)) + return dev_err_probe(&i2c_client->dev, PTR_ERR(es8389->mclk), + "ES8389 is unable to get mclk\n"); + + if (!es8389->mclk) + dev_err(&i2c_client->dev, "%s, assuming static mclk\n", __func__); + ret =3D devm_snd_soc_register_component(&i2c_client->dev, &soc_codec_dev_es8389, &es8389_dai, --=20 2.50.1 From nobody Thu Sep 24 20:03:34 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013030.outbound.protection.outlook.com [40.107.159.30]) (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 1D7DB48489D; Mon, 21 Sep 2026 10:49:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.30 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987743; cv=fail; b=b1V5Z+Y5Z4knrKdWfpabOiIhdCrbGUKdbgaDG6e+d/x/RiI+tNL/ejq/whwB3adg3I+Ta5QgZnWm+eEdsylV7DLKCbx2m8ZBINUNYFljjsQLtMsjEZxDAluaPYZ3K1Lrtm9MIr1exXBBM0Q6tdD9Uh1SjAGDmBGZZe4jVBfEeG8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987743; c=relaxed/simple; bh=M7efeJN+NfpmQC/N9EP5qwZrBQRbM8zxY6pmdnRIOtk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=gyW8Nk1u0MNxrQQpHKUTjQMrH/Lq/Zcf76G3Adi1HX4vi5rd26tc1RuNC06Y+6PxC5299jUESxDecJuC8ZcuA2Ec0Y1Ms1m5NOX/LsT7ZhjXEpBBoJonEYUxjaZXRNqUWtyCQ9ROW4tXBoHJsqBH1MoZjfJ86JkkMk3bt2BE2Aw= 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=EXgH7bpx; arc=fail smtp.client-ip=40.107.159.30 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="EXgH7bpx" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ajdRPFCVtZHXyJF6uGpl1br9u0fMEbqMY98kdLsJ0G34qzINB6Y2ghKrbAj6FvMwKcxl2HMU3EqoiXpODPyT2ti4SklFFXh74qnOUfFMeEYfWmAI0jqabvvKDN1NsDwT0c2MRyI+3CW4kBcRgwYW7SH32mn0Ev6Hse4BG6H9bW32DqeYgMq5/13M8WTRklEJsoVPF9ZJcD8H2MVA2i4Rgc6T7DQPGS+nnasQNYbeXXF4EOtD2DNQDUlHyJcG+FokMFuyJueRmyUuVrhFVMj7Uz7CNb8LBeZ9Ie8GhmpX5qMMfJFHBs6C70OIs9XRWRXQykHkRa7yfpmFOwc7Smk4xw== 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=/NMrkafjEBFNsq40Hn3bJwpoACWPVL63dt2s0wQ1AoA=; b=WgbGQJ7mmH4iQttY43Y6j8YJqbOmWotx3BLKo4YNq42NQ4ZuL88WR7uu1jMd+1q+fcUL+S8vm5dcp8zzI1wDsuD3vaBp330/rL+vK5dtDp9hcn3vp/9wEYHGLxtT5DzcqE5lj6Xl6ZD+Qv/48WCzmTYeAJKqD4TP+9swWZ1cniLclqyG30G0JW+9sRcZCpyGYfxInBa2lqJxB0cgO0qfHjHPERxgWYqhttmuPHdsqowBl4Apra0a4HAHQMqg8OWJUGGZcdDrCKBTDZwTckn7yupmAlHqjn7iu97bnV+UZGmTfM5fRrfXwVIUx+mf8i4lO7PscdfVmrJXIOsjwPQp5Q== 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=/NMrkafjEBFNsq40Hn3bJwpoACWPVL63dt2s0wQ1AoA=; b=EXgH7bpx47aoHzScOfKPp2UHmzaPClYo9AW4aIzZAGH1vAP6X43iB0MxdLsrXGODb1onn419H+SgE2yJtrygb+xfht1gOf3DDECuaXLItjEMFiol8c2YvuvazUDN8TyRKnefHMzyUqm63rc7rzGByey7Hsy3fOdNp2mTc4ZGyauGOvfa4GOedYK/x4V5UkREhcNYpOOSIIzNeZMOu21OCZm9ttQZeST17hejRYWnvBo89jBEeK/ear8pVDko2cUyxAOFdeszYfqikxqbWsxRKRBlTpScjog8k5HkzhPc6WSXdagfBTJimDnIdw7+d7wC9bsFtXZub2sgaY3kjP+3Dw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by VI1PR04MB6862.eurprd04.prod.outlook.com (2603:10a6:803:130::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 10:48:58 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 10:48:58 +0000 From: Chancel Liu To: Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Oder Chiou Cc: Support Opensource , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 18/21] ASoC: rt5677-spi: Free the DSP context on component remove Date: Mon, 21 Sep 2026 19:46:37 +0900 Message-ID: <20260921104640.1941554-19-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> References: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SE2P216CA0153.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2c1::9) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::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: GVXPR04MB10021:EE_|VI1PR04MB6862:EE_ X-MS-Office365-Filtering-Correlation-Id: 04009766-a205-499c-dd93-08df17cdf0b5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|23010399003|19092799006|366016|1800799024|22082099003|18002099003|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: +SOKe1zCmXAmUvzPteRuWzCpewcNFfC0DHqaH65ILAAve+UxxPABoVlzQyHXrxHoQ1Pg6OecJr74SO3Lh6u67ACm418vFHAmKIUY4D7ObkkAntRhSuP73QhlbB5A8tomHIcUCfMCwhEqdfv9Tvaj8J3TbatMKOLRCYE5SeS86bUxcapPn1L2WaqvaAoitd3wEn2FqM0XDDILXLaYJa8+ScKD/+9aPI5m7glo7oi4oBoKJi07BvSSEQ8FANGD8cn/maL+G9gYrL4gZeHvbtvSTiXqrWe4bmhfSNnhYSn6JJkGamJTekuTVZh5/PAc5deamktsj7oAAVqeDGdBu7NGHInpXxni5XrfUQgmrrg4Us4AacPeeWVIe2Hun/XoyXf6+R5meFN7N9syMpH3U8NDH63TkGqYQuHDcRNgg2WsMO7fgpFHzqmgDjdYFEbfhMvoPJqC7JBi6JV8CB0Zh+Fl2uKNP3LVHw+ZgVfwtJxKaPWpjervOClsDL44g7EaHpskluxsBllh2QhjN2Yqod/qw0NQuHU5YNymmNqRDV1RWglOBWB/8FRW7jN9EGPgZ5z9kluiI/kNnewBgoGXJNr42u8kMCKaSP+q47nHMWpqto7bR17IJUhANq0xe/i/Wx1KbiXZQul3HS6AnCuyTlD1eXUZ+CbXyQfpt2PlKojrrI8= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(23010399003)(19092799006)(366016)(1800799024)(22082099003)(18002099003)(56012099006)(11063799006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?oCXeNMEpxFWpkvqORuKREPHgRJLlJqaxKIqUEAsx9y3x09crpsOtOUd3k70C?= =?us-ascii?Q?ooTDSeQsE/WaxNiPMVo6fhtmrIGboRYUdO16ZcSc3i60TYRh9L9xQA9h7Lwa?= =?us-ascii?Q?hkMsxgW+GLW1FIH5xcPvnHx3xyHpo1EizBE7IJ4WV6n6WTGypHkoVTzjTj3v?= =?us-ascii?Q?5JM+xunLZ64F7EtLYPr5lvvQZ8wKz7i7cIxxVyDrt/+I988hyOaDjhtbvlgY?= =?us-ascii?Q?aohCaHd6UvA1RVeZ06Fa1poLqwSkEYbrQZ15zJsoOssexdaAvFy7eDqi0nrU?= =?us-ascii?Q?x/t4ItGMp2YjR/afQr4Ifq71vXPkXk10tMWRkD71R1MHOATfU9HixiXtB6T7?= =?us-ascii?Q?+Kbfoevc4lmt9gOv84051TDrPdxHcdh2V/zZ3rTEM5lXea8xJTsVhS8iwHz+?= =?us-ascii?Q?ui2/0PzE/PqOBt12cq9DkZYV7Mx9UV7Ea9Fh+aKV7qJcxd0IGY9hFy2Mc9Gw?= =?us-ascii?Q?A27WZUpemjubNwh2WNiEw7/GpFdh3GSQcBh+wM+MyTwpWUfFKrkEABbp8+o8?= =?us-ascii?Q?iI+oPKFZXhmz54bZ4LBS59DYfMc8BOfWIQ8hzffaz/rriDpLbJ7Q3BICFrM6?= =?us-ascii?Q?A3TfabPhIeU980UAlopmKIzzaQ4SKHjfd7GjrTwUmkqjj5dIAtV/qhcoVJv7?= =?us-ascii?Q?RxSreySp2gu1fyHErL6aCwFMFX/Tbz05TRkBMi6CCAcvFDDLQ+m0gWMN8RnT?= =?us-ascii?Q?HT91juCyg+fRs9ntCCCNvAs9SZQfvZw5b663gzq3/9DCPnLkwmCb0P/VVPFr?= =?us-ascii?Q?VDIUBkRaV1le20W0TziPbqCsZtC45JtOES76GihVJHZ6Zq7zyYNbrjPgDiHY?= =?us-ascii?Q?1wp5ZA87EMiWcJx/KuZ8Of6oWvLxPOaSTbY2nsP/ufO0w9oT2RvTFDiDQwGo?= =?us-ascii?Q?QzROP4nbIfKoYq81/N3SQhRlnJQ8ld5zTDpxmtbfoHgvrdiQ4ozWeG1+ugAY?= =?us-ascii?Q?2wPmqxdJtzkErWvXsU7ro+BDK7ZJV5IASdrm5ImZHBBIVwceT0YQmDftva4j?= =?us-ascii?Q?+ckGtEZwYHTQMRZm7CpMMf/GqU1ylrnvW8wO1A7YMK3nU3e/JfID4li5UlSE?= =?us-ascii?Q?lJL5XUtctHEGAkhPggswL3Qbv6XSOaU0X15JzLEwNCEeQBnv3UGRWKV51n4m?= =?us-ascii?Q?XcE8lWfKJ2WLiUIe7+Z8bmB0LiH4+f2IOIhO52M1LFf6C1JquUNb8pahq6M8?= =?us-ascii?Q?40T/p0Qi/T+7Cq1onzIe/YzxP6bBDzLby11wzXppKssjA4VI5cHdm5ONMyh4?= =?us-ascii?Q?+3A0et2JLf5hUOSVGeeCG4qRyr8G3XEgh6INO0iUQ6GZzV6t447NF1AGMAhx?= =?us-ascii?Q?EAnI+1xIJnblmv1vX8BJG9B0xiE8uxxzS4kDAN5KGb00m2yyirQNoOxuDxLa?= =?us-ascii?Q?FCx5wZIMLni0DK1/dvGe+r8WLCD9ZfqHBiR9rRLXb2Fg3oANRFzXz0ovqEVU?= =?us-ascii?Q?ZO7/OOIVxWk7/2DOVFDf7KPfEEPwnaLtIu30raWQqMImimwnsvJntNZHrGkg?= =?us-ascii?Q?PGOTJ5Vz+04gikfxtYs28uaYrgUgvlMycZWoD2MxzRSq5vWvHN4C23vpVn/R?= =?us-ascii?Q?tMBm3gL56vjc/07rI/edrUcT/rvEDQ9SO4bCXXIuuR2WaRLMat88hm+2nA4D?= =?us-ascii?Q?/ymwe6k00pLCntQnkycKbLnwx1UkChBOf0o4gmlrOf6SUNdbUS113U4rVuT4?= =?us-ascii?Q?/NMXkVyjy9ehA/qhLTovbEHo7r8WkSJy4drrE59kb4PrYaHz4Uz3g97aJaOC?= =?us-ascii?Q?R5JhdQpE5GzFLviOhP5OBw7ZNQ3OU1qldJowM+WsL4qZXcFwpK8V?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 04009766-a205-499c-dd93-08df17cdf0b5 X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 10:48:58.8349 (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: BT8Hfsc9fhPFg2sCYN8pwQckQJY6EqftCSDcIrvnU3I+KH5iFCsh/cZheeOAXo0CIZwq3nm58gVxMN5kW+bebJwO1EedhSmNeN0gBeNYt6UMAX2y1K1WqymsYfO5KBsH X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6862 Content-Type: text/plain; charset="utf-8" From: Chancel Liu component->dev is the underlying SPI bus device, whose devres lifetime follows the physical device's probe/remove rather than the ASoC card's bind/unbind. The rt5677_dsp context allocated in the component probe with devm_kzalloc(component->dev, ...) therefore leaks on every card bind/unbind cycle, and the delayed work initialised there is never cancelled on unbind. Allocate the context with kzalloc() and add a component .remove callback that cancels the copy work, destroys the mutex and frees the context. Signed-off-by: Chancel Liu --- sound/soc/codecs/rt5677-spi.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/sound/soc/codecs/rt5677-spi.c b/sound/soc/codecs/rt5677-spi.c index ebc527115ea5..285ea4872cde 100644 --- a/sound/soc/codecs/rt5677-spi.c +++ b/sound/soc/codecs/rt5677-spi.c @@ -380,8 +380,7 @@ static int rt5677_spi_pcm_probe(struct snd_soc_componen= t *component) { struct rt5677_dsp *rt5677_dsp; =20 - rt5677_dsp =3D devm_kzalloc(component->dev, sizeof(*rt5677_dsp), - GFP_KERNEL); + rt5677_dsp =3D kzalloc_obj(*rt5677_dsp); if (!rt5677_dsp) return -ENOMEM; rt5677_dsp->dev =3D &g_spi->dev; @@ -392,9 +391,22 @@ static int rt5677_spi_pcm_probe(struct snd_soc_compone= nt *component) return 0; } =20 +static void rt5677_spi_pcm_remove(struct snd_soc_component *component) +{ + struct rt5677_dsp *rt5677_dsp =3D + snd_soc_component_get_drvdata(component); + + snd_soc_component_set_drvdata(component, NULL); + + cancel_delayed_work_sync(&rt5677_dsp->copy_work); + mutex_destroy(&rt5677_dsp->dma_lock); + kfree(rt5677_dsp); +} + static const struct snd_soc_component_driver rt5677_spi_dai_component =3D { .name =3D DRV_NAME, .probe =3D rt5677_spi_pcm_probe, + .remove =3D rt5677_spi_pcm_remove, .open =3D rt5677_spi_pcm_open, .close =3D rt5677_spi_pcm_close, .hw_params =3D rt5677_spi_hw_params, --=20 2.50.1 From nobody Thu Sep 24 20:03:34 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011058.outbound.protection.outlook.com [52.101.65.58]) (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 2BB8B466B66; Mon, 21 Sep 2026 10:49:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.58 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987752; cv=fail; b=hD47ZkkKL2sPIhVDhou/5TZKt0TX+7idf5eXBX+xeyFKMlypmD0TXzLG0dudC+uu5uorf4OL/O7lOxdgGddSW+HhkTryNf9M9nOWhr0eR1eDraOmiy/Cw9h5KUX9ChXfYUgQhP3Mide/Z2sI/TyfSKBqtNN/LVNVmXwdRT66X8Q= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987752; c=relaxed/simple; bh=ZlgmRKe+3W39m05Q5PIm71LY5brgRujlkiKZtd4imio=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=EFQtoLA4OD0XAfQ/ZPjOs5h135PQ497GTcxNv5hdXMBUQa0TWRjti3G7ojjHBggtbF1HftaVOD0/BLEbJ8bED4CnVXswP7RYA4p3AnI+laLzYRNnwPfOi1jbVEUbNuJEeN1/pCA3efdqTBbWrvYjavNGIs60AltLz3qyCF1+fEs= 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=nhJpODKM; arc=fail smtp.client-ip=52.101.65.58 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="nhJpODKM" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bU9AMvgbub5inKkdIWvqGOqDhNtNYmwOCXpVz0ecfEcDplRfsfUFtAjNswDVeG2/I8MR46pcJ5zF0O1xXuM+pxGOs2Rpgtxklf/lRIRZaN6lcs94VxkPEs6w/dG0HZMMo2ERo1KGfKnIW6BNCy0KlJ3iNR1gsvk6QowPm8f6Z9G+ofHld+Uk+reLCs0L51fkZMG3z5mFzhzYyZCha8SWqyAPM/57aRbJVVMqCmhq3zRNDMfPguHKZz3h22vwXkM7BFx65gVQYM/22J+MRREZHnV6fhm9ZyQ2PUPutminljcYuqdngrAm1T1Y9nX1tx/xXJNP0pGp1xEfeGSYWVdLxw== 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=WJYBDOLVnzUjPONlXIHXH7lw9hUQK7r3BWfpstH+XE4=; b=uBwv1sVlCpQXOKQdNm4ZwJH+kRdFEnoZK6sgJz0/GwBQrDlOSlSrJqq93hkrn3D0dTwMAmmXgsCmge1ABK+yoNfgOjWg3/FnlSLoligs0VO6ExHqCwSJPErU7kA6TDg62leArRAyzxplCcZbfdjzIlQpwCPGkDevAkOFMD1DM0DJNGIfj48LwzF5s1DMQv6qv4S9oBCM2b3G8geXSbLMlwuNm8u349kOgPuWm7W20h2kcSSKiG2i6mDYo2sBo4PBBWtt1uKrxEW7+rD+4kWR/tkSmZu7rkfcJup+wSRE3FP5Ubarb/1wHEJQKHkW6at7oVoQjBh2nhl4CPqsywDaGA== 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=WJYBDOLVnzUjPONlXIHXH7lw9hUQK7r3BWfpstH+XE4=; b=nhJpODKMTu3/amRomyS36VBkxZU72jUwOrBpDOA4s/ftKPoLRBtarKJfM6s7ukKxaToiixIrg3Pve0pvgrtZkEyxdMu840nVSiMI5Ql9ZGA/l8X0rJGYKSg2r07iocZew9S4k5pIyBAe3warjQYnyWI9EnH0K9Jkz4uoOZozuG9ziSthyh51VDYxdhl9daLNqHP4IqbmI7VmADWQuTw8OpF7mGWNYHVdeMApqwRKe91hOyoGkF/5ZZvE4KCmIGVsKz6jsNjTbMwgmtYXLRxL8ftCC6GkrT9kSphWcMVoa5/JYVQHHao+ZBh8aEy/9E1ZR+E1LEMggSPc7e4DqMQuTw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by VI1PR04MB6862.eurprd04.prod.outlook.com (2603:10a6:803:130::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 10:49:07 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 10:49:06 +0000 From: Chancel Liu To: Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Oder Chiou Cc: Support Opensource , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 19/21] ASoC: rt1011: Free the bq/drc coefficient arrays on component remove Date: Mon, 21 Sep 2026 19:46:38 +0900 Message-ID: <20260921104640.1941554-20-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> References: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SE2P216CA0151.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2c1::10) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::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: GVXPR04MB10021:EE_|VI1PR04MB6862:EE_ X-MS-Office365-Filtering-Correlation-Id: 1257f46a-079e-43a9-e073-08df17cdf519 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|23010399003|19092799006|366016|1800799024|22082099003|18002099003|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: y2G1bnbP6npYA1bAbvq8zjpRFKlkWhKsF1ZyQ1tBGxR9Y6svVswSOdjG+FqmbSozfmT1MnRdYLOGBuaFJyB8JYW23UrEV2qp3hPE6/sCmQKcoUudTn7YVfHtFvLF21oonpS31KjWsmUsyfydanhKGwcYt9rXsyLxzc4l3oX9SVtVQVk2mRXmDaC/rsoxwmLYARs0GFcbP+T0aYq0Pz/WX9Vsa8FpMQEqJUXc78jV1eY9EJSyW3Azz/JqLCujgqaGlHH/LzA3EMm4tT1hE8EdVPR4R57jRpZc4P88ms+MUjvtW0Mtx3JXqp8ynPGgAoxrfczJQX9HYKNZNFmrMQUx9wxy7/N6CZ6d8FOFdFQoN1nn6D7Aqw17vJOlLUcmDuausHWaI+o1WL2lma7XRpskPItJ7Q1JPm/XJbkYH/CK366gdCnloE2P4MlmGtmKCSDgHkKx/WGhg1xBMce2vEmUBBVlBXUqlqgGwukZI3vS+7s/pI6+mHvvudiSzToQyTEDPhxkU3hnZ4mJ0jlOUIvnq0dsSinq7vw/hSTJKU3C3KO2ARC2Ynio6aKLhsgO3LhaLSIXJc30caQ+xh1CwqpjK2Zz+3wdvh69XqmjAAuRt3JsL2DIiusmRLolLID8NFznvnebhuqRffAoz0tpGpvPDzfQnDnTphsVcnJgqAnpL/E= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(23010399003)(19092799006)(366016)(1800799024)(22082099003)(18002099003)(56012099006)(11063799006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?gWGS5gBYYBKxFZv/tqLLvmU9GTE2ih6OKRI0TB4Zxe6Tp3P5ADUitC4VBQRm?= =?us-ascii?Q?y/jpP4g9cWKiTN1sz40b1sHWgEipuYSSYsbZKFnSxCk2RApeN3rUzxvCTpWs?= =?us-ascii?Q?Jl2WdSLM5zGX81VNuHK1N4HQaHMNJqNhpmvnCoKBDcrLy9HbZyh+3ko9ROOi?= =?us-ascii?Q?/Fk0crxVBn24UgxABHW2gV1gKWMbac9q5dLejdPuzW0e65u2UlMBjMMG7gH8?= =?us-ascii?Q?xFVxU0EmOmlN1nvOw3Vs/xLU+Sp8BFF9SU931L6UlyZ+C9NOvUph1yhKcEw9?= =?us-ascii?Q?uzBhf8vVrz6xnqkjjlpT7jmz+kKva6wkqsT6pH1AlzQCb+mT0ow3EaLfQbKc?= =?us-ascii?Q?RGl6rRRyQGExUqWFD1yZQu/a8Xkh6rhno1i4q6Z6wz0y2HsAKTCv85dRY22E?= =?us-ascii?Q?9Vho2z+W2iJCIlE2wuVLDffpr5MK2RJWkpbg+fdDdgTVPAMSBghI+dAvAp5m?= =?us-ascii?Q?4EnhRBJArFwLwb7tJdBLGFArAU4ZU/73BN5SsA3gs+h1/JiGHhJnymLHRL6n?= =?us-ascii?Q?RfgXQRYe32ikPoyS8wl/79P+eezeA1uIsC7TtVQzZ7iKusMUG1GIvUIUWYwt?= =?us-ascii?Q?nW/REkxFqCAArki9KiPbMC3vCPmO5kC2bKZ1m+L9CPCUphmltbbYKABWcSjI?= =?us-ascii?Q?49DAJ/BW0fqw8NQCH7V/2lJkEbq2NiTzvnyPs/zhBcJEDWRitSpcg26rTHBX?= =?us-ascii?Q?E50POJikoTKYkR8athvIjmyw1Gv+j7DA43Uxiq+4NQzIrBW04TcsAsW5+xz7?= =?us-ascii?Q?HOwP0ozySIbPesJAQpM3o2+HNJvMMZdbiAKFPk6fipNVNiGhGgza58HzJ83F?= =?us-ascii?Q?FE5X2yX+PvLNwXu++qgva6jp68YAjVAJ1wt4qhiq1VAcBwcQF1ViBe1HteGR?= =?us-ascii?Q?mQtSGQoDyPazjEmMjOG5DKaJoNXCnvGzjrZ5diMgOusDqj76j3qemuVBi76+?= =?us-ascii?Q?0SW9hUJFI3Giv7e7EaTmT2kZVJa59/hxaEgjD8CY4DZqPIvNKCXSUDt6LnCD?= =?us-ascii?Q?ZEGS7msY7yKHs8bsTzIUIampGnu3J7h7mCU0IoI9RpKlk5vlZByrkZlOppsD?= =?us-ascii?Q?t1XU7bjjA5is5sctDq+pxdZD5U/5uq3mZn6uCI73zJwXbwPO46saZ5XeyYhJ?= =?us-ascii?Q?B+NeAVVKDPknRAq+keosO03yAxUTwe6zG9m+jUMEjw/jusI5xOxz+El8WmD9?= =?us-ascii?Q?6t12GfoZh6EpaDN7rkftvoabQrnUR5LaHztHEVifT8IpY0wO4/bH8/YqjLoG?= =?us-ascii?Q?dE4D916Mj+0N/6LzznJvjTIjLRdpjrea6rhfuMfePBqtJvOKlHLiCGqMGjrr?= =?us-ascii?Q?J8IV5snHCkrCLw8ctbzq0qn+7arCmW6xUwhuGUQgWh7TjpDK9JOoC4pz5p2I?= =?us-ascii?Q?NBI4qrOYlDYZ7tkxJLOlqZt9xbkU8ECPCq36BiCNKtE17B/aWwGcPPaXGH7h?= =?us-ascii?Q?zor4eq+NMaNi9oeRTnRoNU0kL+dLbHi+LteJurQ8yMQx5CYSrujkmTI3U+5E?= =?us-ascii?Q?PTN0cvrzUit09gGNCzmAy2VwfIaodsX0AvlP2srO7z7n/dklh2p87uymuFAq?= =?us-ascii?Q?1wjOWx1A7H8j5gH9Yz6IwD9d5Foq+dvaqts3dGXILZq7/kVf758W8+DQBvsl?= =?us-ascii?Q?AN0KTxTdiPfrfyHJrT+nhNVPNMUnnVExslZbEZbzLgU0vA1R1UdNF+Inb/hf?= =?us-ascii?Q?Q9fVKb5EIfczvkWXMHsYyYbn+P3cAl8PC5avUP+CI5Oip4nmrY5v7wI7Bn1C?= =?us-ascii?Q?GgrME/pjm0sSfqoP+yltDojJynkcFPe3eHyGmDJwguY4BUmx59cN?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1257f46a-079e-43a9-e073-08df17cdf519 X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 10:49:05.9851 (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: KiPLR7H0/H0XrOtDOdV/m2u6PaUgX4TZSyTDLoCozMYeec3IZLd+gak7WCEmG4N+yWHr8AKyYversrqvVQVFV6b8JAatf99HO6xyJ5FaRSfBbz8G4mYwUyoHoDcq2S9x X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6862 Content-Type: text/plain; charset="utf-8" From: Chancel Liu component->dev is the underlying i2c device whose devres is only released on physical device removal, not on ASoC card unbind. The bq_drc_params arrays allocated in the component probe with devm_kcalloc(component->dev, ...) therefore leak on every card bind/unbind cycle. Allocate the arrays with kcalloc() and free them in the component remove callback. Signed-off-by: Chancel Liu --- sound/soc/codecs/rt1011.c | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/sound/soc/codecs/rt1011.c b/sound/soc/codecs/rt1011.c index d47b0370dd6b..c140c079838d 100644 --- a/sound/soc/codecs/rt1011.c +++ b/sound/soc/codecs/rt1011.c @@ -2053,29 +2053,45 @@ static int rt1011_probe(struct snd_soc_component *c= omponent) schedule_work(&rt1011->cali_work); =20 rt1011->i2s_ref =3D 0; - rt1011->bq_drc_params =3D devm_kcalloc(component->dev, - RT1011_ADVMODE_NUM, sizeof(struct rt1011_bq_drc_params *), - GFP_KERNEL); + rt1011->bq_drc_params =3D kcalloc(RT1011_ADVMODE_NUM, + sizeof(struct rt1011_bq_drc_params *), + GFP_KERNEL); if (!rt1011->bq_drc_params) return -ENOMEM; =20 for (i =3D 0; i < RT1011_ADVMODE_NUM; i++) { - rt1011->bq_drc_params[i] =3D devm_kcalloc(component->dev, - RT1011_BQ_DRC_NUM, sizeof(struct rt1011_bq_drc_params), - GFP_KERNEL); + rt1011->bq_drc_params[i] =3D kcalloc(RT1011_BQ_DRC_NUM, + sizeof(struct rt1011_bq_drc_params), + GFP_KERNEL); if (!rt1011->bq_drc_params[i]) - return -ENOMEM; + goto err; } =20 return 0; + +err: + while (i--) + kfree(rt1011->bq_drc_params[i]); + kfree(rt1011->bq_drc_params); + rt1011->bq_drc_params =3D NULL; + + return -ENOMEM; } =20 static void rt1011_remove(struct snd_soc_component *component) { struct rt1011_priv *rt1011 =3D snd_soc_component_get_drvdata(component); + int i; =20 cancel_work_sync(&rt1011->cali_work); rt1011_reset(rt1011->regmap); + + if (rt1011->bq_drc_params) { + for (i =3D 0; i < RT1011_ADVMODE_NUM; i++) + kfree(rt1011->bq_drc_params[i]); + kfree(rt1011->bq_drc_params); + rt1011->bq_drc_params =3D NULL; + } } =20 #ifdef CONFIG_PM --=20 2.50.1 From nobody Thu Sep 24 20:03:34 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011058.outbound.protection.outlook.com [52.101.65.58]) (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 7A0FB2DFA4A; Mon, 21 Sep 2026 10:49:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.58 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987755; cv=fail; b=sRAju4beCo8IqL4ybuMC48Zf4DigMyeEJWe54j0l1glvT0P+9kWlN9HIPiV+PTJtU3BEkBfIO5KuSheqILYU6TegtOJe7A3aYmv0D9hKFFLtFgbFyNCt8WtcQ59bfD4l2AnYUvV4XQn7kd5Aa97o7vNiQkD5A01cKtM3nioIhUs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987755; c=relaxed/simple; bh=JPVk6OLPGnYLMjpzmUaSjmgmFcxuzMD6fYGhiLfXprk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=iRUklYQd+n727WJEH5QjqmOmaYhmCdSb9Kvd7k05xEmFB9e8INz2cYiIA+9UMFSuPn6AqHaL8ZJpsXcW+AMEEtsrC2SfAxXlLyUKlTwvY+sDv9UX4o6XawBL15bATjhXVH3OsLuSoMsJXyomu5gnegrdDHwYnIrxDUVbamAcZGc= 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=SO9/SJNz; arc=fail smtp.client-ip=52.101.65.58 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="SO9/SJNz" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=k8LMDbnMSi1gB8wr1BTMijN/LXNWj46dwbYQxQsr5IstlAv8SijoqyXO7Q/Njb9g22iBw8Yl33vtMN9QWACq1d6KjRN3EmWTaVtpPhxyRC8h9SyYyB4ZfVDapnYfGaYZ0F+9GUHqq1yZdpcY8Casa5FEF5OBlwnBl54SUPegC+xhlNrJVMyO+iH6nwDWcaAxcm26dy2yxL9+8PFs/RenEfisTc0JMEqRnQQUHVVb65EvDzeil05iSf3qhVV6MnpFfupr6yYUZGbeScC+jq+7qH4R9oBdVYGDF+taAXT1GiiJnFw03h4SLBLfebzPK/Xnyu7Nlc2pq4J+feFEeeCi7A== 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=5BxFdUUGYT95PcNgVSXEA0hpu8k8F0qaF05f3olGLh8=; b=NzbtmqgHDzlWFKSHPCe3r/81zq3/1yN5CSixBhAKmYBvZnD6+rjnplijM+BlPD6C8zlBIOxt9wvYKxzjj3BMiswYxSMzTSyjk8iqCDhiuxHFlx3hMN/GCUXvSa7m22VIIheG/2sb8B83Oj3bAKWZl75AdEo0ieRqGbHaH6rI6aPEJKDCd7iQyoaEzE7fX9OV5cQpaGaH6aheSUxtD6rLO3IahtwK77QXoY9w8kRMTxxDFiAGGtMhvmZR6zEX5omiqmhulc7teWKRHqlbnxoScJ8rqobwa80AzjrVDLV/XeTr6+of22Bb+ipZkt6Si4tgbBX8EbpO/eQL2ySn+CuGKg== 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=5BxFdUUGYT95PcNgVSXEA0hpu8k8F0qaF05f3olGLh8=; b=SO9/SJNzbH8KO09L4A99TD/Q7HSuid3FsEdHUmQK709H5z1x+BZbPRjl7q5vZx35wdnA6DIQxU3p1UrZgR6ZHjokHCMMd/X8l1JbszdjXIxjBg5g1Cz2CCi8u40aihllci5rEiaqxqeTczlaJFWGbJddurbbKJ6lMmKgYq0OBhcHP5pDm8BoWveoHYfZ468Gmwz+XEMtuOZ0CASzMOp8LINaUaqWqqtirMQGTet+CAW2l3coFuAYgAi9PSz7wzJj3xJ88HEvZXhoHJVl72sFwvFWiibfwcafp2IZ2Hz70cMKc0Hnqps9FmAApj0nsKyYkLpoIAGg+VKJzTL4SHtC6A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by VI1PR04MB6862.eurprd04.prod.outlook.com (2603:10a6:803:130::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 10:49:12 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 10:49:11 +0000 From: Chancel Liu To: Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Oder Chiou Cc: Support Opensource , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 20/21] ASoC: rt5645: Free the hardware EQ parameters on component remove Date: Mon, 21 Sep 2026 19:46:39 +0900 Message-ID: <20260921104640.1941554-21-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> References: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SEWP216CA0121.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2b9::17) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::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: GVXPR04MB10021:EE_|VI1PR04MB6862:EE_ X-MS-Office365-Filtering-Correlation-Id: 241b162c-2d9e-4271-a41c-08df17cdf8a2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|23010399003|19092799006|366016|1800799024|22082099003|18002099003|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: fRKUe06Z4cdAHjdl22HtxZYS4rrghxA2RitFzz01JXs5nBSg9EqVnf3BG7Em2lnjFnzDmuQNG+LTijXa6+P5thcetCmMPHLr2s3w9U59O6S8UK7pB7LeeEVGJfu487h0gzdsxTNR8OwhBzzm2txP/pr1wWuYPg7r3yYn0Of9EY9LHr3gfA9pHMpbK1CLtnBObRI9i9bitF6m4LKgPPUSjXKVVT4g9AYx+OGD1NPTlGAriYx31k76d82dILG9p5x5C2oIQguUi8aD68sa3vLBXrDkbVlOP6jPH4rv8Xb+ax41UcTk0KwnOSBQOiQKl14IwzFQC2/DhQ6E2PJUu7PoTVRk+vvNn6zeJzgpdOworlJVA09u9OoZQ05Jh/MgTOxWS3iGU/YjSEEggt5O9394T6pWZK9DloXKVuhnw1vLfuBtxkeggRjayKk3EL2+0M3UIsIBZ++ifq0Sz+kcQ+zq8yuGnzx6km0ZC5FEJjI4kB+6BZSFuZabVx9X7YeRmFaeyO9377fsdHqZyl7nGlsmmfgu6idNfHO02gkpgItIajtQwiqwdTTkzeN5jW7K1GfoEVcofBnHHkIfF5uJH6ds2xIWQG1E4hGaAICTdW9YYM7J6sUWRRtTp2frlQt94zF2QC1JO3Jr5DMQHAGw5z82WhFoXoHoCll5KKPlV0H7yGc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(23010399003)(19092799006)(366016)(1800799024)(22082099003)(18002099003)(56012099006)(11063799006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?CkTPbrVKwWjihJrCvubhQQ7MIEYgWmzB4edQuwJ+YztUgxbpd3QoCVhLTcn1?= =?us-ascii?Q?WKy3daqem3BO6fYbnfYNxGQtMvyEsQ4VMoT/KQF4WVGprkzR7OqvTKKfI8JV?= =?us-ascii?Q?BQdDA+YYCziXUN5tNK1rw98FU2lT2md6RKU7k+Elho6O7zMHPpGWjha25P1x?= =?us-ascii?Q?L5FxbrPobmnu79sVZxjyek70oKBy8QQucFRzmhka5ZsaTQIXBgI59J6a5Gn5?= =?us-ascii?Q?Y2q5n+dFMdTgxZZgAoYrB2rcHUAumLXCbmaDDh2R8EZbB/0rof97i7k00I9t?= =?us-ascii?Q?mQ0zHehThn39qlz2lU2bcjq/GumB3Lwx0ZLffviLyvRasxMv6h/IkUInA0Yh?= =?us-ascii?Q?hvt6hcdk3P8w+sCsM97DS2KHi55d2sZHeLX3l9IaZFezwTsGvB9fP1q3jl8A?= =?us-ascii?Q?fkLjbaOmppr77bs5vfqqHvWH2lGm3sjHkWr2Rr6r7HuTV8y3/CVR90D+Bk54?= =?us-ascii?Q?UAi0QqirGTbnCEkqbOIo0VSWB/8ed7XgFuoA3woXVt1I4YzGxH/iLmk3sw3z?= =?us-ascii?Q?F+ZMt3GFZ8gx3HL7q6OzFdQREOpiaxFmLS9xujaxWqiA93Nr/iwQr3N18vgt?= =?us-ascii?Q?JYa9sueWlK5/Lzzg5OzE/YfTOkpCWgrc4xqATYa9qv7G54oMPWPDBp2Awfps?= =?us-ascii?Q?pmpJtrql3pg5ePlSghvU0br3mF2W8Lawx9VbuJjb/3o1v5WY7hmSSGCMo9ZW?= =?us-ascii?Q?k9lzkq26EVMoZWFr8ngsyj3J+pXntwq4ztI4juWW56odO9tpYs8yhiUO4sIf?= =?us-ascii?Q?l2hLeW8rQkQnynTT888erRTDBqCZUK1l+q9UgXtLIQJbj1Q/FLzFN9NeUcuj?= =?us-ascii?Q?TpkER+Dcp6fwq0GNjbCzI4/Q4bPbcFsP/0rFA8CBkwImzefOkhzU9DMqv90z?= =?us-ascii?Q?EmQZQpIaU8yj7t4XYbdTlQEjD47fIo7JxA8u80DnDrkj4573ShbESPGlYTE7?= =?us-ascii?Q?Gb/HPh6uC80nj3t0SgFMqt3YYdhn8kvmmSpT8Do5gw/SCUWwYMkwqLqjC8Cz?= =?us-ascii?Q?XzRcAEQ/ZDrHzPJBn6NX3uaWC4C+jIZZJ/vv89WKEyOY+8ia6fic6fbz0MOC?= =?us-ascii?Q?iE/XQdAfUb0I2lxqgQFTsIe3yLSqxWCOU7Ow3/SKHRiIgFaDGTXJpX2O4HAd?= =?us-ascii?Q?mq/rcjvOGUGBS4bT8ne6LQEJaZHfabq3XXNwB9o4UNMJCpdqlc1OoSQRAKfv?= =?us-ascii?Q?dlOSuJlex/O2uncAX3WzuwXWp6JF8ISVOx2WFvU+rUhquW+KpxVZwM0Bvvg0?= =?us-ascii?Q?bmknZ9Txmq5+bGtvUe7HjTPowMJdqL+zdOtSxebPAlkIWJbMgEi3dVxqlL//?= =?us-ascii?Q?I0RiDy2gsmFYBSiFc/sG4Kbr4ZqmpMxNxGPT/VOQLPCXtUXVKUgVZ+hWnpqw?= =?us-ascii?Q?rPmq9qIrAL0MvtUy0aVQzcRcBR3g/N0eIMQMZXJIVbEUQXC3TnOaLIe1ugoE?= =?us-ascii?Q?JIaY02Vqe/G0587lEWkSc3bGYiIE2cUiJRu1rXO1sI7I+mIl97dKpEjyVGYi?= =?us-ascii?Q?zGYtN2ENd1/28iidNIP+sg+C9nMJPVeu4jw4sqqXtjSZJxhEPxsZbxux0ql1?= =?us-ascii?Q?NNgSZC0WPluNxEd8bu8YIcA1ZI91FQXUal94X4d0U3vjjuT3vBgwnPByl4SA?= =?us-ascii?Q?Uiv4d/Jld22CviXLGjn2woIFdTm0iEewo2im/B05KH/H2fsWIil1BcL/jPJa?= =?us-ascii?Q?h6EWFuTo+QSHz/uoXAbWZgtrksnIukbVEbGFajK672NbPwfpdbCBeakSIB5G?= =?us-ascii?Q?JslVRBKpwerV3/+Re+6d1ycDIkUF84RxVaukw3qq0RSs44bXbrti?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 241b162c-2d9e-4271-a41c-08df17cdf8a2 X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 10:49:11.8818 (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: 0GCG0OLXzj1MQ8YFOfmqDEcS3nDNW5wOImaKdru0lGWy00prxxOCpEBsW/h6dvQzgYm9WS/3aoF8kAWqZu8uFbMNdyQbb2JH9Kr3338BDCsnelYXd2FFIBSfD41netGx X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6862 Content-Type: text/plain; charset="utf-8" From: Chancel Liu component->dev is the underlying I2C bus device, whose devres lifetime follows the physical device's probe/remove rather than the ASoC card's bind/unbind. The eq_param array was allocated in rt5645_probe() via devm_kcalloc(component->dev, ...) but never released on component remove, so it leaked one allocation on every card bind/unbind cycle. Allocate eq_param with plain kcalloc() in rt5645_probe() and free it explicitly in rt5645_remove() to keep its lifetime tied to the component. Signed-off-by: Chancel Liu --- sound/soc/codecs/rt5645.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/sound/soc/codecs/rt5645.c b/sound/soc/codecs/rt5645.c index bb448254275f..15d21097ed0c 100644 --- a/sound/soc/codecs/rt5645.c +++ b/sound/soc/codecs/rt5645.c @@ -3487,10 +3487,8 @@ static int rt5645_probe(struct snd_soc_component *co= mponent) if (rt5645->pdata.long_name) component->card->long_name =3D rt5645->pdata.long_name; =20 - rt5645->eq_param =3D devm_kcalloc(component->dev, - RT5645_HWEQ_NUM, sizeof(struct rt5645_eq_param_s), - GFP_KERNEL); - + rt5645->eq_param =3D kcalloc(RT5645_HWEQ_NUM, + sizeof(struct rt5645_eq_param_s), GFP_KERNEL); if (!rt5645->eq_param) return -ENOMEM; =20 @@ -3503,7 +3501,12 @@ static int rt5645_probe(struct snd_soc_component *co= mponent) =20 static void rt5645_remove(struct snd_soc_component *component) { + struct rt5645_priv *rt5645 =3D snd_soc_component_get_drvdata(component); + rt5645_reset(component); + + kfree(rt5645->eq_param); + rt5645->eq_param =3D NULL; } =20 #ifdef CONFIG_PM --=20 2.50.1 From nobody Thu Sep 24 20:03:34 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011061.outbound.protection.outlook.com [52.101.65.61]) (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 968C7481238; Mon, 21 Sep 2026 10:49:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.61 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987763; cv=fail; b=Kq5QfNSLbBXzPKJ8uR81Y9cwgDxzOO6llCr6t1yAgT9GmbsUoD8irEguRp3d2ho9Iz5dkA5VPdv+uBgX83HOdnVLXIy8RaiCkARjQ2aL2QfUnTzZe7zqRbJb/BlL+xoEJEkU1AAa1dbishv/eNk7QzM7sF6bv4kZlpaulnnR/As= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789987763; c=relaxed/simple; bh=AGcM8YFKbbX2DYpO/rT5PG+DIe0NEA6v0Pp4/qryrv4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=MrN8qaMosHvyWwhC2yF3fgESNWdjm0r99+YQgMwGjEFx9STyvh74RxTMnDXb+rOKRtEj24qW5hWwobY4FyDs7IUYibTqQIv/RKGSv8sxTh9uVqk8pWrFqljlYRyx9BaM4ln1nufzP5rwUPy+FeLAMjhLCLwnZxBTkDIteRrOiyk= 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=rV/AVWDf; arc=fail smtp.client-ip=52.101.65.61 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="rV/AVWDf" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kC4XNr7jFAK2qdu3sScs5Yj1fFxCUBe6/pLFuJiFZJA7J45DEEme0f8Fea2yDSK4E2001fkFZHaQOqdEt9ruc0r82cwJrfTyGsY4Gm6xkE1jn4abYhiSrv9LO6DsmZcfK/UX6zc5Hfx4XY3V+QqYYC1wdZ0A3BxKjV+OHC2SXfLPprLQuG59eOic7fP/XovQ1lKHYAj3jm0OOP6KYsyPvc83CEOe5oNFJ7wWGW4JO+Foe219vD1DgqYn2+xyJ8vUB8shkWi0V/RWxcYuZbUd2gurpywMr6HSvlO22no3bsA7qhAHW59KufaucXie47eXZB0QMzIW1dSNr8PqjKgUyA== 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=ijai2eVZ1+e9F5nqtTyylMVHjPcyu8FnS1Tii9XEg7g=; b=JHkS1K9jMqO+6N8/sU92qTAv7X4IpniE9wzGX65BlQ3c2jDq3+ZeUZkx4ZjFumO636sLrXz7T8XDS4+KmFP7MXwlR4xraT8vv83QMGsX63O97UKXu9MYOPleTELHHkm5RhKzUF/g2lvq3JY7PEzlH/5kqYOp/BtA6IuykFPffk2qneIUIxVdGVFHfinMIzMoaMCCsaj2ijoRSWAgmbKspYDzHBSLdVdnlCajFFV6jJixTusY/fR0WF0mywlKi8YOpWOOEthJfbJpuKkYFOLnKwGw2yzpLD/WZcsXihS+IFwNnn/nOwlWfANAMwuw1YptLP7dOPD8EneJQG0fZxpUgA== 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=ijai2eVZ1+e9F5nqtTyylMVHjPcyu8FnS1Tii9XEg7g=; b=rV/AVWDfCA16SRU03uvgsduxxxLNxlHJFxuag1WGMUkfwwNa3EdhRo528N2IFZg3Md/sr0pfx1eclTd6+uaTk03G8KLH75cyZipW2awPxnBpFDswtTgWeCpt2HLpDkVAOpH2X9QF4+Iej+G36uKqn4XZinWVYuCMpClZss+XekmJhQ1m+iSti3ONFdhs7kjQ2SDRTWb36DQF6rICohcaG8LZc+j1VEHCc+yWN5mhTKc41wCuYjaEyuhklq4DqBH7fISId6RFuRNPIUQIAxXvtPA2zeS2crUrEQktLfvjfkcGDdPaAHBb7blRT1Zhw4lI8irjhjN3yV2BFje7y0w9aQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::20) by VI1PR04MB6862.eurprd04.prod.outlook.com (2603:10a6:803:130::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Mon, 21 Sep 2026 10:49:18 +0000 Received: from GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994]) by GVXPR04MB10021.eurprd04.prod.outlook.com ([fe80::d247:853:3e16:1994%5]) with mapi id 15.21.0428.015; Mon, 21 Sep 2026 10:49:17 +0000 From: Chancel Liu To: Mark Brown , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , Charles Keepax , Oder Chiou Cc: Support Opensource , linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, patches@opensource.cirrus.com Subject: [PATCH 21/21] ASoC: rt5514-spi: Free the DSP context on component remove Date: Mon, 21 Sep 2026 19:46:40 +0900 Message-ID: <20260921104640.1941554-22-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> References: <20260921104640.1941554-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SEWP216CA0121.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2b9::17) To GVXPR04MB10021.eurprd04.prod.outlook.com (2603:10a6:150:112::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: GVXPR04MB10021:EE_|VI1PR04MB6862:EE_ X-MS-Office365-Filtering-Correlation-Id: f43deedc-0e10-4114-6759-08df17cdfbc5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|23010399003|19092799006|366016|1800799024|6133799003|22082099003|18002099003|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: Gn/oW5pBz6LcXuNq0+OS1q4qpu606W+GitwIAudzAeJObuLl/f1mViWa5cDmnRF5dJLLdWBs0yf43Q7VrzOFfvkIhnIdq9VHaeKUpGyMad1y8Evo20BTn9KaryD6dwjRKVFoXdraPbWJN9um3h1y+vQZTbnkCnRwtMJY9NPtXRG5/27jwCN+9IRjXZvlXqutgCr5VZF/ywD9mJ1LZqXTFwmTjphn2YyFF7wNiDk3xKZNaOnacRzCVCib6TU3QNUzbeVuUpzoiRcmT75oA/zY8wmsw2pUgkz2JE1xvMplTGmAPpx2mJgEE7T86VhYOQqJY7Z0FOh/PTZ8TlBX6aaIc4hwrc1NxqIdvSGdo1hn7o21UPFe9y7g+PYdI+LBMwoCEmiU/rN8QYevJIV0NmZW/xOhy7LZ94GsPELPlLXErT5Z2s8sDJw9ycjEUQCv22AWjUBj0YYC/oluS20ekUYo9COnNjQQ8nLvMk6VULtB9fBaxWo0qTe3b3XI/LsEMIyt18p0ddqHg8Aev1NJPTCle7qVOoBzYVHcJ6jITvAvBIL+M61oxuvVSOUHWIRoranGBQHgboR/U1rHOGm4ngZjGvFJ2HBMeyBvLH2jtZYwiBahS/zX9Cd+ljXg+3Mi6WqdLz6NtBvxh6qcZMFo025wr8Nd86llG7MZcGo1qIpgGV4= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GVXPR04MB10021.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(23010399003)(19092799006)(366016)(1800799024)(6133799003)(22082099003)(18002099003)(56012099006)(11063799006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?vVBJl2NphL54N4yW31Dzy9wYHP+Cqdk5xZHVbBw9TTzU1WwB61M73jKTIBek?= =?us-ascii?Q?T09fUBZgoWatf7bVnktw+u/um15rfoOyGLWz6CqqStrhfVy9o71kQ+eUswIW?= =?us-ascii?Q?7damXXgQrbKWXkruAz3puatzyUyP8mSrG/npNJCo/EWWB237LOdOjBhNMghu?= =?us-ascii?Q?ICQr8d1OBhqpsr1hPqkzi4pCt2BJkNKLK9OOemlzdCAQnznEvswDragMz4+w?= =?us-ascii?Q?Pq63H+VsXtODY0hdMDWnPjWquOuii0yVsX3EiEpANgLZqqX5rc/olWTEuCZR?= =?us-ascii?Q?Vy1ReKSTllqNStquIM+F9WdxB+UskPFRlBZL/3SbXo42uwtllDA5VNz30mOh?= =?us-ascii?Q?C/dkLnF3k5R6iOgjGHXBNgHRm3E3lGa6cKCsey3VfS188oubDa8Zr61AiWrd?= =?us-ascii?Q?C8KaNrukL9LmRBeLjfb4Uy2YOmA1FgLMe69Iw73oiCy9LSHN7um/+KdqLVn8?= =?us-ascii?Q?fRAere3IHdcifSIGIzY005YVuHlapbv9H01H8LHZmpNQqE+Pc/TuKawOOe4L?= =?us-ascii?Q?T2i11IZ/uvizUClc/tHQfocZNOyrOOvKobBxDRrHEasAhmUR7QYLb7hsGmGg?= =?us-ascii?Q?lQpzrg6wYmv8j7im8TJyubBWygCcwJ545uGtgKDWu6oKpBlU17XMu4Cp/1Ip?= =?us-ascii?Q?3OEaVir9imMiLXxApBnVyPS4N8Xpq2qUBn//zU/xhM+lUSR8LySkPhzx8kdc?= =?us-ascii?Q?ucRJob755iyHTH9+U48qdzA3uPozKbTrs6T47Ycix/4ZpOA4ly0q7+KzJOnd?= =?us-ascii?Q?NLVZ1o9OjXLn5ULFLO07eA+WoZJb/7NlM+16hkgZNeoSg0WOIzM5t9gegCfv?= =?us-ascii?Q?dlCQB5Xq/cevb6BwZR3DaCpvWMGx2Gf4xvwAlD7MErcssz1YVCI/ZdCwqUji?= =?us-ascii?Q?37xe5c6yi/rMmmbNjMFhC9Xybmtii3UFIsfp1O95toMt7xbc6nXYQ3dTKmYN?= =?us-ascii?Q?cw/HzsNoB3r2+fKTPe0KG6br6exjMRECBYflJIP4aNqiKSBLiiSLE+3V2xv1?= =?us-ascii?Q?x/nr1CcE8SMWuDNylqKDk4yqLo/wwEePb8Bc3iH4xGqvB2Xc12/sEvNe4WEr?= =?us-ascii?Q?h2bF9XKLQZxYpyKJMHw6174yvhx6rCH8MVGJJV3TnvjcwCOeenSEpDSxQruf?= =?us-ascii?Q?N3GqPMyQWnSoTqCZA1WbP8MwNZsu70t2BtgCoJ6hej87zNHwo3TTjiIQQIDb?= =?us-ascii?Q?2/8MTwBLV4E0OXS3YN9f5RCOtAflAdu95npDdOAmc7myiEMhWID31DtVUwc+?= =?us-ascii?Q?x2Ygu6RznoI2RvUaYTIyxbRWC8BuI7xPVt/qwopkm/kgBNINdeheI+M8+is7?= =?us-ascii?Q?ZGgs2tG5p2o8FL9Lw0Mf1z3UihY3CGsMHWrlCTk6OvNVH+ByNUuUHrCCTj4j?= =?us-ascii?Q?oerTbPccGiPlcxKQamJ5sg+BQaN5z10nuddXXU9uXGKLV80wsqcIVkg4Wauq?= =?us-ascii?Q?ml7fzN0SdmX63hWZRdFAV7M5MahPJnULcgLsuIXxByeaYWU5qIEq7IJHdo+R?= =?us-ascii?Q?MGAa3j+gZy/rdC8URlEXXhoMD1xwIh8IBMuvjiRRKvU7McMnGZr/xV/RrHzY?= =?us-ascii?Q?Yiac+yq+ChkuAbk3AtxDyB8OkQ1+VDBVLBNLjpum3R1BU+WP8C9k4hPxoZkT?= =?us-ascii?Q?SBgeG89zWUgwJfIchA7po9r7lyCq8DPpcsM/QdJiNj1u9P4MzeAc2oo8CpVP?= =?us-ascii?Q?asDO8JM1Z9xDk2aB76myyTkdJM6tMrhC/aw5RVF1LHxFtBSlBlZbrZYIf/Wl?= =?us-ascii?Q?dKOIyU0LQsIpFX6q9x3p0cv/pz1MDlRRTcBYGNJYS2EMyBbEavJU?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: f43deedc-0e10-4114-6759-08df17cdfbc5 X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2026 10:49:17.1056 (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: fphJDEoYDS7a3cG9L6a/d9nnUcA3OoQAuhtqaVyDNDQnho1nMtG/8++kW2chmhdIM/njb0DA23VvN3n6dMwYMe+t0AFnK/iEmzbv1YgG0Px3zy+PWLKY05ArWBFhg05y X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB6862 Content-Type: text/plain; charset="utf-8" From: Chancel Liu component->dev is the underlying SPI bus device, whose devres lifetime follows the physical device's probe/remove rather than the ASoC card's bind/unbind. The rt5514_dsp context was allocated in rt5514_spi_pcm_probe() via devm_kzalloc(component->dev, ...) and its delayed work and wakeup source were never torn down on component remove, so the context leaked and the pending copy work / wakeup source were left dangling on every card bind/unbind cycle. Allocate the context with plain kzalloc() and add a component .remove callback that cancels the copy work, undoes device_init_wakeup(), destroys the mutex and frees the context. The threaded IRQ is requested with the non-devm request_irq() API and freed explicitly in component .remove. Signed-off-by: Chancel Liu --- sound/soc/codecs/rt5514-spi.c | 37 ++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/sound/soc/codecs/rt5514-spi.c b/sound/soc/codecs/rt5514-spi.c index 91290bfe8daa..b7b48a9141ee 100644 --- a/sound/soc/codecs/rt5514-spi.c +++ b/sound/soc/codecs/rt5514-spi.c @@ -257,8 +257,7 @@ static int rt5514_spi_pcm_probe(struct snd_soc_componen= t *component) struct rt5514_dsp *rt5514_dsp; int ret; =20 - rt5514_dsp =3D devm_kzalloc(component->dev, sizeof(*rt5514_dsp), - GFP_KERNEL); + rt5514_dsp =3D kzalloc_obj(*rt5514_dsp); if (!rt5514_dsp) return -ENOMEM; =20 @@ -268,21 +267,40 @@ static int rt5514_spi_pcm_probe(struct snd_soc_compon= ent *component) snd_soc_component_set_drvdata(component, rt5514_dsp); =20 if (rt5514_spi->irq) { - ret =3D devm_request_threaded_irq(&rt5514_spi->dev, - rt5514_spi->irq, NULL, rt5514_spi_irq, - IRQF_TRIGGER_RISING | IRQF_ONESHOT, "rt5514-spi", - rt5514_dsp); - if (ret) + ret =3D request_threaded_irq(rt5514_spi->irq, NULL, + rt5514_spi_irq, + IRQF_TRIGGER_RISING | IRQF_ONESHOT, + "rt5514-spi", rt5514_dsp); + if (ret) { dev_err(&rt5514_spi->dev, "%s Failed to request IRQ: %d\n", __func__, ret); - else - device_init_wakeup(rt5514_dsp->dev, true); + kfree(rt5514_dsp); + return ret; + } + + device_init_wakeup(rt5514_dsp->dev, true); } =20 return 0; } =20 +static void rt5514_spi_pcm_remove(struct snd_soc_component *component) +{ + struct rt5514_dsp *rt5514_dsp =3D + snd_soc_component_get_drvdata(component); + + if (rt5514_spi->irq) { + free_irq(rt5514_spi->irq, rt5514_dsp); + device_init_wakeup(rt5514_dsp->dev, false); + } + + cancel_delayed_work_sync(&rt5514_dsp->copy_work); + + mutex_destroy(&rt5514_dsp->dma_lock); + kfree(rt5514_dsp); +} + static int rt5514_spi_pcm_new(struct snd_soc_component *component, struct snd_soc_pcm_runtime *rtd) { @@ -294,6 +312,7 @@ static int rt5514_spi_pcm_new(struct snd_soc_component = *component, static const struct snd_soc_component_driver rt5514_spi_component =3D { .name =3D DRV_NAME, .probe =3D rt5514_spi_pcm_probe, + .remove =3D rt5514_spi_pcm_remove, .open =3D rt5514_spi_pcm_open, .hw_params =3D rt5514_spi_hw_params, .hw_free =3D rt5514_spi_hw_free, --=20 2.50.1