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); } From patchwork Mon Apr 28 10:06:44 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bough Chen X-Patchwork-Id: 885687 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 35BAB25F996; Mon, 28 Apr 2025 10:05:10 +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=1745834713; cv=fail; b=bh7HPiacELGHB0EylWJoeboraeVRXUX6meBNYfXRcQ4lUpxrahBNjR+oYE29hqLW7wF46fFPUQZMiKjULm9mM0BCGvJ5qeeJA18nUx+qSAj5JmmLV3fD0gGJ+Zc7cjq7ta4AcQJSyMIAy3+6azN4kO6rB5Kw9AVy5DuXMPis+wg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745834713; c=relaxed/simple; bh=EHGi95nTlhRjlYTPcmNSAMw5IUnu/bcxt4hNUpvsWzM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Gm4fIi5pvHnb+K9r6jjHOFsLnWHbYe6DRqc4Ar/8BfQhpcV3ZqA8DBciFsjH38oQtinQOPgOkw00RZ2ZQ4oqUb+bXiot5kl9rGE8QSllBPpxWo6ExsCI6ru4ffT3awmEEZad36J6aAJWV8PaUMjXGCf0leKARrG8B41SDXQMPrY= 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=YbWWHP0h; 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="YbWWHP0h" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kiQxbB+o5fEQyXIid6A2kExeK4EfDrOXcxoXVVh+B3Mk6x778FNCpoU1+WZDkggTNMiSb4nSrtGoiGnvjqzhTP2WsdwXfUepZnpQ1zPrMic3T/aE/WtmPCQ7//X+HoRy+nfZ3+h2EufA3HcGKj93z6ZA6zWNly0U60d7kzgKhROdslHic34x6AIn5EWlL5Ej6kjbk6Bx5FVxsuQiprIIlOobuIgczaDqvMBjebw26bup1MdhXkyUV7xijprHRvhg0FKmBzJ1D1MKIjQzEpM1Q11GzHiGaBshjg79ZWDJPZesv2ZX5hqE5O75Gk/1CWUBzO9bSsou7qOEzBffzLbH1w== 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=Xk5U3cUoUE0U+f3XcRp5iwBviiPiPHmZexOFQhIIl6w=; b=Z0IMX2U8Rw+h0SAq81AtDOItMWk5VUg5MfoRJDQkuiiDhYxDfYZ9rH914pJ6DRqby9h0ao6Kb6O4WF9b74noh7aHZlfWGCRwCHBZTHogv+UXAXtzpn0usp6gBctvZe7u71T3ux9iqhoPg/y/G3koPxl2d/Sp0/jQp0OWLXAWWIGBUBbdcxy8FHhVbf/RIuWjDju5+HTsNzDanHtOxcb0sv/PU+xbYaHSptXLEQOmNE/qI2sdEMtLdTPxA1ToJPxGtZMHMROF5AcmSweQzQzpHSfzPEYJ00VlXYSmmMU2CCfoo72/nc+0N45CfOMqOwAGfKN0NQHdAebr1KECmlpSPg== 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=Xk5U3cUoUE0U+f3XcRp5iwBviiPiPHmZexOFQhIIl6w=; b=YbWWHP0hVhEzjjLi5AmlhgEpmUIhFn86WfspP4yX0u2q1yJ4cC+I7sdCj56TPt1GP4Z2pa+D+7mOt43bqmJbOjG8+k89aY0XHgoi5QdajOeHnomPO0tUgrCsVOM08m4A9l9eRE1KL4/MYX1fUwKIG0qIcqRgvkOVzPz4uOX2Xo7aradK7huPtkmhw68zk/sbBUAWuGgFwfZOUCIoHj+b9GQBcBno9bNUy2ZdrnlICu0EquljTYcUY0MmsVerztDAtZevivNUjXtNa77nc2E0P6d38L1xatPiG6e0jEyUwK3DAVg/YNCRBCV+VZPh8TILGUPEQx4L7muH5Dir/uPdgw== 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:08 +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:08 +0000 From: Haibo Chen Date: Mon, 28 Apr 2025 18:06:44 +0800 Subject: [PATCH v3 2/5] spi: spi-nxp-fspi: enable runtime pm for fspi Message-Id: <20250428-flexspipatch-v3-2-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=5964; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=EHGi95nTlhRjlYTPcmNSAMw5IUnu/bcxt4hNUpvsWzM=; b=2pD/NN5i0GmoG7Qt0ascRpOI89qKmY15/OI8CGLemTOLUUcdypNyPH4WcAeM0qN3RSEoRV6cP KvA4P5k/VJxAWDCp3G51djKW0BVpzMsttGTLLlhh+J0q639jaL67clb 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: 2ae302d8-5c99-4089-3a1c-08dd863c27ba 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?mfizrHUe9mjfcBrr2TDFHWOISWHOQRf?= =?utf-8?q?pmxa6PjIcZOvbceT6MZxzaUdcCHbOSQYhma2ZunNzO0V4qFoRo7KOpL/kjmU1vC6S?= =?utf-8?q?WgfgBfT1ymKX9jFLlj77bISdZmxwfp3vYps65k8vFkS3JwUVYrbFUIsTmmdsHMOZe?= =?utf-8?q?msaIHdWQkJ9+WGndALsLS1lI3n8rPJUFOkdSXfowCHhAIf8r+teYGeHleTfuqVYft?= =?utf-8?q?OYXLWe2fwz4u57Tag3nxfBahBbJQ/aU7yqluzdlb9fXaG1jaYlrr4ol8pOp1UuJ2u?= =?utf-8?q?6hqo2g3sUjlGqub9xzdh/Iy/G25fOpwQXxygjcHgJMBcITl37ZQPqokLpvdETySpd?= =?utf-8?q?ajIZILfnUY7PrtJmhVj9ekJrf1lzmWbx0UGi4mtJgZb48zrF+GIVFjsxE2Bj+KcJL?= =?utf-8?q?ntot+UR35cJ//Y2GT3AWwaMNWkgtrXK3T7Z/zXZToqHwD/UzwXQa81zz2qcRj1Qc0?= =?utf-8?q?N+gCrcCo5azMPxIjUPvGeANqlsb1N2gZ6wLTxtGrlCWHyMcpvEJg6dDm/9Arx3tcY?= =?utf-8?q?mfAYnWufYUsBOlbKmzd/kKOmC1o5CJsxU1w7s9qpwUXMAhL4YrlUly+zBmYMjKRqh?= =?utf-8?q?T5G1uGNWj3kwOgg2MYC9sLCOgwlre4GZVUj51+bkvqssC6bFAwmdHtk1OVHEDR8bb?= =?utf-8?q?n5Y2+R7WyyR0nqb34RRBmuMrwAp5OH28o3CV8AcFkRg54rwmUNh9IxkWO4EGwUI8g?= =?utf-8?q?ztry/SJyhc4IwJw6oV5ofqqVp8APFfhoxqqo8I2dVz4q5nc3qqvCKZSASz+i70Y0y?= =?utf-8?q?8O4/qls8Q6Pc2jUuBSUCEwrMuBLNWTgEofe6IF9n44PM1GRiK+dmHvcyZMpfeuKVn?= =?utf-8?q?cRGVh+YaEneKa9uzqayS3Za+UyLpiTHrzJNsgqg+jkwpMoZta+0YbNGcEZmcVU8/9?= =?utf-8?q?rARzMnxFdhIShCT1MemhqltDbGrLtVYcvq1qPorC1lidEv85689LGQ+K2Z/3yHyHL?= =?utf-8?q?niI2TwJU5mR6jXe0H0HlcsVRJeUZWaDKHcpHkarr8LLYPE9r90FcxGxUGdqJXtv31?= =?utf-8?q?ZZL39ynLfCDLGsyJhA0Ho6mVZThjvsr4LXgldLjb6x4MU6/ViNFgv+uLyGIQuArcq?= =?utf-8?q?FD1cs54t5ZCLp4Ev/P6Ma+OKWwV6tKfFZjelMHWe5WHCjg87BuV1ZbuxhzXiNTq2y?= =?utf-8?q?FfJwtc9H7kzqUHI5fGH5oCs7I2p/i1CNuL96AzOSbCXzV/yLlv6iw5KcfehM6cymI?= =?utf-8?q?GdgPIcaHBDI95HV9XMzrqccYnO7AMjIPxfleLjFWCbSp75yWt/O5cRP4uGyjUeeqt?= =?utf-8?q?GFatOAYLuKaYpFIzymAiz/uWa8GR6v13G/kmmxi0umM99gYPb//C9bVf9STMynjjd?= =?utf-8?q?PSflZtu4EBZaP3Bm1rLURCBdemiGrFj85ivIpHNnAtCvwyG/uMT3wXwdSq1ZeRdzm?= =?utf-8?q?46HuTQs6Nr8YXEjPEuYsImwtM9qx8eRuw=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?l5G0NVbl7GCY0nZAVWXfG8dlbYBd?= =?utf-8?q?aXugO9jmdex2ZeDDa3Y5C4PGrc0dOZ/AQZTIZcuBm+u+tjKd+amQhaWGbPg0J1xST?= =?utf-8?q?6FGUMCcCv2MLQ20SdKvrhgONl59XJBYKKmzt/M9Forc3ahru1a5AcxaT3znXdqqX5?= =?utf-8?q?rWGv4UPm+ITZI2hq2ZOXDhhxjkHG3cjtxeon+FsWBeJlAnl5oMofv9hAiyDUZ2j2s?= =?utf-8?q?42F4r1AcDAExUVr+Mh2DVM4rhM4MKUuBUlm3xhJPrHt/QI6x56vHdOYW+Vwdn93vA?= =?utf-8?q?Anjj8eUs6Vlyw1ejTmSPLi1+LO3prcOanbpoe5y7gOx+pjV1voYRP4Os5ytAOZK+1?= =?utf-8?q?JDvZCrv7Deh9n+TlBmDIlziP9oIZg2Txc6p9nUkswjz7NMzeOZ1qGGTBgLzvTUHgY?= =?utf-8?q?GCPcsoqKQYFUSwVdynsKJE74sp70EiA7mG45lGPOuQS528uO3FZkfpjLOkJfjNXpq?= =?utf-8?q?QPv8qFKPJM1arbLCjPYsDfgxOhjKFdHKPeu7JoHqZgZeudvuLNLlMNUkCRU3kkF0x?= =?utf-8?q?LBOmXdzLclwZvv590qb+xoyymqUPgsdQy6JcFHXNrpLqW0TiduU9WF0aqDZ71UF9r?= =?utf-8?q?IGuqGVeuezT3PP2Kkh171vYFpxtsFrdf3U1EApyn4if4Uyb0oesMXfaT6+7alEADK?= =?utf-8?q?GtXct5WLKYyQI+BROerAtXb9lYERFZ3PADkcfyGOWTuEqsNJLWwqA4bVqXAxD4Qu0?= =?utf-8?q?0FN/FyImaUxxl3zGZfgkjZZ1IKF90bVOat/+yWmtgG+m/JoMqOmWmGPkz46fGiwxH?= =?utf-8?q?UHLN2R7IstiQVNT9BW7uwzbBYfHM3p9mWuZy1K392w1i0BV+lDbCRn3NrOpK1kNlK?= =?utf-8?q?GjMRYqRBX062Clzo3ovJ8HRTgoIviZbJRi1nbNOSo/FdS8/FlQ7+O4XhwyoKXF4bg?= =?utf-8?q?E1dCDtt/YEiVUgSGTbRYCCauGjXZ8qz6RKjEcOMaC/QugHo6BqaCFxznRu5dWGaob?= =?utf-8?q?kxpfP7ylE6RYM/yHKBeI9vzYL71wY2VUDJJSVureNEN/Jz3YM/MZpJDqD3RDVurUL?= =?utf-8?q?x29uoDzi/LjelVYzWj1V+ygIuf5LMrY/kq0Jenm7NbHDhMcXAJNx/89X24ORvTct2?= =?utf-8?q?Cg16eqpNnYNUXIvIaloD6Ra/fiMQVnh9kutFRcqn9PJpaqdWTLFV3DO7wDYXKK4eP?= =?utf-8?q?0xKzhf48Ck7YIqWoZZmMWofP2lqyFZUtfZbnPZVuWanP2PQiT5TyThNWD2X0keBf6?= =?utf-8?q?cdYteQ1xnpHTYzUBUkccfR1qevFGqYKoWv0w0RRuWZE1DghYvo0JO7s2oCgc8UsH1?= =?utf-8?q?NIZ1d1kxm39M4Ze0hC6UNqHfiyEZTj739syWdf9RIueVBBGTEO0ohN6mmaTRzLCT1?= =?utf-8?q?5CcF22rD5lul1Nr8JNJ/Mkf7UEFtept7zlauJhjigYB3UaVQkRy6JWPCx32T5X/9n?= =?utf-8?q?K9LxfKwTWRi3R27Bn8vD/oHBj9UVR4rlkK55Am6HJFjosApkyFjh4e4oc6NqjTR5I?= =?utf-8?q?MX95BdnW7A+Ckcjsn7kNZEleUCsnYzC/xlvPOWn9N7yQBZjAUzze++QHGCypXI8Lm?= =?utf-8?q?V7mvpmQXR2Oh?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2ae302d8-5c99-4089-3a1c-08dd863c27ba 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:08.1671 (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: ojwgNYDPm9on6awbVM59bTvd8xO70MVrFr4hCFUXMsax+DxdKh6KXQt4jfZYR8Z24h7ProB/nqetEz2h+pG9Dw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR04MB9862 Enable the runtime PM in fspi driver. Also for system PM, On some board like i.MX8ULP-EVK board, after system suspend, IOMUX module will lost power, so all the pinctrl setting will lost when system resume back, need driver to save/restore the pinctrl setting. Signed-off-by: Han Xu Signed-off-by: Haibo Chen --- drivers/spi/spi-nxp-fspi.c | 93 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 76 insertions(+), 17 deletions(-) diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c index 00da184be88a026bf562c9808e18e2335a0959e9..f7c3330a19009223cbffae8673d264246418e561 100644 --- a/drivers/spi/spi-nxp-fspi.c +++ b/drivers/spi/spi-nxp-fspi.c @@ -48,6 +48,8 @@ #include #include #include +#include +#include #include #include #include @@ -57,6 +59,9 @@ #include #include +/* runtime pm timeout */ +#define FSPI_RPM_TIMEOUT 50 /* 50ms */ + /* Registers used by the driver */ #define FSPI_MCR0 0x00 #define FSPI_MCR0_AHB_TIMEOUT(x) ((x) << 24) @@ -394,6 +399,8 @@ struct nxp_fspi { struct mutex lock; struct pm_qos_request pm_qos_req; int selected; +#define FSPI_NEED_INIT (1 << 0) + int flags; }; static inline int needs_ip_only(struct nxp_fspi *f) @@ -927,6 +934,13 @@ static int nxp_fspi_exec_op(struct spi_mem *mem, const struct spi_mem_op *op) mutex_lock(&f->lock); + err = pm_runtime_get_sync(f->dev); + if (err < 0) { + mutex_unlock(&f->lock); + dev_err(f->dev, "Failed to enable clock %d\n", __LINE__); + return err; + } + /* Wait for controller being ready. */ err = fspi_readl_poll_tout(f, f->iobase + FSPI_STS0, FSPI_STS0_ARB_IDLE, 1, POLL_TOUT, true); @@ -955,8 +969,10 @@ static int nxp_fspi_exec_op(struct spi_mem *mem, const struct spi_mem_op *op) /* Invalidate the data in the AHB buffer. */ nxp_fspi_invalid(f); - mutex_unlock(&f->lock); + pm_runtime_mark_last_busy(f->dev); + pm_runtime_put_autosuspend(f->dev); + mutex_unlock(&f->lock); return err; } @@ -1216,9 +1232,14 @@ static int nxp_fspi_probe(struct platform_device *pdev) 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"); + pm_runtime_enable(dev); + pm_runtime_set_autosuspend_delay(dev, FSPI_RPM_TIMEOUT); + pm_runtime_use_autosuspend(dev); + + /* enable clock */ + ret = pm_runtime_get_sync(f->dev); + if (ret < 0) + return dev_err_probe(dev, ret, "Failed to enable clock"); /* Clear potential interrupts */ reg = fspi_readl(f, f->iobase + FSPI_INTR); @@ -1227,12 +1248,14 @@ static int nxp_fspi_probe(struct platform_device *pdev) nxp_fspi_default_setup(f); + ret = pm_runtime_put_sync(dev); + if (ret < 0) + return dev_err_probe(dev, ret, "Failed to disable clock"); + ret = devm_request_irq(dev, irq, nxp_fspi_irq_handler, 0, pdev->name, f); - if (ret) { - nxp_fspi_clk_disable_unprep(f); + if (ret) return dev_err_probe(dev, ret, "Failed to request irq\n"); - } devm_mutex_init(dev, &f->lock); @@ -1249,29 +1272,70 @@ static void nxp_fspi_remove(struct platform_device *pdev) { struct nxp_fspi *f = platform_get_drvdata(pdev); + /* enable clock first since there is reigster access */ + pm_runtime_get_sync(f->dev); + /* disable the hardware */ fspi_writel(f, FSPI_MCR0_MDIS, f->iobase + FSPI_MCR0); + pm_runtime_disable(f->dev); + pm_runtime_put_noidle(f->dev); nxp_fspi_clk_disable_unprep(f); if (f->ahb_addr) iounmap(f->ahb_addr); } -static int nxp_fspi_suspend(struct device *dev) +static int nxp_fspi_runtime_suspend(struct device *dev) { + struct nxp_fspi *f = dev_get_drvdata(dev); + + nxp_fspi_clk_disable_unprep(f); + return 0; } -static int nxp_fspi_resume(struct device *dev) +static int nxp_fspi_runtime_resume(struct device *dev) { struct nxp_fspi *f = dev_get_drvdata(dev); + int ret; - nxp_fspi_default_setup(f); + ret = nxp_fspi_clk_prep_enable(f); + if (ret) + return ret; - return 0; + if (f->flags & FSPI_NEED_INIT) { + nxp_fspi_default_setup(f); + ret = pinctrl_pm_select_default_state(dev); + if (ret) + dev_err(dev, "select flexspi default pinctrl failed!\n"); + f->flags &= ~FSPI_NEED_INIT; + } + + return ret; } +static int nxp_fspi_suspend(struct device *dev) +{ + struct nxp_fspi *f = dev_get_drvdata(dev); + int ret; + + ret = pinctrl_pm_select_sleep_state(dev); + if (ret) { + dev_err(dev, "select flexspi sleep pinctrl failed!\n"); + return ret; + } + + f->flags |= FSPI_NEED_INIT; + + return pm_runtime_force_suspend(dev); +} + +static const struct dev_pm_ops nxp_fspi_pm_ops = { + RUNTIME_PM_OPS(nxp_fspi_runtime_suspend, nxp_fspi_runtime_resume, NULL) + SYSTEM_SLEEP_PM_OPS(nxp_fspi_suspend, pm_runtime_force_resume) +}; + static const struct of_device_id nxp_fspi_dt_ids[] = { { .compatible = "nxp,lx2160a-fspi", .data = (void *)&lx2160a_data, }, { .compatible = "nxp,imx8mm-fspi", .data = (void *)&imx8mm_data, }, @@ -1291,17 +1355,12 @@ static const struct acpi_device_id nxp_fspi_acpi_ids[] = { MODULE_DEVICE_TABLE(acpi, nxp_fspi_acpi_ids); #endif -static const struct dev_pm_ops nxp_fspi_pm_ops = { - .suspend = nxp_fspi_suspend, - .resume = nxp_fspi_resume, -}; - static struct platform_driver nxp_fspi_driver = { .driver = { .name = "nxp-fspi", .of_match_table = nxp_fspi_dt_ids, .acpi_match_table = ACPI_PTR(nxp_fspi_acpi_ids), - .pm = &nxp_fspi_pm_ops, + .pm = pm_ptr(&nxp_fspi_pm_ops), }, .probe = nxp_fspi_probe, .remove = nxp_fspi_remove, From patchwork Mon Apr 28 10:06:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bough Chen X-Patchwork-Id: 885686 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 F192125EFBE; Mon, 28 Apr 2025 10:05:15 +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=1745834717; cv=fail; b=grFKUYOB5G0zfnNXDe6dx1mxrFnJ8wP08edT7iLnYqQPzimtXOAt7MJl712H7ncExMd6QMEDzXcsRbVEzlQ8uGo0bnPgSygl8jKAWdZmYnWrJy/T3V+rseAb3X1/3mKDDqsdWuwP6jZObZuK4rt2dhJlk/Lia8FmMb6i7KCH0Zg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745834717; c=relaxed/simple; bh=CN+YvT1LOIFdu7oACjSJfBPlYtPs88ub8EThrxI2rY8=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=QvtKjdCN8fr087Z534nRIPqYg4HpVF0wj5IBzsrc6jggf7lc4IgAikK261NDKvO76/p2GTHMhVah2nsXW2vrABUNPgPe0KSHZJOzASQnGBttaXFxrn3bkKZhooZQoWU160KDcsQ6pKTwNVFeJWuPBV4SYoUP4Iw3q0dO3E3lJy8= 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=H9I/33Zp; 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="H9I/33Zp" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=alGxzVUSRMvbhy5zyEPlxx/OtJ+JfXW/qbPMmG7MUamWUjgS3WpoDRauVTHdzi+xJfe+eU4nbj11GFaN8ZsqzKn+k8cRMOGvkv3zaoGTftfStfQRv9t3l7lCE1+SO+qvccHoEJJtTVHI2/sIlAqm8jUgf1/hUK2Nfs8fq+Xk6FZ67jd9/XsVV3qSBQlnJ3qp26bQ1PHxHMrfIXCGl1XT96GBA4krXBWWFnnHm87OaUKUEE1YdB3tmEaRz3IP7QiumWWBkw8A8jk2UQST1ajEf0wMLX0BzTVRMzRhC0O3hwrmwjiArq0gsX4qkw5G449zkcJ60siB2nEg95lomtfWQw== 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=ma2Dc0LGQbYESGDWyjvQ3toRVmZFop6aP7od7bD2Ipw=; b=DTysF1KAmu75tGPTHatBtSweE7ZC5h+cxJFkLBFBp0C5jhcI4ldBeVujCtD6cjXVN8FBg3KnMiVGdcr7RTgmn8NfGbemQ7cMU5MmuCR0xUhoYwpvwsk0dycSQBYq/0b7wHfvL0DBYf1XsyRf8jMqQPjYyfREQoMld3/hHH9Vxx4jwmEPdYwELvs9OSlD5b1P7cPF8JcbILrfE8cL6J7gxmYQJDaRg5JjyZX1+egamX7YmSOWd8UyRBdat/VELlXz5xT6pFIuAncYDrS990kg11NVolhdhHJEFBMUtTq2ln0ZyWC8iC81KN4kP5V9Lwp0GjVupWmMayGtXhjljIrX5Q== 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=ma2Dc0LGQbYESGDWyjvQ3toRVmZFop6aP7od7bD2Ipw=; b=H9I/33ZpXNJhS3tBydOG17DZEUbITR1kRkYnL4NvgZAxv3LlxHPpVbr+ieJqGGLVXkDtlk3skRYv8ZhIhCyxhyTPuDo8tL/kOGJ6xZIXb0UocunwPzvpWd9+NDb/Kefx5+4Beka2eCkgcXSDlIfZv51q7O7+Fu60FtBdXlVBIiofQ++LgudlksbIxY1wfxqvizAOduH+Ay2hTUMGdx3MlZkaBdig48Y/mW7q0Hghvak+p1W7TP8xlb9YRQgr1KnIxKcxvbA4zWmT2CrWB53rPmDTeJbyg0qCjvd1vYfYSDabVVPAEOY9kCK8Fn/ZScEVgBT0L4ocW2JVQRfZMDagqA== 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:11 +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:11 +0000 From: Haibo Chen Date: Mon, 28 Apr 2025 18:06:45 +0800 Subject: [PATCH v3 3/5] spi: spi-nxp-fspi: use guard(mutex) to simplify the code Message-Id: <20250428-flexspipatch-v3-3-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=1084; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=CN+YvT1LOIFdu7oACjSJfBPlYtPs88ub8EThrxI2rY8=; b=8XF63ETjHThXSPIpenKYUzmaXaLQCa61ECkw9DZU6KT9IOzezMN3RyravuSxIxc+Ld8tHE99O M+yWWEzXmTXBaQkWy0dP+YdAi4qWvuE6lRjfaEU+M3/gp3Ld5EPlS3X 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: 7134651b-7350-4682-c89e-08dd863c2990 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?aTOqRuWxkGYgPL1CG1eWm3Dcr9npEHK?= =?utf-8?q?KeBtY215eFMCY4iLO4phcLAUUiLcWPtvYGBDxt+ruHD6KlePmweLHoI3I2pPdBKEp?= =?utf-8?q?qWZCkg06bRE/fNaXJ3nZKnyR3m0sG0xFJ9mWRwbE2bw27gzdW5FUB6hNnfWwfktaG?= =?utf-8?q?oOE6rEtqC0cRYRZ3YbazXppXwRiAB4T4JVLvvmt+Qw10m4Pt5JKG+8ea+MAqgb9Uw?= =?utf-8?q?oSIzEAs05P88AZ41N/GTAmfFjHjkiRzbpj9gw4wCUNUA6ZeNhU+SlF8Zg3ykmvelR?= =?utf-8?q?h7qqkXGO6akoSWMwPd2N+zWVmJ16CJrRMqNqt0817YP4T93XRrUK4O6l7h4mi8UwL?= =?utf-8?q?78UDPr+vU1YQMZBb680SJbkpmAOzAXIJeQMjpfMgQ6EEGOIQeGD2y38s9lv1tRfxY?= =?utf-8?q?fyGDJdrWEMdaAgpSjI4ZRbgA92LHb5ef7bRHD1p6Z9R3QRFjdc7iCKH70kIF8z7IS?= =?utf-8?q?ejD8ddf8g2KtmUYBX8pt7v18JX7AEto9nVidTCl638BSm0iDOJs3YEJGQkCov5k8/?= =?utf-8?q?EA4UDGQnBwSv4Q4Ao0xYzvqEXc9wYVh/pYU+9OuYIBOZMc5xDJZlNHreIuT6f2b5L?= =?utf-8?q?L1V7ADZkb1A4iHmr/9pQKe79ODsecMFBxKjyMj97PEQFNbFAH3k0rBen8RYKYzUWh?= =?utf-8?q?MkExEv4gQ7Oi1mq1CKQjY9/rrNp26S1ilAdV6rzCjwMweRUaR4dzPifK9sc3be+QR?= =?utf-8?q?J9CIHDPFqpe5CbhzbTQ+DevP695RJfEd5WU2//PYHgL7ukbikii0it1XL7kuFbcSp?= =?utf-8?q?bly84X6A1YmI7Pog5WG18mbvQM3GMd6f6Dseyi5qgGqJIbBLuZei/ReMmq3gja+Ej?= =?utf-8?q?adT0War7jpbtNp09jLBQ/C+2i8UX5nteTMCP3jmNg9TqqrGQoIffdRNFCHxuMoTqO?= =?utf-8?q?IxrBna60NG8/c/DjF5yJU9rVrvFO8J7mFQlsZtUF3s1Yk8mzdvPPzCJF/PMfrh78T?= =?utf-8?q?PPJtVDay6Jlrfy+Aps+JQ+OKkar/MzJugovEik6pZ7rgactodhCaM1EW2XD4K8+sx?= =?utf-8?q?fiO7lIYuIjix3U0fPz42bSBv5uQpvQrNZ/J9FyWWIY7s8axzpBoPd76iKAXqIqe/a?= =?utf-8?q?IYHxUoA+BcqHFZBf9tMXeiJyKsahhl1jS9QFiC/6CebRCcJ6QX/I/88y226mYg7HN?= =?utf-8?q?/5BQ+uxA4LPhj1bO3Av7KYZXHpo+SKAeFlrFbRqYgRaRMMcPXb+X+V/jno5TRSj9E?= =?utf-8?q?jVG9prhx1Tma8ve2iiCUkyM8VvHIjL67wBptAvFLC83i3G+LB93rQjwleo2bp9bYR?= =?utf-8?q?q4DRW1IVMIyGajz/VRy8daFxlYqS/zgDmZ4kUViGEOCSg0wbgR+st2rsvOBb0q1bZ?= =?utf-8?q?i84Dv2qa9x1jmHUFBmxGx9y7LUlcWmwvtd6fKM3XFG4XfIoo1YRbA+jLAc/iuQ2dK?= =?utf-8?q?dxNanGtPdoqHc2siJzJ/xzdrfnQjTwcEg=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?0AYtoLC4vaiynbVbbLDf4EAdpUeN?= =?utf-8?q?ZZLfsrlDN3prtYA6I+9q7s/l/5uZ/GBy1eVE1yW5SGZdPWbghjeaeyv9KKIzRr/5E?= =?utf-8?q?6KRKUOXQSd+iaIoECudtejebtu8Hxx+Z/1DYX4RyJj9FbCsbRWUCTG9P10yx8P8qH?= =?utf-8?q?g1YxQK+rkgyygfkeBlHs3acuIDzpmOkvx3nqy7QKe8CR1IybSHk67Fnz7BtmPrbIH?= =?utf-8?q?BpCb/fdK6dWLg3i43oyuI4HUJiTcfMsH4mkBhu9IXdjqIrnw1TPh8rj7YCLyLXobw?= =?utf-8?q?ww2kBj7yCNO44tSXL2BUNs+YuSuqHiANES6ai+Purk4yl45vO5kTffP7l/A/3JX9W?= =?utf-8?q?01jwKdK8qgtub93BG6MB0nSFWGjdz9WiltNAPhjs0uV58SMXHn3TamPkkJL/Fuypz?= =?utf-8?q?ZFUdoA2q+SIguiWq2cVzsXKmFwDlYok8uT8yE303Bz6dO53HEpFkz5NvASZfn9ctI?= =?utf-8?q?R1egdgKsC7kmFdcMsaB/2ndOKKLjCW2EDttHZkq/efVKrAh/ij0wnAF3Oe07LyEOE?= =?utf-8?q?VBqRfCkgiq1rwd+UoBQXaGpz6K0mWxlLaVjcBZ3ILzAoGPK/6ydNLWyyj+3PuOHZS?= =?utf-8?q?KZ6fLrcFOntcN7AZ6Cd3JJdD236589dYe5ynBtMxoZyKDl8ql3mf4DI2oLT23gS7W?= =?utf-8?q?CDuc5/Ei+UKQt7CvDrETSgv07FXBG8fS07ycRh29SYJBTO8mlYOjdhrOLFLarYKl4?= =?utf-8?q?J8PpGExyB22X4KCKGNMGwznzrMNpEKroVEUjLp0ZwJf9K9X3oz77HoC/Q7OszttyG?= =?utf-8?q?1Y247dtW3k1YK7ZtFyZPgMaaWgc7fS2Q/dSjXEhG3UnA9v3dWCUVanhkrmm2Ja+hG?= =?utf-8?q?mGpbwoqD8f5vKNku30kTEALMukC223n4yJ090tUsm/L08tcoVBm/SZkr8ucx3jcVI?= =?utf-8?q?KrUy7R+pBAo743BsFtaDD4nu2E5KDro3BTRkhKuYvGZbJ9K2RqnmzQBrfoJxdzWcx?= =?utf-8?q?DYXpRd9keEQ7azPMah2EdhshCwLo3iHvBFLVulivpaa5IOy98kw0Ly6D8dqXvAi3B?= =?utf-8?q?Th9tfZqtLej7/s7rLFJC5Ppa5ZKU3chA4tkqS5e29nNsBO5W/d3G9/OzG9AuSO0mN?= =?utf-8?q?/PIL2CR7FT5qUXa6i+0judUb3h9rO1GBDbFFxa28JnCtDjIo3nh/BiLpO4Jy1nafT?= =?utf-8?q?iGVJ/bSBLgyLZd+s65KF3kKHyyfDom7E0Os/O84YzF54S+8txAtF/l1fcUflqr3yV?= =?utf-8?q?obxNttAaVcHFqjfPtfGtOV3P0SgWG2Se5Pzf4H9xYt2uO5WCrz9FLRDwL0TfkGpYf?= =?utf-8?q?uXs4eM7hiMWVUr58nm3xNyu1xfocS1okH4Uind26Hm1lFuoP4KxuETv6rjZonmrjl?= =?utf-8?q?cEmuEUlJt1p7AbMAPsWizDvD53Gm0PYgAXz2yAlD0tfAbX8GTk5xb3E2PtaBYPbEc?= =?utf-8?q?N6qPWTZsJ2WdnltKrioaSoDElHKhVFvwHVflt/x7gQ66Wxh+xS2LCJ7K4e1lVIlRz?= =?utf-8?q?rWMiEWgTZqKk7mqjy4TUUtHsrJLvFaRv4PYPeITkUizuCTlYqc6d6M046aTF9ZYwa?= =?utf-8?q?J9zoXmL2zK4K?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7134651b-7350-4682-c89e-08dd863c2990 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:11.3493 (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: Pxs7pRAi5Gwao3u3NUzJ9han3muHjFScTHba5EW9FMuWo7WaYiw9oLKcGcNrKzK6beulgYj3YpzrPs32sATZcQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR04MB9862 Use guard(mutex) to simplify the code logic. Signed-off-by: Haibo Chen --- drivers/spi/spi-nxp-fspi.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c index f7c3330a19009223cbffae8673d264246418e561..ca0b51a254c15f45a9e91907900d94d77f1d5dff 100644 --- a/drivers/spi/spi-nxp-fspi.c +++ b/drivers/spi/spi-nxp-fspi.c @@ -932,11 +932,10 @@ static int nxp_fspi_exec_op(struct spi_mem *mem, const struct spi_mem_op *op) struct nxp_fspi *f = spi_controller_get_devdata(mem->spi->controller); int err = 0; - mutex_lock(&f->lock); + guard(mutex)(&f->lock); err = pm_runtime_get_sync(f->dev); if (err < 0) { - mutex_unlock(&f->lock); dev_err(f->dev, "Failed to enable clock %d\n", __LINE__); return err; } @@ -972,7 +971,6 @@ static int nxp_fspi_exec_op(struct spi_mem *mem, const struct spi_mem_op *op) pm_runtime_mark_last_busy(f->dev); pm_runtime_put_autosuspend(f->dev); - mutex_unlock(&f->lock); return err; } From patchwork Mon Apr 28 10:06:46 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bough Chen X-Patchwork-Id: 886014 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 180F62627F9; Mon, 28 Apr 2025 10:05:18 +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=1745834719; cv=fail; b=BM6y6ddCXXS5B/SWcOfi3++lYYaoKHOrGZDFKMDU5n/ocGv0qMV6vrVim8uIAMQNzfUSCiBu5+b+AiKRzCXLpcc0kMIerYEiqXb+YI1ePqX16u+UhXZj0XkPjqjrWgMftYYvn+4AqMhCft62LL8ps45wA29oP/IvbiY36dDcgzI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745834719; c=relaxed/simple; bh=krpq9nhBfLy4zLPhr+UXTcOoYRwPWSk58aZ25kSzJU4=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=TrsK/YUNGzth2xwf3U5yPoxLtvqcirwepji8nfXpEh6hbXLYCWXP6IvaXUzDtFsXRBCZoxFQfH1C6joP4SIONh8tP1w5VoMX38ccrY2Fgqlf7Y6g5+fyAKiYWxZIFHsX/hjR3dx8i3u0qwrNjK9x4e5EN3Xt7UjuQ6MF2+sRTJI= 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=FjmBLcAI; 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="FjmBLcAI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jymGuuV9PI2vv+XiWJMx9w8CdtStvhOi+rYhdQj+/DYfHW4rIPtjQ5YtzAz2vLo333GYBM4Km1Wk1AZWAUgKkGqGCg5m4htzajDxkxQA8GDeaLFRz4f9dGSM9w58ecBmbfdoR5ztXTF7BoofhzFdL0+JQ/7p2bi50tFQek3HwjhiJdC9mlZKm69PqeIx2amG9zRxtyImiBaGaLdzSWmOgP212wwpLwwyjVSSlphTb44QvA4il3O+z+ra/XTAff5NRzQBLj+xbXTzXXCBik2fR9H0BkO6wyBACHKhqKKUXBExlNbBkbXywErHzM6nlN+3f3dEX8WWuGePxG5NsZPrqA== 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=2FR9ammIYrrwyCJlXxuYqT6sm/P/vU4f/u5CjUy3df8=; b=G/8/Ut235GDXea1My+fTQfCsAvz3I36abJu2E7wLiVKQo7npRNh6aJUbivt0TOvLdxPyEW2tGfxNwF1NV5mkHX+Kyu9CSfomO3eTWGv4JNnKcQANvjDUkuSuwcrVGQR9xj6usSSa/fU8wVnyRhH+oiQECF3zVc38NUF9ZFBQaSMF6rLHNDNHdp7ZdO5mpp0d1zZpH/pigF7qCTjnhWSShF50jnAj8kB4VpjqhP8E+UAzgB9nHgRsc+Wg7nqSxVrQiER0YWVkGm/6S4/KAdMlpqkDn1Sxiqm9W3McDdYbXype8eoDnrmZZS+rujR1HpzuXh2/ffRr71etSRbzz6ktxQ== 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=2FR9ammIYrrwyCJlXxuYqT6sm/P/vU4f/u5CjUy3df8=; b=FjmBLcAIaCHG1Jc6qne+Hl1ebQTbBer2VYsyoV0OUOvsy1d7foSAhwzADmA8+pY5wZIf71Sc6e9+JNet5ft55viM3dgulSmF7fZiD8vrD025/M6ZG4LfE6acX7gpHBDT++K7yX5YhC++EIOckfg/wsaQxkeFS/g5Idi+e7ev1newNiCCFwV+RKj7wwZyICoDIRt/EeX1sL7u4zPtG5COTV0CTuXkAIG+HJktvhGQQZtgubvX+/RHp+zcWaVOxKtqgRZbjRqi5oBwVfPiiXgCnheS6qidIce5eOuSTjenqmlBzEJzzpsUCMoCjPWEvUV//gykBlMvpRfVfbAjvMjhfw== 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:14 +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:14 +0000 From: Haibo Chen Date: Mon, 28 Apr 2025 18:06:46 +0800 Subject: [PATCH v3 4/5] spi: spi-nxp-fspi: remove the unchecked return value for nxp_fspi_clk_disable_unprep Message-Id: <20250428-flexspipatch-v3-4-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=966; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=krpq9nhBfLy4zLPhr+UXTcOoYRwPWSk58aZ25kSzJU4=; b=BMS1sYs/om34v1q537xQSzogKrQAWdMdLtaFp1/hQSeJtgPYMaZUXXbBKObC2zN3XIRBe02Zi 9xzd1OMlnBCAmQzUzum76VZ7y4grNYBZHPhwJNfAz6Q0rB6f6Dy8eWj 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: 24761bdb-ca6a-4963-ad24-08dd863c2b5e 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?qv4cN6LYU9nbXhb8WzSBDV8voSQsPxm?= =?utf-8?q?4ueVaHmCOGRbaGJBVzcu8tTHMkegl2NDCI234jJM6E7DwgTV0LCl/xjic1BuSKw3U?= =?utf-8?q?ow2Yx/SRrGCFOmAcanqVtu/RER6Epyq71FcFE5cEJu3zOhI9TBiML1nyKcRAHy4xK?= =?utf-8?q?l/pJYSZpnNvD63/5o1FzxQHHSbGIicepHAloTcKGLCLbUIYI4t97kAOBIMwNWzVeW?= =?utf-8?q?OcAT9K+jk65P8zGv0SmXj+yT20gkXo1hi7hSEGwL8Nch/2l8EUEZywhC0Vs8B4lr8?= =?utf-8?q?bwPIS1DeR0ZI5V+CJkyUrwmd0IUFDoU6Oy4e4aWs8tT55GzyT49mJ9GHepuDDvLyo?= =?utf-8?q?7GrRJrnQsHWBIlXNG498MMCD8of5HRaXltCY6F5ndMHdVoNGoZGvTFQX+xGcDx5ec?= =?utf-8?q?/hZw1iO0alI9+QBk2TI+i2kkGT3wdgdasSSWKYRdcG9tDZ7DUJ54qEHizQCatK93Q?= =?utf-8?q?mxP6UGSZA8FmeEFlxA9dLi4Yh+a9RpboVjWLD9sYF/wOzSrnIARiGj9CDF29xLDJ9?= =?utf-8?q?RsjOv2n5cfjtflKG6nLe66yHmYY+o7TuyVeK4wq0vXVVitCe5oejEfXVI9GqaQnvJ?= =?utf-8?q?9CVV4UmGmz/EfX9xp17/EkIHShLQ6jkPkG1w10owVfVAsapxM2zyvTg40INzat0A7?= =?utf-8?q?HzlX+6iziVOWcVeWxSgnA+t5cQKB5Jm4SWkhBPoUi+4u0yFKYwgHCChthYBm2jnRy?= =?utf-8?q?uqjmj3eh+31qMZLYPCqf+rXuTR8PEJTpYc2a3vpvUbdGLBe6WVFqteyaaiTUowTjF?= =?utf-8?q?KZUHbMXtysfeMM48oy02/KhOv2D+vRkKMZSgsApBUq33afN1+6qayi+epuHrSzY6K?= =?utf-8?q?iCGQaB1Esl6+LjmftKuy5XGcnXZaLZe7ZDarunUbczjZ1yOhZ+ng1QHFEW9CqFnmb?= =?utf-8?q?2fq9kt6Ov3QtOHYvoTXM8OMX9TAUWMBgimFFGkDkpUOP0JEO84CCPBJhdWeNlQte4?= =?utf-8?q?4lc8tncW6MBv0ExTQxjL8gJxygpHyPLo9oqL1gDikw5TUFNEEkjYetcSYQekE9oHA?= =?utf-8?q?Ox62Yec33j0tKpRG2V/XiUSV60G4AtCY5tPpzvVN4C/GsazJNcXL6iIf652G5aQFp?= =?utf-8?q?uQwFhxLWMBvLLS7ru6xTlBWsYiHFQ/decLAug1mh43eO9wyquWQzbX4Q2F086YM2i?= =?utf-8?q?W3HSJPgQVpcZ/a9ShSimKAW0FuqxkC83CVKOh4Wj2lsYKqO9tzC0HBWhVnLj9Fvre?= =?utf-8?q?SAifWi/up09H4RdsDBd+n502vA2T7jrFOuOaQ2yZhSVkqJ1KPNtVRkCePVRa+psbg?= =?utf-8?q?4ItNbss3eOlhofm5augivYeUeCr8WIWtdqsV2ooNvC0Qpf7hyTS34iI9xnjwb/LQ5?= =?utf-8?q?kUVsdp+rPUAcKuxPmudP+gP63wgkP8Q6OBeXWfqeFgY13B6ngSGVLfmt4rvxvLA5i?= =?utf-8?q?EZFCZGsZvEYIm9f/sIWzuHKjrnVi5IarA=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?q9VqCEWkjQHLG8vixZ8nboGbaBQG?= =?utf-8?q?DUpnqZFF7Vj91hXbiedFXoerg8cR4prKuoRifpSTIasOW76vUVS2DWobZUINM+/Pn?= =?utf-8?q?WUhA8stqCRpemjeTDJh9clLWk/lEGbb2RffOmt1RJ8zgiuFtTxHZZsvwJZ9Z1Cb2b?= =?utf-8?q?EDzcHNtUA3p4WTLNeijCV6fzUIzsZ67buixgof8jEljD9Giu04nyxfnlszXRQeYc7?= =?utf-8?q?6eMXLMwAZBxyKiZEl5/6vqAmZ+MWVzyX7Hk0FSsNS/NOuNABB78m93VxTW+ImB7wP?= =?utf-8?q?j7TVa0RZzBGgp0LHrHrgkcvE+bevSxYf28lQqic0kI9imLi4spf2kEKwEe0tdwh5c?= =?utf-8?q?gCTTqq47jRriFmQghpywGPN4H3B1m4FQctzQ7/HA+Mt27KCneYh3PvMjzK/cVjdi4?= =?utf-8?q?177yzWY1T/NMSY4XAp/Qp5SnYUJjgE9Abt0ugyxheGtteJmbqFTEJ8bHyFiFT8VL1?= =?utf-8?q?P1Ded1YpfXN23rDGam1Z+9g7DdQYIhc4F2HYHUuRt40MRQbLIb2ofdYd2MwKIOjAW?= =?utf-8?q?PmqjJvQ8gimluCKxLKServaMZyYZVfkJnSs7Xe4rP5lSvbS7wiVlYk7cF89mRFhmk?= =?utf-8?q?XGZzmtuzOqTShkgzi8BGxObe3uaV/9M6sCYQtswQ9W5lLTHhWjYVEcrVEzjMfJyqD?= =?utf-8?q?RPdfVEOKB39pvTU8NFxwoWu8OYCE9b6MP3b5/vTlWKQpq0Eeu9dXCqWVb8Lz1g9nu?= =?utf-8?q?6PXJYr3NAC20gnz1vKlbVYbSswwzx2SUCyMLMdtufbE9hR/3mlpVVsS+m1A6v2nvn?= =?utf-8?q?3bLkAb/JUUjYBeLKgoMh/aigExnzDwwxuBbH3Tff9iqwAeA3BbxhFbUyiDPpbuMnn?= =?utf-8?q?G+uw+znQ8NDzqV3WgXenCpOZ0VVMwdMsb/kK6Es6OTNo3YQ6FsUqSHOqyuQhbTTC6?= =?utf-8?q?oS7hAJQvNvbMi7gawPGvZZ39fKLPzbXWRKi06n4leWtfE+mfWW8Ig/fYIWQ5onGRC?= =?utf-8?q?wqPEWBgyPInnYJL+Qxzc/3+X2Js+OXjNlW1yLu80vUDCuRmJrno9RCv1XBnoqh7mR?= =?utf-8?q?npzrEuMNLzRruyZIo40jWtP5RfPfmoB0Kga8FdOt2BqF5RE7U1kJCDDRP1nnhneep?= =?utf-8?q?Cw7+aUGGeDfKD7W0FEnm/vfD9EKc0MC4TrABWipC7XDDWyEuCoTnUzmkhIwmlg7g6?= =?utf-8?q?3Zwbl+5ZbSiT6ibnhxkEpWrPCeC6pTquktWjyCKpNpfsEZc8mAtP3cnQzro18SIHE?= =?utf-8?q?LHbdDxmMPg5pf1c4DkrfmaAycZFxMVP7cY8oZYiWa256EJbXCTvOV3vpC0d2NCxMj?= =?utf-8?q?Ik97/uSUOjPzvLteYu5iKiycQ3GtRqYrS6QPo8wXbZRc2jhXAARrh+joTahnK19j1?= =?utf-8?q?kGLRB1ljeAr/WobSOU6ALhPyildP0xRFA75ydd5IzSe/fB4MmBzWL5g+W8Qlj1vtN?= =?utf-8?q?ORlPEVMuuayG9LXMrILc/RNQ35Sn/4gO4OTvPgiSfBRd3JO59Ck5GK9qtglFXPmC8?= =?utf-8?q?v8tqaqjSAkvApStkroTGwiLIQ5rWaC/qWvyaHLSyialBNas8grIew08v5mx1961UD?= =?utf-8?q?cv1i2JsLWcjv?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 24761bdb-ca6a-4963-ad24-08dd863c2b5e 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:14.3921 (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: qID5QG3vR40RpjJDUw619pH+XFAAaC/d4xjXL3YHxi3fyoIxfpNcpQD6MPOUuCgamHek2bcIfb/t7jnkcZijpw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR04MB9862 For nxp_fspi_clk_disable_unprep(), no caller check the return value, so remove the unchecked return value. Signed-off-by: Haibo Chen --- drivers/spi/spi-nxp-fspi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c index ca0b51a254c15f45a9e91907900d94d77f1d5dff..0ea04e77a968b9c8dbd73a76984022a8f9e9b178 100644 --- a/drivers/spi/spi-nxp-fspi.c +++ b/drivers/spi/spi-nxp-fspi.c @@ -634,15 +634,15 @@ static int nxp_fspi_clk_prep_enable(struct nxp_fspi *f) return 0; } -static int nxp_fspi_clk_disable_unprep(struct nxp_fspi *f) +static void nxp_fspi_clk_disable_unprep(struct nxp_fspi *f) { if (is_acpi_node(dev_fwnode(f->dev))) - return 0; + return; clk_disable_unprepare(f->clk); clk_disable_unprepare(f->clk_en); - return 0; + return; } static void nxp_fspi_dll_calibration(struct nxp_fspi *f) From patchwork Mon Apr 28 10:06:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bough Chen X-Patchwork-Id: 885685 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11012031.outbound.protection.outlook.com [52.101.66.31]) (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 D7997262FF9; Mon, 28 Apr 2025 10:05:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.31 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745834724; cv=fail; b=P1I06rN/m6wvICgFq3iGhsGSA386BrFtJaxhfFpcl8HBPKXqhLvB2jfqHwurwJdeWR+3l2VRMK/IP5GHHYhJH8yc4TLVsU2kNY45lsc5B2vTgLK8E47D5/suMuOAMwLyYI9o13KQcmpDFM5HppuYNepBLNzjqzZA4lXuWHvcL5w= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745834724; c=relaxed/simple; bh=irZFSSYx/TvKG4jJ6voT+6bplOW3bJqw8kZoUAKk26Y=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=UJCusW9MDgIQ2dtewE32cewHXKkWFR7xQk3nst+ZWTftsfnlNZHfbLmWeAx0FyHBbdAyMIlLX956tUEPinEdMnqrSf+kbtIRWAaBPTW5nbjcX0riY544EC3KleH4XegFjQlMbrrZf5eeeLLCWP02tkbIFctGgH+kyM9YuLr+sMw= 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=nqc1ZUOI; arc=fail smtp.client-ip=52.101.66.31 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="nqc1ZUOI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ShAnvj1h4g5X01cPOaRd9zbRoIEo96dM+Jn4OrZXtf3gvO7H3AVfLkWZxCyOXNJ/4dbSykBdWbA5ZmWVigdFg6aSKaCHchCtdy7d3E2wjevxSXrZWx2WdaYi7LnSAb/kyPhtqlu2OjcaHyQ9/wwd7lDEcQSjxg/hP98css+jCRwnyHaf+PZxzVTgkDIBxcrgrg+SaG7MAfBAp91v8/CGVoYifFUXGiBs4Od81BrJjQYXGrq0PSQwVLkvt40TO4xWiqsy1T+ox+wK+ke7IzaA47bW6ixjrKIRQFNz4DFAS36f8bi3vIIJlNERmrkRJOcXsYdVHuMGq2JEXSdZiSTd4w== 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=RFMmYH8Qt8INTnib5oq7NC8c1iRdxUfjfS25apuO0w8=; b=uFLOMFTuXbXZw/2aOP85r2x5IWYDjjdhGWQ6xy7rfk21BoGpzk7zs1g82AYZVKM1vyhipzdIWpxRGwiUFstw9vJqLc7x7ycMBuIiNyZ1yyj7tl4zpe1YLWaDMTCzYVV1lEtLqQMKHvSqrSqVy/KFV+u37SetERCgQdRMUBF8lgpifVcnRyQNl0dIic+dwWgXSWJ6F41t4aurVnLaO+zKKX+XWpcHit7AhGEtjIeyMA1yB57/i2wbRxzIUdMTk38hV7F+GodQxNpl+OJXOitgik8nHVH08m9b/OTa6co+TRVvM/oDDv6FqcuIT1ecil6Q5JoZMgJW2CWZnkd+CaGp/Q== 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=RFMmYH8Qt8INTnib5oq7NC8c1iRdxUfjfS25apuO0w8=; b=nqc1ZUOIfdItEG0daxAYcPt+D5U/gvCxc6lau/Ix+ydifdLdXta26o6Zdg/vju3GhSaPb11GphbbEyA0U11xQFWi02BMxeXyLHX0mjZh7AtbXVUb2UzU7BFatXrQkfF2gIdRf/j1f1dVNysaWy4s1/vtoIKrciYNR10vm8+wOc5+sCE1u3Sa3hX26GA4S5jOLCQ2T0icdp4l4qFzn3gb2ggRY2AAYtYeNSpFtleHVuLzmwiEJnwWJF4V/gECmf/Wx8NVWt5ZQrNOrJdV76lmqjqoYjsr72KpCeEf4wiKzCOC1Cri4a1XlMVvIExgVgF5qW7CFixcI+FcmSdN25sdAw== 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:17 +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:17 +0000 From: Haibo Chen Date: Mon, 28 Apr 2025 18:06:47 +0800 Subject: [PATCH v3 5/5] spi: nxp-fspi: use devm instead of remove for driver detach Message-Id: <20250428-flexspipatch-v3-5-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=2590; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=7KgkJglDrufn/lmGSDkrryOQqmavlyoLMs7rvN6cm1I=; b=tJtlkLjONGR2jTwr/28TP8D1iNOIplaJLQzdzAeFnNSfPih3ZoHO9vtZOgI+yIxhsZSIj3JvZ kwc/OEMw+bcAUM5Oqqcq73d+K1WrQxNCfz7wANEcEfLDcVjifo2v3i+ 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: 0a9ad8b5-8861-4bb7-685e-08dd863c2d60 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?uv7zG9xUFytmshxCvSn0WrYPHwH+O/A?= =?utf-8?q?Kxb4C6NW7B5hp+vSCvpbeSXCLtFzlgk9XTlnzWMVohoIdT6cuPmL9Alg7JPZ2kx/L?= =?utf-8?q?frH2RnE2epDNlOeQKFdIgffhGvaiYQVgOy8BOM2p41wzbrWmxE7c/v13h/8gT/AMS?= =?utf-8?q?JJmhZvJRs2GbANXGIlw9xBc7HCEfIfz/PG81rAKBpvC8oTF1DZPYtagmBSZ1y/dvY?= =?utf-8?q?c8FjUb2E9lSrje50+r63URtZgc3qd8UUzb8a4F8ld1EvljyL3LDswiirFKiMtY2oz?= =?utf-8?q?iMLy45hin8JaeivArXzy6EKgIX8nCVT/rIEeNbDn4M31iO65HcWNNmyK1Xqz0H+Vp?= =?utf-8?q?OyO/boOaMFwZuYpvKVu7Xx14eII84gxtW9N/UjM0T105V0R7Dlx7C+jSTcFs1FrDY?= =?utf-8?q?m+dFiW/vHG3WskreqC8n/J3RyW4PTqc72nZ73Z+dUnpL4k5iBuhoXHkZKmBqiQVce?= =?utf-8?q?pFx3DlJRO5W//yXgjbUkvCGCLDQnK2cqmut5JbY9flOraHbu6qrWu2C4inKJKBBVQ?= =?utf-8?q?Sytwl0wvtiAGEmOuyparFBugNIuiinWq2/EqCPdXpICR5HeaMl02wh/Nv1Y5JP6Ts?= =?utf-8?q?SBIFjMJ3FZ5xfrWOYOpJhk1tVy8mjXRhdwBph3GgM8FEkXaZQwLRLNZBf4NHE2gmy?= =?utf-8?q?pr5hP3Isq83PJ0V3CetrdN1kBPEMHntyWwE6iyJYXNmL3pLRnFb8i/3DHpoG4p/0m?= =?utf-8?q?ZaTm0c3NI9EdbEouAODKbHArkAi9NwAsoLBXYKNtkYLhEQbmA9sCCfcVJsEtQZl5q?= =?utf-8?q?NS6q/z3ZvQhV+sXY6OWdmYCN6BtB8R/D4ZfA5uGvITR6naVfA0QHomNVFfK2FUOW1?= =?utf-8?q?5hxf7G05RNShpChjkaM0QClcwVFV7BagLWzvnwMp301iiR3kWELwkvENrYS7//BY1?= =?utf-8?q?+huThR9VsfprLCfBOUkSPHLtNb5HX7+7PPxGYqRTLOAe+vffo5N5zv6BpRFllxhtq?= =?utf-8?q?jX14qU9GfRjMiH8I1BzNmBYgTP3hvkEx/PeEJeU6e1ivwzeEtEV0vdA4L2R5JVhek?= =?utf-8?q?PHJnJGVu7RUhl8j8iS5yr7stRXB/fygxbxY+Ifcqi9PM/X4DJKQyISWzMq7IXOEnh?= =?utf-8?q?ZvJFDuV9uC6ELPFxvVQQDXSOVQYBg99nl9lO2LscTTVKANM2movmkiyO1lKwjZvM0?= =?utf-8?q?mfB7NvcqiICHBfelP2GosmLym09GQ9FlkDaAvMZgNUEkZP7wYvA9OXh2pAuQEV6gd?= =?utf-8?q?44RaQ/UgmGzvVEOJGGVbtVNmE4fEWSVoDDa+mTwGGUN6bL7pjQsn3800K2mF0VnoP?= =?utf-8?q?MOyCCoEEck9NmQHxiJp3s6EN+N7VZObrMTKwAifTDEVshNQBOj3D5jDTP0SmOFXyx?= =?utf-8?q?JqnhsZ0KC8kLFq5gchHMOlE/FaOrT9cU1V65VNvUqAJ2CBfuJvET9szywi2RjeqrA?= =?utf-8?q?cOoqP72AH2Ne86TeAJgyEgJiTSelauZBA=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?hQK0dczzobvJpKyp7hQzsYIO6QbR?= =?utf-8?q?AIOQGyftay+0X15b5OV5mvc0wlLclccTMssTS1kElsDrXoxxPI0cgk6TgOOP1Jx7f?= =?utf-8?q?Y8qE8pr2m+OQDF3LUziH7nMHU/zFr1aZ0r+iPhfGZv94xWX9QHJtzu0nhcvW7sW//?= =?utf-8?q?5PObw6hQ/zhb11b7Nt3e++rX7gRQ0rI+IvtWc7hP+y/zkfOc7eQHV9M94/yo9oBYm?= =?utf-8?q?zXqj6fqEwXXqZ91Igg2rsZsaTZN/do6/+jxJb9FwRs+qWE6JQHePC99tlI4OIUU+r?= =?utf-8?q?kSmZefDISxUl4qUKcMEPl64wAYgWN6B62EBWoqEAKNkYu4BKmBup+CR/53itUh3Qh?= =?utf-8?q?5odCmDre5UtRzgxbv0JfkZBOQMe9R5zBalHGr6oOY0gycnxx9njedKowHc/7vZf+G?= =?utf-8?q?cGvh6r0kcxLkV9JrbzxEBZb7u1ktJgby7KRS6Vbp6w1d3bQPrtycNGlPPtZq9k+FX?= =?utf-8?q?vy/EMy6BDel7o3zgkkTDqE6ydxA1mXdrEoxKonztJVxXNYbJPHlIGfrw1rXQOaUEG?= =?utf-8?q?HGZiMYbAIwWlceLToYNZ38TO2Mg6hhMesvGbg2yCwMhaYMW8rW0pLSj+9zRpxX50n?= =?utf-8?q?rLE452BMJ+SDLdDZg3JxpAMp/xhFOFF5jf45/ERe4h+r/lDdgXvHAlKirsXk06zLi?= =?utf-8?q?+zVX+xhYPUn4o3sxu8vz4iXGgixtGqq9FbT2dIE/q7FxY6AiAA7lidBxnSmk9MhtT?= =?utf-8?q?wtx9SCWDa6sFFIhQZKYv0JlBxGsjW7tXTcIPsHAOkH3uHHf4qnEULoFwO/wDYeODt?= =?utf-8?q?bxnFE6W+yYmvSKsJx51Wh1vC/p/0O4rR7e9KFPzTNY8hNPSpbiEkc07Yl+jEFOwWB?= =?utf-8?q?RG7jGlSaIScf3dGFA7lm2hN/Fnehe3F+u5Qr4oQfk+ijfj4bKnn1KanmdtTID/l24?= =?utf-8?q?M70/o/lVLBx62ALEoLAQDPobgVqRyqdsOqE6DB3228+u0I4KiHTnENzqG+rYA6Ola?= =?utf-8?q?WOLtRgaSquh3SGgcz5smgStcUfqGRALJsQ3+h0DZolHg+efUY7N4OwNI/UphoCZaC?= =?utf-8?q?hxwJfA2m/qYXuv2QErq02K321YGMTo75QO89MR9TWF0J98oORtTnCQfqCTcq6ZBmi?= =?utf-8?q?aX649m/Gcy762+UDp8KHdfH8eWk6+DysXs/3fxxtGTtIKb1CWl6+GouP7uEEnaoPt?= =?utf-8?q?lsqtihs/i+KBhEZkrZ4BtEixTveIq/nGx6WFP2clJ3WE9KhSjEZuepfqb68OxZEdc?= =?utf-8?q?sfP3JTznf97yFW74XBKJ8UjBvwsIX7FRjLt+FNf6D3VvKrrETnNYhaknOAtbwbr2e?= =?utf-8?q?1I+j30udkYOHQvyaytMJ2QD5WueZtelczS7mvfT06hL9GKIt4wQpqtqeBBg0vbN1s?= =?utf-8?q?V5e5ck9Qi5II31FAcwbnFFh2l2io12IXdJlOUsGpWpzwtUBDuJKUr2GlbPbbT9p/k?= =?utf-8?q?wSILxHdz6A0F12qMKZs90ME8yZE7rRxvm//KujceCvN/TswG8Ta3FweDh7bqnooJ9?= =?utf-8?q?vaYmvGejzuJZgexYvc5cT5WszeRpRUVryDdSg5ZSui/IpkggygGVEl2OieGeVLmpy?= =?utf-8?q?MVFANZEm2VDY?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0a9ad8b5-8861-4bb7-685e-08dd863c2d60 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:17.5379 (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: lQRwylI6uFGZxnp4Ahah20/iqlbOqHCCs8ncQc4BrBVLFN6Ocul5ZQT9a0TtVvGygiXgjqDY/FAcZsLjo3eOkQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR04MB9862 From: Han Xu fspi driver use devm APIs to manage clk/irq/resources and register the spi controller, but the legacy remove function will be called first during device detach and trigger kernel panic. Drop the remove function and use devm_add_action_or_reset() for driver cleanup to ensure the release sequence. Signed-off-by: Han Xu Signed-off-by: Haibo Chen --- drivers/spi/spi-nxp-fspi.c | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c index 0ea04e77a968b9c8dbd73a76984022a8f9e9b178..e63c77e418231cd0698ffb73eeeebfbe63cc3065 100644 --- a/drivers/spi/spi-nxp-fspi.c +++ b/drivers/spi/spi-nxp-fspi.c @@ -1168,6 +1168,24 @@ static const struct spi_controller_mem_caps nxp_fspi_mem_caps = { .per_op_freq = true, }; +static void nxp_fspi_cleanup(void *data) +{ + struct nxp_fspi *f = data; + + /* enable clock first since there is register access */ + pm_runtime_get_sync(f->dev); + + /* disable the hardware */ + fspi_writel(f, FSPI_MCR0_MDIS, f->iobase + FSPI_MCR0); + + pm_runtime_disable(f->dev); + pm_runtime_put_noidle(f->dev); + nxp_fspi_clk_disable_unprep(f); + + if (f->ahb_addr) + iounmap(f->ahb_addr); +} + static int nxp_fspi_probe(struct platform_device *pdev) { struct spi_controller *ctlr; @@ -1263,25 +1281,11 @@ static int nxp_fspi_probe(struct platform_device *pdev) ctlr->mem_caps = &nxp_fspi_mem_caps; ctlr->dev.of_node = np; - return devm_spi_register_controller(&pdev->dev, ctlr); -} - -static void nxp_fspi_remove(struct platform_device *pdev) -{ - struct nxp_fspi *f = platform_get_drvdata(pdev); - - /* enable clock first since there is reigster access */ - pm_runtime_get_sync(f->dev); - - /* disable the hardware */ - fspi_writel(f, FSPI_MCR0_MDIS, f->iobase + FSPI_MCR0); - - pm_runtime_disable(f->dev); - pm_runtime_put_noidle(f->dev); - nxp_fspi_clk_disable_unprep(f); + ret = devm_add_action_or_reset(dev, nxp_fspi_cleanup, f); + if (ret) + return dev_err_probe(dev, ret, "Failed to register nxp_fspi_cleanup\n"); - if (f->ahb_addr) - iounmap(f->ahb_addr); + return devm_spi_register_controller(&pdev->dev, ctlr); } static int nxp_fspi_runtime_suspend(struct device *dev) @@ -1361,7 +1365,6 @@ static struct platform_driver nxp_fspi_driver = { .pm = pm_ptr(&nxp_fspi_pm_ops), }, .probe = nxp_fspi_probe, - .remove = nxp_fspi_remove, }; module_platform_driver(nxp_fspi_driver);