From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013054.outbound.protection.outlook.com [40.107.162.54]) (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 1114F4A3D4C; Mon, 5 Oct 2026 14:24:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.54 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791210295; cv=fail; b=jbfba/88in6D83KzBTXyadhGYopfT6KIUh0e+YSOQceaPOcgBKXcBewwy5NNw3UucA1iwOUxEwjCRow8M2dNvypja65duEi/oZRks7GgT81P5C208aR5xbrlW6OWH+idVDo+VsIWWilFkb+KFxRKWKR3krK7BB1bChPtUcY23tE= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791210295; c=relaxed/simple; bh=LrMlUv798VV2vzrdIvWwfMT95oC7uMFKq1K1odHQA80=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=WLD54Hj9632zFzqy7Asm/Pv6SxcTaT7wWsXOxUYweD0x6BQgR8NXGPxhZ5DIhHB2eDOyNCj1yaf+qwarpWdz2QXvNuKyEf2gvoKNTrUcAzXTF9hbb+lmPAAkpKYnLB25j2ZLKdMK8WsnhLZX6FvBfzBDZXH3vkwbhDJy86pjVz0= 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=yAKzKcA8; arc=fail smtp.client-ip=40.107.162.54 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="yAKzKcA8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GKcSsRWZtilHvz48wlJEkyX0s0s1dlNNY34+LAHnKhdQF/XgUhmbWJt8/mAEEMt8YV7W7ByruMUHpQPFHtlZ4zBBuD1y2vvsOubSFwxL90A1OpAGgSmNSavky2hQzpTVTpK8nKLfh0IGgSjXF61N/VB8rAm1iRuM1QbgE1BUE0Ep5XABYnlplpbFZAw6wUDVJkZGn2pH0ur4mNwydnrzvZCQTLDK6r0YJYXMIcxseZjnaVqaQSWxRd7ydK01m3pcogMA4oMUG++5wqhi3wb7zFcV+aDuoX4zv3iIb6Jtxqomw80GezaCFYFeFiretv4/7kqTorUu/KEwRV/nho+mEQ== 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=VlFCPGCA6HwR3h4HWyCa9W7ou8tMBqbKDlwn80vswtk=; b=s1BAmSQw1eMb0x8qjHvHyKr7Nxh6xs9hl8jAFr8OQMK4BLmeM/aLvqV/T0C9Q7eA/lO5jzTDm1mGsZ4/OLq48SHNS47Nq6QKKfz72CiSlTjA5Ei4NBgZYNAs5iHVcpoiVqLzS/ZMlFTUaNeZTV4aKLJ47VBFuc7nYGIwetOYiOhKOwAAt66SZJFXGBatBgTk9tQ6OsDP6gCNriy22rrk+ywnLnwDuXpIzJcyKOA8gex7/N5R6uwwY4fJFj1gj0/giO4dECT68PVhA0e+LQuMr/dKVg8piLk5nYSu8UABs6zyi+b8PFN7LgPJlAxjQObINlBU6ZcMvaCpclImYJt0JQ== 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=VlFCPGCA6HwR3h4HWyCa9W7ou8tMBqbKDlwn80vswtk=; b=yAKzKcA8Q4GM5JWCUg5PCPmkYZ/lFMgQdTTbs5P17h85OS8VmbKSntuw2yg0QSOD47GulY4hyJ3iRzbapXnfsJC/M1nF3eLKhOhM58Uw4xoIPQZylLr+7bSq++icd2/R2sLfH/FnXSWkphYlsfPR7UEMQ/dNgVwSM34H06esKCbC/McQtFedJs30vg/6HfJAmBfXEPl8efaVtdJbT/WYaY8h9Msy6rfX1GkQ8cy/++ING4BFVzJRMYZP7B6qSb+o1SfaRQnQHx8aQKtemFFF47N1TiRhSe6v4d+UDm4HS7O2UqBLLoX+LTVSQSWBnGACzbXeSQo+YYIukkYQO3ve1A== 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 AM8PR04MB7874.eurprd04.prod.outlook.com (2603:10a6:20b:24d::9) by GV1PR04MB9198.eurprd04.prod.outlook.com (2603:10a6:150:29::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.472.20; Mon, 5 Oct 2026 14:24:35 +0000 Received: from AM8PR04MB7874.eurprd04.prod.outlook.com ([fe80::ac38:1699:6f18:c5d9]) by AM8PR04MB7874.eurprd04.prod.outlook.com ([fe80::ac38:1699:6f18:c5d9%6]) with mapi id 15.21.0451.022; Mon, 5 Oct 2026 14:24:35 +0000 From: "Peng Fan (OSS)" Date: Mon, 05 Oct 2026 22:21:26 +0800 Subject: [PATCH v2 5/9] gpio: mxc: convert probe error handling to devres Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20261005-gpio-mxc-cleanup-v2-5-bdc3afbb35e2@nxp.com> References: <20261005-gpio-mxc-cleanup-v2-0-bdc3afbb35e2@nxp.com> In-Reply-To: <20261005-gpio-mxc-cleanup-v2-0-bdc3afbb35e2@nxp.com> To: Linus Walleij , Bartosz Golaszewski , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Shenwei Wang , Andy Shevchenko Cc: linux-gpio@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Peng Fan X-Mailer: b4 0.15.2 X-ClientProxiedBy: SI1PR02CA0047.apcprd02.prod.outlook.com (2603:1096:4:1f5::15) To AM8PR04MB7874.eurprd04.prod.outlook.com (2603:10a6:20b:24d::9) 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: AM8PR04MB7874:EE_|GV1PR04MB9198:EE_ X-MS-Office365-Filtering-Correlation-Id: e6c7b18f-759e-49f1-0e0c-08df22ec6198 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|366016|1800799024|7416014|376014|19092799006|56012099006|11063799006|10067099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: BRn4xdWio2EBQS0hTXJdU9qJNW87zzIptU1nDuI44VDarhcu6uqM0kUXCWDsRNYLlmAQy82goZOK5d2E1w5Du4VL8Df6WW1x09OlQSWyokyMZus16iUeiCOFk7d1uMLTv3R4jaGM6/OivB1cTUK81I1EetqT+XgjzNAp0h+iD8FnJb0209ZX+EA1s1Xa3Qb3cu/mwQbsn95NrPKrSjHQFLavHQQvKm8GYcFckHcuXgX8ncO7y1y9gi9lM+/ID93AvfvV75gQunM5ano/T0mNEc6g+ZjAv9GWgGlOY/F1JMcj+bAVeWyF19wNgtjmXY0HpB8s/fltqy4Ij4Nbt2BhN2DFCGoSG1Joan41nIMpTzu1Qsxm7MOBoJZMhJ8A9pvA4jVgg/HodKInMbD3WmT1eifYT7NtRZBz1jm2KCGJp2yv3+HVSefySOOk/2M33hlSgHmFW2qvQBYe3+fpspOBcPay8whMVuCZyAY1v34SdKPt9LNQCLgyl06BKYVmyWjHZcP1GlbgKcCfnVGJ9C7hRYzB4FhjffSCz3n4w1jDfUcberXxS6c7Mbm0BtS4aY3/fzTY3YQ7jAqA87SgGltw8lRzxReoiRVnkpVN5Y/TNaI95Rpsfr/PE3i+By60xUEsiwZXCcFFFm+xshW9xdHtFd3ivK+pKtJV5ARBQVcbUk8= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM8PR04MB7874.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(366016)(1800799024)(7416014)(376014)(19092799006)(56012099006)(11063799006)(10067099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZFA4cG12MEJka1E3cUUzbWJVM2Zya1d3ZjBlTlNreEZGOGk1bVQzelRRRzhJ?= =?utf-8?B?NkhkN253S21BUUlBN0grdDNOeWl6RGxrcFR5TERoVVdTTDE4aFhmaEsreHRr?= =?utf-8?B?RTFCb1kvN3dNRDI5UGtuK3lKR2l4N0hzcC81d1pVc3N0cHM2RGZCaU14NjlL?= =?utf-8?B?cDdkdkVTRitEWUhqLy9OMTh3TjhmN1ZjQXRWby95RlNTb243SWlmQk1JYkdN?= =?utf-8?B?VHNQU0RmUDhFU3pMbjlrSVMxY0owdjRqMDVQRFhNY1RoUzhRc2ZlcW1rak1s?= =?utf-8?B?cnZKbG9PTFNCNjRxK2loL0hsNEdHenl0N0VhY0VDSnd5YmNiVzllUDNad1ph?= =?utf-8?B?Y3pta2RQM2J4SzBTN0R6YmRaeER3c056VFZZaEk2aVBjU2ttZllwSHpaRkd5?= =?utf-8?B?YnBsM0VxZVN4aEhRRlNWWGVlUFljZ0xmYW1OMk1GVjM0dG5STTVwZ3pNTVF2?= =?utf-8?B?SEU2TVVWRXFqWTFQcGowanlaYXpSNTNoL0YwRHh4WXk2czFrYUdoZEZoZnYw?= =?utf-8?B?MXNiTVN5OTRhQVVpWlk1TFNpd2xpdmdWcVR4dFZoTTcvTzJ1Y1NDNklwT3Bj?= =?utf-8?B?dWtORWw5V3JhWXBPY3VtbHFCNmpZYzgvOXRvcEw5MkdQOCtYeDBjODdmNnlL?= =?utf-8?B?THVMRDZYOWhlUHpiRWZiNDBseFRNb0U4dFh3blNRcXAxVVJCYTBMdEd0cktH?= =?utf-8?B?UG9JRStWdkRTNXZ6NFBUMjZXRHNOemg1eXBOSnExeTRyMXJ4OXBMaWNLYVgx?= =?utf-8?B?YUdDMU1QT1MzUThwMS9SZUg1ZmtMUkRSOThEb3R5M0t5YmFzN1BjaEhRSm9z?= =?utf-8?B?WmZCRGthWEpUYk9qL1VFNis5Z0U5T2ZqUnhNT3Q0bytmQzlCeUFOUDQ3eEcx?= =?utf-8?B?K3BKZm81bE9FOVZ0dDB6WDJhemJaZlNUMjZWTHk1bVZNSmFQSnQwZTROY1pz?= =?utf-8?B?M2VYY0ZDcjJLV0tKajQ4Nmo4SStxME1zK1lUT003aXJieW5VYlhxTUJGd29U?= =?utf-8?B?c1dlNDJmUW1sVHRmQzZIa3I4ZUxYK2JxL2ZNMy82K1NIZ3BtZmVEZVdhT2h2?= =?utf-8?B?d2lCU1JucXROTFVIcEZTL0kwdmRwUHdOaEZMM3dzWFZ3K0tBbis3NHhRdjBC?= =?utf-8?B?eE1hckl6UFNiaXE1QzlZZXRsZDNrUVhOMnNmNXJabm5CMHExUHlydzhqMjZa?= =?utf-8?B?UDZzeFpZRjNYa1A2Q1J5NzVPa1BGekFVMnUwd2dtaUxHVmFYaUVMOVdVcVg4?= =?utf-8?B?SVVsQjdOeWhLT0hzeklUOThzaFBtR1h0Z0RPb1VqZWVpQlI2MDhSNGNudE9K?= =?utf-8?B?QllGTkFHWlRGdHlLNVR2a3dWZ1JPeUk5MHZOdHRKRkd0UUpCSVpQNmIzZVlR?= =?utf-8?B?M0U5bitoa1hJUUJ4R0gxamNQM1Yvb1BEK3Q0d2l3Y0pNY3VYK1BzNWFDeDU1?= =?utf-8?B?WFN1dmxsR01paDhxL2NYZ0srRFB5TlRBZ1orOFozTXZIZkthV3VqSUxFSFVj?= =?utf-8?B?bXRTNXU2MW45QmZxak80NWFoc2QrTjBRMkxYTmlzQy9ya21CWk1Mb3V2L25D?= =?utf-8?B?d1ZQa2V2c0s0WHBVeUtlS2lNZXV0YzRhbGhjV0ZJbUdGYysxNGxrTzR6RllX?= =?utf-8?B?TElNMERQL3BPamNsV3NUSlZnUC9tQ3l4R2tHTTRmeDlMQ3VLWTNSaXQ2ampw?= =?utf-8?B?eCtFeWxyTUc5ZStmNk5CVyt3Wm41QjJPZ3p2NHYxNU5JblhVZDY2TGthamw4?= =?utf-8?B?RDVrSmtQTHNZaDR4bHpUOVp6Yll3M0U0czhpSzlTTktLZzNBMEk3SXJMYnox?= =?utf-8?B?Tmc5R05wVXJSQkl5VEJ5ZFBta2o0ajNNNEZmSWU1TGhkRG9YQmV6OUdBYTNv?= =?utf-8?B?bzFGNkI2SGFNZ3V5Q1cyL01xbDhxclBkRURHY0R2UGltTFNqL2VCNTJpQzMr?= =?utf-8?B?MVp5cnRCMzR6SkQvbFJRbjZFaTd0VlhxSHNkNGdBcUJ2QXJWWnZGSndUT3NX?= =?utf-8?B?RXRuU3FCNzg5a3IwYzl6Vkk0eXVvL1VKM25ZNnJ1NkR1ampaY21ZT2MwMTBn?= =?utf-8?B?SlR3YzZscTVUMWhGNlV4TVl0TUxRWW4wNFZ3QWtZeGxxZVZGZDNtQjNYdlJa?= =?utf-8?B?eGtjRDZvMTJtZ3JpZ0Y2RnJFQk9GbDh2dGpudGRUNlRNY2FIS1hkRE92RkE0?= =?utf-8?B?VnRYdnNIMkpYVXE5bys4NEVaOU9UTlZtUzZVZnM1WEdTdUc5MWZLUVpYNk9Y?= =?utf-8?B?bUZzSFhUZDdNQXJJWDZXekxSRS9JTHgrd0VYa0M0eUo1TE9VSWt2ckxuR094?= =?utf-8?B?cWxkb05nUlJ5VDFPa29VZ2theXVYRFJKQW1WcDVrWkhhMVR1RUViemZNY1po?= =?utf-8?Q?tkx/gdL4w+32dBKZTqMMZgWLRav3jfH4lX7wD?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e6c7b18f-759e-49f1-0e0c-08df22ec6198 X-MS-Exchange-CrossTenant-AuthSource: AM8PR04MB7874.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Oct 2026 14:24:35.7577 (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: /MYpmACrGL1VMc7WzoDqEzI8hE5GfRif5NdnPMJuRaO09Ul6lZW6h3HIWC0scjRKNkij1ONq1Mg2kwy9F3Mj5Llqay+TO8s5sOxQrbKaZA492U9uJSifo83v8YHQ6Pua X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB9198 From: Peng Fan Replace irq_domain_create_legacy() with devm_irq_domain_instantiate() and the open-coded pm_runtime_set_active() + pm_runtime_enable() pair with devm_pm_runtime_set_active_enabled(), converting the remaining manually-unwound resources in probe to devres management. With every allocation after the PM block now devm-managed, the out_irqdomain_remove and out_bgio error-path labels are eliminated entirely - probe errors simply return directly. Signed-off-by: Peng Fan --- drivers/gpio/gpio-mxc.c | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/drivers/gpio/gpio-mxc.c b/drivers/gpio/gpio-mxc.c index 1bd9f5beae4a..871938e4cc95 100644 --- a/drivers/gpio/gpio-mxc.c +++ b/drivers/gpio/gpio-mxc.c @@ -450,6 +450,7 @@ static int mxc_gpio_probe(struct platform_device *pdev) { struct gpio_generic_chip_config config = { }; struct device_node *np = pdev->dev.of_node; + struct irq_domain_info d_info; struct mxc_gpio_port *port; int irq_count; int irq_base; @@ -486,8 +487,11 @@ static int mxc_gpio_probe(struct platform_device *pdev) return PTR_ERR(port->clk); pm_runtime_get_noresume(&pdev->dev); - pm_runtime_set_active(&pdev->dev); - pm_runtime_enable(&pdev->dev); + err = devm_pm_runtime_set_active_enabled(&pdev->dev); + if (err) { + pm_runtime_put_noidle(&pdev->dev); + return dev_err_probe(&pdev->dev, err, "Failed to enable PM runtime\n"); + } /* disable the interrupt and clear the status */ writel(0, port->base + GPIO_IMR); @@ -513,7 +517,7 @@ static int mxc_gpio_probe(struct platform_device *pdev) err = gpio_generic_chip_init(&port->gen_gc, &config); if (err) - goto out_bgio; + return err; port->gen_gc.gc.request = mxc_gpio_request; port->gen_gc.gc.free = mxc_gpio_free; @@ -529,27 +533,31 @@ static int mxc_gpio_probe(struct platform_device *pdev) err = devm_gpiochip_add_data(&pdev->dev, &port->gen_gc.gc, port); if (err) - goto out_bgio; + return err; irq_base = devm_irq_alloc_descs(&pdev->dev, -1, 0, 32, numa_node_id()); - if (irq_base < 0) { - err = irq_base; - goto out_bgio; - } + if (irq_base < 0) + return irq_base; + + d_info = (struct irq_domain_info) { + .fwnode = dev_fwnode(&pdev->dev), + .size = 32, + .hwirq_max = 32, + .virq_base = irq_base, + .ops = &irq_domain_simple_ops, + .dev = &pdev->dev, + }; - port->domain = irq_domain_create_legacy(dev_fwnode(&pdev->dev), 32, irq_base, 0, - &irq_domain_simple_ops, NULL); - if (!port->domain) { - err = -ENODEV; - goto out_bgio; - } + port->domain = devm_irq_domain_instantiate(&pdev->dev, &d_info); + if (IS_ERR(port->domain)) + return PTR_ERR(port->domain); irq_domain_set_pm_device(port->domain, &pdev->dev); /* gpio-mxc can be a generic irq chip */ err = mxc_gpio_init_gc(port, irq_base); if (err < 0) - goto out_irqdomain_remove; + return err; list_add_tail(&port->node, &mxc_gpio_ports); @@ -559,14 +567,6 @@ static int mxc_gpio_probe(struct platform_device *pdev) pm_runtime_put_autosuspend(&pdev->dev); return 0; - -out_irqdomain_remove: - irq_domain_remove(port->domain); -out_bgio: - pm_runtime_disable(&pdev->dev); - pm_runtime_put_noidle(&pdev->dev); - dev_info(&pdev->dev, "%s failed with errno %d\n", __func__, err); - return err; } static void mxc_gpio_save_regs(struct mxc_gpio_port *port) -- 2.51.0