From patchwork Mon Apr 28 10:06:43 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bough Chen X-Patchwork-Id: 886015 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11012040.outbound.protection.outlook.com [52.101.66.40]) (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 B9D0926136C; Mon, 28 Apr 2025 10:05:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745834715; cv=fail; b=su2Fb0NjkMAtJ2IRAqkX4oZhw429yv88bMskKMIhIVwAK/WqBFeWQ7uqUsUwSSfdLcQo9CUo3pP39bj3yUOTMwdEdIOKDj5zzE/pnfBfow4Ldemb8+nqt3ENdRlnG6YtCc+4hYQbKeAv2/P9tY2uj4BvIWAiMdSXRUqv/Z6/6oU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745834715; c=relaxed/simple; bh=R+E0blCnr84VOgWVUzaNmlI5G0tHD3+mnj0wlyBAGLc=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=INdcPlnDdJSgNNBTLU1tYs4lJtYtYMQtKlo1kMH7jvqAlx61SQG2Jzhga76CJWGO5/FdKKMX9p0YM7deH3+V0d13ernWM4AC7Ur5e9K3RKJq83OMN5PGmjXONhIOoAwio8C+fxZOpzrHQViNNuQWquwHjtMJyPv8PSLhpaqm97g= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=lyQfjFbR; arc=fail smtp.client-ip=52.101.66.40 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="lyQfjFbR" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SRhQSzgrzgKK+Xx6ZZJCNC2a5oUWY3M6eqi7leFLRAhqDOTFxtMSZrxY0oxVycAw2NcHarNOArT2GUe1E/Tr0iVbmIIisnlOpcUFat2A3988D1Z1TRkdzPhrZ++rV08jwrZJ6u1J7HsjFQxxkZ7N2PB85tz7IFLBDlSIMQYtgWrxIY7c7a7kzjanqvV9XIUJxy1xVCQlHoatJsiyafnPCbk7VJ5eK3q/Gof/q8c3NAVlpUgZndwQRdqBfWLJCY6MTyeBiLE4QAr/KuhLspm3OnGJ4w+zB50y/B09/ei8oNKTSRO2OyOlyZwYXqNv3Cd4CIc+FU1zwe2nCjb+gCl6KA== 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=rkoc45T7BYUh7B6StD6VS++pbiV1SAITGBvZZWupjxI=; b=mVrYHVDV9IrEhIJnJEE7YG/ukCUn+fsSQKTWaxMwysXGCrRZ5cj3qfKjNZTOsloci0D8j+eXGRJUPsEDduTAX3rbf+8sZn9GtWv5YH4Y81aUkCbQxzg22884fR026GBhtuuGj9Iizd7c+YllP6c+YsdmkzBk2odUDI5KwuD/MZ58zv6USVvudh5IOvfaRwnEpwNMSv3GsfZp7CKazZF8Rhyc1pVQ+Go1YfACHYdYsSVPRkACb39+OEqBYq8tkHdI5/o+4uQhUHtjfF06KOTmeJo7mestVDwXV7z3gLmzI2v0TbohIabDwLHh2e1qO8yofJfNE260cuM6jkBhm3EPbw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rkoc45T7BYUh7B6StD6VS++pbiV1SAITGBvZZWupjxI=; b=lyQfjFbRFnFwe1O1Lket4XULu6/E7s7UFu3l0dhhY61a3r2zoHTlCi99goDfCwJzgmWylSYB2YUcEWJFa7iQm6IGos8HhFAlhcDPwBkOKa7YWJvKOwUqHvynVCP2f3GfD8O6C6nWAIJiIjIiCVSMpmRAOwXpVdScnB4T3/S8IlgUwO6Iyk/arq2kZcUNgiRt5+Zw7hktrJH90rx8OsRtxsjmdAyIydiukEaVPvmSX5EuCBU8aQbvsbH6qI3pUTV1S8zVJ6802znI1w6gb8MH8r41dS7szYK/jOHr6MNnsrBjuMzloEc/zBVk/juaMJKy5tbZrc7O466mEXwZwBqL0w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DU0PR04MB9496.eurprd04.prod.outlook.com (2603:10a6:10:32d::19) by PAWPR04MB9862.eurprd04.prod.outlook.com (2603:10a6:102:391::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.33; Mon, 28 Apr 2025 10:05:05 +0000 Received: from DU0PR04MB9496.eurprd04.prod.outlook.com ([fe80::4fa3:7420:14ed:5334]) by DU0PR04MB9496.eurprd04.prod.outlook.com ([fe80::4fa3:7420:14ed:5334%5]) with mapi id 15.20.8678.027; Mon, 28 Apr 2025 10:05:05 +0000 From: Haibo Chen Date: Mon, 28 Apr 2025 18:06:43 +0800 Subject: [PATCH v3 1/5] spi: spi-nxp-fspi: remove the goto in probe Message-Id: <20250428-flexspipatch-v3-1-61d5e8f591bc@nxp.com> References: <20250428-flexspipatch-v3-0-61d5e8f591bc@nxp.com> In-Reply-To: <20250428-flexspipatch-v3-0-61d5e8f591bc@nxp.com> To: Haibo Chen , Han Xu , Yogesh Gaur , Mark Brown Cc: linux-spi@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1745834827; l=4520; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=R+E0blCnr84VOgWVUzaNmlI5G0tHD3+mnj0wlyBAGLc=; b=Dt/5jF6GbjUYTxhe602jhSPIWg2Wr89MFJA+LAzqsz/nCdvGZe4Yx+hQYhWUNxgCHp1MyfKje kHlS7g44l2rD3CDUmoe5EuVRKqbN6woxJZHsSijCkSi6lNRojtGDICU X-Developer-Key: i=haibo.chen@nxp.com; a=ed25519; pk=HR9LLTuVOg3BUNeAf4/FNOIkMaZvuwVJdNrGpvKDKaI= X-ClientProxiedBy: MA0PR01CA0011.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a01:80::9) To DU0PR04MB9496.eurprd04.prod.outlook.com (2603:10a6:10:32d::19) Precedence: bulk X-Mailing-List: linux-spi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR04MB9496:EE_|PAWPR04MB9862:EE_ X-MS-Office365-Filtering-Correlation-Id: b8194e40-7f6e-4ca3-4865-08dd863c25d7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|376014|52116014|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?ECgteTQZAbOWQLbihBGkfq7yoK+GCsb?= =?utf-8?q?CHUaayn7lwu4lWc6hKERkLQJb7VvdadvvlAYv/xnchmneLMDhdqpysUc1YnaX+qT+?= =?utf-8?q?KtwtR6Tu1QCweLFT31r+aC69pXP+TZFgFbk0yKvIINXEtWpbTbMHmeMMFX5Eh6Gu8?= =?utf-8?q?xn15MC46vb0D8fJiLLSE9aznXvGFwAqGfG4Lx/P1WM8jDXWQIWdHpSpCMWFbf7HJs?= =?utf-8?q?an4RwXKG03fCtNYUBL7Jwt+PXBY+5+RE+JrCwZjQrEI8tQ0EI4dF8HNUzNOXJDzHx?= =?utf-8?q?O4FQdcbjNsSUPJsqkETwfq1lCKIKl85agC9Zj99lgYJC0Em8qOMZpAieYnwk9RRiv?= =?utf-8?q?TefnfhkB1gBm7lawf9DZ9B3prZBBeoU7UWnx05i6Pc2De7/q8irUCZY8c4iy9Hn0q?= =?utf-8?q?Tcsv5+ihIbPfw1UL9KOwPH1OvvF3myqWeYYJobHizesE4nS8QR7fNb4vVLYaWlt31?= =?utf-8?q?xhmjeSkvVmueTNrAUffkpQS1aqzQIK5S1HDxyNq2VWziyMr17sGl0KgfZiu/QMFu3?= =?utf-8?q?qzOgrJPUyLfK/+so0wRuif+CkGddnVM/WB/ULYA8QpK24RZbP/2cChthYv5nnv+g8?= =?utf-8?q?hBoNydygp684kpS1uOsEqq7ISqLhZ4J7t6UdvnjExmQBUkYRuaG3wfEixfc1D3zV+?= =?utf-8?q?XrJ1IUyKdM71TbaCPiLelvdgxCHtVDpJCwfDtmgGovOAvfG+cCL7PATWXCPNb9GFR?= =?utf-8?q?DDg43MmMG+/b8j+NkP0NCBq12Ble0iHSCK8OU2JyySi1mz6wffZuaVDgAUh0lUiBK?= =?utf-8?q?K0QURs8be50OazQzMvOTVQt8tYDZS2zHSpBoGdmdou2mK/HV9wfFK7N3ypjNBPLib?= =?utf-8?q?1bimCWcwtj/f/UptDRNXyD3nFNOQhrjnB/ns1swrpEAHxVJRB9wcgdBz9inBY3BkU?= =?utf-8?q?3NUjeCXsY1BPBZGRv/bqnyiYuDPpwuLC0Fve668ZpwOvVW1D5/WWjIPo2o8R2bK2E?= =?utf-8?q?pcIJl1s1iLLlciTM+ssnp7QSTCpMPVPwewm+iC7gjDIXxvBeduBYYfmQ72Vc1nu8R?= =?utf-8?q?3yTveHF6kuHMikkegjI3XTnXh9yXc+5PA00xyXmlQs0vFc7SremvR0YfQv/Ga6Wft?= =?utf-8?q?/yAnGMbSGplqXL0kOdxJX8toc2xfSmusarfYIA/Tn5Q8T1TZ5zgrIfMQ4RfiSev5W?= =?utf-8?q?GceeU8p0ZU7lKtsnFGCt1jvM69miMeU1qB6hWNQ3taB24RchnuRtqjfuyiNpzneA1?= =?utf-8?q?d+cTUfZrdKBnUfiLSv05x6zm+y8uaVGOZv7Rdxh9lE1SM9Qg+ynUwAq4OYnHtxOzD?= =?utf-8?q?+7wCjGasrKp+L2Ci49pAMeAlZ4WZxVVue+XIocSjPEg3yS+C1ge15lG1ZXxrZkyOm?= =?utf-8?q?nsELdvYXUeBXGIfFdqzjuTYG0E0fiJiC/sQfqySrTjB/X00+l/wmny+F9owXhMsC9?= =?utf-8?q?4PzgelsRj/KHU3t3wdRMJ6+9gzU/wEIqg=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9496.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(376014)(52116014)(366016)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?ZEKlwQI4+9K5FHY84XSKYWNAWm9k?= =?utf-8?q?9mJetZvR9Ppi4ewOzOhNdG29ZpCzBPvKRMbHRXHnoqmYIinugj+AO00u0CrYjuqRt?= =?utf-8?q?HH/lOEpQSKbA+5aKXCsQKEDCCPuaAv3RuDXr9DCqIfPIgl4JsvZs+wf900sro3Pqo?= =?utf-8?q?kzuhhTUvf/xJnpCWOHQwbXg+LrxD4N5w+SLPMEnbHSBdHMJYibiW+I2GhiiMdj6j0?= =?utf-8?q?ygyy8u423aUMIuMV1W7v2+AtoAhe5UxfLH8K5gLd4b68a7YouEV7ZaoKbemr2ZPpz?= =?utf-8?q?sJ/x2e6XVw8HSLl5d8PgafIjpXcQq1Cx0Npwb8/iL9jjpzVTbKAIo7RG9No9A5Fcy?= =?utf-8?q?SyW2Mrv1quEQ0Q3twg2TXpcXMXiHSEx51nRnwRF1G2v29zfb/i3xlhTShmFNCbZNx?= =?utf-8?q?qPMluPndsEL8gEqEHiA/3wOAzrqSPqMddxbK5auQKQSVvCqZtKFufPs6VkhjXc3TP?= =?utf-8?q?MqH7YZgeupkAU/FPRNuglwcvTgJTxmaORKy6ViOsrWqtPNZRVdM9i/SkVKQUKvz/m?= =?utf-8?q?hTn/BErdV55VNslTFtFyJnzbk1e5SYwB0zCZdUKA25C1Tca8ZLnkDhxFhVloywgUG?= =?utf-8?q?u8mnGCLsmqMJYxJntnNk+FnKN5PR4t+ZpzplRLkLYI3xNHiod9HHyW0ZKo3nhVYBh?= =?utf-8?q?rWAUey46SpCV9Yq6Rw0Tbkr3VHWYc98qCRPa4Ei8JrCdlyqcRz6vx8PqhnGFWcBJ2?= =?utf-8?q?7OmicYX8YrY+4lCCR680fadpOKOfKHJDCyZRTC/bXwypgkmKvkkkLoshOM17/phzP?= =?utf-8?q?lqmaT9N+lGr2Z4fpHojSbBMOjQe0ZjNhPhgz23I+sOR9l5cOKCV9HxSQmkQJw0HBD?= =?utf-8?q?gZKS+MTwmgQwHkVr+h+yLFsh6QD5y1p0yjrttIyL9+5I0PbWBmDkrIIg0R3TVh4WU?= =?utf-8?q?d2I2CVxYBlggxbJT6lvXLKXSOvFQhv66HscPZdvZGiX2yBkr4ZCdp314jMekDkQbv?= =?utf-8?q?YjfQyRy0MRJkqm1WxzRoMhpHxxO8nhzeMA2xQ9VUYfNan7OULigc6R3Gp/oe7Yd52?= =?utf-8?q?11/2TLFn8VBsCs8dC6d2w1DMNIYqFZjcyydczNAneq0hKeppTc/1JcRVN7ZAddEbs?= =?utf-8?q?LR6UKs9MHPberdZKsD3u5UunLZ8tWJeH+znCSmZEI9dYHGToLpv/dKJI4593PTE5v?= =?utf-8?q?THtp24b1ykQK15p/jmPspmoZrrGW8SNuEejo0SKJ59xmWKXrJNxb/nQsN5FsMy9Pn?= =?utf-8?q?zuzPQaF2o80Sz6gUJOv7caRGC5eKNVXmFHnQZzgqLcm0n/KwqglCqWaBt+eGHMo39?= =?utf-8?q?2JCYQkHgZ6oVN9avv8wHAdV66uFGMft5ec2m2YaEjrZLNOuLIRi0gRByRv4Df2y+z?= =?utf-8?q?yqB/Q/eW2FH42yJOW5g6G7z+ObJFiIFldJDZrbzp8hzYC7wAodOxwWcoKaU7D2EVy?= =?utf-8?q?Md0jO058hkiqnxyD0XiH/BR66xg4Q2k2TwqlGG8aknFjpYQCJmQWMnqz/qHSaYNUA?= =?utf-8?q?Mld5vNzOSBCSPi2hCD/qcRN4eTPrTwDBN5fhB6Td835qCytH/NxiWnc/e/WHoePqH?= =?utf-8?q?+JEwXHNAjDGv?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: b8194e40-7f6e-4ca3-4865-08dd863c25d7 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Apr 2025 10:05:05.0487 (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: 5yuvX8kZMZNgUSLhZUs47ZYFXayCmtBk7stncaWRObR9oYJD924Q4vBdIykTXp8EMLaAYv0nQRVRuXvMLeL9sg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR04MB9862 Remove all the goto in probe to simplify the driver. Signed-off-by: Haibo Chen --- drivers/spi/spi-nxp-fspi.c | 87 ++++++++++++++-------------------------------- 1 file changed, 27 insertions(+), 60 deletions(-) diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c index bad6b30bab0ecb90d0aaf603b6de5bc834d19de6..00da184be88a026bf562c9808e18e2335a0959e9 100644 --- a/drivers/spi/spi-nxp-fspi.c +++ b/drivers/spi/spi-nxp-fspi.c @@ -1161,10 +1161,10 @@ static int nxp_fspi_probe(struct platform_device *pdev) struct device_node *np = dev->of_node; struct resource *res; struct nxp_fspi *f; - int ret; + int ret, irq; u32 reg; - ctlr = spi_alloc_host(&pdev->dev, sizeof(*f)); + ctlr = devm_spi_alloc_host(&pdev->dev, sizeof(*f)); if (!ctlr) return -ENOMEM; @@ -1174,10 +1174,8 @@ static int nxp_fspi_probe(struct platform_device *pdev) f = spi_controller_get_devdata(ctlr); f->dev = dev; f->devtype_data = (struct nxp_fspi_devtype_data *)device_get_match_data(dev); - if (!f->devtype_data) { - ret = -ENODEV; - goto err_put_ctrl; - } + if (!f->devtype_data) + return -ENODEV; platform_set_drvdata(pdev, f); @@ -1186,11 +1184,8 @@ static int nxp_fspi_probe(struct platform_device *pdev) f->iobase = devm_platform_ioremap_resource(pdev, 0); else f->iobase = devm_platform_ioremap_resource_byname(pdev, "fspi_base"); - - if (IS_ERR(f->iobase)) { - ret = PTR_ERR(f->iobase); - goto err_put_ctrl; - } + if (IS_ERR(f->iobase)) + return PTR_ERR(f->iobase); /* find the resources - controller memory mapped space */ if (is_acpi_node(dev_fwnode(f->dev))) @@ -1198,11 +1193,8 @@ static int nxp_fspi_probe(struct platform_device *pdev) else res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "fspi_mmap"); - - if (!res) { - ret = -ENODEV; - goto err_put_ctrl; - } + if (!res) + return -ENODEV; /* assign memory mapped starting address and mapped size. */ f->memmap_phy = res->start; @@ -1211,69 +1203,46 @@ static int nxp_fspi_probe(struct platform_device *pdev) /* find the clocks */ if (dev_of_node(&pdev->dev)) { f->clk_en = devm_clk_get(dev, "fspi_en"); - if (IS_ERR(f->clk_en)) { - ret = PTR_ERR(f->clk_en); - goto err_put_ctrl; - } + if (IS_ERR(f->clk_en)) + return PTR_ERR(f->clk_en); f->clk = devm_clk_get(dev, "fspi"); - if (IS_ERR(f->clk)) { - ret = PTR_ERR(f->clk); - goto err_put_ctrl; - } - - ret = nxp_fspi_clk_prep_enable(f); - if (ret) { - dev_err(dev, "can not enable the clock\n"); - goto err_put_ctrl; - } + if (IS_ERR(f->clk)) + return PTR_ERR(f->clk); } + /* find the irq */ + irq = platform_get_irq(pdev, 0); + if (irq < 0) + return dev_err_probe(dev, irq, "Failed to get irq source"); + + ret = nxp_fspi_clk_prep_enable(f); + if (ret) + return dev_err_probe(dev, ret, "Can't enable the clock\n"); + /* Clear potential interrupts */ reg = fspi_readl(f, f->iobase + FSPI_INTR); if (reg) fspi_writel(f, reg, f->iobase + FSPI_INTR); - /* find the irq */ - ret = platform_get_irq(pdev, 0); - if (ret < 0) - goto err_disable_clk; + nxp_fspi_default_setup(f); - ret = devm_request_irq(dev, ret, + ret = devm_request_irq(dev, irq, nxp_fspi_irq_handler, 0, pdev->name, f); if (ret) { - dev_err(dev, "failed to request irq: %d\n", ret); - goto err_disable_clk; + nxp_fspi_clk_disable_unprep(f); + return dev_err_probe(dev, ret, "Failed to request irq\n"); } - mutex_init(&f->lock); + devm_mutex_init(dev, &f->lock); ctlr->bus_num = -1; ctlr->num_chipselect = NXP_FSPI_MAX_CHIPSELECT; ctlr->mem_ops = &nxp_fspi_mem_ops; ctlr->mem_caps = &nxp_fspi_mem_caps; - - nxp_fspi_default_setup(f); - ctlr->dev.of_node = np; - ret = devm_spi_register_controller(&pdev->dev, ctlr); - if (ret) - goto err_destroy_mutex; - - return 0; - -err_destroy_mutex: - mutex_destroy(&f->lock); - -err_disable_clk: - nxp_fspi_clk_disable_unprep(f); - -err_put_ctrl: - spi_controller_put(ctlr); - - dev_err(dev, "NXP FSPI probe failed\n"); - return ret; + return devm_spi_register_controller(&pdev->dev, ctlr); } static void nxp_fspi_remove(struct platform_device *pdev) @@ -1285,8 +1254,6 @@ static void nxp_fspi_remove(struct platform_device *pdev) nxp_fspi_clk_disable_unprep(f); - mutex_destroy(&f->lock); - if (f->ahb_addr) iounmap(f->ahb_addr); }