From patchwork Thu Apr 24 07:33:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Haibo Chen X-Patchwork-Id: 884734 Received: from EUR03-VI1-obe.outbound.protection.outlook.com (mail-vi1eur03on2061.outbound.protection.outlook.com [40.107.103.61]) (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 EB37921FF3C; Thu, 24 Apr 2025 07:32:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.103.61 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745479925; cv=fail; b=QmXMQQja+A65iNSmBa8c84GAUkvyjisY4se/yEOoDzpAUYulWPRKFmMWug9FP/xIImuEAj6r05ItJDH3V421DEFpk+eJP3H+RxhDjInRH+HiV1AbxvXVrU2Edm8V/75ziE3oF6LaEKZUMtp8+0gkltJ6LZButdaehPTEuK4k46U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745479925; c=relaxed/simple; bh=R+E0blCnr84VOgWVUzaNmlI5G0tHD3+mnj0wlyBAGLc=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=sCaYx8FNaY2BsMjhpljQtcYqli6ljVcjBqRyUacfvZVD2VIKJalPlIaR8vxhfqMJ5kpcCyv1C1gkqj9SWjeXsNdCxsWMzNPrES9UcIgW5QcSzogRsxCaaqqyYb0RYkokgYkFZ1xtwG3q83FDj32N8p093s/H3XJqt0HfGR1EKnw= 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=YCsuKRPZ; arc=fail smtp.client-ip=40.107.103.61 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="YCsuKRPZ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PMmboskBjVtXodqExxEIY3w36yJTjAnicAwMQjE9+0AGQvMg8UJYg4iGu98dlvWOjRyk9zpVH1CaKs+J6C6wFkCPjOP6V5HVAW0N0cA2+COXb8nNLbHC7yGqqQN9zJ5Shkr3RicmLIwIyZ0H9fSupCIOpM+oDKb7Y3x92WHIyhN1lH6YRL4J9UMLyeI1vjS+ikZzJUqrg8/lyo7m3PdmUka81HsREZd13suD5QPxzxQGtyRyVLs5rWnRVVi49hk9S2tv0D6BFGN67fnH1Exat25HlRiaHgqqgi9Qe/YLsE233tlTwAoDE7HWjNac5ski28CWKcaS+9C8s8NjGceg0w== 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=S9w3dGYpfAlZBWFJ2d/3YAvGKeOY7WHG6xEZgX3pM5twWHxBsHcrtZoSIznBo9fusVh55+uWF1/nyffWauEuaWoWL2++F9r06RspM2Nic7qjbTmq9RMHJIWdf7cx363f5MNJNlq66L/XXq6KvUrfjo2Dsrk+85l4/ZGJ3GCx2p64a18pg0gBHGUe/DE6Z0382PhTYpL2MReP+WDub2g3Psz/vuQMgEXRpSQ6ez/WjTNe6CaSzCa6lpaUjey/anEamhCI8mMhZMNl1a6xTqwF8VaheCnDDpo4KGLY5NqiNi/1PWVdxsi72gSctp5FAsMqqxg2s9MMHZiU/y6QCiB+nw== 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=YCsuKRPZFrf4Pi4TbDFEqvLIleoSSgpas5y7yZnnuvy63y5DofqkRkEYIHATFt699JfrWz/DmfHI2uSaxGTIAFrOeyCaG8X4WElLHTmGNlNlpGEAzJG3cF58oPio6rSv4lGOVa3G16XH4MaBENhf3S6uR4K3+4mdeQM70Df8qcQ9084UZUlCSaEd5q40pesCMjqoQ+1LCzWGjg2PDsss8rT9+RLIx3Nc1lpbiuRNY2yY5woUQXRHoF8Bwpf45aJUISt1WT2NUuDCCWXIGQgVYVGC+HHiYCqyDgXroADco/4SNEZf2FMccBN0RGN4gBlQNPL6s5CSymnhWV6y1tyItg== 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 VI2PR04MB10594.eurprd04.prod.outlook.com (2603:10a6:800:26f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.23; Thu, 24 Apr 2025 07:32:00 +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; Thu, 24 Apr 2025 07:32:00 +0000 From: Haibo Chen Date: Thu, 24 Apr 2025 15:33:25 +0800 Subject: [PATCH v2 1/5] spi: spi-nxp-fspi: remove the goto in probe Message-Id: <20250424-flexspipatch-v2-1-e9eb643e2286@nxp.com> References: <20250424-flexspipatch-v2-0-e9eb643e2286@nxp.com> In-Reply-To: <20250424-flexspipatch-v2-0-e9eb643e2286@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=1745480038; l=4520; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=R+E0blCnr84VOgWVUzaNmlI5G0tHD3+mnj0wlyBAGLc=; b=VLw7pidXB8Jqsl+z6xMnvl1vH/mrPU7Ni3qayDG8iuJR1492g6x4/2V6ijAIKepo9O5K2fErL 7UyZaT71w0uCnfYwYpMVvnv5Rd2sFWVdV237z1sYnjisccNtitrO2Js X-Developer-Key: i=haibo.chen@nxp.com; a=ed25519; pk=HR9LLTuVOg3BUNeAf4/FNOIkMaZvuwVJdNrGpvKDKaI= X-ClientProxiedBy: SI1PR02CA0055.apcprd02.prod.outlook.com (2603:1096:4:1f5::16) 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_|VI2PR04MB10594:EE_ X-MS-Office365-Filtering-Correlation-Id: dd2e8777-9105-41e5-9cc3-08dd830219ba X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|52116014|376014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?gf293GdAXDoYIiar2OS8ikoK95sKJcb?= =?utf-8?q?59cwFaiPRgnmHRZMxenB67eIq2+9tCaEZcNhYZZ9+betp6sVRjAokPpS0I7bqYgfB?= =?utf-8?q?3P+SG79tAtQW2tONVbASoBkpTn/VCYJQqtfUOAyMxLA0uW/9aOFHAgCxRFN2woaRB?= =?utf-8?q?b4NKrQtVpVyGPrvuzSNNTzQIItVgXd1iZ5/7LtjfwNdsgve+sSqn7WGMo1SGT9Zwt?= =?utf-8?q?0GQ6HKGemz729hNjEvj+Y+c9Je297f6SuwF24rJeY3NQ5+LlLK977QVZCsVrm+MgT?= =?utf-8?q?07tJriSBh3tVICWYH9Uu4Oy1NfAnSqlQ/VDvaqLGJTUuhdm5VpRk7HCQLeC7TynYo?= =?utf-8?q?a2j8lsvu3fERyc7/ckXjrSqAZ3kVTWdbXoWGFYQ6yvZq15g657NLkS2+AdevFgtRK?= =?utf-8?q?ijpOQ75wN34co8j+4N1/zbRA/4QerQ8f+V2rnY5snLK9BkMi7n5TjBdWQ63mjt0Z8?= =?utf-8?q?jPhpGMrp8Cn6GnGVJMV0TOBMjqFEifFtIaxdej61kHMmDHY3yHQZLLoo6dvGYhkp+?= =?utf-8?q?+VYWGQxC7qxs5+HRXapWi2Z16K3mNT2vCmOBHpkQ3gjpO+v3NANSQcaTWwkSsXUUu?= =?utf-8?q?XVHfEXCP/fX3yGAmxminokEzJSIiAVkwpmh0s2tRPRjdoW5fa+niXfaHchPJnfDgJ?= =?utf-8?q?SBzfpLejsOD0v5jOGQfYc7l/unjyFtwJE9ieseP624jlHoHQQ5vBOnG2wJ/CbjiQd?= =?utf-8?q?dJ2JeXoXq5t34CFSrR64dMHgSr1Ptjs771bhNEpQux976kl4X9UOzpEAp/hsvpFDZ?= =?utf-8?q?LXXBtdfQYVzWI24LXKmT2o8MqQyWBF1OntkWB8C9twWe0S6MWeKGgVuR1Ptm82DYt?= =?utf-8?q?TA7oJkJ7u8O9JAI68crZFvPN8ywXMhqP2r0YmkMLW7xK1jvODCuzxt/+IA8Qq8vv3?= =?utf-8?q?bEsrRTGNmfvIE3MIRryBAck+dq7DwWCOqiQYELlCsUOkjOyU4fvoz7YLud6MDTFON?= =?utf-8?q?OAhUNwwW8z58OdYNY2WRzglDQ9lc2R//UTpdI6UKD7Y9LkTI61sbqR4zc3NltQ1gL?= =?utf-8?q?68tLF3UkazBZSDFR51R63Gk7ky1sQkUJtFNCghnEkF8jhJYQeVtkk20WQXO+m+OaS?= =?utf-8?q?oJnxu7pgfn8zWQ+JILw+BgHEmkRtElZmcxVS2uNHowvbVR6dKSkPqwNMvrUdzHNdC?= =?utf-8?q?crpupx1Pa26cAoucD4YikA+ruPQAyWBEkdbcaAEvjznz/jnOUXpFwMBy/Cqd6bxFQ?= =?utf-8?q?6cU5dXn/BcLELnumk9wHJw77els7Urn4duHZwSRWyojsJsoyByc3RQSum9FX444L2?= =?utf-8?q?kPcInJ1Vs6sYWnx23witfBWzHvDS91sPHcwoStuGkJKuNm+GKhAmnKgmb7tcyd1Cy?= =?utf-8?q?khfrsiGvD8rI7lsktufGO74XMEMBseBYH7z8Eq16IPydya3kpJqPLxFSWGCel1MwS?= =?utf-8?q?IbQdgb1bxh7iYnfwXAQpibDBJNDQtjyU++kmxHWCOesztxDjScLq9I=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)(366016)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?ozzIHEQ8zUBT89+T1jcFl4TI7pqW?= =?utf-8?q?kb+VwKsekIkmvJwvsVvRAsLTX//AtxK0E7mD9w432d0BxUonJ0vt4/Us6iKOg4Pmg?= =?utf-8?q?r0lLBP2RXYfttGwRqg3MrxEeGLahn8RP37xiwIvpZpLWTag51gdQqX0lZkYHTqKzo?= =?utf-8?q?SDi1nEL3Xcw3OwMoMgXc2sXjqpMnB2Ksodvg0tiy7j/WPuTatec6wHx16fLtBSijy?= =?utf-8?q?DVCwnygwIpp1g8sEh792GRWyfihDObl7BI2mD/YQVSj8VTs3SZURyOddj0kriU68q?= =?utf-8?q?e93ba/wCbLwT2GPYQM1BXeKSCTruv4fqnb4OzXl5r4lQCHXhC7I6CG8bFVzIzZg1R?= =?utf-8?q?WCKjEJqDZZOPZ8ud7DcoeaASoGyIHD+Pl6srioN9WsrbJIcK7B6gkoRa0qpkcPWDw?= =?utf-8?q?QNbQDj7pfg0qxitzg+/ZgdQp6fKTR+TXyverQBXh71bJzomRi5mNM16pzQarKNIzK?= =?utf-8?q?MNn4MU2yCWWiU4t+uOSouAIkqyKGFhVOawGgKo4Q7xBu+kGU7OU7SHTxrEdNoo2VP?= =?utf-8?q?iP4EHKKPG3jzzmaA+gmUmpHXReRl+7oU4CKduTCIxNGqECNlpH4tMIWK0KseNzuE0?= =?utf-8?q?gKRzecwAT5uhp4ro7CG2WNYLDy9ay/QHkvOy3ePizXFFRo98qvJ4630y7iDlp2YWS?= =?utf-8?q?in1TXYlQtiHsVL4gxNKObfU8SvLn8TZLQZvZzAQTpIaSsVtS/sc8l/BogneMy3VHQ?= =?utf-8?q?qMyQACUb6xqwFSYZb4LUOb+b7YV8M/s+aaio1txOe3ZtFwxFbuqZTE2hgD34Ibhm7?= =?utf-8?q?v3MIDjQeHfjZBcfUFEU+dHi9FxHOYkyvUyh0WH4jhJR6AiYVkl4igPfLnac64NBmF?= =?utf-8?q?/lqIhrsZJhluCHaUatLsl6KL4iprSojjJCIUQ3OWp9qmmtjfVMPrOd4K86UNrJ6m6?= =?utf-8?q?Y7O8BN7QlnqDlWhAcqnk8UTP0KSlZwalu7L9y9R+E8CvzhT7pzaB/T27UWkmD5Xgq?= =?utf-8?q?9x2xZNiPi0YepL4PFY1VD7jPgT8vwE5629IUk6wOoGWQtLWqJ3sd+D/bTTFdzinym?= =?utf-8?q?av6aeb+X1/hIN7VBfM+3Q7MqltN6nsUTxg412xpYcxBePPAbggMEUGzzJYJzBF2pX?= =?utf-8?q?3T9uNq6aXAQt6kDd4xUW8B5Go5ZjQ0rvtDTLGSJjQK9WDdJ6VlamJjxAXtsJf/8ol?= =?utf-8?q?i6u7rKb1lnyU+jl2pjS1yoRuUrVbwS+RVfRD7Q81ehqmkdM6Yg9RfWUcGabKjqMLB?= =?utf-8?q?tFKm/vEiTCsGqGJ2or/LmbYFKsQgdQCbsC16QnRPitj4ZOVO6ZyZQbJlEWET+yWZj?= =?utf-8?q?RZcOxG8neRAhpiitYGDecdRMjRN/TVGA5jCc70kAT12TJRXbKkAJWPAK3gxqXXS2q?= =?utf-8?q?JBxuk2oeKZoksc2JVBUkr+rEMMKluQiJ7aWcO0bOBQfg5xNXVYiMOno2WzXW9cJbJ?= =?utf-8?q?kYvmecxks14XaPeYo0Wl3md1cE32VawDmAgpDxuQW7F5Gsbxj+wEvWtyLYVEzql5E?= =?utf-8?q?sjZ0Imjj7ttGJaNWq9tGPzasKbMVgh0KPkDvWbrfb+VHlmyzSMnoeUidvn2cxF5At?= =?utf-8?q?yAR3YfkDrV7t?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: dd2e8777-9105-41e5-9cc3-08dd830219ba X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2025 07:32:00.5228 (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: PeJwCQlTihRVTkLHoQMhhcx439uBwfox2+2iQgAXFLc3Q2oARuTOPOpOLHQtioDHXC7DX1CyHjThZMCZuEJtsA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR04MB10594 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 Thu Apr 24 07:33:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Haibo Chen X-Patchwork-Id: 884278 Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2052.outbound.protection.outlook.com [40.107.105.52]) (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 6155222256A; Thu, 24 Apr 2025 07:32:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.105.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745479929; cv=fail; b=m4VrX7mkxrQunkkNJ2ewtalBpCy/DCrdMeb/9mpyE6I3jYQMNf5QE1aELxaUD9JfdIsb1NJ/vc50AAlGiwTzISgocoUkXHR/1fuYYtB12BY/g/XfhvteWIN50qQqiC9wI62gapc0fV+91ErP+C7QwPKm7lR088Gl3TAjMFlr/Co= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745479929; c=relaxed/simple; bh=OI4iSGXxyD09ySKPaTnSNkXPT4xN/jGSL4XikQ038Tg=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=OEDmLTh5mSlmyh9dQBPsNcu6sjOCZfi1cgD7JB6ddxhM/NbEZkAzFrlMpju92IolQnciRtuR6oBnW0qOfTBQefYzmJyP7rAjEAg6xh6x6qsTbsNcB3xCYY1/5zMC58c0KOTSltKifaE945dQ/u8S831n0KW0H/IJVbLUiRJeztE= 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=jmClFXHt; arc=fail smtp.client-ip=40.107.105.52 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="jmClFXHt" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CNum3iNGKL94Aa3Vr5xbRJJ6vE2lpt+aEG09wMcTKWvgLKV52xjLGbFLl3Pn7oQuicopPipQzqWOYT6ZcCKD1NuTyyi1wnJnjuU5zzuxxHoNxuIG8wTIwVkDwE8LHzUyhFoc3uWtmPnDUfYvrfPlkbtsxyF1a+DOOqjChq8Q+12J1vCbna6sMwCeOw/6hMW9ngVyzGG5Wv4DDSZOxwmQlNbZBfemF3TTQaT+Xu8hRMSsJGkCsPnj8ZKzv8GALnxRd9/KJen7LsbY5xB9hiKTEkBVew3GtZauOh06pDlvzmUStBb9yAOnb4wluD9lPq8KaUdpGgMUBW7Loj6FmZ4x8g== 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=liHQmwLVebmz6tdOh1EehsH6ZtR+3rvjh9GQwIhvxos=; b=IWQu7SA5aT2IboOWiNBW1B46qvoWioL421WCWOTKqBIkqNmaga+28OAampprmEfESwuhTZw0cwXu/76hqBb6dGT3Gp/QuwD9AutzL1B0K1itTuxMwYM3WgekpXUyIIdkzLEBPN2jDrrrtokyX+JduNIcMfwImB4l5lWkCZ0DhVDQFo0NQ4/IjhK7/xC61FBs7q0SafX4dZ5iRAWVHvtedvUk91AYjd2wvgU3+C7oAQAvuncIZlbcombArsPLif0X77/SFSY1fXgpihjg+ulRUBzenVsc3J0aYADEA0xpIoI8CwFfUCkZmsgLjzK05XJAgZvRRR5KdzRCpwCji0Pfiw== 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=liHQmwLVebmz6tdOh1EehsH6ZtR+3rvjh9GQwIhvxos=; b=jmClFXHtIecKuQpktA47xvhpL5jAQtXE4WEZMlKi9dlfsaKz8G3lKC3f2KX4Yh5nFs0l4AHWEoQ12U/nD3/H+rD8ayo2ar83GRczTP5gbWgPqO1+uwSGB+laj6n2Dr8RGIM46u6O3JfHIvRIwv4fKOKo+MbX/cDshbROiTt2vmE6Uf7qJhXd8vB3fJ9If4Eq2YXKS5MYfxWV5GKhO31mBnHogyWzGQoHsaQPV2zDUIEsD7ADfxolqZjHq1MjJG7ALsYZ+OW+vjzk577TCSECxVOBkrG/sTlW/x4eDEAA15SgSFbh4/ZCN5UZBm0jK/g2l2O8Pf34VztLJnZS40emQg== 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 VI2PR04MB10594.eurprd04.prod.outlook.com (2603:10a6:800:26f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.23; Thu, 24 Apr 2025 07:32:04 +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; Thu, 24 Apr 2025 07:32:04 +0000 From: Haibo Chen Date: Thu, 24 Apr 2025 15:33:26 +0800 Subject: [PATCH v2 2/5] spi: spi-nxp-fspi: enable runtime pm for fspi Message-Id: <20250424-flexspipatch-v2-2-e9eb643e2286@nxp.com> References: <20250424-flexspipatch-v2-0-e9eb643e2286@nxp.com> In-Reply-To: <20250424-flexspipatch-v2-0-e9eb643e2286@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=1745480038; l=5768; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=OI4iSGXxyD09ySKPaTnSNkXPT4xN/jGSL4XikQ038Tg=; b=BusK+8s7WH2wxjAPfZ66YvTu6soiMc/s9g4inZMg3Dc3FarF/DhUeBZKMVf85El3tsqHyKTic K5nu/SgFP0qAmvc/GPgAOgZ2jTZL30iE+0ABTirD85ON935Kwbhvkjm X-Developer-Key: i=haibo.chen@nxp.com; a=ed25519; pk=HR9LLTuVOg3BUNeAf4/FNOIkMaZvuwVJdNrGpvKDKaI= X-ClientProxiedBy: SI1PR02CA0055.apcprd02.prod.outlook.com (2603:1096:4:1f5::16) 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_|VI2PR04MB10594:EE_ X-MS-Office365-Filtering-Correlation-Id: 7b86aafd-4598-4501-1f45-08dd83021ba8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|52116014|376014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?N5QRvqbo5q2CbNa8JkKHk3J2lbCuR2X?= =?utf-8?q?YVGrK6mJA3ffU8X5DUmjIi1KMHArlaLSJtbMkwpkogrkzclEMEvVf7wKR3mq7XwtU?= =?utf-8?q?xJvPjPwCCL1Mf9Vwvv1/tnu3Zz+yYUqQxEbageKTd0kBgVjEb9dwyqmg5wFdGNuTn?= =?utf-8?q?oE+IimhflXsUNHRQc6cntPiIJv6WHW+qCsqoTw9CESck0h2UvX+s1eLgvFDpz+Xn0?= =?utf-8?q?oELmzjsUsm2AhoKxim0eHFgfv2xU5c3rcTdtpjp6iDxLiEjdNvWf625GUQhfeuwbo?= =?utf-8?q?2UXaBA5GmH4Cz70Q7PTikI92KTrLVQjrTThQczHcpuubjQfdl1ngsdaCL8QoGurXd?= =?utf-8?q?yM0GdpNDO+ZZdlBnCUZhlfv/P+RzvMje4pbp+r+uKdR8dgxnOlCtf96SC9/AeZq7C?= =?utf-8?q?zVnwKfiIPN3QJoH2Ht4IEGBKmDzbQ3aIKW779cptO6IBDjiQaw1a7ebqP0l0K/Dma?= =?utf-8?q?ySrHdZE0VyFXMSITjM8Rhk4mC8dQ7dNuiLmz2Ki48KhFf6DUZjMsPVjQfnyjPu50J?= =?utf-8?q?giemmjsGDcuBOmbCQqNn58EAA5fAs9+iDjtnh5u7M2B2ehqK0i6tibWxauV9FRQNP?= =?utf-8?q?+l5oLHtAUEdI/eIsSZ8B6orHS/PN2PqIN8187d8fARgnbwgPKghAiaoFEVM2EMPvr?= =?utf-8?q?BETzpI7rwHaUGSPMjOXrAIQFWaqaKapufkgnLe4eePVLcqfuwethayXl4N/bBqt7p?= =?utf-8?q?M3+1CX48/pl8j5c+xK8+kr65ckvgPEUCvBHUBjWDUd6qLR3ZiQAaXAl1FgRdovtb6?= =?utf-8?q?vaQ/s0Ne7awxqyNHBjNfNNNDVpUsE5/xgOVMd2s5+RZaPc3+1Sqdwucqu6tvqPt0r?= =?utf-8?q?S41xL00YMLETBRl6vPPfRXIW7k9i3fQe3fdBN13gPcHOVuP3pKy2Ox4QLgvoukQCD?= =?utf-8?q?YLZZ9+rWcCbhKQmRB4s5UNBtZwbLZS5yM9o+u9T0eTOUMiex9raWh+kFFnWXxZnDo?= =?utf-8?q?h5bCPSop8a1rxVCgPkrsbQxxmSgLZbJMrzXnKHHeiBe/SAH/wIvz5/EcRu0/GP1j4?= =?utf-8?q?NWrFUsFfFb7AptpLGQ8jTD1CnC0wQ1j4zsP2iPFWvQerUS18laS/+sEFOHL1LoA3G?= =?utf-8?q?1rO/fJpuIINfyTbcDniEnREwUISRzkkpaJtO1Urp/9Kr+pnO7xhIkAKSvjfl+BpYd?= =?utf-8?q?YlbzmFWHIoq6zE/dW4qZS5zn+nn38MKlrmLxj8e1d8BGpQjzfRVzQADHH+fFwj5dA?= =?utf-8?q?wQG3BXulnimN+f5QDUPSJBQVnBBRBHGNQdx82R19/H85QvqF1cTojE85E0kDB5TiL?= =?utf-8?q?OPp19QYyJFKn4JwmQgxz/EdFk+tiUKNmnfxLPo9Of4xEPHxAFNKaATx5SIGqZ52+n?= =?utf-8?q?ulT8JzZGvnxeDXwKqfInA+o8KVI8+3Nen9xpV7np4N9IzIsg08ctReJEnrWa+9Dz1?= =?utf-8?q?3dn0pGRvdGIeqU3euUYT+mWhDDarNntuA=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)(366016)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?OZQpi4HSNBxhEsdDpl+jYQO/mHCf?= =?utf-8?q?qaUvtiJGajvLRdVVTs2KMdLfoLWMHAVighLg5vwan4J3vI5y1al9AKA5tji1z4gch?= =?utf-8?q?9HNd2fTyP939rGTrl4VY3eIcqvXWPOgRJTr+4C8FBktboerkdy2+iluv5BcVYcJYe?= =?utf-8?q?gRmyvYlspIS3mfV9KT2HQMTq1QjgAcL65Utz3KQfVAkoMPpslzMW5xiA50GyURRYk?= =?utf-8?q?AqvwaQ+/F7trkt1Od4ql6MlnQgJzOt8a3PktqQUvx7N/QP3n3qN0gIdtYIn4dNEJv?= =?utf-8?q?hpI/zPI8av4x4fxW1pEWvBnLYRnZdcXj9KIeVzyke2EHENd7s2inQzzkAmjjFzTYk?= =?utf-8?q?shINmEdAdYBkaOhaG2RstOdUo8HfYFEQo3ehQqyYEKlrowmdHKm7cnxuTvHcZnV7U?= =?utf-8?q?nCmSCaW1uTYgug6vidDC+JrowdYrjitNkzGH3mUmvgwTOiSJfM13drnfNkzbsrPAi?= =?utf-8?q?KDMDV0K61hcuEY9PQtfhBR1w+zogFVayBOd/SySvfV5M9Hu6jkFeQVDx4/LRjAhlN?= =?utf-8?q?lTw7ROzdIHm6+0q/UL/MKQydTF/6psk1ZfValNBdHC6b6chu+YhtdVsDAebzzVBKY?= =?utf-8?q?82iuHoJgxz/BprowutaKdjKdpb6hUCMtgsiE1QsT5KO0eSMcDS8VnzFXh4Pu3zg2w?= =?utf-8?q?Nkw8jaB3+wn6RT6kA4hi2o4rB7Z/4AxdAKjixHamEAt+tef6zovykVZO3fa1BXuSV?= =?utf-8?q?BcdL1hFtqVikzwKEeb20o5r+X+AFUziWsCcY6f3ZcM2+UhtvGMl/aPt4+eJfDHIPy?= =?utf-8?q?J0pderJoNvtplPgIGsmCBQOD7AAmJK5Frby6S5imheKeTPQAacw9wp2oFvXV7ixZX?= =?utf-8?q?BjlDzjOryMZzFI7+W2QClSDnrCMYt7/Ejao4auEY5VPEgrQufxdoG4PR44rSyz6nS?= =?utf-8?q?tCPprrA3W39xxJqdPUCZvG+L8bcYfr9eSEbB+otNV4appqSYvwxIpjjJF9ImSCm+J?= =?utf-8?q?kXK7AgM2taX0M+cbzbX+ZNHR4qYMuYnyC9DILNJFFDuvFJMWoIz/4u43DBsSp17C7?= =?utf-8?q?AX2p/IeDP96WJfcPqDlTZU3tyJvG2DN+aOWiZUhO5OAFJ5F20k9qMvQRkdgNl+rAI?= =?utf-8?q?9jldqmjPAgS+NarveKuBxdHU/YE+V45DIlnQHsGEa2ZQQ78RAsBZBFsJmphJXjqhA?= =?utf-8?q?yYpARZ0I4/KMN52ydjOd3Y4ByLhsQ9LFwukkjGtpXUf0kKBEisre4L8VKks+t7tN2?= =?utf-8?q?D0Vws3pxp5PMCh8SXcb7PsXXw6B2IDgIC0IxvTy7hHDab8CSLQh0F/4NBAUhFKAkT?= =?utf-8?q?s5fdPjEYizeuHnmxF2P2dS+Mp/TYTb6U6mi91FfwDbo/1eRYooPiKNPaTzYZgE2iJ?= =?utf-8?q?uub80prYzozB3CUjJ5k21/lxLxR26BR254I+N8KOtpr6//MmJM3dh2TcYQk+dD0I/?= =?utf-8?q?hhjE9/duG+/gSEJNaJvf8REHhS3JEyiprY3Z29pKNLn7fbsIvcgzAoj5cXSnnUERk?= =?utf-8?q?x7AGSCEKV7XdbjcPt0Og/kx+I+4XVeGEFfY2QJtzZlOWmKTv160+7o9gQ1GiTf9Pz?= =?utf-8?q?oXInw66RK9Zy?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7b86aafd-4598-4501-1f45-08dd83021ba8 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2025 07:32:04.3679 (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: qYWBmGpeK8mJcRi78BRaB3tNUxw9uA/569AHca7uHpus5/bS+B2k169dAjzdvFcoTJ9tS6dPdSN7uJglUsCncQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR04MB10594 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 | 95 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 79 insertions(+), 16 deletions(-) diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c index 00da184be88a026bf562c9808e18e2335a0959e9..438a9c103c5969bcae06b4e02d98397ffdcaa345 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,28 +1272,73 @@ 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; } +#endif /* CONFIG_PM */ + +#ifdef CONFIG_PM_SLEEP +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_SLEEP */ + +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, }, @@ -1291,11 +1359,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 Thu Apr 24 07:33:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Haibo Chen X-Patchwork-Id: 884733 Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2052.outbound.protection.outlook.com [40.107.105.52]) (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 E58461E3762; Thu, 24 Apr 2025 07:32:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.105.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745479931; cv=fail; b=XzP6o1oyiRmffp6GPAfgTJBlNU9zIngM2toBYKWmAj6zWjy22LuXTvc6oBIp40khTtBl9176C4DtIEGPC0zwZ5FUelZiRncEAPDQzLAYl6FkOmWJPfzbRafOBoqy5owFtxVIdLClpGUHVN/RVI3ktmPLXj7lK3hD0UwnNXNDrLA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745479931; c=relaxed/simple; bh=oBJ82+NG8LtwoiLe8wZ+jLWUQXd6W6zIG9Nxp7D74UI=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=r+sfhzSy61qACTALUgA7YbrHHASUMEzJNuCHy3/U2QnxvW0fHDH9ngx0gYqgqKgfS8cYSnQuW5cFCEGwl2NFMak6BCc9AK4Xn5/XRm7xoeuzK8h9vqQBQAEL+Pvmg9+RrXbwDbvahl+Pll11ylBn1kzzzJv2xUZWCfTpQEN0qN0= 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=ECrJCSOm; arc=fail smtp.client-ip=40.107.105.52 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="ECrJCSOm" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HrNK3YZw8D11nH6A4H/Fa535gS4UM7Xbkz3ljTZi7Ha8Byc1MWsuodE95qoRwOJP2Xn4e5p0erCZZ5XWyOudJfpugy9tnteE+6MVtyJKbh2D1d30PhgcK8b01mW2luKDIeu/o8seAai4wXwh9DBUqHHTGuC1Jt74Fn41SjKl8fiEsUWE2PQx9GJlMK/x1tJWy6VqQUYA4OWRCZPIPSs/JKtxpqwPfhfQnqOw/LRvOPwy7ZXR18d3LbEg6oigkkJ7OqCrsrr5MTOaHDtDI70f6QL2sJrxPRgULyZc/QQqcq1zd6oLy+MCH6Rnlq9hBnziSWnz4SLfCtv1yApvSFlu3g== 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=uNjoVXGwlM2Irn33wK4CYGndsJ4GRQEha2lpgQVQtqI=; b=r9I5Y4u9vE30XKBSgLmO66jXZtFP0hzgvOn0zhpjVLR9WVDrzKLMCxNzKzGWnVJp5LXSuWH35Pxr3e6/h/yHlu0Rie+BMeBdR0gipH4HgV6NEQ1Iq8Uf1R96iTVBFbAi4P8FeFbD+Wv7i9/1uzB0JHOjn4mnZmV43wtKH+kS4fIE38x8HCnKPaProNM2g0yol5vI1iKSmfwnHmwWQ4gLSuJk3mx+AxiU7oYHheHf5MgXevMp56cinB7/aQjRj207xGjBLabkCUUzpcN3ucPR6w2yNMMxtWUVTbNhUJ+N54+DLJi0BnI6EsMwyUD5jDEcGrjBfKLYbdH4JKJNwzndVQ== 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=uNjoVXGwlM2Irn33wK4CYGndsJ4GRQEha2lpgQVQtqI=; b=ECrJCSOmm5gsCrspQ/OWdke8Dip7ndXk23PxGq2+lThMjvv6vUmAlene8K5nQ47TFeU5MSobJhz4uL4J2DFFXqKPS3McAjFHKQdsqDhts3T+n9osUrhCVjH5HsTPKgp3mdgGKcNO/ltVt6BsHbWR0UGXSL6qysIfSY16rpE270XsFFXtbHtAyq3RYHuneSigMuDNi4lTlQyvYrfv7M2+Dk2Ci9y1UinkK87e2KNGqBaZygF4h/fa7RU7LXprP6kRnFSrFsR4iw4MbZMEwU4sxYHFHvEmzIuZ6OvQoZD0fSIySwTTuIAlOrO6cCCh+C35tipZv0cOLGYQKaGo8RuyMQ== 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 VI2PR04MB10594.eurprd04.prod.outlook.com (2603:10a6:800:26f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.23; Thu, 24 Apr 2025 07:32:07 +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; Thu, 24 Apr 2025 07:32:07 +0000 From: Haibo Chen Date: Thu, 24 Apr 2025 15:33:27 +0800 Subject: [PATCH v2 3/5] spi: spi-nxp-fspi: use guard(mutex) to simplify the code Message-Id: <20250424-flexspipatch-v2-3-e9eb643e2286@nxp.com> References: <20250424-flexspipatch-v2-0-e9eb643e2286@nxp.com> In-Reply-To: <20250424-flexspipatch-v2-0-e9eb643e2286@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=1745480038; l=1084; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=oBJ82+NG8LtwoiLe8wZ+jLWUQXd6W6zIG9Nxp7D74UI=; b=Xlf12cI7D8hVlUD20ZD5r/teW4H+u89c8DtBO+z7cdOWfoKgEkA9Xhrb2M7zwbkIBFZMJ/hkJ ymGB4n/1DZNCzz7tsJSHE2upC+HBB0Zi0tc3l6Y2umTps1KuNPnTbqq X-Developer-Key: i=haibo.chen@nxp.com; a=ed25519; pk=HR9LLTuVOg3BUNeAf4/FNOIkMaZvuwVJdNrGpvKDKaI= X-ClientProxiedBy: SI1PR02CA0055.apcprd02.prod.outlook.com (2603:1096:4:1f5::16) 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_|VI2PR04MB10594:EE_ X-MS-Office365-Filtering-Correlation-Id: 92fc5d97-6ef1-4f89-0e45-08dd83021ddb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|52116014|376014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?NFQ7KEPfD410Zfs+AnQY9TSubqQlY9Z?= =?utf-8?q?e0Ay4z3Y+OQxrQpihvxu9oJ8isJl6PiSAiy0fvncvYg170HnoeeTTVZb05h/GDYcS?= =?utf-8?q?QrKXpkkuEQsbn6/1QlZgK+57wmPbcBNWyAp9JQomEXIet3nDYtSNd7vei212fjnNX?= =?utf-8?q?qTPr/74aAMcUWUe7QQYgH+hqMiEPU35naVJqiSDUAsAwmC1s8gU2LMWLJdiOU7SFJ?= =?utf-8?q?V1c8L2ecH69+ACNGzRlfazHuq72zxFwYb8+2v+7sUTwdb/4eeJL5reN1UrVYvM8Zu?= =?utf-8?q?cLCmW59R9Jk8YM5nhfbR82YGnjxMODn87TdXujYeFHKjUWzg9JKWbXWhuWOGP7YfT?= =?utf-8?q?BcrbJkzX5MU9HorBpav1t4xuheeN9jSslTcDebSZ5JcewD/pb3i115h89kVSWnGK2?= =?utf-8?q?BEqGBWiaO8ES3BHfxH57G7h6p+cVRH6hP1RnjhcWvL5DJQ3E/u8g1cszOeQYKi9Wa?= =?utf-8?q?chWhKdvs9j8ul+AYpYkQE58PNWf4uIeV5oAe48MM+lmuxeOtW4KxN7UdLhOyQlNsP?= =?utf-8?q?pDvoSHMwwzPLGy4r/htpoqw3lGPnl+3RDMVR4OtC5ZgzQqOl3x4vnCheM1TRI00Gb?= =?utf-8?q?gvIBptTItvyV7NudIvBSCfigRrc657322ErUhzZb8qZ2F4jRG86bjpifQBywHNkBZ?= =?utf-8?q?cVuPuWKPdoFiKhp/SQDDc9fa29Bar6I79ySnD5DJ1N8fs14VqtIs1cYjjBnzOXhG7?= =?utf-8?q?oGmYhmSxyt7c30dXjMQUW8xZeIYwZWL609JDmxN1kgiDBCHeivwtdd75vwcFljZ+J?= =?utf-8?q?xMEOn2PnqQQgseHuFk5q4bxsiDtV3TSq3znPyfO8vC5l5QfOUViTQwrd1+GMHb2iu?= =?utf-8?q?HYMUoVis8wsuvCMDEiVTufSgaKEGNVxlWbYiKLUeQPJ5pP4b/CX7BnPQSrLeMJ/7l?= =?utf-8?q?F30hzhuHRyMFjlmskQrV/QXybNqSStP8YTb4CRHlypR/KHJ75fWLftZIeNuz3sU1+?= =?utf-8?q?xgxo6HEDAg8u+dnuWUZVnDnUWEfIbPCo4IMTwHWRtL2rzLAK5SgMXjczGHEck0XHB?= =?utf-8?q?yBKZa3jy+TF5VvTemuQe4ZMPcMj9pKAxe5jfdfd3vx7WppUc+heFt4v85YHsjQr3X?= =?utf-8?q?btPoKuGtm8rZjJ5KLIVvUv4jtRdAO2TEsq7jo8m1T12WkRXIRoulGflQ2MyXzbSpe?= =?utf-8?q?bNW2/F70+FmLGWEAHTJTwoMnUGr93bFMTNJr7/kap5wLSG4eEBS5uqsD3fenQNxV/?= =?utf-8?q?D5ZB+9HDOo+SkqZEke+DMC/oWEOUfR/zJGzGzDE9fK8/fdRIqhCqZdYThY7E5uBZu?= =?utf-8?q?aM35PbhLEwDZZmvI0KM1OIEYkofSysYZvPuIMP1uCgwmT84O5rknkDJ5ILSHK1aCb?= =?utf-8?q?+UWWgY2N2U3EbnIOMGs2nFD8ukfLImEilNiJCpMrc5oeWADmfWQ9mFDPPCPD5qIyx?= =?utf-8?q?a+NZCdyXhTaz6gHnmELfBxWR9sYyNA5hw=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)(366016)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?IS9wvYg53LbPp2jD6EGcb2vE9OGY?= =?utf-8?q?ehbR32SnEOqwdw5WER8FsBM4d5rLx/YHlRa/naVBlL7657jVLYY+UGzn09aEqnu6Y?= =?utf-8?q?eLiThI/SCCZHAJxbKGuC+uGQl63FUNvSW5JaD1rnhSvuFGka/Sw2YWkkqefZX7xC1?= =?utf-8?q?SZaWMhL32zZO1rJkF42b7xMg/nLGtao7kOtTjx7IucbVLkzksgJWaiHGyzwM8xKdc?= =?utf-8?q?SFHFyDsm5oSLtftCS6X/gu/2fYrgjHUdj0Y1E8iJMrhX2zqbelm8kRTSdopI11TVr?= =?utf-8?q?yhn2+eTQnif2V0AfC+zJ1PKrBXm+lX2geOvn90YXZKtHHtnc/EUn5lSYHO/JoOKA7?= =?utf-8?q?mH8qlO1Er7oyBLUcf7U/PEq9nLXve6eAaqwFHeS8rx167CzGYpN9DuxPmH17bzyGs?= =?utf-8?q?B2Agi14Yoy/9yzQKbaMpXn8UOe1f71TjIbrZ6axp4TmoH7Skp/X/t/8RnH67nHmfy?= =?utf-8?q?iokGcyVm0jX9V4/kCOyRXBIPwVA6RFOExSQui2bdCEPCkEB0BZjZ+u1bXr3ai373f?= =?utf-8?q?1c3kpavohRWuMJgDDJ7gQ1rUngs71nHk7HyVRe9EA22us4io431zCWycDydQsrk37?= =?utf-8?q?+kabnrbB9MraJ7mPt7+PzplJt6OdOqv4cVBOoiHgKfmHvrL91hcx+BBzaKCCmH4Fr?= =?utf-8?q?zEjxBU04ftKWxhIiSHb6y7MaT9HCmQOCOFh95uE9wTMrYllHm5AU1LfKCfip3pvK9?= =?utf-8?q?0Tu/ZqCpeja7Gd77crgPehqGGt7Fv+fYU9yzeQaZ0PiYs9d7dxKwFsi24IfmYhtN/?= =?utf-8?q?U5G+zQ8Rn1KcdnKTjRKaQ4kbk2GCrzVLmBRbU6P+1FRbfq5OeB3jRMhefCsZ4cWNt?= =?utf-8?q?ZjKDTiifGm0+yI+1VGw8xbg8sTR1GlVCmUepppAJvLTWMDToWyHn2ILn6ssRhfU0J?= =?utf-8?q?l5gszCDdcz33mM450ktvGPN9pBcgGkSbDItvR0uFUxiBrX9UVoxyPEwqA8MEB5mdQ?= =?utf-8?q?YyCohJg/SwdWUYT38eUdOmsQY1Oty38VXUawAYgnm0OO06G0/3K8F9hVRO4cPG+eX?= =?utf-8?q?uYPj6hb0YXaJQuZIbjFgaL3VNv7G+T36NfUJk+5Lp6swmSR3MUV08HpOgQGLVsi7+?= =?utf-8?q?LH5mRvQvo53NeYwspyD3RWl5xpUEgixKxVN6Hq8GP20o5c+w92aShfGUOt3UTRpN2?= =?utf-8?q?uoTeb6HZkvtEyHpwl9QBJTlZvrmfU5ipMTopmSF84Qx49yfyAliGSPgOlS3Famv2Q?= =?utf-8?q?/MILO99u2j/zaWxbg9WEpYlDE0floSg+U4FfjHxsjHCC5XvXgTQM1IoMlB7dPhI5E?= =?utf-8?q?ZfW6wyN3gqPtjd85iQ6xpOD7oBEbUf9UUUP1nqBnp6I+t5J8dSO0FEn6OeY9v78D3?= =?utf-8?q?Ax94P4zyyIr7JuNyZGu4kjAh75SNsFhHDZ9yLsdd93wRjqYiGVv9qHTbAuBr9qBtc?= =?utf-8?q?W8P+e4rv9BfUPpD2xMEzMGeV8gYbZ2EjxXT8jX75mvL1JN3bla3xazVgsuMsEuJcX?= =?utf-8?q?CHAy6ojrgbEcbbt/qhKPkJxrcoHam9QKXdcAoK7f/p/6+gLRF1NB6IMIpUYRnYAp1?= =?utf-8?q?UB7NENGIjIby?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 92fc5d97-6ef1-4f89-0e45-08dd83021ddb X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2025 07:32:07.2499 (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: AiI2hUKZEjxRPI2nqUnWhCgCSPeaY7Q5b5JSBh58QNTSgnkKPCBU6W9wPrpAVQ3T327QXhk0jZi7QVZSH4AxCg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR04MB10594 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 438a9c103c5969bcae06b4e02d98397ffdcaa345..e001c7241269ec8d3fcae25cb6a36b5e47600066 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 Thu Apr 24 07:33:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Haibo Chen X-Patchwork-Id: 884277 Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2052.outbound.protection.outlook.com [40.107.105.52]) (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 33A71223DC0; Thu, 24 Apr 2025 07:32:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.105.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745479934; cv=fail; b=tttBkQKLPWU9UA+k+SIuz6Ljg3fSyrNxs2Fb/+62gVTP7T+C9T8MidFhsqmLNzExGsfIqkOxqHT8iRZ5VfAAiydO9bVyw+Aur/OOTkBcEk7v3ih0DhwO1zuKi/BQSIZh+7JgNEcQdGSMTu6qjqOxKWJprLkIsYyJ2raALENQLrM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745479934; c=relaxed/simple; bh=IP3p/KtBzS5yNgxKYF3tz8DY4yRZ+scAAK7FWlHzYiY=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=UeAsvp/W1AzZW4dPj0I4G36FeLjFTw3dqW4Yg2C1BYMKq6PE3WaTPEGhp8B7lc5iAC9eF4EHahr5blUh9exikpDQSleSqD5SXOmZbgX7bj6g6J3LqkHhTvEgabTO6nE2siKcbc/IjEnTpkoSEoEkWNmivN2SyzlDOZXd5Zbhhag= 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=TZv8Qa9S; arc=fail smtp.client-ip=40.107.105.52 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="TZv8Qa9S" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=mE2gnatWV+KgdwGf8wPX6sYLn6bvPcRaSaN8z7Upx6uPMfc10qT8sdwZ/e3T9cUrHM+gw1wqyd5n7Sy0IQrYUgf2t9hkbdv3F1QgQH8HNz0Aryplu9MaC7I6fZop+tkQhaR+XC/ZcpppY6avA71E+li23sq7rpSqu2IzWZFsdQLVA54g5wfUqYJJUcO7Csd1UgFt4dnbfVaGO+zoE5dx/UYWJb9IUOJ2yckGHOd79PcvB3dyBbU249bnE1dEN6qzCp9s3ce4yaKSYrxENFXstcqxmit8WkwCwJVrhLx4fLqU11SGi86acdOtx6qlvrU/LXGSLESFi51zDiUMJHcZRQ== 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=1dKCRkh0xRvmKLB+F++gZPJINuURNVf2TYJdNTjAgLU=; b=jxqBKENCR6ZHgWj+RPtp5LcgqxK6bgROFdA61hUBbFx8oBeHJi49YGI3ruU+5SzYOb13RjfHldbTM9pFrus7hIBKbemmozDGjqozacsm51eN3a7pK+i1JNhBS4y4x0ao/45LkXvbuDy3eL+kKnXT8yWooPlglZp13qkirxcouTDsj/nvtVqOosHPebngdKmx9ztWpMOH5ovqa4Dz+CG+WSm4nsb30/lHlsX5iZK8bnd3AqRZj4oUOYprTWQJKR0bcYqkmD/Ho0YTuBKb6Fd+JE985e0HyK3N5Hg2UY3oGDbV6adCOrQL1f3EE+xHTu7wfwPSC/wC3TovvAHnPlLMUQ== 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=1dKCRkh0xRvmKLB+F++gZPJINuURNVf2TYJdNTjAgLU=; b=TZv8Qa9S54ce6WD8fWqTijhz9g6xjvdxcW4Bb0Ny06VS3iCkdOuONVKv7LKpMA8gi3xQfiHmA6S9oordTi8pKG7BfpW85NpAt3QeEC1CaYjfrp/1pGqmu/Mz4cLtFg5KqkJrjYoCBgIAokx7DEIWJQ9hJJP0PUup4V7lCtFgrEz1aPZbNmeLepPEXTroREUcJe4F2ZAHrgrhAz33jYJmjj5rsM6vR8h0H1EyXjGV9AGCf4nMQvxT8NqMSfXFqZFxhbzHEvpNafaiie1KuCt2mRdJHJl8RZMQUZg7TFNCtiqKIiRhqVCgKU200l+oaR4boB2SZdJY2jp0iTclFBZ3Ow== 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 VI2PR04MB10594.eurprd04.prod.outlook.com (2603:10a6:800:26f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.23; Thu, 24 Apr 2025 07:32:10 +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; Thu, 24 Apr 2025 07:32:10 +0000 From: Haibo Chen Date: Thu, 24 Apr 2025 15:33:28 +0800 Subject: [PATCH v2 4/5] spi: spi-nxp-fspi: remove the unchecked return value for nxp_fspi_clk_disable_unprep Message-Id: <20250424-flexspipatch-v2-4-e9eb643e2286@nxp.com> References: <20250424-flexspipatch-v2-0-e9eb643e2286@nxp.com> In-Reply-To: <20250424-flexspipatch-v2-0-e9eb643e2286@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=1745480038; l=966; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=IP3p/KtBzS5yNgxKYF3tz8DY4yRZ+scAAK7FWlHzYiY=; b=CkDNKGNajKz3+GFiCnzI1n78rSewxFIJdlOCqM8Y+xTrhYhxcncNp3d0E/oD2pVYs34zeSrXU ULjwH3y4hdrCOaJDK1Jsll8DiOTUuhb0lD1oiCIzeyUj5OcmGF9LOwO X-Developer-Key: i=haibo.chen@nxp.com; a=ed25519; pk=HR9LLTuVOg3BUNeAf4/FNOIkMaZvuwVJdNrGpvKDKaI= X-ClientProxiedBy: SI1PR02CA0055.apcprd02.prod.outlook.com (2603:1096:4:1f5::16) 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_|VI2PR04MB10594:EE_ X-MS-Office365-Filtering-Correlation-Id: 69843582-a00a-44a8-f66b-08dd83021fa4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|52116014|376014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?juNbAlJsxoz2EdayDttzir6er/jLPzn?= =?utf-8?q?r+lu1DVYrY5wk965wcz6Fo1QkPFv+UcIr1j6qcpCY9UEpRkvat6ASuboGI5m8m31v?= =?utf-8?q?MClyS6bPar0QnX5cMIUWLvWcmc5SEE+x8pBzZBjlYDROCIYQc1ZmgQysSXzUWp/US?= =?utf-8?q?icnRs1IhXNaw51z0EyQAv2bLiLkYNNo8P5DK2WiVf+aKzMlAFaDqsh3IYanZA6kOT?= =?utf-8?q?x/HcV2bkkRApVCO3BBd7wGArjlUMy+cw2A8vvLBH2W948IB6lLyGpAlrorFKxwexU?= =?utf-8?q?OwPjd8x2TzOwJBZtXIPwKLUJxSlKMHXasKw4KGWRdbRUtzkHMBpQy3ro7b7Brxnuc?= =?utf-8?q?UPpdKNvRv5th8fZO77N3p8ZMPeY67qAYDKvpdUegdjn8m7MztEICfrdwrBpZ5RqYH?= =?utf-8?q?ICWZyvej9x3uwuIQdg/86fEHupWGSkZbmI5J3u+KzTNcTAXfMphkpLDU5NFgqdy4m?= =?utf-8?q?E7y3nj2lmirkcWu+23BzNci2ISgDAjrqB9M5ht+DDkqeaN7SfRRVHZyhMx7Wp5TMN?= =?utf-8?q?M1q3jVIiJ4xOP3uNbMK7Tbyx5CdqJii2iNpOQLqvQTyFs0+Cs6ziKtAvRoexdX7qR?= =?utf-8?q?CN3rmg6W93JLRXz97IzbsFfV/aO/0NHhjgUUm2Eomx0dRp8aYKoYjNxyLPDjYOvYo?= =?utf-8?q?T0cW3Df9bHbj+kQnDQolwN5/HIuXMgO3wVFeAX4nZC51i7DW3uHMa4W/og9553wbf?= =?utf-8?q?GPi9FUubGjwVqJaKDW3mw6CK6pC9WcamTulE8MmcRwhcE60e0nMMlk3cCiu2okv79?= =?utf-8?q?jsBzUsvMw/LcGWnr4HsZ2S76+lh1XjLTaDT9BeIWppCOeWFNI9ExFPSj9VDaz1MtV?= =?utf-8?q?cuA9gdY/pOXXT7wzyopuVC71lQKDtksG//Hd7QWQ7JuBPW9FsrbCTABNBv2GM8Y5u?= =?utf-8?q?4LHsxo1dP5jyahIuAiIRJ7AR9xUD+qvxU9V0AblrTEtLQhEZe876tJcMQUSqxNmAD?= =?utf-8?q?CylsZwPUsB/jW1kebpLoVl54hlyOAVst3qUuDE5iYzu+9Za3QChHzwwy/5Kx92qgQ?= =?utf-8?q?yHuJmSFcj8B9Kw+mhP/w/qQuTOBcHo9h7hBxiXz8sqF848L0ysRBjh37djAlRshW7?= =?utf-8?q?t4lzUJqx6EYu+V7TU7iSGcyQJjIoMORa3gAqRtC0OgKnJNk7ZjihQk1W5lQGdDL0/?= =?utf-8?q?2XAkvXSuuz82NtaqsTmhboPqa8ce3tUwLdpUHxi5HcrFVBNHi8mZPA+lXSH1MjYZZ?= =?utf-8?q?NaRc2+qfZ0j9i0hkj6S8vtnSCsjbsRPLhPCEWrs4aV1xIpFBM3RB9xOi0ztNZoKS2?= =?utf-8?q?IvUNQ0EYJEoHqY26hXIg7D0BCDvjiD7oyZCvDFhOKy/ss68hzk5Osskf0BMd1X8oo?= =?utf-8?q?NIQhZQoBGbGGqyLDc3MLF23XcBiClc3IdP3FoEZ1YiXgJRMEe+C5YBUsEISbDYlPI?= =?utf-8?q?15Sw5MpGkm631HoeMw22BopPGRazrGzCQCLMY+rEXJlqMveo8Pj3RU=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)(366016)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?XZq0f9ySfITCwOU8WrJT7ZePlEQZ?= =?utf-8?q?kfRKv8/51FzPwJ0ud0VkUAM3MKQT+3uUsreuNK++cjEL1TzKkwGDBb3wi2sNhAHUN?= =?utf-8?q?ItqJrKze6jGpfdweVyLtg5DVU0JUYg8vYMdaR+88tQ/d2Bt5vlVAZ2X1ObegcC3bG?= =?utf-8?q?7QC7px8oqUV98VadxmXVIL/ujJB/KDNow3NYj2KfQazgcIc8aeNuVMIwsCf+3zKNJ?= =?utf-8?q?60HhVXKGVOf4rPDWidLDZatqqjzggbI33LWzigI6k6H+0pUsP6dwbTdxkw5sksu5W?= =?utf-8?q?myWw1At+Jqrd3rVmRx6aph68pwAgmJZXaku6YJ77GBWiEnK0+N/lsjGkSKHwteptd?= =?utf-8?q?PU/KU8LtLatmUBMgYic49DV0pfIaahCvhioSnOKKz/HDU+L+UMGIN1fk2t+Gucinm?= =?utf-8?q?G60Bv6ndgyVayMiYnZynSyGvcnNaVq/KxBKGhXlhzpYpFScXUzfrbIURmlbWX/Fgf?= =?utf-8?q?z+uYWXq/0h598bjPq4TnBtoEatVDwj5zYG5frtorqSZxA402C0o+d02BU6DmAjDPO?= =?utf-8?q?W0erJqdvS8LRnm+Zb6yW+CH2hehE6/4EbvoDNDZRQ9Z0ZYwKNQmtjIHLrbGQ1M8Na?= =?utf-8?q?dooep6Rkw4TXEhwTSQjiSB1RvTvRRH7POjZCwpw9KzvUnA/SeMXcKg8qBLgohFnIN?= =?utf-8?q?TTlzBS/vz9YkXUlDbPKnP9ikI2ApsQcVVGVwNyCsf1oUbRbf4aKA9A8sBiSJTtJ64?= =?utf-8?q?LxIth27/B1Ki70P45XyV8+TVX1PTaNqXn1R+MzrcoEUjUaV7WisyStONAt5cpBFel?= =?utf-8?q?C4KqsIpb6ld6yfi76PsNC53XS/peLWTncauy1eVvxlZ6VvqrtD0TZvGwlolsVpqXd?= =?utf-8?q?P5F5p+k5OGRDb6qHA9DoEWs4yENMmoHZUsf9ZF/PANy1vmyk56vjRisEdvm5SzKjG?= =?utf-8?q?iARRt5QbQHfsAI4Ts+NiPrgQJiF89Au8vzJ9D9EVk6ssxXe7835qVYa+M6MZFPIzw?= =?utf-8?q?a+3o3VnqXnnzLI5Hw6LnSydixOxmWbdJIJmk3NDXGvCPmRXBurkrwK2HVePxBLQzO?= =?utf-8?q?x/xfvUCNbEO6oTzI+eVHlGoVQSHZxRhhTUeaxZumrfRve+fa/TOLZ1ApbIRwpy2Ci?= =?utf-8?q?XJQOfemzIco7VhhxYA0yz3KCgWGS16ZhNSQjJPzorpHBQwv3uLrJbqaeYM1GcYOJD?= =?utf-8?q?UhP5Z53k8nJPs0jZukoxUijjRf6CZkM8NVJAUU+SstweJ2AEpzT6zqWRT2ZNon9hH?= =?utf-8?q?DL3LiSpyMWmgxwhWVdF+3UYFdprTfj8+IjpSdTzsYSDiBlkR4jN4Lm3UlnnBJNJMZ?= =?utf-8?q?2en//N/zrRBlGGqw3HbFjFrzSVZpmp4fMbPoD+JO2NTxoYTVx/jAzqWusylSdjsts?= =?utf-8?q?PXe+h9MCsPQbdZi7kkmnckzSnpf/86AF2nwz4FuBPqm1IO/Qz1AzH8H37T4GGb/z1?= =?utf-8?q?FhLVONQNjFYgn1wyiEi3/1Wk+Bi8uM6XDzvg6Gp1at80nbU21xBRHqlHMcMgg/mLw?= =?utf-8?q?e3H+hiXJgTwhlfQyiJe1OovQnPoDpJHwx8kHztoJwmp0OsCO5DSuD37OoDzKtW7/d?= =?utf-8?q?44gFbfqCxiCQ?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 69843582-a00a-44a8-f66b-08dd83021fa4 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2025 07:32:10.2445 (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: POv7VojfOuCEYcoSsZkRAls1FZuuJLQPnDfYARKvB3hBDQJ+B3H4wSycEvXFXaFf/46bzCiw3XCnNg/ic5e2vQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR04MB10594 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 e001c7241269ec8d3fcae25cb6a36b5e47600066..5be7809b4a494e22ac79c07b99cfe8b2fa430ebe 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 Thu Apr 24 07:33:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Haibo Chen X-Patchwork-Id: 884732 Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2052.outbound.protection.outlook.com [40.107.105.52]) (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 66A35224AF7; Thu, 24 Apr 2025 07:32:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.105.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745479936; cv=fail; b=h9KP7PzniMI6V2dJ5xOmJuRsX2asskm0o/M7AhQ0gcgeEu2BgUdWtzppnvQHqqfex7xcMyd6zTE9NPXTCVnlV3aEwcDIjSexriOOpVv7yw1M1IVG5T3xTzdqt8vOiNNe81mrP8PJ/zJOkrDkBfYSTfdlUEXD0ijVeZmu2XRZGto= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745479936; c=relaxed/simple; bh=UO2CF2T4R+GBDa+q0lxOzRC6Kwy3H7zH55tkSSNRgyE=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=eMBZ419JhAjnJDwx+gn6TvAJ49rUB8Q7Q0kC9YTQb4LchzKk11ypfQCigPRQKxF7Kk1zOCj+jzy4pkr4ik0c5SeSH6Li+TOj5ZoadrnoeA+cqab+eGEJb8Sro35JogwQDUaa5ZbabVskrCD5oJw8epYBQtxfpjDebgmn7zafrGw= 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=mTaMnGYg; arc=fail smtp.client-ip=40.107.105.52 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="mTaMnGYg" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BOuWlfq++eDqy4dDABf+LMGNBr/vuR4xCfonIPaNLpn8NVKlDW/Z8JFU/CDmFLgzFUiZFAc1f12fVqLj/ekqylckbajFJZ/+uLEJzX2GrJLavjKpCgNAJCN3SIsnzDnuFi9XljJNLvzZ35q1FeItF2Art/2aH9qnMGa10ursT3vGfgaq91mGYOVKFpuCZEQADgRi7somkWE1sP7ZQxfEtw2Iv8UWSC8JbwjTpqy8zifUr6O759DowgxgJPGPUE5fbeU1752GNMYWicaa8Js7RiaIEnqmSoNuwgqPWgUYwunPlkn9SUjIoMvLo5r8AVBavEnqZzAY0+siyUCQ6S4ahQ== 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=iDVEtT+ghwB7UYmNXOMxNtqKDgs/p1o6yr5FXZMUYbs=; b=Vns8vuHgBrtZGjzjVsRnAEo+e7Sb7DMVr0xHNu+u0aMB27fCqtmP0N4KzzkJLf6aVQgtMpV2f029SZofaiVkluyF0mDzH2kQsXiwt36sCDYj7HO+I+NlIiz0yeml2oAH+xOeLNhirzzQUWREXiiZEPOdq85q79t3TbuBuenAt9B/BTupGDJD7/Ebzun9fjNmDSQEvjvEw/CHFbj61lNF0OfXFVQoyP7nAgP6/HWcoNQzYI+9HbSa+qrpzTcc78jUtf7xcX7xDzqmP29rQNhYMgjDJWpezjUaUWUsd599TjuDTrRgnzDAHRgrt5PXb+19XGoJFPuFk6XM0X4tXkZrQA== 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=iDVEtT+ghwB7UYmNXOMxNtqKDgs/p1o6yr5FXZMUYbs=; b=mTaMnGYgjdDv++OpF8meHqAOkQAY7IKs2MYBCf9rBgLJRX+oBX2BHKwS8kHLCF/8yz0gAQy1QOfdUGhZQKYqZxe3IVwT0lxi8k8E29wEAJwnsMedXLlOlToeczM+H3I4RAUalV1QPCi8pj4HOZQgmgk3EyS/22+HL57e2CTeulx4/AFAkwBfxCQJjIMwz3KlSGODyruYqkBSuzSO7mx3tsNsOChZCleZVYQZyFk06Y0V+U3Br8rIgL8BC8A4FpPFlYRoNdmrQr6xgPVmBw5fw3iMhcSXRTLdLLrLX8wlHSIAAHibayZtXfp1oPFqO7qnQ2jV04wkJrn/+sAhrAeXcg== 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 VI2PR04MB10594.eurprd04.prod.outlook.com (2603:10a6:800:26f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.23; Thu, 24 Apr 2025 07:32:13 +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; Thu, 24 Apr 2025 07:32:13 +0000 From: Haibo Chen Date: Thu, 24 Apr 2025 15:33:29 +0800 Subject: [PATCH v2 5/5] spi: nxp-fspi: use devm instead of remove for driver detach Message-Id: <20250424-flexspipatch-v2-5-e9eb643e2286@nxp.com> References: <20250424-flexspipatch-v2-0-e9eb643e2286@nxp.com> In-Reply-To: <20250424-flexspipatch-v2-0-e9eb643e2286@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=1745480038; l=2545; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=J8Ud1vZfwI+2gILbpmyg4igG8KXXP6V/mjMQU/4wy7E=; b=6trq19sOhlpxlG8D52TqKfV++AZsvV18RtSepTIjv7y9dTimzKGSFGTG9CKb69k5IVOH3qvi5 8vwYsUA+V/DBLoDBhPVl1Es5LAsQhwU1oCcDQ/Wc48cvpfhYYbW3efm X-Developer-Key: i=haibo.chen@nxp.com; a=ed25519; pk=HR9LLTuVOg3BUNeAf4/FNOIkMaZvuwVJdNrGpvKDKaI= X-ClientProxiedBy: SI1PR02CA0055.apcprd02.prod.outlook.com (2603:1096:4:1f5::16) 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_|VI2PR04MB10594:EE_ X-MS-Office365-Filtering-Correlation-Id: 25fb4920-7f9f-4e4a-afbd-08dd83022139 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|52116014|376014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?pU/1bd8KBiPWLt3WxqLaVTmWFOie+0W?= =?utf-8?q?ahnyzgqv2qs0Bqs3jbV98vlsovdf9YMa9M3g2Q+fwsjAvd/hiGkfiDSyd888snfcC?= =?utf-8?q?sirzxNxKSZbDn28iVrdY69ucpWo3RPl+DtS0URjSi1LDatAKfHVcrgBkgD4W6f79z?= =?utf-8?q?1qxPW2NQN5MzKX9SCrrqC0waV6CLIb29rxky0obk2aImbBLvvdDoHUXieI0/BhHKt?= =?utf-8?q?AbHg+MsJAgMOHEfHHvylnyX05x+RAnHE+Bx/5/9J3qUegY6AlSwVii/Ku1BjA0NfL?= =?utf-8?q?kU/t4Q4q4QUJ+ZYa3bX2HRBB2TDfLyyYlhcgo32UczqhF0qH4vN6731gOjNWZQlIi?= =?utf-8?q?n/ZpRHD4yxZONIXY54oijgaX8BEICZkmXOC4vzMtHG4waiVdkvczfwgMIGIeB8nOh?= =?utf-8?q?ff99FDQdp0KBORCv3kGu8cAlIfnH2c9chFTy+VrF8ZwoAu6d3U8xHFbhheF4Q84Ct?= =?utf-8?q?T76HS4l4jBlyiXvwYBpFsRL7l/Y4uXxK2r/jZFaECFT/1nULyV6GOnIyMXs1AeLhi?= =?utf-8?q?t/Ay+6PoWUhdSXd0rqDU3Aw7BxgZJywZ115JayG8qFkk0zlJqCj3eHf9p8gqQYoWN?= =?utf-8?q?1iDmtxGRjRF4GsFPeJMJL/tndL53NVIEdu5la/8FplvFluGqDgAKk9C00M37mpyRS?= =?utf-8?q?8eu+f51pmMzZ05yDixvZdn+0e5JmK2PJqOJ1JKcjeO4lejv8MnZ66NsT4pmNVBwLU?= =?utf-8?q?W17OmZ/e/FhST81CEe0XCrEy/dwqfqR42enJBVPKzBSo1XbhrMjVzVZDcsoRwMaej?= =?utf-8?q?vYNucJHvcH+91f/dAUHyMxmPBkoFyqrPmbnezzYsfbXd0zsf0LtwLT2eJ2x4B42/F?= =?utf-8?q?9olEO7PyRcFSInPeOvqZDH9AoCfmhunG0IHUpy4Ujhfh2FpZxwRxtu4nPXgRCa+Ik?= =?utf-8?q?eYN+oR185Aai/Xdf8VAgzBrM63GMa4+AgxeQyYvWz4u47j/dmKz+CMzgIiXv2Jfob?= =?utf-8?q?8KgCkCGv43PsStfUrmVwPuVpzvPnjallyy6ATzzSlFwDq3R2Kq8GvtKOx3VCYHkzn?= =?utf-8?q?22Q0e/2nEzYxHQgFTyAg28uzSS1O+G6jka3cJduPE1Jyf3kro7SkQl4UfFgYTUHwa?= =?utf-8?q?qpNX76gJG5o2Izsow4PADbbwWCSfmTY6Atj5KND4E2tdBOhS1jZgZNbXQs/edYdTp?= =?utf-8?q?cvtDHZE84MawrtksafNCGPKwkp2d4eiOQ+xEjQcezlkY7wX2jqWMoEV8+UWIeDvH5?= =?utf-8?q?BPmRJX9f2GbO5Qk8veTMO+ephmIeCqvTJraWOCzPyMWd725qTuR9H8uvo6bi19ERf?= =?utf-8?q?J1AVMnx3jHTdyCyqfPejw+3i/iC4Auk4STnALn/p3zuvN41dqaVQomI8bKM+MIxZe?= =?utf-8?q?lvlT7WGK+R3/93NzHVwgQCngtT1jane7UpgToXbGTpTTYxRXEFPm89RedJmNpn2GX?= =?utf-8?q?HWIJ2ESFThNUcAuv/ZfosyOQNII2/Ln3A=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)(366016)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?lV1+FaG9RZNoOKtiK/zJ1uHIvrQ5?= =?utf-8?q?Lg6XAsmkklpY6DDquLFJBWNm6lEcHpo07unARZGREekpl995F7KdLmALtz0HlBt9a?= =?utf-8?q?SbzA2G6KqfYlSe+wkMyrjRJ582iF3baAMnImW16Lw6VkNUBC2XS3MSc6f78jl4kgr?= =?utf-8?q?jR1hcImVPQ7ONgbFOOKPwB/NwrsjLgyenEZeAR+7YM0RFoWzXTBS+sFjAG6tX3m22?= =?utf-8?q?CRfIw9vPr4nZt+yLdKZSHomUR+cwxhZzlPm9UqBzz26bu0UwdnurXG4kYo0CDW8Dw?= =?utf-8?q?V26riHk01HiLZEuIrwpZ7/KNTEuP7re1xf4bAik6kbIQxQSC5F18nuIUDxbsL5YYP?= =?utf-8?q?8XSu4HHVkOwLeeC3v2WUA9awnBpH9QuHK7eTwbDDacW9uiwbGwuMIKwNddtRi285s?= =?utf-8?q?2raKk/4Jw3kUYpbx2JjvWCpVKu7jjHvo0E4+Hb9J5KlxlnN0StMp/2RFuHJmr8MeY?= =?utf-8?q?MA6j6mXwBLiLuSIBEFse4V4hWzrGOVCGsoNKI+HbORTIMkRWXkcea4BSThbtVO3Te?= =?utf-8?q?N7FZVMv5U3SdIybr6+u/FvJx2btpR6OOpEE8UrfyDO32bRE0/AzP1RHYoVGceLMm8?= =?utf-8?q?QbyRtagvQCwPyAsUWEeHBojjYBjxY50YTkTLQ9DMsQfqHS6Mw7g59CAj+Jvo6cf8z?= =?utf-8?q?F5bKT5EGl9FMEGA4C/5TMhF22kBTuUTZkr1QXfX0g5XnibblTeRAqpkB2J5PlTDfr?= =?utf-8?q?85aOUlAzYSBy7Z4yysMjrpV+E3epX9zqkI0F//vR74+g8tlUEhRwevENyvxofq+h9?= =?utf-8?q?741a0aUqeujpMGFRJrani9XCFYiReMDCDwK5APxs4Gw0IdpWCPlQsq0uZfIZvdzD2?= =?utf-8?q?e4q5mKNYTQRi5kGH4KIswiuLNRFXZG21jyhw+jmKfuCj90zgdbli7qxETeS9dbp5J?= =?utf-8?q?QCFPGMRUkv/tKW42LOPVALpH4xFbuF4J5sRMz9Pg0RAmO2rLrEBSqgsvdHZTJNYo7?= =?utf-8?q?+8u6KxA5ZI9n7OE32ukgn+H/FbguH1n7aEPsyHx2JvXo7KmSkwJL2wTXron7DRjmi?= =?utf-8?q?+1fqjqfYpF4csacteUoQGbrCGRUy/A5jFDIyCwkijzKumsCymdb7Easjjar7EtURS?= =?utf-8?q?tLeUtq7OPvpwJ8kl6SEe1DEXhY5iGW8LlektmmfP3AI890mHle0pu9UEFbDAKbq7N?= =?utf-8?q?Qx+rSnkjPLTmqpT99yHM5eVzxRVmfFOmQwpOiUvPNC0NDVSGU2UIlKwgvMYN91yxn?= =?utf-8?q?CkrpOZxyO2zoVHd42FbsjfAsVJWQV4C0Ihz/JE+MvveHsc7k/MCbXo88o1ZnCACIZ?= =?utf-8?q?T5I9xayh2zbGmrmsbqFZ0XFb4KZKL+yMZWsvlmZvv0XqL4H2UqsK1Kx57ia4sE44P?= =?utf-8?q?NwxRa/QBNHlkfnCmsMPsw8W2c5cCe40auVlyNxLQlTpYu0+kVo3g/ua8Gs9xGqAxQ?= =?utf-8?q?diYB3XDAiJXERlFQkRwsYkfFE9tQSbqgJ/XWNfsgpij0GT12SLRV5l3qnrYbtzx8p?= =?utf-8?q?ijMBxQW1tX4DGuoZi7r5B0DwdWdt5eDscgfICsOGo018XvvFsdx51ReyqyNHl5hNg?= =?utf-8?q?/xT5MSPuGwUf?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 25fb4920-7f9f-4e4a-afbd-08dd83022139 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2025 07:32:12.9788 (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: hasNsyEoOO6GUGtyE7+y9uQd0R7YnoA0A6lZsegLm4kFduNlGstduRsYyKEJAU1UNI9XV1Bso4yng5r0upDmEg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR04MB10594 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 5be7809b4a494e22ac79c07b99cfe8b2fa430ebe..15dc32b7a830079764520df10a143af1f2feeb43 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 @@ -1365,7 +1369,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);