From patchwork Wed May 1 12:56:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 13650628 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 13409C4345F for ; Wed, 1 May 2024 12:50:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) id 03100C4AF19; Wed, 1 May 2024 12:50:37 +0000 (UTC) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2087.outbound.protection.outlook.com [40.107.8.87]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.kernel.org (Postfix) with ESMTPS id 257EFC113CC; Wed, 1 May 2024 12:50:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 smtp.kernel.org 257EFC113CC Authentication-Results: smtp.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h1R/2kBSygpawbf/OUdQzHQ8cQ643vlrYxy6pXl1/l1ON4OJzlLvioqsfrMReStt9XDLrf4ryILDcawhr27WTx8bebUSzgEdGUALzgDeCDRBbF+wTD0wZjPBTTFvtQ7q0S/rajXTrIXzton4inJuxl61cVlyLg8/lBxrjD+e4LnPvPh2j2XnRdXmZxF1/v2d1qhXCUqvMMIh7VZ5YmbK6wUvi4ANQoRCpn7PtPKvCwbHIJZFIYyAAlyv3lvRhMkTfgDE/jSdDGgUU0G7YtJqDwbjjslA23Zdio8axpWizDTlRLKZbeweoqlLRNhRjC+JHQSS8UtDz3bPjgvfbs8nbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=0Y2gws/G4cgntx6EEddCXLTNXN/B4Rx9dThNutE6diQ=; b=iq0gi+X5N7Mi7NnfaHH1V9/sFOuQ2U9Ww0xT1nDaMNHqXbYUQtHIvHHJY+jij4BkkT7b7WDCxVbPeGVP9DZ6qWTSCFGXOw5gi0Z2N9pPUvIeTGDNbJmLxfCxlt//n+Lx3BdsQY3ID907DrZaKL7TNKQbZ+UZgpCDqE25EZ6Mh8RejuzS6UvzlhGj46ymvBsRz0o97Lc9NVlCsZlQNkCuP7ogu1ZqHEai9YZC2KGfkw9VEZQbSyt8yNPsEXHlv1xs2NJOZ6m5W5p1jgSjMXf+Sou5sy+6vCIRuUFbQgVHvTXl+1NiczKbIbo6/tzgGkDeARcdLzsSdjnD6gkGe1n9xg== 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=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0Y2gws/G4cgntx6EEddCXLTNXN/B4Rx9dThNutE6diQ=; b=Zm+NsPPcsYoi6mAXOX6uaMJwH+ovuA2QxuaOUEq/1u7KpzczHyQAfDM6BCMhDSdv8WNr8CQGv1PQIF0GBJ4Efcvp4ja/+p5G3wCpP4/vJxb3AO47VyE39qn1x7WNLTdy71eh7daN/nEnag8UFvmfnk7MNUiocdWO1nzb8sEJ8p0= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by DBAPR04MB7448.eurprd04.prod.outlook.com (2603:10a6:10:1a6::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7519.38; Wed, 1 May 2024 12:50:31 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d30b:44e7:e78e:662d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d30b:44e7:e78e:662d%4]) with mapi id 15.20.7519.031; Wed, 1 May 2024 12:50:31 +0000 From: "Peng Fan (OSS)" Date: Wed, 01 May 2024 20:56:06 +0800 Subject: [PATCH 08/21] pinctrl: samsung: Use scope based of_node_put() cleanups Message-Id: <20240501-pinctrl-cleanup-v1-8-797ceca46e5c@nxp.com> References: <20240501-pinctrl-cleanup-v1-0-797ceca46e5c@nxp.com> In-Reply-To: <20240501-pinctrl-cleanup-v1-0-797ceca46e5c@nxp.com> List-Id: To: Linus Walleij , Thierry Reding , Jonathan Hunter , Dvorkin Dmitry , Wells Lu , Maxime Coquelin , Alexandre Torgue , Emil Renner Berthing , Jianlong Huang , Hal Feng , Orson Zhai , Baolin Wang , Chunyan Zhang , Viresh Kumar , Shiraz Hashim , soc@kernel.org, Krzysztof Kozlowski , Sylwester Nawrocki , Alim Akhtar , Geert Uytterhoeven , Patrice Chotard , Heiko Stuebner , Damien Le Moal , Ludovic Desroches , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea , Dong Aisheng , Fabio Estevam , Shawn Guo , Jacky Bai , Pengutronix Kernel Team , Chester Lin , Matthias Brugger , Ghennadi Procopciuc , Sean Wang , Matthias Brugger , AngeloGioacchino Del Regno , Sascha Hauer , Andrew Jeffery , Joel Stanley , Dan Carpenter Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-tegra@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-stm32@st-md-mailman.stormreply.com, linux-samsung-soc@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-riscv@lists.infradead.org, linux-mediatek@lists.infradead.org, imx@lists.linux.dev, linux-aspeed@lists.ozlabs.org, openbmc@lists.ozlabs.org, Peng Fan X-Mailer: b4 0.12.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1714568179; l=7744; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=VeeKDmVQFVd8U6dtzX+Yajlue65C4XZpXk6FDSk2jZ8=; b=GjOh3r0Wz3VqGH8e47xY8Tl+zHfs0c4a7emejd8aav46XxJ40wN5UDFD8JIY+5m4vEqAFIcIG Dd8NJ7mUJcTBSSvQGK6pnvQtPNFzalqmOpKN5v2UL0paRoMFo2tsXKl X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SG2PR02CA0064.apcprd02.prod.outlook.com (2603:1096:4:54::28) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR04MB9417:EE_|DBAPR04MB7448:EE_ X-MS-Office365-Filtering-Correlation-Id: d4d7ff38-bc6d-4b76-f92d-08dc69dd4925 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230031|1800799015|376005|7416005|52116005|366007|921011|38350700005; X-Microsoft-Antispam-Message-Info: =?utf-8?q?rFEcu2BCn5ROGyHAIHlTppB0vTgtaeP?= =?utf-8?q?m+RvYZmifjJVqVedQ20mglKEBXwpTy/Ca4SMFmngPe2RGG/q1DE2ME3R9+j4l9dq8?= =?utf-8?q?Oy9oFXXCovqa89aIfhYKBr1uuS9Hj08CcvY9r1/KRehp8iWkpcZy8XSY7xQwLC6ld?= =?utf-8?q?H2LLjouYFWb2S41ptjbANN7goUQ4imbXo3AnTXWxfIPF3hPyjnYKo/vroGVdX1H1n?= =?utf-8?q?xB+ZEEMsdd6s2UOspqYDr9PFnjHR9n1+d7ejoodKW9/Xci7cX+uuoTwvj7K9th2kR?= =?utf-8?q?sneL+hbJ122fCxvFTJ0sfqTVDgAeXZJbPXElCHGnB8loUazDkjeCTnSDGVrlnrUuC?= =?utf-8?q?voetUdHCzuomFQo6HEofklwqhTG5QTe3KAxB8kru1gZ8VKD2B8MLFcSDeXeX3YyQf?= =?utf-8?q?CT0wvk1n5Sz01TtbfRkFcQqgnotl7PytZ5N4Lxbk0EjWrkjfXgE9hmP1A0igZ/JgN?= =?utf-8?q?P2o7J5K/b8TgOMwN4IT2kmhmtlTxOTrEETkRTJenKG65VAyFEVaQUTeqsptLRJ5VF?= =?utf-8?q?cfCQoIMyU4wH9A3arSq9uJUkj/0nztVj+fsdOojwt/83AVQfbQUYfWfJuKtCfpkTu?= =?utf-8?q?si6So/pSStG73Y4HID5u5U9Jzj23gesavNw3EJy/tTuX5gSO2I+ZMxyE1g7IHOQEu?= =?utf-8?q?4OS+CPPTNbt8ld2nv5lq3pNpUDTgeog8RBBtzCSeWkOZNjvuGIS7EOXUXb2lXVm/F?= =?utf-8?q?zibwkbN6+vnlzj7jnMxxAusiufU5ddPzhG81bdn8wqoM9Km/MDS+v83yDwI6YkdDF?= =?utf-8?q?yDgA+Q0g820vyZqvKx9p/UlydnZn5Jk7XtuPQP/aM1Wt8ZYIBksK6rUZea0G/ukQL?= =?utf-8?q?0allPmuhgM2f8XKksnDjEPl5VWauV9F/rTfkl9Hh6jxxgM8+H16ijdVsTIH79gTtl?= =?utf-8?q?/1e76sR1PaH3yULR9/3+7lt9MIAYBnVzrcZcTGW9TSoWNR4xpXmVSdIgv6pHt5pTE?= =?utf-8?q?b4XavspGNVVjs06TXDQfwXAFf1GYEygrUx1Tf8K4AJms+U2e5F+UpEFlOM7Z5mgnB?= =?utf-8?q?ZX/hwEaMJaRSdh4nGeL9hh2QV0qCxpFc4+SIFBZg74/C0N/p1+G/BswnTDD8MATde?= =?utf-8?q?ASEb62fHBu/oeAI+qBQTA2Xatx3FARXJ6fuWCEHJz39gG23RDB0q6kIPisNV2fDyl?= =?utf-8?q?qAbG1ALeqlGnIBu0rLE5AKuqlqK8ftnasOtvipEdZvtigbHkSNodo9hq7MQ2HRdWn?= =?utf-8?q?mP+SGtWOaZ8Xkgv81PG7PFpzGmaW14gLcjtSlojBzdfCNdPmZmYTSuEspRPjCykXx?= =?utf-8?q?4Wl5DAtltiOuu8F/xKRrNPg3e17qDPfYx9N65zB3Cm7NDsseR1hsaCcE=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9417.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(1800799015)(376005)(7416005)(52116005)(366007)(921011)(38350700005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?MzyuEzmVzKp1C8EoC4I9KVwMfqzO?= =?utf-8?q?OJzuWMyynwMyTkB0qXG1T2b7Nk1wEVwH9Lw8mPPeCh6HEOe2mpvFOCZF+UJaPE+uY?= =?utf-8?q?yrZhOBucdjYNpCdje3LLCIJZ2krTo38ygtCd1zw3BEhKaeOb/WIUI1Yh9zZdpfUTY?= =?utf-8?q?JfFobRotqIy3TAWsulh7KeOTtoOtBQEOUvBLNWTxLsSYszqkaDG6ddNZod2vjWXVD?= =?utf-8?q?WK02LdsLH2/dYDWxH4q9TTp7i3qF0MbYOZpIFd7iPH/LeN62vBF/Hu1c1WlTsgJ+z?= =?utf-8?q?b2t/7rja1GzVsKYkYxCSWSzemJxxDBsnFrf6sHHtuZMldx0pUD7FpWFuofHUY2t6Z?= =?utf-8?q?9XKDg6XmxCMNIT+ncOepKGzJ2B9iO+V9a4/d8oK9onYmWztRedpA7GhkTVcpHKZUy?= =?utf-8?q?mEjs96BdNg5He6wwCAlYFu+EEYh+SCzgUwHrN+xv+3iCSdBEDanszNPqQqfT5tq8v?= =?utf-8?q?hdZYkdIGOHBD8lIGdourHExa7mi9iUrOiQEcTCv7serRFSLPqlulH2Y+KACzCntcq?= =?utf-8?q?qqjFWXVXhxFVgAusNBQVF4F5f5jnj05U0D+SANjYgOyiSsyPEmWtwOq/kyiCcQ+zr?= =?utf-8?q?S2rMxmETQLCKZsqDAQoXftWGs0wM4pYYjH6SXqewdnslmyQJUEpb2T4rDXOLMj9qv?= =?utf-8?q?a2mBAUZ8oq5ebuK4S5WpyLXBcGytgSxfuUzmwXZqUHJr6ssGQJD8s0xs3PBcFkvdG?= =?utf-8?q?57y8RkjUXjSGzs74nTb/1AhOJo6QkGLFcma9G6R3b5nF6VXXbI56Q2D9FVACGvfrF?= =?utf-8?q?P7jjx9W9D/0NugNXAOX7sZfZcdWSAx7bazgQGObrMhstTjRdH19xGd8poWLLKjlhw?= =?utf-8?q?0TnabVoKv2ezIFkhudCMN9PUv3CkehrYtJyYsfd4nM92odHtjjiZ4UpPbjztn1QVM?= =?utf-8?q?hElt97hwbfquWMHEySFsnVl7NBv1WrkGLEsC6H54lhZaEK28xCEwx5ww68bQksQv9?= =?utf-8?q?DoFLiXpOr5r83SDb6KNoMTxHJiVLr8dird2DQcrCdQIv991fgJ1WBYTKrA4opOPch?= =?utf-8?q?bhcFER6oXhJd5DGiAe5Cro1FlMfa0NUux87QIEBm7jAZbBde8wVh8U43Gu0rFR+4k?= =?utf-8?q?WVlj83mn6rxfKDbXOxBdAZH0SBWoqwvG2hV3qRH8W/Z1NYJSsB+tGm+p5WLz0XxJO?= =?utf-8?q?hZ54iGDUH3N3PYbM3vt1y4xCP7hXmEWqWW/IoIQVk93eyYB4D7BznMnp476k5wC4O?= =?utf-8?q?uiotzl6PnamZ0ZCUfaZ+gLpzrRI4hunIEY6M7RsclKX5OCgHZVyiSZQMvoENw7luC?= =?utf-8?q?Pu3PHd5fqGjFJCXOu1rUbsIZ0qp1NVywgrkuAgzHn83M0uqU+IIg8bhZ1AgA483b4?= =?utf-8?q?JMhCfsXAEuwXeSs34xL87QFDpH2FfuAUtMJ+ICjrOyjrkkvLCVgljk8zIpAvZXdlI?= =?utf-8?q?oz2+f6+X1Apmhbrg+Ah00SkJVMMyvr3FrK5nxdrmD9cz4F1ZXOPifTKWCvWk/WYOL?= =?utf-8?q?/QFOdB1nM7Y0tGCo7lNQjrxpGAD7LwsytfvlFRrfW3mUi0a+5b723jqHc/Osx0qg3?= =?utf-8?q?zIxztFOL9Cr/?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: d4d7ff38-bc6d-4b76-f92d-08dc69dd4925 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 May 2024 12:50:31.6833 (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: XVJQm0zO6JyJOjmLH8XQzYxhYJZMbhm8xg/Gc9TT1Jygkr7A547REQ46IEaW+RGW8MU9K7FRr7slrJKBXFh+Pg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR04MB7448 From: Peng Fan Use scope based of_node_put() cleanup to simplify code. Signed-off-by: Peng Fan --- drivers/pinctrl/samsung/pinctrl-exynos-arm.c | 3 +-- drivers/pinctrl/samsung/pinctrl-exynos.c | 16 ++++------------ drivers/pinctrl/samsung/pinctrl-s3c64xx.c | 8 ++------ drivers/pinctrl/samsung/pinctrl-samsung.c | 26 +++++++------------------- 4 files changed, 14 insertions(+), 39 deletions(-) diff --git a/drivers/pinctrl/samsung/pinctrl-exynos-arm.c b/drivers/pinctrl/samsung/pinctrl-exynos-arm.c index 85ddf49a5188..9a57b3ceb536 100644 --- a/drivers/pinctrl/samsung/pinctrl-exynos-arm.c +++ b/drivers/pinctrl/samsung/pinctrl-exynos-arm.c @@ -56,7 +56,7 @@ s5pv210_retention_init(struct samsung_pinctrl_drv_data *drvdata, const struct samsung_retention_data *data) { struct samsung_retention_ctrl *ctrl; - struct device_node *np; + struct device_node *np __free(device_node) = NULL; void __iomem *clk_base; ctrl = devm_kzalloc(drvdata->dev, sizeof(*ctrl), GFP_KERNEL); @@ -71,7 +71,6 @@ s5pv210_retention_init(struct samsung_pinctrl_drv_data *drvdata, } clk_base = of_iomap(np, 0); - of_node_put(np); if (!clk_base) { pr_err("%s: failed to map clock registers\n", __func__); return ERR_PTR(-EINVAL); diff --git a/drivers/pinctrl/samsung/pinctrl-exynos.c b/drivers/pinctrl/samsung/pinctrl-exynos.c index 871c1eb46ddf..3775999536e2 100644 --- a/drivers/pinctrl/samsung/pinctrl-exynos.c +++ b/drivers/pinctrl/samsung/pinctrl-exynos.c @@ -582,7 +582,7 @@ static void exynos_irq_demux_eint16_31(struct irq_desc *desc) __init int exynos_eint_wkup_init(struct samsung_pinctrl_drv_data *d) { struct device *dev = d->dev; - struct device_node *wkup_np = NULL; + struct device_node *wkup_np __free(device_node) = NULL; struct device_node *np; struct samsung_pin_bank *bank; struct exynos_weint_data *weint_data; @@ -612,17 +612,14 @@ __init int exynos_eint_wkup_init(struct samsung_pinctrl_drv_data *d) bank->irq_chip = devm_kmemdup(dev, irq_chip, sizeof(*irq_chip), GFP_KERNEL); - if (!bank->irq_chip) { - of_node_put(wkup_np); + if (!bank->irq_chip) return -ENOMEM; - } bank->irq_chip->chip.name = bank->name; bank->irq_domain = irq_domain_create_linear(bank->fwnode, bank->nr_pins, &exynos_eint_irqd_ops, bank); if (!bank->irq_domain) { dev_err(dev, "wkup irq domain add failed\n"); - of_node_put(wkup_np); return -ENXIO; } @@ -635,10 +632,8 @@ __init int exynos_eint_wkup_init(struct samsung_pinctrl_drv_data *d) weint_data = devm_kcalloc(dev, bank->nr_pins, sizeof(*weint_data), GFP_KERNEL); - if (!weint_data) { - of_node_put(wkup_np); + if (!weint_data) return -ENOMEM; - } for (idx = 0; idx < bank->nr_pins; ++idx) { irq = irq_of_parse_and_map(to_of_node(bank->fwnode), idx); @@ -655,13 +650,10 @@ __init int exynos_eint_wkup_init(struct samsung_pinctrl_drv_data *d) } } - if (!muxed_banks) { - of_node_put(wkup_np); + if (!muxed_banks) return 0; - } irq = irq_of_parse_and_map(wkup_np, 0); - of_node_put(wkup_np); if (!irq) { dev_err(dev, "irq number for muxed EINTs not found\n"); return 0; diff --git a/drivers/pinctrl/samsung/pinctrl-s3c64xx.c b/drivers/pinctrl/samsung/pinctrl-s3c64xx.c index c5d92db4fdb1..9acf65eb0f5b 100644 --- a/drivers/pinctrl/samsung/pinctrl-s3c64xx.c +++ b/drivers/pinctrl/samsung/pinctrl-s3c64xx.c @@ -685,7 +685,7 @@ static const struct of_device_id s3c64xx_eint0_irq_ids[] = { static int s3c64xx_eint_eint0_init(struct samsung_pinctrl_drv_data *d) { struct device *dev = d->dev; - struct device_node *eint0_np = NULL; + struct device_node *eint0_np __free(device_node) = NULL; struct device_node *np; struct samsung_pin_bank *bank; struct s3c64xx_eint0_data *data; @@ -701,10 +701,8 @@ static int s3c64xx_eint_eint0_init(struct samsung_pinctrl_drv_data *d) return -ENODEV; data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); - if (!data) { - of_node_put(eint0_np); + if (!data) return -ENOMEM; - } data->drvdata = d; for (i = 0; i < NUM_EINT0_IRQ; ++i) { @@ -713,7 +711,6 @@ static int s3c64xx_eint_eint0_init(struct samsung_pinctrl_drv_data *d) irq = irq_of_parse_and_map(eint0_np, i); if (!irq) { dev_err(dev, "failed to get wakeup EINT IRQ %d\n", i); - of_node_put(eint0_np); return -ENXIO; } @@ -721,7 +718,6 @@ static int s3c64xx_eint_eint0_init(struct samsung_pinctrl_drv_data *d) s3c64xx_eint0_handlers[i], data); } - of_node_put(eint0_np); bank = d->pin_banks; for (i = 0; i < d->nr_banks; ++i, ++bank) { diff --git a/drivers/pinctrl/samsung/pinctrl-samsung.c b/drivers/pinctrl/samsung/pinctrl-samsung.c index ed07e23e0912..4cae112ca15b 100644 --- a/drivers/pinctrl/samsung/pinctrl-samsung.c +++ b/drivers/pinctrl/samsung/pinctrl-samsung.c @@ -250,7 +250,6 @@ static int samsung_dt_node_to_map(struct pinctrl_dev *pctldev, { struct samsung_pinctrl_drv_data *drvdata; unsigned reserved_maps; - struct device_node *np; int ret; drvdata = pinctrl_dev_get_drvdata(pctldev); @@ -265,12 +264,11 @@ static int samsung_dt_node_to_map(struct pinctrl_dev *pctldev, &reserved_maps, num_maps); - for_each_child_of_node(np_config, np) { + for_each_child_of_node_scoped(np_config, np) { ret = samsung_dt_subnode_to_map(drvdata, pctldev->dev, np, map, &reserved_maps, num_maps); if (ret < 0) { samsung_dt_free_map(pctldev, *map, *num_maps); - of_node_put(np); return ret; } } @@ -753,7 +751,6 @@ static struct samsung_pmx_func *samsung_pinctrl_create_functions( { struct samsung_pmx_func *functions, *func; struct device_node *dev_np = dev->of_node; - struct device_node *cfg_np; unsigned int func_cnt = 0; int ret; @@ -761,9 +758,7 @@ static struct samsung_pmx_func *samsung_pinctrl_create_functions( * Iterate over all the child nodes of the pin controller node * and create pin groups and pin function lists. */ - for_each_child_of_node(dev_np, cfg_np) { - struct device_node *func_np; - + for_each_child_of_node_scoped(dev_np, cfg_np) { if (!of_get_child_count(cfg_np)) { if (!of_find_property(cfg_np, "samsung,pin-function", NULL)) @@ -772,7 +767,7 @@ static struct samsung_pmx_func *samsung_pinctrl_create_functions( continue; } - for_each_child_of_node(cfg_np, func_np) { + for_each_child_of_node_scoped(cfg_np, func_np) { if (!of_find_property(func_np, "samsung,pin-function", NULL)) continue; @@ -791,16 +786,12 @@ static struct samsung_pmx_func *samsung_pinctrl_create_functions( * and create pin groups and pin function lists. */ func_cnt = 0; - for_each_child_of_node(dev_np, cfg_np) { - struct device_node *func_np; - + for_each_child_of_node_scoped(dev_np, cfg_np) { if (!of_get_child_count(cfg_np)) { ret = samsung_pinctrl_create_function(dev, drvdata, cfg_np, func); - if (ret < 0) { - of_node_put(cfg_np); + if (ret < 0) return ERR_PTR(ret); - } if (ret > 0) { ++func; ++func_cnt; @@ -808,14 +799,11 @@ static struct samsung_pmx_func *samsung_pinctrl_create_functions( continue; } - for_each_child_of_node(cfg_np, func_np) { + for_each_child_of_node_scoped(cfg_np, func_np) { ret = samsung_pinctrl_create_function(dev, drvdata, func_np, func); - if (ret < 0) { - of_node_put(func_np); - of_node_put(cfg_np); + if (ret < 0) return ERR_PTR(ret); - } if (ret > 0) { ++func; ++func_cnt;