From nobody Fri Sep 25 12:03:21 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011001.outbound.protection.outlook.com [52.101.70.1]) (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 DCB6F399013; Sun, 13 Sep 2026 10:25:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.1 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789295123; cv=fail; b=HoH/35uYCz4GSp8wzVZPuWA9t/EXa0kKb5vgylyO5nfA21t5rgGXt5i4jCVLkEJHeXS1U+ygDfROcB80LrrkmOw/sJ2ulmFYW2U75EmxLWcmxqEbx1/ZqW4J6tb2lGJ8ID3wVvw5driark/b8JAvnxyzObQ2RZ9OUEkzFpmi50w= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789295123; c=relaxed/simple; bh=uzXSMxCnwOtG3p7LxpFlD88BoHiEBJikDuixF8j6RLo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Q9sBi8HzLuokoocoVzEprsB4R7ovhmAFMKtqbUGQk8SmV4kXmYrqZSmqx11qV5Sfzft01Sg/bGpK4VMLO3rEL4XDbvsqC5Y2KyAtKJ0LLgWysiVQepHpxodVDDS0A11WpB+TInokH3EVUFHo1Thhat9DkRkaB6l8lpOceREe8J0= 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=X+UJL9Ik; arc=fail smtp.client-ip=52.101.70.1 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="X+UJL9Ik" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=V5DCU9oRwl10UkV4q8Z6J6gv1/I6mFI6Jx1rnxzv+KOGVwuHGjaHJM8brH4AScaWfRaVXnkMZfvpFUeG7CIQshPEpNHU6NXC8aCMYrQREBZl2l2zcznSO/wqxpOul4ulDAnI3ITdQY0YqJywK/rk4f9C+QOrQFtc4woqM/KXUnJoJTLej7HTJCJVdyxkM52l/Rqa3COGTADvo0BKKvImTogf3C9m1bWk7GWSe8uXxOilQh0rQbRYNw9OzZGItO4jhieGW1pzXP6TzY5msnQqtjV5+V6rLEFpdokbG+lst+QiuTr41/bwM+MsGCJp/sRjM9vSCWsJ7uJedL9IPk5zUg== 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=UmEtEprRXxTbOYw8Gvjd38oBCXOY4RDIk7O4QrZ/NJQ=; b=Fec8qRzNy88/3vI//GeEtGaxSa+h2fl7AF7GkPwteC38pFuGA3KIe9AgfWmkxgULTz8r4XNFad3c3V2aZAPKzkA6crhdpRdvnUHqYNqtFZaz8ecpG4LvxfGOnAgvvroR+KW/zG+WyQ1xj2GDicrTjGwXOX3tCDYPGnrVCZa1zyJh1CIb/LlCBv7A0zp5S2AP7jSMiMkyIApXNjgQy4DXOADOpdZtE7kQcgBMvpLtBcGerFCzMwsjQ+HFwg7qmWasobH6T5nSV2l0IUWvQPMdYl1VqC/vg0+nk5AWiIZAOzMBKRx+6Ku8QTxX4Oi3pMQNOCkORN4PVBrlMOtbJUD9CA== 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=UmEtEprRXxTbOYw8Gvjd38oBCXOY4RDIk7O4QrZ/NJQ=; b=X+UJL9IkwdXfrshTBFBDmvIt9UVKUwEmIa9MzPqgHWXQE0yFu04Rq2X+DjUONVl/hoW+EhYZr8UdppLq2Yi/h64WtWu8OzBDI6qIEeOel/jzQNPe0xAldescNvDjDqExXii95wn0YfPAEPF6sc65YRLg97cgLYslUkGjgNObVvV3hs6YowAIOspnw3IT1i3Kw3EqaxH5+yKKI52joUvavWmjzgTmZoV3292heeeCHB9/4msPAIp63dyqvpjny3GXiXC6vaLFyNfQZhpIbL8iDP4UVZ7pk8/SxFlo6FwNc1SADOD46yGbF43y3Tr9JnqTXs3V1Xi3O7FhIjqYCGIntg== 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 VI1PR04MB7006.eurprd04.prod.outlook.com (2603:10a6:803:137::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Sun, 13 Sep 2026 10:25: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.0406.007; Sun, 13 Sep 2026 10:25:18 +0000 From: Chancel Liu To: Mark Brown , Kuninori Morimoto , Liam Girdwood , Jaroslav Kysela , Takashi Iwai Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/4] ASoC: simple-card-utils: Add simple_util_remove_jack() Date: Sun, 13 Sep 2026 19:24:59 +0900 Message-ID: <20260913102502.2805912-2-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260913102502.2805912-1-chancel.liu@oss.nxp.com> References: <20260913102502.2805912-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SE2P216CA0204.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2c3::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_|VI1PR04MB7006:EE_ X-MS-Office365-Filtering-Correlation-Id: ef1c529d-2ced-4750-51a4-08df11814ed6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|366016|376014|19092799006|1800799024|22082099003|18002099003|10067099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: 1SX4s2OWYJECUcFzodVLMfa2Ei1uXGAhQZF/wO/6Qg+L62ahVGs1krzR9K98wZ2OBbgi5TTRdkmduEki5eAZOZP2DTag7EAEMOjXVWKdoBm1IB04zstjdBNwdktaRa1BkwPXnPlbHPuXCuQXVUjvcsH6XbwAUMUcAXuTk2JBMztm7hTjZY5dT2Y6hYQfmW4T6izc43wGnAn5gz1Em9sdVf+nw6pSMN8u7UhaupjBQscy7Zqkt0kTDDoYWqiExdWBzAJMFz7V570zi7ZhHrIvBFn6bjhi4Y8RUKEBkMOHI8Uir4Njq54uG1cMNctWkTMIU0Ome38lPGnlvodFVcUfvGY9QK0EStImlP83m8yQt/zdnyi3bSUTVJUxdC9Ax7MjpqiWJgSGa8eBbi8zemsTaBS7gaSgmx6GrtWT9R6j3l8bOBHc3izeMVs+R3TXh7f1zaStOnDj8ZIVcLTs0HXGYEXZDLMHc+9RBDAfmHVkrK663N0P6OXihBsG/mtMj6X54gVsb6+KgzoKPePCJbTY9HDoVPA/GPtrGjIbRQv7I40aSHQnZXlc9KB2nlmY+GDdHwdsdyuShi8MGxtXrKmUg77KTIo2COZuNM96mLouQJm+vfQWjrUhEdwoKlE8HZqr6pBt3Xq+elybrT1JD3jXg7mpecm62mFTUctYKUjhd8c= 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)(366016)(376014)(19092799006)(1800799024)(22082099003)(18002099003)(10067099003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PBdeGybR2ULpqiA0wkbLF1a6WMqYCfDud7KsH/qv3TPxGXEqjHlu/ZKJPq5S?= =?us-ascii?Q?J5Qft0uD5DJL2cF1Y/WVqvIRgSkxd55EwUIQ8l66WIDyThkSVxEceFt9agzU?= =?us-ascii?Q?KaHxgvGpjJd9yTcLmGkfiVRchz0iM7LJzVBabuZW3ayoEkSDNOql7Af+WVqJ?= =?us-ascii?Q?gSYzcbzX/gTaid8kx2ssT/hi7phh6HOWnVMAFXhnsM39TPLIC60/+QpGRiJ7?= =?us-ascii?Q?FuOmAqbafZTSjKaJMK2jTZAOKUslcbu7PrbiF4qB0L9lCqvCLJoiD0zTJgt9?= =?us-ascii?Q?xrgGSfbUzqrffo5hESQ3iqvIP/Qr6Pd6e6e4m3mr1gpaEVbnmVa+XDOxLMbY?= =?us-ascii?Q?XkyeweaqWagMgiGgTkQUghBFet45kAe2RF9MihRRY15BHhI9I4yPJ6c3uheY?= =?us-ascii?Q?HM+CbTLKYaSvLkTQU4LlDKsnJAkN9XNHjxhQa5n9SguBvaZ4mrAcUFrYpMsf?= =?us-ascii?Q?sGzNPoZ6LVn+3VUn3RZm8EwTOjKxsIsN+/V2/RlHsm9w7D7vbN3srhCdkJ3g?= =?us-ascii?Q?Gl9nAakE49VGzoi1qFaZ2sjFGTFjSb14zYCkvq9YrbeIrD+zmlrK+/eGfkE1?= =?us-ascii?Q?G13hx44BafSDwg6c4GRNzTp7dTLXuOIuGTerHE852sWzcByy2msiBI5IFNf7?= =?us-ascii?Q?0P4k8j4kAh5SJKYVclSkcoW6IthIPHq9CTaDuGDIk8lMPvddvpSkRPjLZ7BL?= =?us-ascii?Q?AegaEBHp7khyRh5TyHZ+Nz0rDxs3o/AJe9odA9WRPZx0BFjFcc8JTuQ2IDsc?= =?us-ascii?Q?wocuXNNixImqJ6o2PTbaDVP40Zb5dcotKmS9Cd+t6qT7uXEdRqR2IQdRPkEU?= =?us-ascii?Q?vS2AOxthqx3LWnprfthhzDket31Uu95zVC+LAkKDVADJw6S3Z2mLj6xEdfUo?= =?us-ascii?Q?Ej8/5CsiH3bhK+oUMUGcVMzvUUQXrzsqdNKRQ9chJcfujAaZpYLgrpVV0uKb?= =?us-ascii?Q?yxuZtrSt0Yrl6mCwlKF2eBVMQc24I1hW9pth+Wav3fBfZA9cEJzsVBq6fTAT?= =?us-ascii?Q?0IXTw42X5crrLoNs/iZssdF191/6gpfnLIanITHMAUGcXErJSkq8/W6igpDl?= =?us-ascii?Q?8EsQ1F2oD+YZ1eazGbdnPIlBqip98NS1gepwMQP3M312K/BOb9dz0W+UQZ3+?= =?us-ascii?Q?T2dDqduijIVV9ZIaTRVVoMzetX7WB9t50QL0NDkvEgtG5wLL8QQ3GsIrexpt?= =?us-ascii?Q?jXZFHwP9U3S9HPf0nQTtHmHr0q7qQuSYUizY3gnWMmgR0m2NyblGtPZmq+DE?= =?us-ascii?Q?GsmYlMKnwxcAOyx+ppJAjdtQKVXtp6qrl0JqMNAkeLe9R2RA2/xuKbmlysHl?= =?us-ascii?Q?tTGBsD/FOtc5z9KK3NIqvYT/SYEqY+gi+7TVzAaPLsdddoNoTYn1N6shR9nn?= =?us-ascii?Q?jK7CAMicHnRmoDQP4a0DedsN1G7W5G1UVxMGkjz1rKiNft/CwpmiVSZOKl8Z?= =?us-ascii?Q?uI0e4phIDx73PJj4yb5i179J40W4/q+mFAMSEltcgpGmKZWppxtA0ZBtzk7M?= =?us-ascii?Q?wsjDnVT320Ziu0j08VayhdLioqEuIpY7fCjacJJ+DTedYVDJXYDPtqeNbbwT?= =?us-ascii?Q?X/HVFQmUMCySxYOQEsH1xE2UIN3LeUaF0GEjMEgKsti6ywm1fJvOLDyzSUoE?= =?us-ascii?Q?cEmZwjo6H07BUgT2brzy2IdW+nhKBII4lcSoGWrC/gxD4TfzaQd69u16D/GK?= =?us-ascii?Q?VXF9XHQ9eD9RP6OdfpO2sVDkgCddGIh28N8+dqqu7hvCw6nbpfJqyA8GzQOD?= =?us-ascii?Q?6nMYs0J6jsLvMZieIwck9uyfVkvHIWGBOJkflI1xkWqJXujLhLpB?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ef1c529d-2ced-4750-51a4-08df11814ed6 X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Sep 2026 10:25:18.2245 (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: XZ4MHsO6oORnhcj4K8xZVo+Lqt2bWXDYsMQRGd6w1EX5nJdkzfblxxxH/5TDt8dUCR8ByW6C4O4dhr9WgKqZqld9CYldULswKrvkmfebRLI0scy4w79mpxNOrZ+dOdgo X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7006 Content-Type: text/plain; charset="utf-8" From: Chancel Liu simple_util_init_jack() acquires a GPIO descriptor with gpiod_get_optional() and hands it to snd_soc_jack_add_gpios(), which additionally installs an IRQ handler, a PM notifier, a delayed work and a sysfs export for it. simple-card-utils has no counterpart that releases any of this again. Add simple_util_remove_jack(), the counterpart of simple_util_init_jack(). It releases the jack GPIO and everything snd_soc_jack_add_gpios() installed for it via snd_soc_jack_free_gpios(), and clears sjack->gpio.desc so the descriptor is not left dangling after it has been put. This gives the generic card drivers a card->remove() path to release the jack when the card goes away. The devres cleanup alone is not enough: it is tied to the platform device, so it does not run when the card is unregistered and re-registered while the platform device stays bound - for example when a codec component is unbound and bound again. Signed-off-by: Chancel Liu --- include/sound/simple_card_utils.h | 1 + sound/soc/generic/simple-card-utils.c | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/include/sound/simple_card_utils.h b/include/sound/simple_card_= utils.h index bd8c3a033577..b0e00555092e 100644 --- a/include/sound/simple_card_utils.h +++ b/include/sound/simple_card_utils.h @@ -219,6 +219,7 @@ static inline int simple_util_parse_aux_devs(struct sim= ple_util_priv *priv, char int simple_util_init_jack(struct snd_soc_card *card, struct simple_util_jack *sjack, int is_hp, char *prefix, char *pin); +void simple_util_remove_jack(struct simple_util_jack *sjack); int simple_util_init_aux_jacks(struct snd_soc_card *card, char *prefix); int simple_util_init_priv(struct simple_util_priv *priv, struct link_info *li); diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simp= le-card-utils.c index 7df5253499cd..b91924d31c1a 100644 --- a/sound/soc/generic/simple-card-utils.c +++ b/sound/soc/generic/simple-card-utils.c @@ -825,6 +825,16 @@ int simple_util_init_jack(struct snd_soc_card *card, } EXPORT_SYMBOL_GPL(simple_util_init_jack); =20 +void simple_util_remove_jack(struct simple_util_jack *sjack) +{ + if (!sjack->gpio.desc) + return; + + snd_soc_jack_free_gpios(&sjack->jack, 1, &sjack->gpio); + sjack->gpio.desc =3D NULL; +} +EXPORT_SYMBOL_GPL(simple_util_remove_jack); + int simple_util_init_aux_jacks(struct snd_soc_card *card, char *prefix) { struct simple_util_priv *priv =3D snd_soc_card_get_drvdata(card); --=20 2.50.1 From nobody Fri Sep 25 12:03:21 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013058.outbound.protection.outlook.com [52.101.72.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 CFC9639EF12; Sun, 13 Sep 2026 10:25:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.58 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789295131; cv=fail; b=s5JslXiIFZxenh1D6R6E2BsmIsX6wK9I1q6ndaQfi+tXOkFm5XT7Tvd21zWnyvcvolurfwS0ineiC9MkzPClCGd8SWqxZdtmMcE8WXr66CMARHYOjxTBje2CnuVEy2EK/ZHL5kuG9MpC9bl4qZK8eYjFks4zF1PK1GXmrtndu7Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789295131; c=relaxed/simple; bh=qh+kyh1Qeo4LHlYVdovn+0l22N/mg+bBebPpz68Ft2Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=AZ5UbTTic8QSUsEpFaHNzpqzkeWzd4uPvM5wX1gcV9ue+CexMJblZvdvozEVLpKtTiLtdNWXPHGAkWQIzzv9tEoC28zxTWk/LsCkynkYqlgiJw8tWTx9/W92pWeFFyAmgSbrmc1Idevq5AaMSMzwxfLSRDEKiLcp4RmGs0d8HCI= 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=NYoULDor; arc=fail smtp.client-ip=52.101.72.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="NYoULDor" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Mv79Fep/UDVV8xxUNiZU8c92XAbxCY+AMTS0gSYGQJ/OKTUIeBldNbd8nhU/Ay24ebVRWe8skJn0x2Sb+7LyXg42epihrHZis7j0G0kEexnNjXENI7zCZfuYO7LDJi7G6BCQTo1M/tlmFjmDSO8rs4R8pJuz00L/bszz86OYNlk24ReR6tToiFSYUbKzS1+Tnp1nHGI+AGJR0XmIb8Ylu9+nWNTRfPixoYSC2S+vQcy5KqhOfnXu1bTBb935kifZ13rMqc3Pay9YjAQRuUiOhI7xwc/y7SE/9tV7ivPmYhTqXr++795AyMMSinAExI5XOgkPdcM1j13MuQiOQw3tpQ== 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=1q1iF7/tWEwub7UGJmbWKbDi2qUHmWD4/MzHoXfqk1E=; b=Vnu2FxtSK2uLJoCWX8Gc6uneQT8teYbrcv3jnQcNXJkFlYQx3Y4dbIoBBuM5fZUGFg6P/QI2xRBVZdlC7RLM2mNZF1fe+OrPRtEbOLB0g16VYUp1qGlv68exwCEMQ5i2ERdkU27Hh9UHJqc3UZZgNWVYcE1CAXcuUqYd32onYuYI8KBplUSfQdrRkxRDckhbG4l3q5wZ8XBbXSzU1G+M6CsxtTPijlBzxYL3bTX363VLO/NHOJE0Z0RKQPaWWoD5OTO09WrByNgHvAHnuL6zpcEXJNh+ebCNvPtyW5Y1UNRpFbyc2l/PaxYKKxgfnaxPnNpbpdyuH2BGNhK9sxzOBg== 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=1q1iF7/tWEwub7UGJmbWKbDi2qUHmWD4/MzHoXfqk1E=; b=NYoULDor3QLXvPaG08CqgdAWDboYLIXN1paprgFCbYx/OlWRdRxYIEvpiezmEqxv4mrEq+ymHnRa76O+5UwE7BdveiKWd+4jEejevWV4DbkOgKACd4M/LP/o0xcRQgDLDH70+zCJpztIVmcKAuHYDT6p2tMHayVk9Q46bHJKcspNOVrh+/L5x6yXXt9+3PV7YJjPCLGakRgj/LomJAjlJfSnzGz6sQKB4Hd7S6uKZkajqCh5pfUpqcmbxOAGJelN/ekwr9Ntm/qNr71t6UQ1OUrYKyM+xTBFYvxJ3F0+uCjBvM3sYgk4jtcdY2KwZrr90EnxMmxECns6EVRAffOOvw== 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 VI1PR04MB7006.eurprd04.prod.outlook.com (2603:10a6:803:137::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Sun, 13 Sep 2026 10:25:25 +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.0406.007; Sun, 13 Sep 2026 10:25:25 +0000 From: Chancel Liu To: Mark Brown , Kuninori Morimoto , Liam Girdwood , Jaroslav Kysela , Takashi Iwai Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/4] ASoC: simple-card: Free jack GPIOs on card remove Date: Sun, 13 Sep 2026 19:25:00 +0900 Message-ID: <20260913102502.2805912-3-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260913102502.2805912-1-chancel.liu@oss.nxp.com> References: <20260913102502.2805912-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SE2P216CA0198.KORP216.PROD.OUTLOOK.COM (2603:1096:101:2c3::7) 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_|VI1PR04MB7006:EE_ X-MS-Office365-Filtering-Correlation-Id: 461ffae0-a214-4217-4067-08df118152df X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|366016|376014|19092799006|1800799024|22082099003|18002099003|10067099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: +z8mIYmQV6kUlIB6FFH/jLFrimyVxRKrUv52o0uRCrNGQ6DNJrPSXJOM9vNI627OR7GGrEkJDfGut453cqbAl1Uk3OmpCPwXUKuKRvgo/tQdW0ZmWNNt+rcHwkUdPh7Qh+Qc+kpAEgvFAMtLrfNgsuwfCeofiF5XUnFizWK877DSwSf/YQSD7jBnC2wL1QaCyMZUtf0fgYepnXmXm1HsUuo2RewJIK65I1wZkjCZIz74K2bleGD0uvh1n3mLw3XnvPuU55nblw+9TN2tkNOBXJwTldQGgBDFF7tYjOPz0s5ybhO/vbtturqrv1uln9LuWylWTocNQfqJ4hUr4FF1/3xLZ19ECxkCnY3Rr/TbSoCKA44xfTrMpjrAeYswth/PLRuKy2Mat/DY/xMBcwi7pjrNJoiuy4jX0JEscjHUL2uNWJNKeNwTgJ1M0fijOqW2Z1VXVrIXKE8K0+5OkL1Fi6xKP0Gl0D3qCK2vqcEAMFT3FUTr0OTq4tpb5+ZWOuGcszaS/QkfDTYYhKzPeneW82Idqj1svkRLRgendzA2KdtZBHV4cPhfdPySHCaHEGxgZaXLINMPRxVtv7UCnc+vnf3JwDEF/5FaDc+6n7h7KnS5VMpiEZLG55g7EePamTuJv1iW9soqp0daSIKCNUz13uPnmblNv7MngW1umTWSEPA= 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)(366016)(376014)(19092799006)(1800799024)(22082099003)(18002099003)(10067099003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5UdwMSrBaSt7t5cmA+E96aZjXtX4EOHLunNqbhgv8/8L5BJCX0XlQuADDNjL?= =?us-ascii?Q?3qyg/Tf48s6JfqI9DAALPRv0QWBwXmJ3JrtrkOGnkg7sXH+kmC3CpkIE23s4?= =?us-ascii?Q?W/XdiqQ11kuY0aG/npqnm/+xgka4jUUsPHAWjk9FccwE3F46Mn6/izctsKE1?= =?us-ascii?Q?NpnJE+2R2+1oUDtd9gT50ydg94PoUX6y2C/rSr8wuz5UG/9PsJm98eM0QiE3?= =?us-ascii?Q?3uzhSJGkZ+mgoihbuisIjYy5aKeEVxbfrRql5/g2UvYFZJT4EMlj5V0trK+p?= =?us-ascii?Q?FEXnsPuB2GhCSabKw+vfxvNi/o2Nr3IiWsA5IQxgT+w8g0xiA1RE+XjZefWW?= =?us-ascii?Q?b0chJSm3enVOCcz58jb1jxdwIsexhh7ZwDijDD6U7/7k3fnO4tbWP0ouEP8t?= =?us-ascii?Q?diL7byPucTngusIg6kiSK1ZbKeLe3fO36ljRKe6A7e+f27qUCrRHEincKlpZ?= =?us-ascii?Q?HmMVLLaHW2K+phZlkDCgXrW6P7Xw8xjwRP1SB9sgB0CY+6JxCD0y6ORzJD+S?= =?us-ascii?Q?fdBG35GNSdYZZA6JH4hvHoY+pYntEIdJ3U2qsuuw0ioiwRC3nyoniWAEhuhm?= =?us-ascii?Q?qcM6sAXrEmJJ2tHT+kWDTBnq60gmqX7LLJB/yjLIDsT26369Wcd/38RqmoaR?= =?us-ascii?Q?Scqmsnc7raPmGVHk6vNtlQBZ2qbicwbf9A4IQYkjtqmSf5M+vAdK5zSS7qku?= =?us-ascii?Q?b8Y1tvhIuC9LmmeDG5B5Z6jPbMpqpnXfsgMTebFB1MVK7um2YeG1VZiTzOUC?= =?us-ascii?Q?Jm/N5oWP2jfvu5tF0llquNQx+IIKWafhGuKBLVWC5B+aWM9g/DynZGnmqWjD?= =?us-ascii?Q?ki+8hydNZNl14M5tIT+CDdQnJUX8mu7XtX1VK0QeKRil6uOKtB28SPUb2+Jq?= =?us-ascii?Q?veaCnqnRQ6wPbUtLZ8EMACdsBbEQBnRrOTZW4/bkmh+OVRDVINgBRVLxXOBS?= =?us-ascii?Q?mTQAtmvJ5ugLNrUaqJ1DLgDgp3YsJ/KM78X9VQqwBQaL+ZOq7os69ycYnrqi?= =?us-ascii?Q?D3MjGUVVypZVMoSHlJ8TR1qb1fsKq4ntBZGupV5cvWGJgtT4fyF3Mx8hsqBT?= =?us-ascii?Q?e4dZNWWcGJjHlnBuUX5IW96i1MSOoEaJieBq7FLqB3SHYP0Y2rAij8tNylMv?= =?us-ascii?Q?99bQ7m/aYlJCHvgMYCxdSoi/nGOiFxoLmZDb2USHiRZweXiYhlyDsnUGJ6q4?= =?us-ascii?Q?6fvN1wC1jttjUs0j/IqwDon/MqWlW6Q7UHSJ3Gdn9pElGxgQcScSbVGjPCRo?= =?us-ascii?Q?XES42QffCSCRqUhsdVc/CSNyTKGjA7cIHN/E6egN8Lek4p4UY12yaHrkp5sV?= =?us-ascii?Q?+ReKL3uUA4YuJiq6E14ucQrCjJICeCGQYLEgKVjyfZXd5/3RZaxdGai1Cow7?= =?us-ascii?Q?fKbGYiUw1+jDtIAYqTxf+ORI9ec5nRa2D9wkyv4Yo3SRhnqLxuD0ilCXxicA?= =?us-ascii?Q?mMQfuq5VkjNn5fUNN0VttkyaZB4Vveji3Vq1keqJRX+iFgXgH9EvSyWV7Ofz?= =?us-ascii?Q?Rpj2b3ll00xZBD79r9l4kbaH+A9IfPICea1HErdXAlSTpseu9s/kysPCoZiT?= =?us-ascii?Q?t34kckArv1rNXXtaDco2PtiNQH8p3aqpZtQMmBgV0Irm69ahJr9iNI/gWq+5?= =?us-ascii?Q?Ja7z4h8TM9Wn2wLO3LeyeOLux1VSNtsIi1UMu++Oz0+YG85Qty63nTTuJgNd?= =?us-ascii?Q?f+722ek+C+6s/bCoDx46ISX1SlM8fAifmuxAP6V3OPQOR6hiyz7tdWR7m4IX?= =?us-ascii?Q?a6z0KpRDOlxzYad7FyRWT9YsBfY3TKswUuqs9Wh+1Mdq0unGq3T0?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 461ffae0-a214-4217-4067-08df118152df X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Sep 2026 10:25:24.9897 (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: H6J3f+l1Cv4VSZt2AYQ7QGKWZvDVpzjm+mDlvCmhyOfkzBEHU3iuVV0uBi/tWVUJLj9sfNFh7rXtHM8pLQLJT1PGb/JXGbx7wIYQPE7qla/9SERPpF9yz98bkveAgmIV X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7006 Content-Type: text/plain; charset="utf-8" From: Chancel Liu simple_soc_probe() sets up the headphone and microphone jacks, which takes a reference on the jack detection GPIO and registers an IRQ, a PM notifier, a delayed work and a sysfs export for it. simple-card has no card->remove() callback, so none of this is released when the card is torn down. This goes unnoticed while the card is only torn down together with its platform device, because the devres cleanup registered by snd_soc_jack_add_gpios() is tied to that platform device. It becomes a problem once the card alone is unregistered and registered again while the platform device stays bound - for example when a codec component is unbound and bound again. card->probe() then runs a second time and gpiod_get_optional() fails with -EBUSY, because the descriptor is still held by the previous bind. The card is not registered again and audio stays broken until the platform device itself is unbound. Add simple_soc_remove() as the counterpart of simple_soc_probe() and release both jacks from there. Signed-off-by: Chancel Liu --- sound/soc/generic/simple-card.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-car= d.c index 0a769c177149..b2fc91b8ab81 100644 --- a/sound/soc/generic/simple-card.c +++ b/sound/soc/generic/simple-card.c @@ -666,6 +666,16 @@ static int simple_soc_probe(struct snd_soc_card *card) return simple_ret(priv, ret); } +static int simple_soc_remove(struct snd_soc_card *card) +{ + struct simple_util_priv *priv =3D snd_soc_card_get_drvdata(card); + + simple_util_remove_jack(&priv->hp_jack); + simple_util_remove_jack(&priv->mic_jack); + + return 0; +} + static int simple_parse_of(struct simple_util_priv *priv) { struct snd_soc_card *card =3D simple_priv_to_card(priv); @@ -754,6 +764,7 @@ static int simple_probe(struct platform_device *pdev) card->owner =3D THIS_MODULE; card->dev =3D dev; card->probe =3D simple_soc_probe; + card->remove =3D simple_soc_remove; card->driver_name =3D "simple-card"; return simple_parse_of(priv); -- 2.50.1 From nobody Fri Sep 25 12:03:21 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011051.outbound.protection.outlook.com [52.101.70.51]) (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 82B8E3E4500; Sun, 13 Sep 2026 10:25:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.51 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789295143; cv=fail; b=USDngCUF6uVWrrKpALrfZV2ji3ppAmBMkXYekaraYDxt++onK1Wkts8fbrSFanVd62r51oQfQ3k/mJeOY4cEEip12CuFqDYlSpoMQ7rH41DAzJ5QMdERiZVPyb/uV/HQ4DhWdRLxvW4pxdUwK3FUittxuK4I6lnAXe7v4zwzXHY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789295143; c=relaxed/simple; bh=XM+NNCiL2n0Vy2tzgdVhuCuQxF6DD1XdZ2ZGAtaUetI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=rMLjQLUjKHy4x6eztJejIVkac81YukZ94JI8Y4y99jVUNJI40j3hf8+t+yhMW0ZcTkojRlABh3KaGidmynI5TM5NHOJnqAtYiW+eOhoAQXObMUR3ms1kfkWt9G1W55ckMSTThgu1t2hdy4P7o7U9QfItOfFkpO4x9VXlJwKCGLg= 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=UqRVhSrr; arc=fail smtp.client-ip=52.101.70.51 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="UqRVhSrr" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fvq44xe6so276Aa1ULFCtAXIR23bDav/Swc64kY0dDW2FOUEAocaGAqCrzlidV9DLk3fn/wMgpePnX6ibedJd6hQzN+cQe3+sDn7goGlYzxQk9BTRVubAyAL3qwRlvn0jUJafMEEWv9p9abna/WSBjUIS0gMsiuh+k8+Ww4iyr7fTM3JNdzacXpbWzNMei4ENsMvFLjkcDsFnFNSF8MYQE8yFDN1hau+l4jIY1MQ1mIqeiaJbSafsO1mlnICUOtG2bykjLYJnWbtFlLH5m8ttzA14OJ2eyoHg0DXR/d56/ojA5qiVPxKP3pEGyvYa9p4rF+OQX/UUFR9rA1JYS26Yg== 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=Ci4nd/5C6hyI4D4TFBnMcKwYbE8fdmy7HTv6nXZ+zkk=; b=IoeWPIe9SAloQGrJVgD9puNmiF58KQ3XNikxkAhsTUX/H53+bIqQOBZG56CU3A4ApN3IXkgrPKR7uLx10M5VUN+EeNpYn23qB+CQqdmTf1BV4fFima2NWwfwuQBEjKwwVcAWkSu0V2W3vGR7twm9P1n31/hhA3VIP1CXSEhF5c5lNuJhTGV0M4hKzhAtFzQjoNBJwNMVjWP5Y4RVGxTpO6Gwkobq9rR/aXXnEiKAUNGS+44kfSEOgF9q0I3z1hlQVcZh9jLP2fT8z8xluodfJLsiAO7GjwtnJ1tThTykwtEqBjzYicn6lBmSms1osdhpmu6wojLVaWidLSDbY/wNBg== 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=Ci4nd/5C6hyI4D4TFBnMcKwYbE8fdmy7HTv6nXZ+zkk=; b=UqRVhSrr+UXl3PGf7D2rhfQcbXMDaBDUdjfTvka3r9XAOIDLY7g7a7deCKcy6sHsplv/XxYMoEDy463ktazjRcGgYxwBZk/SvGHE3T7/mLnbuOYZvGDkTEP6YFmaj60nznVL9UYS6D0ANkijK7Q2xOT27exwoEheXPY2gJeeqtjZr2E3i/pib70olAI0Du/JZoTV7aW1NC/qOSYpIokeIWlJZ0HmOUp75ACc3l5Nl3loza2AoLYJFUwDhrxYFcwvR4C1R2HewbpjouRiCAnHUK8awqemCkACJeY5zESS9Po8SLtWbDA8L0S8BGvi3uGRFV0JKSNd9QTGGTIs+/f6XA== 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 VI1PR04MB7006.eurprd04.prod.outlook.com (2603:10a6:803:137::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Sun, 13 Sep 2026 10:25:32 +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.0406.007; Sun, 13 Sep 2026 10:25:32 +0000 From: Chancel Liu To: Mark Brown , Kuninori Morimoto , Liam Girdwood , Jaroslav Kysela , Takashi Iwai Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/4] ASoC: audio-graph-card: Free jack GPIOs on card remove Date: Sun, 13 Sep 2026 19:25:01 +0900 Message-ID: <20260913102502.2805912-4-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260913102502.2805912-1-chancel.liu@oss.nxp.com> References: <20260913102502.2805912-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SE2P216CA0043.KORP216.PROD.OUTLOOK.COM (2603:1096:101:116::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_|VI1PR04MB7006:EE_ X-MS-Office365-Filtering-Correlation-Id: a77ba83e-7c3c-45fd-7794-08df1181570d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|366016|376014|19092799006|1800799024|22082099003|18002099003|10067099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: ZzxdNbipPrgWaAKrXzCuKqgairu3f3uZT/oJw6OWUv7G0waWHTovbxy1tb6o3gqK44HHtIFmOhqY7FlNmx7XrBanOn8skuBFOPBczAF6dycEEXpnTBTtcZZNGQsWK4cJai7qp7VQV9ZYI/5mehnoHj1vgOkEGgJIs1LpbXDVGm0x27uxvEqnh64N+6CdS0aaefzW6da0kilkrEJMqDQrwJ/7mTz8GElbzl457nKHwB0XlsmQhpRlunM8/li0wzbAsMhAsG50xb4+RhHCRLPrFZDRsEZWIEaT8qB3N+bOk+NwCrXxuTdQ8FCB2W32DrxQxGpTAkTAMlZPd/nX0ps7wjnS9XnY4vPq21TK+3vHZMhZJAd9oibhOEry46I6roC/R17LnLgL6QsJh7srilS0yYNAKOCfP7F5+BZljn/pCmvSl22IEgotaAjM1Q/zg3V7Vzj5hn5yN+kiaFzeZzWu3IZJrh5MWiMceZdEmV2J9T8VEMoOqdEqrstnfpaaT4pIvaVinb6SbdQoeliRfRYQ8/X3ECOxyDFEr/djQ67tUqBPNVMWrw0NjjmwvCRaurS9pj+dyOYeVTaZiubi1WIoruYvAliI/LIIagIhnq4C+MkYQjsIbnss5boARJ+sFzH92oZKuGhtTD3tBwSoxcsmL0+WEXj2uqvequELdwfY3bo= 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)(366016)(376014)(19092799006)(1800799024)(22082099003)(18002099003)(10067099003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?/mVySa1XDAacl9QizNa2WWS6rLna+RlRnaL3TSAezlcEjKhNAAuoLS6RjDb0?= =?us-ascii?Q?M2I0oN1QChywRyzYxC0xIIjJIM0x+TW/FqYbDtNmxpe+sd0sQobXz0tmaAAs?= =?us-ascii?Q?y/qOV3cdNFvRnjwq4f8CB1xQtiWzW3ZHlt8BvThfHpzanGpB8XDewqN3FfhN?= =?us-ascii?Q?A6bSeDlX3Kbr81b3/ZwxTd0G/zI8XXZY/Twt/GEuivxDptrWuc5sbWe19dk/?= =?us-ascii?Q?1V1ZDmcEGVFW2YrOQ7o7odDHuTLTau8w0940/Beg/AMP0ObgjFnmXo2X5nnO?= =?us-ascii?Q?fGdOnSxBSozyuLdTl2tXF8RAezejlm/I23ALsJbk3ignWuYWt6EblE4A590I?= =?us-ascii?Q?IRhvmYcDpvtc84tbJYuxLN1TTaiR8d9j9nkVBZg+KJk3rRRwFhEcAaGyuwIh?= =?us-ascii?Q?SCoUJmb9XacZ1NubWadMAVliW9XHW7v73n+eNk7QgUffQgumkWZQnKGRnMQQ?= =?us-ascii?Q?F/3UAWoHAcw6MvRGF1wfGgKpl+FPAoTOI6tx+MsDcyxqeh7CyBIYfwdzTkl4?= =?us-ascii?Q?eEtyGBx0t1uRC4NsQuLXvQOBEKZbUv40RWQ84ENBiBqntSezwthBSZILZ/bp?= =?us-ascii?Q?/LWQf0xpAc7dsIvDpCj2goENpAewaKYXjbfNgFEajC2tKh/fRL15p1a6w9p0?= =?us-ascii?Q?xySbwXLYR7qrJVackIi6Pr5FIUeKXTpJRTkdrLr4XLKb+cDBa8r8Ax6PLRom?= =?us-ascii?Q?hAUD05rG30/Z/6algkQbcZbam2kbM4AMrVVO7uydUAUykjI4blr1P49aS490?= =?us-ascii?Q?YWD1pH8IO1l1EJZtTwhFCL5AmKZR8I3x+sGi0c8ZnqaoK0WE1+OSkbTEl9US?= =?us-ascii?Q?9n1Uloi6YRYPEW1dL1a8WggxAlzpFPxyfW73jEVBe/C6+3ST1+kfVakuy0wg?= =?us-ascii?Q?6rjWQsziBsQD/w7BlrsV35p1k9CKwykYxm8gCnOaA6QlP1DxBP9WInSH0gGB?= =?us-ascii?Q?H8IzBdRuw+P3T+mYYDxcuuQEXjcpYPwG0URcI59kcQGpYWCa1v2e+B7kcQgZ?= =?us-ascii?Q?VbO1Vx3XZ36dH1I/schyOazNr1VP4zt8gOFW+ivKdksijejreR54Bh5JBnGb?= =?us-ascii?Q?y0Rr0M1tpl+5YchY0gy4JBZYP7ureAMlSnk4SCPJG3rH8hkHoR1mL0z+vv+Z?= =?us-ascii?Q?L+t+lP4oU+PJaOcLToCap0qddBzhK5BgsfVC5Dj2cOtQOOogO5tDJZzCpe42?= =?us-ascii?Q?VXrrbuYfD/ybcho7a3EufCNCfoO71fgdEJlHN/q1VEy7VHIL//bnDpWHfnG9?= =?us-ascii?Q?dEzvxtdJggsRH7dT8l/d4+AJW/QmpX8PZ25t/08zDw9SNbdXv5wYk3oVZ4Ku?= =?us-ascii?Q?9pdAgREYAhNDCb64WpEqYb/JRVGKaXCUK8fj5xXX7o+4C3qcw9+buEAvmKvs?= =?us-ascii?Q?nhEGS0HcGAwCW39YjXDKHY/1xF2xwmMI+XIj2z4jySWRuhTXOTwO//6NBV2e?= =?us-ascii?Q?twL2WFoq1LhAxGbxRhMeaQ3BepiCoZ21zmTVwY40RhCHDfryu9MokdZvECk9?= =?us-ascii?Q?UTmlufNlwCveY0g31O1tj5JkdguQB99hSNpkHRUL+5fxnej06mOj64vrPUNp?= =?us-ascii?Q?GMmRSc5UN3xNatsovBtRx9UJWOtCqaP7j9K0J7VzBeFOGjqIWZIvPmpvVvER?= =?us-ascii?Q?NRKyexwu42D/g9suIrT3daXoHF7CZ85TMbFj+UJmqQ7/jEjeKgqFu6s+6KZh?= =?us-ascii?Q?r8dF1H1+ae7UN3ekac7qPaK9yanUY33Hm6F6I7ExL+eu5r0IbX4B+qEKf5aV?= =?us-ascii?Q?u3T7WE3/P5zTSahzMKBpIUSRTMrwihyPwg8byRvC4zmoVW9At+c6?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: a77ba83e-7c3c-45fd-7794-08df1181570d X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Sep 2026 10:25:32.0178 (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: 0yUFPcsXfv+CtUP+RwIRsVdyrpWEVzVPFH7DlVHQ+q6ZTG8EppDUreh5Om5pHw5C1SoQiYuxJi+S//1luxm2susuntmWCfdIwOpmd5pkd74Wg/K5Nd3Dm/nc5N0Stfet X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7006 Content-Type: text/plain; charset="utf-8" From: Chancel Liu graph_util_card_probe() sets up the headphone and microphone jacks, which takes a reference on the jack detection GPIO and registers an IRQ, a PM notifier, a delayed work and a sysfs export for it. audio-graph-card has no card->remove() callback, so none of this is released when the card is torn down. This goes unnoticed while the card is only torn down together with its platform device, because the devres cleanup registered by snd_soc_jack_add_gpios() is tied to that platform device. It becomes a problem once the card alone is unregistered and registered again while the platform device stays bound - for example when a codec component is unbound and bound again. card->probe() then runs a second time and gpiod_get_optional() fails with -EBUSY, because the descriptor is still held by the previous bind. The card is not registered again and audio stays broken until the platform device itself is unbound. Add graph_util_card_remove() as the counterpart of graph_util_card_probe() and hook it to card->remove. It lives in simple-card-utils.c so that audio-graph-card2 can use it as well. Signed-off-by: Chancel Liu Acked-by: Kuninori Morimoto --- include/sound/simple_card_utils.h | 1 + sound/soc/generic/audio-graph-card.c | 1 + sound/soc/generic/simple-card-utils.c | 11 +++++++++++ 3 files changed, 13 insertions(+) diff --git a/include/sound/simple_card_utils.h b/include/sound/simple_card_= utils.h index b0e00555092e..68faec56970e 100644 --- a/include/sound/simple_card_utils.h +++ b/include/sound/simple_card_utils.h @@ -226,6 +226,7 @@ int simple_util_init_priv(struct simple_util_priv *priv, void simple_util_remove(struct platform_device *pdev); int graph_util_card_probe(struct snd_soc_card *card); +int graph_util_card_remove(struct snd_soc_card *card); int graph_util_is_ports0(struct device_node *port); int graph_util_parse_dai(struct simple_util_priv *priv, struct device_node= *ep, struct snd_soc_dai_link_component *dlc, int *is_single_link); diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio= -graph-card.c index 0a8a6d891d1f..127c2e6b308e 100644 --- a/sound/soc/generic/audio-graph-card.c +++ b/sound/soc/generic/audio-graph-card.c @@ -629,6 +629,7 @@ static int graph_probe(struct platform_device *pdev) card->dapm_widgets =3D graph_dapm_widgets; card->num_dapm_widgets =3D ARRAY_SIZE(graph_dapm_widgets); card->probe =3D graph_util_card_probe; + card->remove =3D graph_util_card_remove; if (of_device_get_match_data(dev)) priv->dpcm_selectable =3D 1; diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simp= le-card-utils.c index b91924d31c1a..de27163eeb0b 100644 --- a/sound/soc/generic/simple-card-utils.c +++ b/sound/soc/generic/simple-card-utils.c @@ -1028,6 +1028,17 @@ int graph_util_card_probe(struct snd_soc_card *card) } EXPORT_SYMBOL_GPL(graph_util_card_probe); +int graph_util_card_remove(struct snd_soc_card *card) +{ + struct simple_util_priv *priv =3D snd_soc_card_get_drvdata(card); + + simple_util_remove_jack(&priv->hp_jack); + simple_util_remove_jack(&priv->mic_jack); + + return 0; +} +EXPORT_SYMBOL_GPL(graph_util_card_remove); + int graph_util_is_ports0(struct device_node *np) { struct device_node *parent __free(device_node) =3D of_get_parent(np); -- 2.50.1 From nobody Fri Sep 25 12:03:21 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011051.outbound.protection.outlook.com [52.101.70.51]) (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 522623E5A0E; Sun, 13 Sep 2026 10:25:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.51 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789295148; cv=fail; b=tnTeaYzV3sc7bkOnBLyYOkDGrIzoJG0QV1kmchopBVFD98/qGkq97dOu3EVcSR9NtLRruQKTN9UhHaB23TBOlXnOh1cup6E68JFiqxKP8+VBOgez/6Bw6qfJ/h5WaaIQSL6X0RrEv8tNT0+oHesblzrmtI5lME1pwjZILFsqxtA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789295148; c=relaxed/simple; bh=75ALwQBydTWODIyVJj9u+2IKtRt22VOIgG4fbZIz/FY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=lDdrZIs5iBiLn6D397nEUOgIlUl0pRjf6rfJdtHWnDch+EdHYNJ7Jqtei+WvuioAqDNlgzZn/WEoxTKlndQsYiFblZZR6aeduW42dUqRCISjALBJ+UJkJPy760CqPZkojNwHUa8BeFRDfgjjuuYXrxZvQQNuXyP2DJfJHu8NwAM= 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=UhrgfH3c; arc=fail smtp.client-ip=52.101.70.51 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="UhrgfH3c" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=E0o0n4m6vP0Ekr5jCV7IHwIRSnn2mE3u4ScgNFHauUpxcH+vCRuNGvh32sYtkmzaxYCXMoVRwJ0ihW2D3XZWqHxA0B9dLbBTU4pBAPOTPApHsKQoy4Y8ZgIysCj7z8qRfVNis8yrMHoIv61FkAa1uxySbOnYgpSfdeZdeJ+/G3Ul7OlvYeJMzI7M5/RjDTVPtXHs9FNIDbbpcXsKYp1kICiJHt9kAt4eYGxWchNOWYsag/N9bPRH6Aun1lKjysGkqKObSoM461qNG6GHDvD8Xmjw3Qj+Lv74LddAye4G7i8iQ1ZNEsO9IAL1YWib56xbiaw2DIzRjp2HZX29oVKHPA== 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=UkK6I9s5uKU1recQfKuHVMIt2oRWwq6XIZpjL+ZAKgM=; b=SMYgi/dbU80LxZJFfI+Bj3YYDLa5BqYOaPPyVcVRo8uhaf9nvUMOEJXxlnve5R2u6O6y2oUfa0fUGw3tKSiHwdiuQuvOx76hsHRLQK9+pDtVGPlva3AHHRHuFtBAhAC7m7247IYUdydbuH27ZaQcR6wPopIXHCcGOLgIF2XNr1gmGJy2vgfs2xghu36PTGWabR/TaGeuUrvVP2fC9+f6znsjrBecX7wlnupLMBjhltU/hakMehvJfpgvan1Jd4Nz9y3z6wNgdgp6p2r4KWR8vgjMtLbYouSTRzVrhciiruGW/wD+BnN5fjA6K3xjJdm6D2IkVt2K2CdQRXpTN+8sMg== 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=UkK6I9s5uKU1recQfKuHVMIt2oRWwq6XIZpjL+ZAKgM=; b=UhrgfH3cBpODKqRn0jOnSKy5+GBTqgTp3Og32kriexGDPyRp21v1/ykuIQDRsFiDBnUDqh4Z3oeiYg+6/K9tbYdMD45krFxnIfIkWNXlAldPv4rhoNGYkmUU+f80aE7m4P0nPaOqTtZ1kDY0sJzQx6uExL2pRjnSIQdpOmr2/RyyqyFYPP1jXQksL66ZnotdX4Q1nLWV7/H3PujL2q3g9LOvAYgIO1hPL1uDCgAbnnZUwLO8KUQ5JDjcPE86nifdXWaCdBeDRAzQv6Drd8OWJJTpUbWmldth15EVYBTdQnrZ7SKbGErEXMSdI76+0n9WVJHLR2qbsVbkVpZ18z/u9g== 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 VI1PR04MB7006.eurprd04.prod.outlook.com (2603:10a6:803:137::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.406.12; Sun, 13 Sep 2026 10:25:41 +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.0406.007; Sun, 13 Sep 2026 10:25:41 +0000 From: Chancel Liu To: Mark Brown , Kuninori Morimoto , Liam Girdwood , Jaroslav Kysela , Takashi Iwai Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/4] ASoC: audio-graph-card2: Free jack GPIOs on card remove Date: Sun, 13 Sep 2026 19:25:02 +0900 Message-ID: <20260913102502.2805912-5-chancel.liu@oss.nxp.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260913102502.2805912-1-chancel.liu@oss.nxp.com> References: <20260913102502.2805912-1-chancel.liu@oss.nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SE2P216CA0036.KORP216.PROD.OUTLOOK.COM (2603:1096:101:116::18) 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_|VI1PR04MB7006:EE_ X-MS-Office365-Filtering-Correlation-Id: 9207d60c-6b38-412f-85c3-08df11815c42 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|366016|376014|19092799006|1800799024|22082099003|18002099003|10067099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: wUhNA3dRVb0p+qrAOBk8qzoK6YhNpOPlOpXj24YJMvI5jWvoLKw8TtYtRxiTD1pnyIpGRWSkj8dTHtwixaxH9vk0kzfyRWYt9n84Ub7WBCwLZqrvuvjnpUxRXcwYgqz09X2aCE2pJAsVi8vBm8mPfZHEN2/dBbIQv40LgPamIJkaEfV5+Z3ZOfC+2TnEFN1b8xdLoLX5QNdZWEK+RMJBG7XF6uPXb6xr/oXJE0OB/mIhBlJZFg+3s0V7p/SkjjLuh0JxVuDewyTRDb/O+Haqlz+YQWxj0G7SDOFMvME8RtDb7/OUtwJzpNAH2F32dwc+KNEi7XGQo21dlLSh+SM2yO//t4MsnmY+4P4nnfyjsEhOIBgT4gndRh8hOdozOWrvpak4JYAimbJ/mq/npp2TePLc7wegsPO26+RRosXlXI39Mc1oAN5gwyiMu04/7FUEc9BrVvcmwYtKZPTWH7ehx30oN2B43jAnhT656bfhpNAKI2Phk6rHAW9qVQjpjnE5WfpYsZ+1MfamawsqRmLCqdEHCvgZe2YRi6NJK9anejKZBhYHfe8i8U7DErXgN7sfdZ23c1KyKJeULVqYTw20kk9OjBp76vAe9gcKrmZOlbyap6pKv977hPgWmdR5kJe+MIKWKpKEAFYbRYHmvwV9iRqJi4bif9QoVxz/qKwy3uQ= 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)(366016)(376014)(19092799006)(1800799024)(22082099003)(18002099003)(10067099003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?YXWjwrYIcAoiayYuD8NPSY+pWxShmr5xcpkyR4ZEUCKh5+0X/7B9tU4oJ7Nr?= =?us-ascii?Q?NFUCjARtVlMFuK1q8ZiQ3LcKqInUGcOVmvfIn30gyqeunD3s9loM43hhNMIo?= =?us-ascii?Q?w70X+c8W02NPd90hpnnG+yWqA0RAt4OFGhA9x5saLuteebgMGA7GLWb4C6wk?= =?us-ascii?Q?4lVaRtjXUQTPwAuHo2HDuG+1ekLW5c9XWTthQbF+aAr+B7npS154vL5/FqY1?= =?us-ascii?Q?gv2wJ5AUqA071jnETcW4cmjAq4OyWt5bXdXBGH7NdIoja3aTfMdfmWw9Jh9w?= =?us-ascii?Q?TKpT3SUVf5fIRwvxt2RQFsNoefwubZLMhIb6uVY5hHXrhKItvmYUo+0pGzsZ?= =?us-ascii?Q?gfcjQJPsXDtqxl/jqCmIH2Z1/xIcPk1bL+L1jt2O7euu/vXqgxcGhxMRCMDq?= =?us-ascii?Q?e61OGQ0b8Ydyza4Hij60cYj2/OoU+OCqATj8C0DcxG+N2kUDHcxXb+rhnhwz?= =?us-ascii?Q?ZDOrQ8esAJWf42wX+j5CmsRvA8WR5xL4g8Mmv3ZaIvV/1WDpJhTqHZriqJYN?= =?us-ascii?Q?WKpbe9ZWjujAl74ftYR/ioMODdbGvxLwrTDelsOO+rLlafI6HDDBhzMgdid1?= =?us-ascii?Q?y2Hpj6ijnEtUEIieQqP2+/akBr+O4hGjqSRdjq+O5JoMu+eHN1UzmGIE1/c4?= =?us-ascii?Q?REpqUtJedIJv7kbIKiaMUGqmzYw9M6zxAsg5uRz10PYewVY3gS6aKjyU/zJ9?= =?us-ascii?Q?83ux9Psiyd6ud5uNOggV/jkP1KvZqBo+y0ZQtZvqQctbMfXvVNo9kg/ieAhw?= =?us-ascii?Q?RTGvjV37NSl+MsE7cOT7nKYIIkWw7HEKKxhtLaid6erZ9OtYW8L+htwKfxdc?= =?us-ascii?Q?k4kYjTR8qgx5fUa9cVaxllZGJNuazt8QM01jimlAQmf890qdmq321YyiShNF?= =?us-ascii?Q?DNiALkFwSmc76nBUVxx/8EHgppLkhhTmZEBECOget0v0gf3eCyt4rhoJUI6J?= =?us-ascii?Q?2ERbR9JtJrQLla8bCR7dZ7t+c2UVu9/qmtUq2r9FOnY53Bq17rFXOOw80REm?= =?us-ascii?Q?zkE5SXGIU+YJrQFFFYnmBfiU4zN91JzMktrvXBF2+J9TB9CzlWs/JG20P02v?= =?us-ascii?Q?4/J8vo+JqyTHpovX+E4VeWUcFs6YM6ONg24ziIkBNuNSR7UTj7ZioYJhgoEF?= =?us-ascii?Q?eDG0T+xa6BrHa0BOb9dCwcB0gnWz+gU09QtkwTKOt7FbQoyMktTnH7dsJLP7?= =?us-ascii?Q?TW8aop6MzZKam5OiNzBD2kZaCR2wu8jlR0OPmreoBEs6uQZRv7Izkpkz7dKz?= =?us-ascii?Q?/MYImCUqxkAG+j8Td/HuarL9KzbNNMsHB6wX+FKh+MhAm+PgoQyps7BZaKZg?= =?us-ascii?Q?BT5s2k+WTn83WSHVk59xYiiTBDRStwm3qcyffTxeGlNnMuTYOmOUfZndmnSY?= =?us-ascii?Q?l2HjH/U27kA/q5J653XoYqzLSsCmoDVo5oQ5vaEm2fgVmzsmgdypt9TYvhZ4?= =?us-ascii?Q?8tpPzeZRDxiECccuGLBJ9C/K2HVxhL5nycU1UNbx9UrjPJRoCUp8bw+5tJlO?= =?us-ascii?Q?4k4wMdt6AfUtKKyELObel5YmxmuMz9sl8jbExrw/tJ1ihILWV0we0ngPxo+v?= =?us-ascii?Q?NnheiMoi9f8KUUBsy6kBYillqbYLao8UOoOu5UA0KRLu5LuvoBzWByrRl6wQ?= =?us-ascii?Q?K0TVhkEowww+oYfhRszXcGNSkECAlcOvtKVraUdu1I12YVnmGOTDCeXzZBLJ?= =?us-ascii?Q?DDT8hfyfbTEFZxs+KGIFKWTnBt84QJMkCJhIwR2HXZw0UFf3xBZb/Y+W/0dn?= =?us-ascii?Q?4pCshsfG6HeeqylASEu4tH/t/71n4HryxX3b6W72gVfE9/RcI7ho?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9207d60c-6b38-412f-85c3-08df11815c42 X-MS-Exchange-CrossTenant-AuthSource: GVXPR04MB10021.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Sep 2026 10:25:40.9937 (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: HiuSYZ1j/9lRswJOjc9j3ctUf8j3XUjiddfmsOV/5/r27Okqo19x/IlEoU1wcH+Hi0RPXgDEzRbsGoGd5FoXpxObEHBSiFDVU+bFnwOm8rFbfWthG4NnhRwMu5hotYK0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB7006 Content-Type: text/plain; charset="utf-8" From: Chancel Liu audio-graph-card2 uses graph_util_card_probe() to set up the headphone and microphone jacks, but never released them again, so the jack GPIO, its IRQ, the PM notifier, the delayed work and the sysfs export stayed claimed when the card was unbound. Re-binding the card alone - for instance after a codec component is unbound and bound again - then made graph_util_card_probe() fail with -EBUSY and the card was never registered again. Hook up the graph_util_card_remove() counterpart added for audio-graph-card. Signed-off-by: Chancel Liu --- sound/soc/generic/audio-graph-card2.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sound/soc/generic/audio-graph-card2.c b/sound/soc/generic/audi= o-graph-card2.c index 9fb3d3df5cf6..e11bc8135cb0 100644 --- a/sound/soc/generic/audio-graph-card2.c +++ b/sound/soc/generic/audio-graph-card2.c @@ -1310,6 +1310,7 @@ int audio_graph2_parse_of(struct simple_util_priv *pr= iv, struct device *dev, goto end; card->probe =3D graph_util_card_probe; + card->remove =3D graph_util_card_remove; card->owner =3D THIS_MODULE; card->dev =3D dev; -- 2.50.1