From patchwork Wed Apr 23 06:11:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bough Chen X-Patchwork-Id: 884283 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11011067.outbound.protection.outlook.com [52.101.65.67]) (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 0F4EF266592; Wed, 23 Apr 2025 06:10:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745388633; cv=fail; b=fkAc7CYIg0xBp3h9+N3k0JNTjBMItGaxdCKv4m3jGsY1AqZm3lbkjpxrsAob2Otpn/cpORYlQytPnWhvo2yKx/mU97UkpuHT2HJe7EgxlwBkhSYBDICz76Z+Rpe67+99MyHl+EamQj+1qtOsw/RX11ce/Evx7l9z3EB7QCoYCz0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745388633; c=relaxed/simple; bh=R+E0blCnr84VOgWVUzaNmlI5G0tHD3+mnj0wlyBAGLc=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=b9/7yS6Q3YuAQN4colG8FcUG9R50uhintfZn/ZUNxTNn3SCWYjCe0QlMWmPHe3yIvISiWBl/ETT8gXUBDV/hyvYp+h3Vz+9WiJUdlfsje0dnusdwmcPmMNweMGkex1tKF9mH93QO9KbFqNjjGJFT7/GvgpZeGv8gd5Gud1E12zs= 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=P9agtV0X; arc=fail smtp.client-ip=52.101.65.67 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="P9agtV0X" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fa/t43VL5ad01SkXpKzwxi/tgKGHYtR3zHREALLui495Owpa/72uVhSqXDIQDiu6kw0AdMN9+oL5hbNaQlNu9FFdvahMQUFsvEwAWrcfacke9lUmcd5F9OHwJeVFMwXdSY3XL4XW1lAGuRBRFCusbMtg4eSFdFJwvJuKUduNYe5Lr0oeGkHvzSDquntHVx6M0kNPkvMRn1T0dSVJLFm/DCA5I076MYzZAMMV9jVvMqzWRvIrRR5hCh8EGeL/gQFcIePMDhINT8WxQ6K5EssYDRArjqphBjW5CuOhFS43GOOOPPs7E9t7rLCMPJyhJgmxIHC0a+UoDwjPZp/anFLPPw== 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=Y02S8rlBWBWd96JNvkoWJWtkEdKZMHmyH/xAaK13cS3T/oon19+KVhuh8T6nMiZHEktCAEpYB/ul1QiR37lL3tBIEUEUQFZmi1f5PGQjO5buEt98AXv1HuXz4J/6s/KTNPExtG7gCLrxwqp1OowzDxIbIg0sHLghvDW6b0x7HAQdiXCnZcbZ+YuB2pLiZu8JNpdKLVa8Rg+M7MpP2AaG9CiyziosjDyez5ktp2ypl4EhjKCZAdvl5dtHVd60QmPYryWbUF8Ysq8JchZxwdtewoXwf51QpLPSD0Ty+O0CeJyklRe6xiTCwQwVeDyuwaf/gVadBlXTapoBMRtU/+DIgQ== 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=P9agtV0XxQ9S5sKMD8qLqLze43aAhSNVtmp/+uCgFbJqs9gt3ZRY9LmWd2nJd5I6Xrxmlb6l2GT51zKfmOjqrPQsWVQYKOggiNXW9H6y15s2A+uh8UbnGJ16xjQ57nGOBmj5veqm+t0LuW9Ut3kaCegMBRO8GM2h5yLE/x6lMlzqWNe750N9K+o7UPbT4XkXa3xSwcMd3OoPg/IOfd/jFV+75yOn1RdMBnpnD7VVUI4ENsZ4YG7YBMOfRhtDkMzq9X2NCkQBXJTFwuOj4UFf4ucLW0HDO51m1d4uzD7177ftM/UGct3RdG26fsbkNTx9m1WDNwbc91p76tLQCEk/BQ== 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 PAXPR04MB8734.eurprd04.prod.outlook.com (2603:10a6:102:21e::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Wed, 23 Apr 2025 06:10:28 +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.8655.033; Wed, 23 Apr 2025 06:10:27 +0000 From: Haibo Chen Date: Wed, 23 Apr 2025 14:11:38 +0800 Subject: [PATCH v1 1/5] spi: spi-nxp-fspi: remove the goto in probe Message-Id: <20250423-flexspipatch-v1-1-292e530509d3@nxp.com> References: <20250423-flexspipatch-v1-0-292e530509d3@nxp.com> In-Reply-To: <20250423-flexspipatch-v1-0-292e530509d3@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=1745388747; l=4520; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=R+E0blCnr84VOgWVUzaNmlI5G0tHD3+mnj0wlyBAGLc=; b=QD7wQJRRqPHqXnIMDoMZ+QFi5bqroDqpQ1Li+UzTf+Mpxvr+07BEzhaadK9WMKOVz3iKk7++T NBNxO8+sPpDBoXtSXvvyXP6K4faAXp0wFMcwHnLBrMm6/EI/Z6Hb3sd X-Developer-Key: i=haibo.chen@nxp.com; a=ed25519; pk=HR9LLTuVOg3BUNeAf4/FNOIkMaZvuwVJdNrGpvKDKaI= X-ClientProxiedBy: SI2PR04CA0007.apcprd04.prod.outlook.com (2603:1096:4:197::19) 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_|PAXPR04MB8734:EE_ X-MS-Office365-Filtering-Correlation-Id: 975c4043-8f28-4678-8658-08dd822d8b19 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|52116014|376014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?m0gRnfccbwnwFdWi6GQxbjgBQItqY36?= =?utf-8?q?AqMzZGofqYtk2FKHk6pRMet9GcQH+U+8z5ZCWTwm2h8efDls13za5P5sAfTuyn2vc?= =?utf-8?q?t0P0rcsUwtmAiyW2+dw88Au8Qe8od/bFAZDH3ponejDYgQerCvrohiKp7IgUbqElj?= =?utf-8?q?GaqNofUNlKm6aT/7e8FYlDsrddylX9cteGdOvtKkrFfw30eRCvIPhH6Jmu3ky9aGl?= =?utf-8?q?UhbC+faoRuErmwLtsCmKL044Y36WyvTaRu3z17xMXeLdnui8sY/3ahh4XQKytFQKE?= =?utf-8?q?qdOumu9cuNva/K5hL5OxKIIN9Mx8YP+KPgeOxxxAlKhxXZiR56xOkzfZPSXqQnDrh?= =?utf-8?q?IeMRcKfZ32oWGdu2N6p56kwyqkrAaymwBbOt0jJiyREJCIYC3yLevIs3MH6MByBxV?= =?utf-8?q?KDOjsyrWn8AVd13tJn4TBIAazziF5SBK6uXub/nts670nA8OtADJv20+umPzeFfXz?= =?utf-8?q?zRbvMyGi3MtnPoZuqwLbr/JJ84wCiK/6//DvXR6swnNw4uUCsKlgy+uLvDRlhGBx6?= =?utf-8?q?ZnufSDS/o7dgp5TJ0adEZ0f23H2975p62YOE/iajpAurKjURdqyhyrjH3MBnYFYKm?= =?utf-8?q?l4FZEXPY4iHqTOzF/9yjGxwnOVLyp7enh/4EOf+rLORCResxQlcP7gDMhYjTaQrro?= =?utf-8?q?emUnBLxxJvz0ecG5mixSfRppcoGkn/kcaD3h89V7bT2le49DT5T7iKsGswk1CzNPf?= =?utf-8?q?9Xa5WJ+bYdcqaHz3sFtqXlXUINZP3ph/QkZdlUcHt/COiSz1SLCfMrtdy0OpSVcGs?= =?utf-8?q?awxYOXfiiF0SAG6Tn3EZr8r/dow05FxQVwmwADqyU4SkWFUgmQ2FBXu8JE40clCBF?= =?utf-8?q?wgAG7NWQ3IM3MDvubYH1IrUic2xxwCR2PnZMFw9y0CVkb6/Hjv0P20X7ujxzf/2dd?= =?utf-8?q?MnCjqBZq89Kt/72zU3MnIQAnIgZJcOJu3HeZQUJMJVcVxj2SL6+CH2r+cXnRUvJtb?= =?utf-8?q?1r+yTPQKNSwNVVr4iC3II7qkkHUnDURbMk0PBb34P4W0HbVqcCjhR3r2dwG7V/ZVO?= =?utf-8?q?bD2iCGAkwPDh4XjhzNz1pCJLV1KYZwVuupqGJ8HovUWau1sY/dkaCOqvbEIzNPaBj?= =?utf-8?q?ZXfLkjD7PP7l7bYgZUNbCe9Q6qDI/FskfhyUMQc3vK3sN22t7VgA2m3E+vfieElBX?= =?utf-8?q?0nBrcRfegf5Hc39tOxvuhXlw9TJk1w42kabPwjGEKtw75D1I7hhNJB9oIsNzIjPkY?= =?utf-8?q?Lr8X+4KLyC5wlTWD4YzNCVYNnDoHRq9H5NQy7f63uhyccCoSryHlZ4yWKdcRkXoGF?= =?utf-8?q?N+Uc9ICbq9fHR4oOtBeKUvj7wVXgxpYrTVleT+qW1KWwpg8z+RcNEHEL8q3dGTZ82?= =?utf-8?q?+ggn21cf4f37Kp23Ohu7327ZC1AuDtCwfg1O10FiLaKlV473fEPyblqjG0IJ+aZyO?= =?utf-8?q?gsh/H2AgI0sAEARbn/C3HXa1/R/+l79kk0q/yMoXvOmvVwbgcXn/II=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)(52116014)(376014)(1800799024)(366016)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?M/RBQHndMXgU5ae0i4U9DAvhqkfT?= =?utf-8?q?U3zuajaFQw6y2pwgyXEDRDV2Onm4st8RewDkjr/N9a2cbQ3+JXiEByp6RLxAxtBHw?= =?utf-8?q?HfZKMQsQC1cXiRBigsyp6mzSVRVBteavVbgdGhWRID454QxM7rXuEuLpsKcbN73wt?= =?utf-8?q?RuQfWw7A2FjnE8LmdqNczzADc8YqTgsWYu/5PXKd+1TQyakScekpbTuJZsTji/h/0?= =?utf-8?q?rpRXue8now2vy6h+iXBrOZZ0Vuz9WLIrXOAHvrsJEijIPRPNlUd1Mxf3trT8wrhXG?= =?utf-8?q?o4lnAUXQjWIyxSb3zQL5OxrpFqL4wreGx6ak73OxY9wmbMI1T3pjE+irpjzXWivtU?= =?utf-8?q?a1/qFhl3WoWQgGDDtXtfHfwQO/3a1gHHvzm5MNr511OLroVp6DX4oxhgnAyVA/Mep?= =?utf-8?q?UooSYchs/vfLAB/XgFw+rqCOi2N5j00LDWjradRgdpbr1kibsSVbnMKQAqVX533on?= =?utf-8?q?kt+fC1qEtlAOGGwVIcScPm56S4xvRkO9WPV41FY2vbGcjfPCVRwveWFZiNugLicFk?= =?utf-8?q?qGDfJUkAx6Q+FY+8TXhrcSNpCuAdmOtQS6vcl50HIqQtiYAWAOV97PuccOKojus+0?= =?utf-8?q?o86bJR7peY3svqEK4odFGzlVWGHLaRJTR2AJZFt3n8fW4+qLb4jwY4vMJvEr6sDu7?= =?utf-8?q?h5O9LTmVdsG6DSPH0sqbW2gasHkgW2Xobekabl0hqAItNjLfICxRZL6MUe0kWbJbg?= =?utf-8?q?cbgB3ySTKXgiN7FPrUNwLYiWdFlA/guNngpZfRuNvcKwvJZ5qIwuYMqxz3FfsHddn?= =?utf-8?q?H+bsX1zoD80GdXM9mp65ee5PPnbesQvAmdd7R9biCpaO9u8Lm+WTlm9k6IYXBMiir?= =?utf-8?q?sFNhT0JPF3T82RTf1LE33ytYYk1hDVd7b0+/Cz8xvVXcwgV8kFFCpejpCurgzdMZ1?= =?utf-8?q?85j1MTw8QPNz67+nCtPiQZXZPWNUsbWj0y+ZPxSOdHzWf9dAG5DPQjjvOldoxzfcv?= =?utf-8?q?kidNU5TFyVBHby04BJ5K86RhejTP17CV1wW7J/LvXMg/i3xdNTf5UafV+eNqzGcjr?= =?utf-8?q?zOENt3NKM8a3cjfhTRbFfoKWrSI9HkRwRuNuoHY3CiD43E6Rs1Yuib6q/XQGv1/ct?= =?utf-8?q?yfNF3gjTuHMAUx5wyadz5+7CeFRiicoKcysSqrM3pVR7KCEweDpGUN3tltqQ+swyC?= =?utf-8?q?bo1U5VKTTgl2yEwY2SqSnvA8bd+r9X8raH4FojIxpbkRfQax0+leyEAqWRr/lKVoT?= =?utf-8?q?AEXjuf3ZMqIRRmXOI4c/SLQCF2g73NZwBlHV18zhsL+u61ZCJlenQuE5Rlxg6I8Wn?= =?utf-8?q?psIrx5kjFFJP6z68uy+PvODk3P6QsPQCcUPxnxW87SszQwrRIsWd3Pclab823Cz5t?= =?utf-8?q?MBNupNe06KO75nB8vounDHomZvns3BhLvPa29iHLmNwfpKJuBOum+CDm0og4mJQXe?= =?utf-8?q?dlkuXyxzyRyH9wa50gkd6ysW285r8+S7nljR29QIybNU2XHfqfN5rq+YaQ1seDaad?= =?utf-8?q?7Td7ndAUf+R7V8fOVIGUUe07cdDA1c9yuxLwgRiXW6HG4dgBlWVPc6JMZPpgEym6A?= =?utf-8?q?APGqCabkjg1D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 975c4043-8f28-4678-8658-08dd822d8b19 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 06:10:27.8040 (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: KpAkhPblBrz494UB9Vz/BdHcbGXn4c9cRt1X0+++of8oDstkPBsIhy9d9ROAlKWvkzSStKBfeQWG15p7FD6sDw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8734 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 Wed Apr 23 06:11:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bough Chen X-Patchwork-Id: 883719 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11011067.outbound.protection.outlook.com [52.101.65.67]) (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 3A672267393; Wed, 23 Apr 2025 06:10:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745388636; cv=fail; b=cqyZsoxiHdCOH496o2XwUw9HRt6YQPZ9ckKP12ZqMSt6Xn7wukXsNCuRWWOA01cuHaC0e7yLic4KVBMrv2CMWLfpW1FOuve1R/jJdrvOHDLb4+5vTz6xxt6IHFwY9Ijk3h1hUBPsZjdp4DmD0NCuK4anvUZDGLmispuFwwAK0bY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745388636; c=relaxed/simple; bh=8iYNp+JFHipH+AmfWSTSMxP+/1DcYqPBlnLSaPPHCzE=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=mZNPLCovK7FoUgeykobi2JxN7RR/9ANvPHP/T6CzBKQKw+Ub7wTc2HrOhrvrKTMwwP6VZY61FVRCj84oHE7WQFKHKlmktU72XOqr1bQExewlnsVVPZ0z6bhY4IoTZ2HFCYqveNshEfJvbYLC/QdjsY/pBhG/7d4OODmhvMSANUM= 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=Wh1qHvOJ; arc=fail smtp.client-ip=52.101.65.67 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="Wh1qHvOJ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AEpxfnyD8Vflzxsw6l4+FNjSuyucYD4rIf57K7qcTaKh503Ol16+rKn0Ui11oXJPXafsJ15gZrr4OFE8GKE9Kf+BATaEdCG59W8MK+KCBth2F+4j7gDBsgBMjLJpG7Imj0CmzDsjeuzTaNQCLgZJGzzlhGeN5qcRvX3uXe00UXoJ+DGfL1DmdeagCv+gwGnyzIu2+acR9gmM0NdYNI4n5jt0JBshwLNvfzFruTG3RSV6ENiuq3Db1XNn/wH4PfkgvcNLz5vq8XS3F8EvA1ucwuq6tKmvJfxY1++fmE63jOqzZll4YLIr2Rsa4p8M51stvtp8tdngfGvddEncqUoBbA== 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=sDLmNpfz/hy42XF8b2IbGlwahZ8EdIc7PMUiHEmp+58=; b=PIR8GxZjxU6B8IjbsS+kWP5w3mj3voNx/jFpsA1ze98uDG7lcVb5yyeuzgxbc3QdzHfKXjNhKtcR/MVvdfzdha7h3pH5Gn19Pcmr9HWv8IOdyMXTSYTUzasMF0bYPWq67aWO6Z6ARcZ/1g4Jmr2Y8rnZVWT1fcbkPDbMD0QMuhQ04QjZDw2AsUD5cy1Hz2DT8d37MiBNkS7ND5Ut6rTdL/5Q78wFPW8f3n6VkX9KvmIVLodXYZ70Df1pFuPomFGPeTJoxL9Xj7elLKX3f5nyjYQt1zAItbLSM8e+iYLY84onoEA4F7cBFD6+/zQOZKs6RSnKthmRGdK/b/7z+6ftOQ== 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=sDLmNpfz/hy42XF8b2IbGlwahZ8EdIc7PMUiHEmp+58=; b=Wh1qHvOJ++pMNfHKBT55bm+MkhRf79hpZMmsZulv9LqMGtBlF+J6+6z1/NXf03DVW9iCgeLT4alYK6tCkV7565ymvLGB4fXEwCsGlnw2huWNh3rjaZCBKKsi18peoec8XjwpyLHUYnmZKLUl+d11zIKugpzwB2WvlW0GjbgTYFSwYprsfqJiDhL8xPttiEbUm8AxUmVG7O6+VHJZIuvRc0VcKpTgn4O8R6y0zcpFgCWiubYmcqMIkD8Ne+PuIWy1mqzIT409dVaMa3eX70tptjgTS+6sCRDhKJiEuUp/COniBi9HLeNdIl+536mLea55a0JhxNla25Fyf91o4DxRCA== 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 PAXPR04MB8734.eurprd04.prod.outlook.com (2603:10a6:102:21e::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Wed, 23 Apr 2025 06:10:30 +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.8655.033; Wed, 23 Apr 2025 06:10:30 +0000 From: Haibo Chen Date: Wed, 23 Apr 2025 14:11:39 +0800 Subject: [PATCH v1 2/5] spi: spi-nxp-fspi: enable runtime pm for fspi Message-Id: <20250423-flexspipatch-v1-2-292e530509d3@nxp.com> References: <20250423-flexspipatch-v1-0-292e530509d3@nxp.com> In-Reply-To: <20250423-flexspipatch-v1-0-292e530509d3@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=1745388747; l=5783; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=8iYNp+JFHipH+AmfWSTSMxP+/1DcYqPBlnLSaPPHCzE=; b=cRlsdgCxNPUMiUSVGiGSzOpzZB76wHT3K4qNe5xRXmd2rHquNKpbta9BUlpBe+g/6EL4Ux6Ua qKo3TyIKORSDrTGE7V3jWmVPFDSFL2rIKNxfZ2ve3f1kJLHMEdin9t9 X-Developer-Key: i=haibo.chen@nxp.com; a=ed25519; pk=HR9LLTuVOg3BUNeAf4/FNOIkMaZvuwVJdNrGpvKDKaI= X-ClientProxiedBy: SI2PR04CA0007.apcprd04.prod.outlook.com (2603:1096:4:197::19) 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_|PAXPR04MB8734:EE_ X-MS-Office365-Filtering-Correlation-Id: 505b9f54-f894-4c47-68be-08dd822d8cdc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|52116014|376014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?s0WcRSTGZ4fUwnOZLbFmyS7hT7N/Tuo?= =?utf-8?q?KBPTmeSW9tM+9olvci7g0W1c6owC8LCn2o6IxRq3SiHAS4p3RnxwUmexBrGY9+jYY?= =?utf-8?q?FqGZxQAa6GGLGB949MFKRdurWIwuoaKWNl/gpHXcRyYX4GD4a9X65/Gnmwkv+m/aG?= =?utf-8?q?xhtpYwfhG7e+1eYd0LvEGmGd7H5ykZuStk6ngogvBrBIkgDsqQNXsd7qzJcLxLZWI?= =?utf-8?q?8cQYuxfbAaGNBh8wfiHUMwbQbWDvmUbvh8LKsnUAhAMTjyeByZzXLoXP6fRomWFtK?= =?utf-8?q?MQQh7IBQYKyLo1HuNYQVEpIEm/dsPLU1h8To9GfiYWrDcDXQt+z3cpaMzEZVBEH3d?= =?utf-8?q?9wnlCjnGIg3+8wnog1CJuktW6coWXVVGikqr4CONwfex4zf8CgFKMW2/iC4Xpgfzz?= =?utf-8?q?hdTApJK5xQ+ZwWMECJy8WyHNfvEGI8eP4HnDIQ6X8oHexISQu/CaeF+5kxDVIOMFo?= =?utf-8?q?N9EWeFvOEcm/tDIqgHYygWmkx7BGVmdOfxaNvua+KO4QLOPIH/4a742wel+7tbPDk?= =?utf-8?q?1QBG4/FmOqTZ8ETk0iaVS0r0FSdlXcSvw9Zl2bdTjRJ3kRJEo3IyJVZLmfnveY8hy?= =?utf-8?q?nlYO31A8g8XDZfMsVMp/V0iOyrl4jrzEGPcsvtOPuGSlwBYZIGv1qLWsQXKm2Qy4i?= =?utf-8?q?TYWLHMtnnm2ebCr+iGFAodqntWQQt/E8ybznsLtE/6FNkNNJLPzATZpp7hf03gt2I?= =?utf-8?q?BKUuHya7IoEdjZAST0D/tcqF65GPWlrX9DFA/5rwsfTzijT9e5q0xXmKSi7Z+R3g0?= =?utf-8?q?vrdz/DZiiyEXPSGVyAwxCKVctwxkhxMu7XFPqKR7lNpxAux1MsQKOyj1w0cJFjG1s?= =?utf-8?q?mb9zQk/JGhkBwbMDmBKLRE7EMG8Zw1cWv8j/L+34bNoZF1tkIv4cAxXSmyT85xMPU?= =?utf-8?q?TEtY0rqv1H6/BHH0tBK6WvvNuXXIUJPmNpdl7vZuLlrhGftUb4gtW8eiw9HgeJTkD?= =?utf-8?q?g7ICmS0n8PNU4u9x/kCmfQ0gJJFdVSt4Zk41VyFDVEttc7jnT4nQwU2fNLOk0zOt4?= =?utf-8?q?bQBlYTxdGnSU7PJvazzjqVAQFX9pexad1OKxV74G10B5vynLlW15CmVbtT64R9E4N?= =?utf-8?q?IdOpALVJEzdxPFGdY9H52i0EpdVyuKhRauX+MMd279UBCDPrCciotEDROCUEMHgwa?= =?utf-8?q?HyJpvYgs7tmwuUvMzc3/FeSeGyyK7rjSA3EuUsX8hgvWOO6aL2buPAI3Cao/s8sfy?= =?utf-8?q?Aem6TxqQAZUzr60delmbQOwlck64IPRdJuB26X50/LAG7GOXwUysLhq3w1631HSjg?= =?utf-8?q?IApPxCEZHOTdRH8ArbkflVDP7KG9jTsBbNJk6Z6u+sKVMG5TkEZORUZe3gjWIX6+0?= =?utf-8?q?ZeYTf/lhkyz8C5RAVBn0Ev6ED7WtGwq0usGZirQGo4FyH1RJ2Q+Ct7TRDwsuCrIxt?= =?utf-8?q?Zcv+dhULBNidjT3VOOd3PwtG4eyFPokyA=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)(52116014)(376014)(1800799024)(366016)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?dL/iiuZwBAY13/97+vy04pYmIK4s?= =?utf-8?q?KmodzhTFV37XlnLGTDaKwQGTB92viqY0ADalviH7kBsGLHLggUjVQIgbwF0hV3Lt1?= =?utf-8?q?sqwHPPHdGbm7vkJ1EIPBwLixyvvbEZ15Ye+oGk2bqMfHceFkuT9i6cty6CN33te//?= =?utf-8?q?1k8V1R/EZRrTusXWP6se7PpB3GdKXZ9jvbgnbPrMwiKJlD6uEsdZ1Jmr8dD/m5yl4?= =?utf-8?q?iUEahkmIvMGKVH/8YGkdTYiY4K0Jm1lwQyXb81cnW9FKPO+0qqFORGuP9gvq7HZu6?= =?utf-8?q?XTm59WmIEbgUr8Yr6UaP4nYTRjnLdcdlHKL4BQHxhpiBL839CRGrJ4YrdcOt7Jf9E?= =?utf-8?q?cncu1frkLioSWsrQui7Ikqnfypxks/x4+Bw3r8cqbtQbZeshGcTfa1QeaDgN92jec?= =?utf-8?q?2jMY9hhq4CR3GRyp5R2iQ6z3bFn9taIw3aQ63NgqKE4F5pIhHA7qW8tt8V9o/nWIw?= =?utf-8?q?10PR063PLJMAn1Ltk0k+Fovu+bxRu1tH38zMZwMG+PGDXYwi6yBF0iRor9Rk9zxZz?= =?utf-8?q?2wzBmZC0Q0VJk590AiN3sqQuNDIsYSMmxmUI54oHVOrOo0DqpT2vdHFlGvm7tvBDY?= =?utf-8?q?Wn88uRn3QE79eBT0TlPLrJn6wWtABv9SpYgqqoaGdWedcFtbBorwOJy/kAXv4kf4Y?= =?utf-8?q?vXLLaRKAkJdGzh1Gjhq3bG2fVUiJR/ERKuczfFUP8MzE5SZ5Kk3CrAbhmRn7ChAF7?= =?utf-8?q?6FgxTEHGzdSRYWy9L+W8OaFUCAnbKwY/hf3P7MkNb7ZzHSs7LBcx8AxXCPwd/VnfP?= =?utf-8?q?rXH9xRdrUZcyLoXxKfvwFha6ZK0r+J7MJJZD4SZhhb3tzxXywfkqFjvVOBEW860ZX?= =?utf-8?q?Tmj8QTQ2QAKxc1yZ28/QdMzfGRK4yXPrJX6jDGfh48XDNv+RrKZN6VX5dslrnHhdc?= =?utf-8?q?iWYWOZfe95IxXKXPDDL42+0ymI2sxkKlP0WyOzmOZkJJ4/MfSgZji0H4GvPfCtuK0?= =?utf-8?q?3mZ4u/h04kObs3JtIsTE6CFhwhOrXpeMirKppoNZd3MECOSkK+UVenvR1/XrsGIbM?= =?utf-8?q?e+Aq89zsRd9BKmOcNtqvyy68w+aR/7DeTNW7PEczllLb5izZg98TNYxjNqhCExB8q?= =?utf-8?q?afAga0xMKW+efhcPhZz2wxFn4DFaPxTH5aQEb22UTSoLdjdQ9qUokWErvBb6j+hpD?= =?utf-8?q?s3Oj6EXp8hs/A98TXf8LWiAjRArKNMmaZQhl/V4KOCS+1rc1ibFUJAVaM6KS/GawS?= =?utf-8?q?Bue81CryB87IiXzKsU3nzjE3PFgq1/Ro1EwZv1IHzQxB0IHr8dJE4xl7cMjed9Z5/?= =?utf-8?q?mQuUgce9etR4URWoKxMwMa26gJQcu+KcIVVs11IOAGLCRGcL02j3PF6qr3+YnkaIW?= =?utf-8?q?fBbXqFv8U9FEqioZR9Q/7DEwpavzBzb42IhAiHk213B7exsP5GqLLkW4rEZ30r6xy?= =?utf-8?q?G7kijvOOC8imJ4v3GeIW/yCHo67XX7/uJUgQMzECZOxYGLCgCUSFwrVDxXs9Yv9+i?= =?utf-8?q?9eQQpKaQGylNQ+Rx+qnyM4Iby8iGx9M437r0jSNaBH1aBHDlYzr6BJH6/DD36wI3i?= =?utf-8?q?gBG0g6iZuY2o?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 505b9f54-f894-4c47-68be-08dd822d8cdc X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 06:10:30.8202 (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: Vua7amjUyZcBW48hVwSoJEDdlVjaX/g7OsnVO/u8Do/tci8MlkKPIwwe85Uo81oWHyht+7HdTDtSsKoN4qLzeA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8734 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, 77 insertions(+), 16 deletions(-) diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c index 00da184be88a026bf562c9808e18e2335a0959e9..23099e60b6fb7e899f95fa0427208b33bc5522ac 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,72 @@ 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) +#ifdef CONFIG_PM +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); +} +#endif /* CONFIG_PM */ + +static const struct dev_pm_ops nxp_fspi_pm_ops = { + SET_RUNTIME_PM_OPS(nxp_fspi_runtime_suspend, nxp_fspi_runtime_resume, NULL) + SET_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,11 +1357,6 @@ 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", From patchwork Wed Apr 23 06:11:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bough Chen X-Patchwork-Id: 884282 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11011067.outbound.protection.outlook.com [52.101.65.67]) (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 121D72676E6; Wed, 23 Apr 2025 06:10:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745388638; cv=fail; b=ooQxgocTCTMXqlrWj7RNRSbqphzoF5nlmW5bvwxus1T/P6VT6ANTDNW7vQtVytZxvndsi7NYQynDo1K8xvxpxfccRJRgaShOfO9W244IeytWksiNukDeTXCN9QlAA6EBWGpuVGkq6R+r506epNOsglsw0tvrxnRURxprdFSW9vU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745388638; c=relaxed/simple; bh=cFeaoFNjKwmU5hGpWchyxAfTmDsLy1lX4PKmxseUalI=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=U+B7tkxwl0IALvqfQytFIFpY7iBEy4oAZJG0qopo5DgQT1B8I3P+HV/50NsP678JToFwLqXJjOIru4u2DfT/ia1bNHseVPM4yQasGPh19KSt3jmgkLtQ1xqZN6p7GRpuKLGh1Cy12m7X/9OfZviWlImnvcnDw+Y6aGBHFnfOQPU= 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=f+8pPvW1; arc=fail smtp.client-ip=52.101.65.67 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="f+8pPvW1" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=T2d30l7HT+G8UTYPbV51RSZ4xhnkBWUd8QXuE7A4UL2Hj9G6fkQbVvbHNhSDmkigGAtabZ48TltBfOVCFA0ApcoP6D0LR9t+Z1gRNj+rpoGT4zkxGbz0AMfn/Mw5k2huCTbMZIyVjPGU6LNwEidKaFBLg8whzWpQi35ysDF+CalQbSdufwMNOzxMp0fd4iOIu7T6KBPbT4wt0ZbqPtz3seRuTFiLvxwk1gaDiWZZMy+1bcoDQfHysFHoe1MTghgXYUVS2Hpj/HCOgSozefIE67xeBn/x3ZmDP19fosWURDhwhT5P3iSKeniX22aK231Q535Ox7KUyAmcIq6kyWIL5A== 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=cbAp8vCutNlLewUj11P0p3ODGShz2QoawscXWAYxCRI=; b=NoiQmXsrXgj91wR73VY+WU2Zork6bOpSLG02uz1apocCFs/8J55c9PZ30bratqA/PP3cOpiKYuC8yyhNMc808KddTRoKD1lv2ZL0rt8gwDNG7n20TdQ3i6/yPOvBCYoXPR1hh7G7mjngqLhh7kiIG3gGtAUmH5oS3a8nP5KTFUiFfArVtlBM6PTxZ8EmlkdFVDrXMjjOcyqZHZ/CAruhXSJVEd0AwddEZgvs37A/2tzfAQ82lcM46bzIWTSyl4mjvnxPjOk826qoCD/81xmvckp2z4mjLfq3iLRDTa3inmMi2JLXERrWewLiNiDvAUwGLcC/ldGBJFmqKb/RG004+g== 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=cbAp8vCutNlLewUj11P0p3ODGShz2QoawscXWAYxCRI=; b=f+8pPvW12wZAVSJQu4fp5I2gR3Jwr3kG7r/sPKPOCn6zRekxjC7C+bSgqhY23BOZ16ZlsMhKYs5r2BsogQpDhTuu9gWLTElA+3ikfSorQwUJUW7Fl6eyHyYmOa+KGapvHAR2+iEbuTBclANuv4eMs1fkb7pqIX/SNSgUREjBb28oZGLBGGawl+MH8Z8CeD4nYJohqwDpwWD7clMqMUFU9b474dJwwecIj47DPSPr1+KH90d72bLN8BgRAurCwC19xNIaitgc7MoUy6OF2ePKJ0fbXhUVfysXk/DOONLlfK0dZHWd83grrcLPSsVIBYHyJcMHMPJZR2mzQvtbf5oHEg== 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 PAXPR04MB8734.eurprd04.prod.outlook.com (2603:10a6:102:21e::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Wed, 23 Apr 2025 06:10:34 +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.8655.033; Wed, 23 Apr 2025 06:10:34 +0000 From: Haibo Chen Date: Wed, 23 Apr 2025 14:11:40 +0800 Subject: [PATCH v1 3/5] spi: spi-nxp-fspi: use guard(mutex) to simplify the code Message-Id: <20250423-flexspipatch-v1-3-292e530509d3@nxp.com> References: <20250423-flexspipatch-v1-0-292e530509d3@nxp.com> In-Reply-To: <20250423-flexspipatch-v1-0-292e530509d3@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=1745388747; l=1084; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=cFeaoFNjKwmU5hGpWchyxAfTmDsLy1lX4PKmxseUalI=; b=AV1OoL3ZN64HadpACvaQZvxF5DiVrswwhStTwJQ99VZlPpPDjN+uAyXKVEWNkV0wJiyTgq6MH r6GHYWtfuhNBejx5D9Cof97qopCObmWqa3WVAhtI6eihqECa5wTZ5aX X-Developer-Key: i=haibo.chen@nxp.com; a=ed25519; pk=HR9LLTuVOg3BUNeAf4/FNOIkMaZvuwVJdNrGpvKDKaI= X-ClientProxiedBy: SI2PR04CA0007.apcprd04.prod.outlook.com (2603:1096:4:197::19) 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_|PAXPR04MB8734:EE_ X-MS-Office365-Filtering-Correlation-Id: 0a7a6ddd-b748-4c09-06cc-08dd822d8f26 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|52116014|376014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?SQV1WiUFYXbx4GscIyUzBJ3eJYxooNM?= =?utf-8?q?KLKFeFelS+3+TKmIUX/yaRDmKafRzhpdP/MAWOgEYn+Av0kNNdxEcK3qTFcHpEp1p?= =?utf-8?q?4wlHrTwOfUbLVSv9F3tqKHKr56FEzSmZDUcwY72RPtPFeXUE1m2RsYmSerMOlCkFO?= =?utf-8?q?PUwvosNlhUUn8xcdkjTGSZmrVcxXNbOnjYrvu5A8DSN3ET888vmlTiWEeiQdphqiy?= =?utf-8?q?jsSrQu11T8F+r1RRHTEQMLDiR/AIjRY3oxeFlPdaN0zV2LHtLREf1KTnc8HU4iMIt?= =?utf-8?q?SqmvuYSONQIO6aICxHd1GahPJ+7pUueJitLeo2oi/rgyjE0hknjAZg8HW57O7HUaP?= =?utf-8?q?xRtAadiu28RMokIW++XtERQCUNc+Z4AHyVAFEIQXNHBzqmgpkLSMvLE9PafzL2h8m?= =?utf-8?q?TaOYwp/3hp9ucz8eHwM5HUX1YM8B17MJMqIVE1MmWlPSegjyAEfop33ppX64I2X0/?= =?utf-8?q?6ZaHakqC4YxMk0KC4J6i/GPTjbL6nvQPc/Ut0LK9CEYFeZ/lLem+EXUR3ybucYe8o?= =?utf-8?q?gRFCshE9U0C47SvIagSPJ0Ns8ZZNgFH8f17/DFKPaxXH01QWTLrNFWDxA8g6VyQnL?= =?utf-8?q?KxdkAjhvNaP+7BtqHA9roiBclipyRd3dcbp4nI33uIf987LwsJlNOYc8BBAsYH1/F?= =?utf-8?q?yVTxcULjvViv0QFHCuqLxpIEC2C6TCqKaer1z9A7HulQl6frk6fpAG4PnEWVbNY8R?= =?utf-8?q?tlt3MbcKXwq+1b7zl3YrZfn+TCfbontuwqPRjhlbB6BYeg71F3SFDJLHKbmFQF8EY?= =?utf-8?q?wG15PEEngVeFGrOGYJkDi2ThYVl10byKAD+aHnyJuJgt6AbQEN7VRLAzti/y+gEqg?= =?utf-8?q?k8x8bMfKhDjLtAR6C5cpkHTNJb/sxNeFUz0l6WkhbDtKDleltG2xEfV2XyOXWFW3H?= =?utf-8?q?E+hbcKgCA1foc1/AQyLQiQotS/m+hovtyrj2YqiyD6nOF5mKzk2EiVkwRYfLT6iT2?= =?utf-8?q?edz1zBC128uk9Xs8e2r2DuubW3rDpvrmL5MpoTkgcSfksbzARBv9g9rAIESZLmQ0l?= =?utf-8?q?ZEbiXwUbR4zP3l0a2u2SWWZuzNV2oenvGQfMxCzjKn2Zn7IsSafS6wQvvB1fSppUC?= =?utf-8?q?RM5yboC37fnp677VGzLmOtwVEqRkb9bNlFHf0Vc5LAmBAcKKyGAcF+srtoHQf2dr9?= =?utf-8?q?xhs/HFRmwEHYWTxDdgcVmTuFzssJxjSLnnaHph1se0+sMEUMXjGiheenob9yg0sHC?= =?utf-8?q?FsQXlhrXyfQobxI6YMGNe7cn64D1H4ndKvu6zQtXAmxGFohnDvxMceQbx5NxmnHX0?= =?utf-8?q?U83RufKOJi/ixBgng2e9b1fpiAvjt5V9qYD7WXcMr0fgPyirOyEfaIU35GE5l1y8M?= =?utf-8?q?OKr7HavRHmM0jGBRH81Dv2cWZnUq1PKRyUB2i0SNYSBaw/l7A7tkG+x2/aQC5y+TA?= =?utf-8?q?ikXfHrkqo1Yw0wU8iOXlV3IGPRLadgf+g=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)(52116014)(376014)(1800799024)(366016)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?0kXSVjtgYCUAkzuxGZTVVDUwsRoz?= =?utf-8?q?s5ayQS0yqvYvuAf+p1WUyen7GpZpbgcYFOB2toPR3F7vAilQP+H+ixtIQw5hMJSCR?= =?utf-8?q?DRg/wNxTtz4uC3L4x8rKpYUl5dUa5EN25/CTbCKhDDxZqU40qica48Et7EAW5Y5cN?= =?utf-8?q?cWevXCeaMWAoSePM8A7tMHWqeVehA/Z1hYPNTkROWSbnhHcHHzmfpOz1wQtPMtT8A?= =?utf-8?q?sdsdnAxnK65YU2X97+avTGTWmkr9wgN3MMTeZ8LQ+/5J4eWW+hoWei3OHGr8YSpqy?= =?utf-8?q?WuCUSWrLxQSBGE2pMm0h/4jKKbnebStmitRmrCqCgUdeaDAHJGJifiJOcu5Xo9GAp?= =?utf-8?q?2+YSvxY7ZsKbsZQ+FkX/V5Af4vCU+yZYGSEun9L8LKja7Tm8w2/EAFuNA5GElqx38?= =?utf-8?q?3xL3q5p7chZF+MPjvZWmq5qK3k60O7pAHUq2zE0HhnXWEPj8xOjodboZwt+xHOGYL?= =?utf-8?q?nd2KWA+BORDR/c/atA8bOeauIoZqv1vXpqqwpNQJlRTUVUHCRelXP/HEnDdCLPZ2h?= =?utf-8?q?xRqROjWggE4M46TpwKM4yGc5ohmEIqK0hlPh9kLOtEbg2HYPelw8e02Zm3J7TI2/C?= =?utf-8?q?ORMQ92AJv5tp76BbNIuUrI0UP6VJiBHvSE/0XQGX0nNh7WsCVYBw8jajEbnnQIGq3?= =?utf-8?q?BzfAMevsljgFRMbzkRxermYGUpM5l35Y00sojauUnct33+owXolbvJsc9YaEu73+a?= =?utf-8?q?9jfAyPo1pTH5oi2P+FS8Xz0ynK4wuZBh1PJwQk1ZUpYhzIbihX9sk2fMrJCs1f8S/?= =?utf-8?q?gcGgOYlweAVIdV/1uS2k1FFpTDNjwR90KM8LagazlWl8WYIdYF2dwLI0VUKMZjRFQ?= =?utf-8?q?b+BNQyNv/pTqt7DOux0Ort7/yCGdNfp1Vsxal5nz2uFmKt+IgeYZNoIJp08fQWcYn?= =?utf-8?q?s+bIa0dlOrKSM9iD7fMWBy2XMkSLbpaCBcO2CAZzQ3A5zUJd5vCoHZL4sQzfi7MKd?= =?utf-8?q?tno8ftuv9Q7D+bSw+crj3m2pNksZe3XLtsjCJdPaXhLmujGfq1m0mmCi/L0iKfi0G?= =?utf-8?q?M9RjoHTsworbnqGTBFYCMGpemzI+k47P3KNYmG4bSKy+g9lfyU6qD59X29TjskfDm?= =?utf-8?q?19yKn00zqBWxSGF04uzpPPc+9HXifwtrUGtxLpNHXjyjXaIYly8+MdrQI2wB2ufbh?= =?utf-8?q?/ruat8FHFLQplqmzey+O1yjRlpMIfNXFCa0zN0YBAgJjHEYx47lxKvdIBHaAuABK5?= =?utf-8?q?NcTGp3KbZih9LcjOfOXE2afEwt6uPtVgkoDZcvYr+Dt68q0wHES4EKyN4Hb+7ySdo?= =?utf-8?q?DPw5A6hyidbXTdOGVrB8XlGXTBsrjNUkhTvYpewj8XV3oKrMQuL8gcMMMC9zDAFJ0?= =?utf-8?q?zpZGKMGEU6B6BgGB8X1jqcWOwl7KhmGwtqOcjU5TZdOaEyY4rzkA9hFaxOVN6EnIg?= =?utf-8?q?M3xjOdTF/RXB/UQlcQPmQx/6Q7puk7+pVW7HvDNGUMmpj6Rvy9XIrY7KV434YO8zi?= =?utf-8?q?nYQw/QqQDEaibXbKlLYR3jaiwhslCSF0K6WHwLPF5FJ/6MC5VCA042/ue9ArXFE7g?= =?utf-8?q?aKQc89gyykci?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0a7a6ddd-b748-4c09-06cc-08dd822d8f26 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 06:10:34.5040 (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: Qi30jiljJrsMZv15Qw7H6FPMA6qkl8bKtqFJemjcjRSBb98C9TO/RkLkorBjXGA76LOVxX6tCee+mO25X0PM+A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8734 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 23099e60b6fb7e899f95fa0427208b33bc5522ac..2eafd6bb819165740f7eeddaf5d2e90fc5682b6c 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 Wed Apr 23 06:11:41 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bough Chen X-Patchwork-Id: 883718 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11011067.outbound.protection.outlook.com [52.101.65.67]) (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 2BDCE266B4D; Wed, 23 Apr 2025 06:10:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745388641; cv=fail; b=bMX7paGJtI7mFkuDnumyNpMxASy0UqycsBcIZX51f+r+AHTQLUsw0deWiBUYzQ+gzxE1+yjO7waA/D6pWHfbZaA+apQuW0vykcPCxlKGQYiVDJZbhxX7KOk98pHakJRAeBrlTcP9yXX+ngnAaZzpCR/N5GNCn77sEyJ11baCswY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745388641; c=relaxed/simple; bh=fUn5jDyhYUsXm23/ABNx1XTbcYMXnPQqJeOIadMWw4A=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Cbzoe2PEzzHsQXyiLIEC/hEVuOiX/01RwLa7T5iaIGoBSwuY5ElVL9kKaSjAOBjjTU/qviJk0ZFXajO81cFCp6cNcKn59/vq7/Ao/DULUQUD7LpR/b/LyP3El4VOPL+jq9CrQ8SwJzYt72WSaLsJnHq+GQwFdQMtoOfMawxPfPo= 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=NuB+hfJ9; arc=fail smtp.client-ip=52.101.65.67 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="NuB+hfJ9" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SKMrIadI1eqA900yAiWJCPAPEQ4SwNp6gAfYH/ZIcaH7491lu1KPhd+q2pAqWMSfiHwMzCPewVXzvOHsMgHK/JlSljKvS1MA2uNG/P3ZFQ/BN7jHVPjfpwmTp0kNZe6j5+dJnTnnKs7c+A45/myTRNQAuGZC9kAx+c8VkoTAmMhdU2BpxKjZZFYCuJ3ptzK5vw31R9iJNDNybT5SzMqOzLvCtKWaVWZnUZpgCE8Zdrfn4YKSePmDitqhcd87NAj44SLg5SiOFDJgzeW47VwjmU+Csn/bq2oZQD785DOmEiIAQmKHt+SQwV3u9dgrDFITeA70PRMBsckwseiKG4dMuA== 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=jaM4Glkti3o9Y90EVkqIzQvnPwfcMdA0hPWqHJldfa4=; b=EDBcUAipSpa0/p4aTCEySlkFYrbSh3pvnwgzXftWAhV4Pwzm++9pxn2J6l+6ZhhliFWZn6kI1ppRp4zpLQagHpB2kBdxKUIWJtCiwje+EAUKPTuoy59UAjCPhB2TFv6qFtJ1iQgc/0UyVpTyRN0eMmtIE6JJVShiHQIIy3KZe6nF/sB3MvUrwItsAGfVNciVpe5Ag8y9yuq+TDkFyaQBYw7lyzG+UdtOO0HHbHv6r12R3YemuVNLLRUXpjPtEq2S57BAEDhz9pQ5DH52Pu82c1gUUqFAoeOnvhfdHEeRfTL6bXK4aHJ++KMoy5fKoYmNQhARYff4lP98YjTUaMSaXQ== 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=jaM4Glkti3o9Y90EVkqIzQvnPwfcMdA0hPWqHJldfa4=; b=NuB+hfJ9T3ij5rFlRffoAhrTAMppdfZok4GwY2ggnok1j9fApQaHjM++6XCM5uC2aBQKCIk6KEunLFHd1VDkv9uzobXHmYwGiOsI7jexISsQ+KGq4B03MINCwPJUrcL5aFHAri3nQzODz/5GBMEiIev2qRg3yZPntcp1FDEltsCC5ejIaDZtEjnFwBJQCtmnUbhxh23y+Eh7ENngToVf7zvMX1CxsMvCiSmEY0aCxbKqpqBULovWWL+2zsRZf4LBl/ybiHCrMY0TMCoIV1coDRqBMvT59MXw1h3nKZFKHyNKZERHZRJsc7eFYY8boh5Ru297cLTedeVhTmS7qj35hg== 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 PAXPR04MB8734.eurprd04.prod.outlook.com (2603:10a6:102:21e::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Wed, 23 Apr 2025 06:10:37 +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.8655.033; Wed, 23 Apr 2025 06:10:37 +0000 From: Haibo Chen Date: Wed, 23 Apr 2025 14:11:41 +0800 Subject: [PATCH v1 4/5] spi: spi-nxp-fspi: remove the unchecked return value for nxp_fspi_clk_disable_unprep Message-Id: <20250423-flexspipatch-v1-4-292e530509d3@nxp.com> References: <20250423-flexspipatch-v1-0-292e530509d3@nxp.com> In-Reply-To: <20250423-flexspipatch-v1-0-292e530509d3@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=1745388747; l=966; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=fUn5jDyhYUsXm23/ABNx1XTbcYMXnPQqJeOIadMWw4A=; b=eVxdYdwR7re0fR/TAD0W+OZl5S/cvtN2bsy/8ntMy4h0rjmsOm65gaih5CyLgfHQTVvHPXZma pMCuloEz/ZIDasmG7ajOR0JqLNL2cvaXaS4/FT81m8yOAwK42mzI/MK X-Developer-Key: i=haibo.chen@nxp.com; a=ed25519; pk=HR9LLTuVOg3BUNeAf4/FNOIkMaZvuwVJdNrGpvKDKaI= X-ClientProxiedBy: SI2PR04CA0007.apcprd04.prod.outlook.com (2603:1096:4:197::19) 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_|PAXPR04MB8734:EE_ X-MS-Office365-Filtering-Correlation-Id: 5242c6b2-a5f3-4fe9-9205-08dd822d90c0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|52116014|376014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?NypmuS4+zsKEosU+3Un6Y6fx+8YkHZZ?= =?utf-8?q?3GAjivs6+Cz5KUcOVen7G2exEo9AXpxn1wvCd/EUg+GbrqB2fyfBY0pp/gFB7LYOr?= =?utf-8?q?VVghPnXOkSusAg6jlYGTpiQESw+IBljFuesCxq2PpnAIWVfc5r5ul5zXoiJ+cyipp?= =?utf-8?q?iUWQqWnXBeIYGikhtzFfzoZpajEIWMxL9ydS8CUFxJWFxVvofiBRhRsP49a75E46c?= =?utf-8?q?0SIALi6A4GWKtoFxFnBVsHobx3QUnqkVkLkVHfYWpX1hlDT53ExNJQK/RGgREZ+DE?= =?utf-8?q?UTEdX7ZBTf72eNiOi7YoP80khP7A0y6WGb0ylw/CCM//UH78/8ziA5WEFVcRZPX6c?= =?utf-8?q?/VL4T/3WGd2TuFgC7Vjpsjjkkn/wmkm6iVgUUcr5ECF9wWvSLKBCg38LLLJ5j0CK/?= =?utf-8?q?n4WatR6Glf9P5utkrGY/O/UAmUXirrAi+gwJfOW8VM38BOFnmjSphW24aKcDhGMHZ?= =?utf-8?q?p3H2uoGGmjdSEAr8/G4jrS0Hi0uJZdytP/IX+SNF1A5FVAODqrOpDUjdUR2WMTtfr?= =?utf-8?q?Ohty0UaQ2k7BYgdNoybhrgX8eP2wohfwYnnvf6i8J7I19dh1Mhj9/NPI+9HsozXPS?= =?utf-8?q?/waNOOGVWPkC4cI+ah6f3j5O9KKaC2JUc1fmkvVOhCvOPK4odDvWtI0+7tAEzOeG0?= =?utf-8?q?H5yLlQcETdCkbXmeoACwaoZN+x2WA5quJ/rUdhxlfVWNUMyLOI1rZlRC/J6dUoaPo?= =?utf-8?q?MUyBUHZuzSY1asGD6C/V+NqbLrbV4nlxOxdDE3hHMO4fCusxsF1UARPmFE8ow+npI?= =?utf-8?q?ZzKQ4j1rdy/fUE76ZUsKwkdchgcwW4JSDTIo3U2R78KgVkZ8/zPPa/rg5DC89ghyr?= =?utf-8?q?u8Lb+dIXhiCRZ/+v2dwS3QRwn4h0aEmjm9ZgzFW/7eIK9RCWz7oC7QyqHmLj5jqvc?= =?utf-8?q?1M33c4tcNF0ffqSlxuH2aIi+I2s8Ja1SwOrZRHjiuu1Aog6rAnzaLbhPJAK+tg0XF?= =?utf-8?q?b6tYHFcFh5QLKZV2/pSmMP6+pzJJrh25k5SuIHXRJQf6FgwpdnhK+FFtFUl6LJQoz?= =?utf-8?q?G0mMOOWD8Gm71p3FLOhshbBmawG+aq3druKO4q7NR3ZL66tdkVr2mtz2GaHABLhiX?= =?utf-8?q?oOOXAumqPFn4ePBDmyiAkRSiHxLD1uUB+zKbdLOlicMEsZv+RHuGdGKe62+Hp2HKt?= =?utf-8?q?qfH0UECO67MIjj2INWg71cJg6NzLphZDQRuTlFEwVqtMllI28G8gVxmwQKEKBhayy?= =?utf-8?q?me6+ZH1QiLEtIUHOJr7VAsEvCUk3XstNRGnNU1PG2JMBDM+PIEfZffnNblZi/aj8p?= =?utf-8?q?zkn2vjsJCktRnbWkC3Lt7OsGACTCz2ECY4s5Kdp4p7Y0D0yTPXgcI0+TGFVizegzF?= =?utf-8?q?o1pQD7Iz1hyhhKtqIwqAQwWf1vf2MIixFz1ymdVkgYxv1ziR5N3z9Xn/cUBIrBm0x?= =?utf-8?q?88tcSKPGe2g+eWGcB8Tww6BqD1Qs0hX9A=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)(52116014)(376014)(1800799024)(366016)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?9lqfxMFZUmZgiBtlvkkhz8RTviLd?= =?utf-8?q?Ax6dPfcfI5MBfD8A0a31RzX6RZP0zg39BMjrbitK6Thg2XsmWBxCcfkLo1jUKvpq6?= =?utf-8?q?bmbXldNcES/rceYTb8wjhpJY16HcP7kqw+evSV7dvid7wpVgvk9AMuTcarrITfemx?= =?utf-8?q?WL/epDITf6SPOOXkPtVBNG2Yfcg5z9TU6gUm6My0q/8ttr0eNparaD+ElByKobdRs?= =?utf-8?q?Y+vjsXLc0myseUUJBzTkwY2ju5d0+8SpI0G0WHNiXU3e7pCLQi0mqanEUlx18o/fe?= =?utf-8?q?CMaRPCYco+0uCBi94eIySDwkwdkyILbxYb0vufHG4JlnxcBsEXxILjhPcTalwoN6l?= =?utf-8?q?IM1Cj7Uc73HTkm2GfNsN1mTBk6uz06PnvI9T9UYPzj4ucz0+OdJgcAGL2vIf35DOR?= =?utf-8?q?zwQlQQGpzjv4L0gdMv0dID/o1uJsYGu3+Vgx5/wctxxKYvojDfVLczh9fPOCTkJZy?= =?utf-8?q?iI3oBGpmzLvhdUFtuRwAr0djOHHBvG2g2yWUko43yoYJv88VWq5IJhu2H1cSHYTbn?= =?utf-8?q?N/NFMZrpnoGwlatlB/KXI7JEaLZ0WGkmOvLpCdOqDpvCaMv3W9dwznEUHU2nNxGzv?= =?utf-8?q?Utp4M+NPs8T5hHAnHbO5qzEBPx+K4vvl1coxlL2KgWpZiB2xZ4xudtC0i0W+iQvdH?= =?utf-8?q?TCJvc9dCRIebHfFsAVM/Nz6gESlIes03AkCKT9qus4ps7psdTsk0F46AlRx9gzVKe?= =?utf-8?q?n2S8BDwBuURpfUKnYzU8lTL/k5pE9InW3mJ16qCxvwEHuQKMEoI1zYWJSm/gtWTxg?= =?utf-8?q?RC8s0m6gAYI9/3YWXvZsInRNKn+EbwSolNffTopnBCHplPofnb5+q0RD9O6fQdhf/?= =?utf-8?q?BMsSGoe6asmXYkMTtvttHs5xUozyqh0R5nDv/vKhzTyQ50V4h6axCOcYLOW+OyWfj?= =?utf-8?q?sr9AIzI+0CJc0JUURrd1bR9XD0UhFUECWW4d2HORztamqXWr7ebytVXUkvQeD6fIg?= =?utf-8?q?R0s++sYRWQK6pEZx0chOMHXAbcBT6bYy1ADaTmgjJrul2aArmcxbwATU+pNjdwKZw?= =?utf-8?q?8vyKxkDqODlm3OWxjaKlJu3pyGwuTde5+EFNRfrGFQk7gqzq9UpSjSwgLBfl4qPvb?= =?utf-8?q?b5Wh1e3GtrfyJuw8ip8QKEtJkQKMbM+2/4QOwEy/yoRgoXAONwf3mkkjXayWZhXEK?= =?utf-8?q?SyhZFspeeBSaivakZ8JBTFpUGaZvXW6qAARA3Nhef5KkAuxRKw70Jf4mCTqBIQeEk?= =?utf-8?q?xYoFeKUmuThE3AuOXdWrqPgTSSZgbKvn4IH3OpfF9sSt8RxfwlGUmyPzxecNnfMtF?= =?utf-8?q?Z3F1odP+UvGtHfcZdDjjOlROLykXxeEPX/Pxn6l7N7kkE+Meb+u/SQFmZ/vIjg/Rt?= =?utf-8?q?Mv7zYiB2zDYvtF/i+KojZtyuie5MO3FgpUY/or1OHkSdfzQgzoHJuNcqxr/LnmeaG?= =?utf-8?q?yzM4Pi8rj1rSePo4AAkLRv2OfAf5zZtn5/CzpipRVtwwAQLgWl2AWc2yqGPpQv35F?= =?utf-8?q?zAWd74gOgAOXeHuljqmDCFEcoLp4GOAldWeenvzPR/majXkxG98uQwWBJoshmdyzA?= =?utf-8?q?MIRgFEafJrfl?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5242c6b2-a5f3-4fe9-9205-08dd822d90c0 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 06:10:37.1570 (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: rl1ih92RZLSNsOXnCgHVeQustFU50DXQY/d3hp4sgp64S5aGSODiP75+q593OQ7MMSRHQ+EiGvGZ87u0TWMPJQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8734 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 2eafd6bb819165740f7eeddaf5d2e90fc5682b6c..45d7b5fd9230ca122a61fe66a6e05dc4f823444b 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 Wed Apr 23 06:11:42 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bough Chen X-Patchwork-Id: 884281 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11011067.outbound.protection.outlook.com [52.101.65.67]) (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 46317267AFB; Wed, 23 Apr 2025 06:10:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745388643; cv=fail; b=uWXFUc+2ahAwKL/LD+yRUBgWVk5Vxo12h1zjbqehc1Faif8mQiNKbseTiSQbjJv6MxDzfqKR/JVfkeYFsfc9OSMsOW0nWreAgqIH3cJEtStVN4htWbYXhdods/Mr6jNxcYDY9q6mpkL9Tw91Xoz3Bi/mgR0JYQ0jGLo7U7t07cs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745388643; c=relaxed/simple; bh=7OEu7aDcTNZBTqlMwR1UBHg27fDe35Sf0beeYZ/xMGg=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=e1VWrxIzaqRoP59J9SQPu+C/qj8qh+LBbiqHxN3qPM0VIy1LSTnkivjdPrnQSz8zIiiHR/Gdn0Z3e16V48R7H3sSbWPDYwxrYcAkqQvnXrw4H/0Mmqqz/Dvc81y82RR5a/sY6dwW7/lOlo0Axkv7/hUoJ0gjG3Sb5/kALtv2eFE= 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=ZXMGYeor; arc=fail smtp.client-ip=52.101.65.67 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="ZXMGYeor" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pDfS0sbZRwiS3A/Cv5ygHocXteAan09zYJ42YjNNAwr3LRaMQDhIwcefj6BgImEtfG3wj1QGzVqCJTLPjJs9R5FILgagHUODUsSFzuAg/HdAmvRKpRFtI8S0OpXBo7vm2BlJAlVhrYWD1r4yLyH0wTMojrMipdoXz1yXtZUIYbLm9/FkQeMKWiXTKBdueGe6hLES8AfzQs0a7ewi2z1TJn+F4Vh7ONtCgbqq5jc+js1MjCZak2n4ucgqLm1dyqMlndFbiaSVkqiCUYpS6MW0bcDrQgUmfFcvaUfVaXDz8G+awZG3zxbF3hc+l38JVvRvbMe7OrfVCc94X80Zg3wNAg== 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=o13BacnfkHfvICZOS7uGaToiARqOiA3zTd0p91FoY5U=; b=W1M3v6jIHPi70c2OetQJnlKUyb4VV41jqd+G5qd2d8xN4zo2jafVUOnkAM7ckhHQvuWqfEIE7WIndT6JdlYH6WZm9khaae6HviAuU+0UwSlsbtqeNGSZ8Th22T32hoJ67ns1apMhiIS6OyiAlqpiV9MTY4AO18m6554S/18Km1l/oY/3R7xSndBVLDgPhSil+jbsrwuvnlnFZfF7VNr1wvG37hbXR5LTPOBChDXzMBYY75R/Kf89lDxe/HvOCg6btZHc62VWuHFI8Rh87PlARa828ZS6AMCSkBWdnNYS9ZKJwV1DPL253nvtx+t2krFBtUpeBvcP3hCCATI6T3teDw== 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=o13BacnfkHfvICZOS7uGaToiARqOiA3zTd0p91FoY5U=; b=ZXMGYeorAKdt2e7gueKPGKjjjRz0/GijS+mys/6yveP8gSkHDOVC17qQNFnbcj/xtm3YAiWZl19J/ZSkXVqVBjeoNElq1nFgSwHRm09+5oZHSXTlpkE0fnyiFFx6YbjDY1vDUWn2x4sswxcWdf9+dABBaJI+u9XjA72IUjQEMXLpdebGINnlja0DAUiwUoS/O31kF3F9RQ11SW+zWJz27YpmtA9fnW7Mkf0vV4Okri/nBCjK/OIwPvsjZZ8ZRg1vmoCYpV3jMbtFyo1MsDQXNewcRzN7dmTRHMaRMHY35n6ACHNt4ZepoT5giwpA94+8w3nOfyJMu3/bwxBhLwLDRw== 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 PAXPR04MB8734.eurprd04.prod.outlook.com (2603:10a6:102:21e::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.35; Wed, 23 Apr 2025 06:10:40 +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.8655.033; Wed, 23 Apr 2025 06:10:39 +0000 From: Haibo Chen Date: Wed, 23 Apr 2025 14:11:42 +0800 Subject: [PATCH v1 5/5] spi: nxp-fspi: use devm instead of remove for driver detach Message-Id: <20250423-flexspipatch-v1-5-292e530509d3@nxp.com> References: <20250423-flexspipatch-v1-0-292e530509d3@nxp.com> In-Reply-To: <20250423-flexspipatch-v1-0-292e530509d3@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=1745388747; l=2545; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=5lL3LkkHmuY4xCbvDZE4rLc6eGwDA+AN+svgFhE/Z0E=; b=dvVqBSVsVM6gA6pofZtOCSTmB4Yp0+msTRgw1GVzFFXXZSnAJcpsv4HKWt4oS2sYUekhyMHpW mHun2Qgh6cODT7pD5t7qzWIcEh81iomb1eQKA0YcE3GR/J6N7H8N6gV X-Developer-Key: i=haibo.chen@nxp.com; a=ed25519; pk=HR9LLTuVOg3BUNeAf4/FNOIkMaZvuwVJdNrGpvKDKaI= X-ClientProxiedBy: SI2PR04CA0007.apcprd04.prod.outlook.com (2603:1096:4:197::19) 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_|PAXPR04MB8734:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ea4d4af-a3dc-4c0d-76ae-08dd822d9256 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|52116014|376014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?MCeG2YeqcJ0Rhas/3bGGRBNulDZTtOv?= =?utf-8?q?va6+xxokcGdwIgdgFdd4qkolyBz+KoDkQlTForluxEAVLZxQ6+XxFSuJZBPV1kpXF?= =?utf-8?q?Ihca9iQcsNG5ld+UVR6xtyMWKEAOFMVJ8kwJcqF2NWpE9Hs6f5YsQGE5xdS3AMz7Z?= =?utf-8?q?g1ZfNu8ct4PDly08pMNrsGbmiVRt9I5V4kOAn7OFkfc1999+z2wJDpOjGtP9bUk7+?= =?utf-8?q?0eXIjqPpHxTgJFmqiRCjhkDZQdhDdEtOgSR2deGvcNJO76zC6+cNG/uu/eYaP8yVr?= =?utf-8?q?3cg16StRR36jglqqP3PEsTLuKzdI+wdrtQ24gwwWG8N5GUxATCHK5J0IBoN9AHcwJ?= =?utf-8?q?ZjwBBkG1dB1+w2TI0ipd44bk/slIKSvcyj3siprUBo0zYhZiLTp8qZTW7VwfoAX9H?= =?utf-8?q?F9sHg7PwUt3Cu14fr4Gc/wNEeq3X53/ZSsm3sLBZlfcX+EypBs966fCq2XQA6iwpu?= =?utf-8?q?bgFEX8g8DPKsdc6hXNISpvlNPdMvU1zBAyvzp/bkQBPxWbAO6jjV7i5SKXvwNbjgq?= =?utf-8?q?ToURSLpSAPUGypYujTcriFBepiOCkjZg3lPMCplM6GaC8J/mwC5BE/aiu3vmrpt0G?= =?utf-8?q?IsvgZYwU2BInugwajCDFI15AvW8PLGVQt4qfSlOo13KE2nsuBa6FrLVlGjP1ONYmE?= =?utf-8?q?4DqufBJR++hqO9A+ZeEIPEXwLVDVbxgE8AZkqesih5ZUIuoBwAS13SF2DKzuQn74A?= =?utf-8?q?YHZjZgdxXO6BbSCP5VMsvj30a/rtylZUlR39YC7yDF8lJ6ag862CJLNax+wbsZomV?= =?utf-8?q?XNP0AVB6hUp4mgq/tphyOiO6xzwbgnpXo7djzi/tsUefERyolBn9L9uvMx/7krKUE?= =?utf-8?q?MMVNeOXO7kvVkpiEEFHHTNMmxPpB3Ln8tO7R1e3J36Y4gZLI7d7jLpJYHugmLgws6?= =?utf-8?q?kGruPBbsL/BTXIl9GTzV8skBTfQm8uzO3sp/cKPSpwzg6iYtsCeJrijXCriEjjI2m?= =?utf-8?q?4Gg/EQJz43uby3PFKwEUjwdaA/SLFOTab3UnrWQlwvuKcLT10o+Wj4cJlN1jupDLd?= =?utf-8?q?tUu0IsLQpJhJoK12uqksdtpQ7VAjA0rhN3g32uVdEKxRH4b62wYGc3le2cxtlFFnh?= =?utf-8?q?GCf4851EVYYuhGjv4fWChA28WiS1bSEoMnEs5Q3AQJmRXIhgKJ3y+Sgi7D2Nr8Mdw?= =?utf-8?q?r9/Gzpbu7DNOG6jfZbbCYinqGoo2MFlJDQpd+foR46Z6hWkPGn5xlEPriS2/FRv6f?= =?utf-8?q?dhXBr5rx/5XJXryU+6E3rfbBL0PblwvBoxvgKSdQrJJLE6rKS07Vqx/4OMbIbbPx7?= =?utf-8?q?1HI+cBs1TLcD0bnpTKYcjnKBcBsOoqGDxIEXPrWuSpvXOMPtxOwpk7p23sEzPPpMl?= =?utf-8?q?HOoNn/7PjEuOiF7qZ2XgPmuG9HtBQeHig1we5Fa3Hvo8l2cAS2odOHt5sqmwukpDJ?= =?utf-8?q?pL/ty+A+aW4QWxLMJPvjQTfxJMeBNC7Eg=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)(52116014)(376014)(1800799024)(366016)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?CQnJUlwjMbyNGGQhevWiBCHDY2Nd?= =?utf-8?q?c/pYhGp+2Z8BO5WCqbInm86zil5DmhpnxCMkpkEjfjdsO7+XOMmT6p841E24ZX9E8?= =?utf-8?q?T6FJFHiLDhdNFzmQq+zEthWFAJ+6ezA/VfJRrohKvBnYiT8j2192GXXf3jxbEurKC?= =?utf-8?q?fTssT5YBpd9fqD/4h86O1CACHxuy5hcmcLNzuDqYEAF7z3CZRuvh3gtXiJcOgucC/?= =?utf-8?q?PHqAgKeiPTa24srDpeP06McZlexwWFjCiQi+XB3TYRqQHU0LJHuub1KkwmB95X2Z5?= =?utf-8?q?p2pxIhsUPbx+vNpva5m3t1nJiP5gxw5Ec2/B8ud0DFyyUHfeCUVWYfcPQUt0o6f/E?= =?utf-8?q?kCTD5VP+ilhRA6pmLi0WhaZUrfVK86vN+g5+3tqLXxoB6Xrw4P2jhw07VVYqCm0Ij?= =?utf-8?q?I6JlOL4urhZmt8NDX0bnfhgKF5QA+8DuKN/UqUaGEcnHQjv53lxL/YZ8YZ4AbKQki?= =?utf-8?q?0v8PIdI+60419U9zlcLk5i38e2W8CTxR0MxUk8Aalla7T3/MybB+HotHJA5xxKfzF?= =?utf-8?q?9Ii2qCx2/p/ku/vedvCl3/Doj19c56hauIDRAnrbEL4V99FPbYRCDNhRaEyvct/pz?= =?utf-8?q?KY+v6G0v618NMGN9DGIMljfDbKuCHgYuQ0T2IsLHNJEqp70z0VxW94Ti0YhsKdXWQ?= =?utf-8?q?Z7kD+COgVnloklUrzcN+8R0SyU/xBNykt0RoBxopZcte8/H7A0HTEOGmpl3LCVKG/?= =?utf-8?q?9DNXJSgGl+Xy9mgIDBpNxD777+UFM1NU4wjyymMS4fBMv2t+o/ozkV6so/Jv1i81F?= =?utf-8?q?MMlClMcRtkE4VGnFdd4K8wStdLVwVLwX3crnbzttJ/BeCn4V7m0MOx/ttfe6rUUW9?= =?utf-8?q?6rufab/YdWqdr3lJeqOPMHMtbYYL1aYPlNcHFsOmQ5zFaFWrIwQ0QKELEWlnQD/5S?= =?utf-8?q?3/+IbXLuvW+RtxAb4xs+haU/9aGsjKFUaw1gwblQ3ZKbz1NWAYP4NIzp7YsP08dTP?= =?utf-8?q?EtMgKJYnzt02mSB9ZkfJLaZNzNobZazACO67nKJAPgB8HpCxFH9efxcR336oAE6zo?= =?utf-8?q?vvRoHJ8lzFXQsFNXTkYpErVRnuOtOlD4q6liOM0awPVyXpwi22UfsiKsb+M8svTtS?= =?utf-8?q?cHkvlwMwRiHAQ+CR9mwwy+gV6PKhcoycFTKktg3ZcGj0aTi42J5MPYBTZ2Kjt6fQM?= =?utf-8?q?KSikoxYVzc8Zx+REnpAciv4fN/QZKymgTDBQHU/JQJn6MJjsHdAzOCx2hhOHdn0mf?= =?utf-8?q?opx6icc30hgUwon0vzXK4Lj/eEL6C4R55j0Dh1NtPxfvJ1xiCWPyHSGpt3vp4Jgna?= =?utf-8?q?wHpXLadBtwtTJTDU1Zh6jKrencCmYUb2s3S34DJIvgFhD8PhUCdskTTjCeL9A1RBj?= =?utf-8?q?CHIaUlzMYKupEQyOxF/gc00cpM/CFZyx9oWmnmRGeGuOOicjEDqVNUPd3MB+Amga6?= =?utf-8?q?gACbxfFCp/+onNTerKycs2zyW9/lgFDd5ys+bWwtc25MLTfk6YsH3U1aphR3jl4bx?= =?utf-8?q?oJ9y25wMR0qAnsJuuAbm6JHR8FcMyZyfqnOQEaZ62BEAUnDJPacJdjeiEFkopeNDa?= =?utf-8?q?FkKVZesjyKRU?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3ea4d4af-a3dc-4c0d-76ae-08dd822d9256 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 06:10:39.8848 (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: hBXUmXc0IxxDGkzHr9Z92WMUKnPWkGxpxR9fwWm4/wmX6e2BUo0YIX9a3mtkSxDols3ro/vol/zg0vCnqmoEiA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8734 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 45d7b5fd9230ca122a61fe66a6e05dc4f823444b..497902acebedf37bd6b4f0a5f5f6d8a1591543c1 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 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_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); } #ifdef CONFIG_PM @@ -1363,7 +1367,6 @@ static struct platform_driver nxp_fspi_driver = { .pm = &nxp_fspi_pm_ops, }, .probe = nxp_fspi_probe, - .remove = nxp_fspi_remove, }; module_platform_driver(nxp_fspi_driver);