From patchwork Tue May 30 08:16:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= X-Patchwork-Id: 13259420 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 74E65C77B73 for ; Tue, 30 May 2023 08:16:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229612AbjE3IQ7 (ORCPT ); Tue, 30 May 2023 04:16:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34828 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229614AbjE3IQ4 (ORCPT ); Tue, 30 May 2023 04:16:56 -0400 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 58FDFA0 for ; Tue, 30 May 2023 01:16:55 -0700 (PDT) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q3uXF-0008MP-By; Tue, 30 May 2023 10:16:53 +0200 Received: from [2a0a:edc0:0:900:1d::77] (helo=ptz.office.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1q3uXE-003pUv-MN; Tue, 30 May 2023 10:16:52 +0200 Received: from ukl by ptz.office.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1q3uXD-009PLn-JI; Tue, 30 May 2023 10:16:51 +0200 From: =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= To: Mark Brown , Matthias Brugger Cc: linux-spi@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, kernel@pengutronix.de, AngeloGioacchino Del Regno Subject: [PATCH v2 1/3] spi: mt65xx: Properly handle failures in .remove() Date: Tue, 30 May 2023 10:16:46 +0200 Message-Id: <20230530081648.2199419-2-u.kleine-koenig@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230530081648.2199419-1-u.kleine-koenig@pengutronix.de> References: <20230530081648.2199419-1-u.kleine-koenig@pengutronix.de> MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1589; i=u.kleine-koenig@pengutronix.de; h=from:subject; bh=HeehL14pDk9cEx04aGTWKlwLKl717iunpcSw/+seL1U=; b=owEBbQGS/pANAwAKAY+A+1h9Ev5OAcsmYgBkdbDswY5j4sTDtudQWCDRAEvAbQJO6XPfc5UaE Io3N3SICICJATMEAAEKAB0WIQQ/gaxpOnoeWYmt/tOPgPtYfRL+TgUCZHWw7AAKCRCPgPtYfRL+ TiZdB/4qbqDn949mm9Z6UcMZ5URKLHmLfdgTSpsrMQYRdqh5z+2fv5PeoU+2/qjFFX0vFVpTDZ2 JJxoLprnB071k/LkxnJSEzfk0X7hmrxOXyO1CNEhjL5pQqgm/j8ZGgXCuZtvJG/IUjPdez9SWR+ u1a3d3AZ8Pw3e6TbPbz2f+d0GdO86hMAbRHJ80UVW7IeRbs1AcmvZiuC6Xp5SC2OX2rrInpM3wS 29OgCPy7HsWIpCy5LbUbx6u5KYUsaMiTGQ+jHXjYFzPrR2X0C2lt9iTPpCXkikAEUC9U8nweBmO PhbfYbwWB3sKC8iLIqIBVX3u5W4qvcqCfTS2/0/eT3aRmnF1 X-Developer-Key: i=u.kleine-koenig@pengutronix.de; a=openpgp; fpr=0D2511F322BFAB1C1580266BE2DCDD9132669BD6 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ukl@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-spi@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-spi@vger.kernel.org Returning an error code in a platform driver's remove function is wrong most of the time and there is an effort to make the callback return void. To prepare this rework the function not to exit early. There wasn't a real problem because if pm runtime resume failed the only step missing was pm_runtime_disable() which isn't an issue. Signed-off-by: Uwe Kleine-König Reviewed-by: AngeloGioacchino Del Regno --- drivers/spi/spi-mt65xx.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/drivers/spi/spi-mt65xx.c b/drivers/spi/spi-mt65xx.c index 21c321f43766..9333a0e8204d 100644 --- a/drivers/spi/spi-mt65xx.c +++ b/drivers/spi/spi-mt65xx.c @@ -1275,15 +1275,21 @@ static int mtk_spi_remove(struct platform_device *pdev) struct mtk_spi *mdata = spi_master_get_devdata(master); int ret; - ret = pm_runtime_resume_and_get(&pdev->dev); - if (ret < 0) - return ret; + ret = pm_runtime_get_sync(&pdev->dev); + if (ret < 0) { + dev_warn(&pdev->dev, "Failed to resume hardware (%pe)\n", ERR_PTR(ret)); + } else { + /* + * If pm runtime resume failed, clks are disabled and + * unprepared. So don't access the hardware and skip clk + * unpreparing. + */ + mtk_spi_reset(mdata); - mtk_spi_reset(mdata); - - if (mdata->dev_comp->no_need_unprepare) { - clk_unprepare(mdata->spi_clk); - clk_unprepare(mdata->spi_hclk); + if (mdata->dev_comp->no_need_unprepare) { + clk_unprepare(mdata->spi_clk); + clk_unprepare(mdata->spi_hclk); + } } pm_runtime_put_noidle(&pdev->dev); From patchwork Tue May 30 08:16:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= X-Patchwork-Id: 13259422 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2C250C7EE2E for ; Tue, 30 May 2023 08:17:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229614AbjE3IQ7 (ORCPT ); Tue, 30 May 2023 04:16:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34832 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229822AbjE3IQ4 (ORCPT ); Tue, 30 May 2023 04:16:56 -0400 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5E305A1 for ; Tue, 30 May 2023 01:16:55 -0700 (PDT) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q3uXF-0008MO-AW; Tue, 30 May 2023 10:16:53 +0200 Received: from [2a0a:edc0:0:900:1d::77] (helo=ptz.office.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1q3uXE-003pUu-LD; Tue, 30 May 2023 10:16:52 +0200 Received: from ukl by ptz.office.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1q3uXD-009PLq-Pi; Tue, 30 May 2023 10:16:51 +0200 From: =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= To: Mark Brown , Matthias Brugger Cc: linux-spi@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, kernel@pengutronix.de, AngeloGioacchino Del Regno Subject: [PATCH v2 2/3] spi: mt65xx: Convert to platform remove callback returning void Date: Tue, 30 May 2023 10:16:47 +0200 Message-Id: <20230530081648.2199419-3-u.kleine-koenig@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230530081648.2199419-1-u.kleine-koenig@pengutronix.de> References: <20230530081648.2199419-1-u.kleine-koenig@pengutronix.de> MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1790; i=u.kleine-koenig@pengutronix.de; h=from:subject; bh=RMZEMdZ0GqYLZEELtvtNLR429tgOZGoJUI2pqpA2CY4=; b=owEBbQGS/pANAwAKAY+A+1h9Ev5OAcsmYgBkdbDuWdq8rXYgK7WodWwgE3y3t+cF8MaToAmwD 2WTnHYzJ5KJATMEAAEKAB0WIQQ/gaxpOnoeWYmt/tOPgPtYfRL+TgUCZHWw7gAKCRCPgPtYfRL+ Tj2/B/9etgpKKQOLXjPFtJ6cKloOTN73b/RnWt0UCOtUBYlD2E5ynsgoDH3hgzE9bFivNFJ/5ne 8XjzQPJwkz1dlwbL59bevn+pzXd5aRvJX6MFG/wFV1quSojxk8noVGKZNG5sq2O6SDyUaVCLMOd IEVaZw+D4/tvnPjnH/9HYRu6Vf+vE1FqN57RvrxgKXOswVQ8Or/gEqbvAGyfmf1JOEUZV7QioeQ CCqa73xZsQN18K5UgSX6awi5YVM9LxC9CzI6DrppUT36aZtQvIW6I1yz2HTcmUurrSLOosoKlRn Pf5QU5mLJO68G6t4tQRWmZexCkpGhDGeAoaln/I2t5sMKXXx X-Developer-Key: i=u.kleine-koenig@pengutronix.de; a=openpgp; fpr=0D2511F322BFAB1C1580266BE2DCDD9132669BD6 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ukl@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-spi@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-spi@vger.kernel.org The .remove() callback for a platform driver returns an int which makes many driver authors wrongly assume it's possible to do error handling by returning an error code. However the value returned is (mostly) ignored and this typically results in resource leaks. To improve here there is a quest to make the remove callback return void. In the first step of this quest all drivers are converted to .remove_new() which already returns void. Trivially convert this driver from always returning zero in the remove callback to the void returning variant. Reviewed-by: AngeloGioacchino Del Regno Signed-off-by: Uwe Kleine-König --- drivers/spi/spi-mt65xx.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/spi/spi-mt65xx.c b/drivers/spi/spi-mt65xx.c index 9333a0e8204d..f532cee3461e 100644 --- a/drivers/spi/spi-mt65xx.c +++ b/drivers/spi/spi-mt65xx.c @@ -1269,7 +1269,7 @@ static int mtk_spi_probe(struct platform_device *pdev) return 0; } -static int mtk_spi_remove(struct platform_device *pdev) +static void mtk_spi_remove(struct platform_device *pdev) { struct spi_master *master = platform_get_drvdata(pdev); struct mtk_spi *mdata = spi_master_get_devdata(master); @@ -1294,8 +1294,6 @@ static int mtk_spi_remove(struct platform_device *pdev) pm_runtime_put_noidle(&pdev->dev); pm_runtime_disable(&pdev->dev); - - return 0; } #ifdef CONFIG_PM_SLEEP @@ -1415,7 +1413,7 @@ static struct platform_driver mtk_spi_driver = { .of_match_table = mtk_spi_of_match, }, .probe = mtk_spi_probe, - .remove = mtk_spi_remove, + .remove_new = mtk_spi_remove, }; module_platform_driver(mtk_spi_driver); From patchwork Tue May 30 08:16:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= X-Patchwork-Id: 13259421 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6612DC7EE31 for ; Tue, 30 May 2023 08:17:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229762AbjE3IQ7 (ORCPT ); Tue, 30 May 2023 04:16:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34834 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230133AbjE3IQ4 (ORCPT ); Tue, 30 May 2023 04:16:56 -0400 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B053DA8 for ; Tue, 30 May 2023 01:16:55 -0700 (PDT) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q3uXF-0008MQ-Hy; Tue, 30 May 2023 10:16:53 +0200 Received: from [2a0a:edc0:0:900:1d::77] (helo=ptz.office.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1q3uXE-003pV0-SO; Tue, 30 May 2023 10:16:52 +0200 Received: from ukl by ptz.office.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1q3uXE-009PLt-0L; Tue, 30 May 2023 10:16:52 +0200 From: =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= To: Mark Brown , Matthias Brugger Cc: linux-spi@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org, kernel@pengutronix.de, AngeloGioacchino Del Regno Subject: [PATCH v2 3/3] spi: mt65xx: Don't disguise a "return 0" as "return ret" Date: Tue, 30 May 2023 10:16:48 +0200 Message-Id: <20230530081648.2199419-4-u.kleine-koenig@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230530081648.2199419-1-u.kleine-koenig@pengutronix.de> References: <20230530081648.2199419-1-u.kleine-koenig@pengutronix.de> MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=802; i=u.kleine-koenig@pengutronix.de; h=from:subject; bh=ew7u2vVjRGswRnJ0Le+vSh/UTGZDw0qmYIiCRc9OzYk=; b=owEBbQGS/pANAwAKAY+A+1h9Ev5OAcsmYgBkdbDv3hfrWqOKRbA5eyKpO+36tm6FOWuuaFq4T Pi1bwKRRpeJATMEAAEKAB0WIQQ/gaxpOnoeWYmt/tOPgPtYfRL+TgUCZHWw7wAKCRCPgPtYfRL+ Tt/DB/44PJgEduak7dCLH9t+Dlt0HWOfr/wUwjV5gRjJpu54mmJ+Fc7FsX+IAcebhW7VO0iIhw9 R9ywW8VC5j3j9jZ8gjAmVyINoWg0yDoGAsAfcb0HyFmORXOyJudhrSSs5+nXU1t1gBL4LSaJ9bI BP6kOw/VhrTRIKwZCkrNNCTC7yfc7ejl/nKFIBQVjV1hPHcZJ++rONpsaDOe8a0WtCNIxc6BUNl Vwmi8FSfYAdHK1ui6c15iBcydFR90DdWHCrnPPKlrwf6wTyY1RYsbHZYEqojKrawNl8ZkjSicTQ Djp2FbivQCAauxYQu+S2UhQ84pVZJPVJ0BtSQeG3r2Wtdyu1 X-Developer-Key: i=u.kleine-koenig@pengutronix.de; a=openpgp; fpr=0D2511F322BFAB1C1580266BE2DCDD9132669BD6 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ukl@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-spi@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-spi@vger.kernel.org Because of the earlier if (ret) return ret; ret is always zero at the end of mtk_spi_suspend(). Write it as explicit return 0 for slightly improved clearness. Reviewed-by: AngeloGioacchino Del Regno Signed-off-by: Uwe Kleine-König --- drivers/spi/spi-mt65xx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/spi/spi-mt65xx.c b/drivers/spi/spi-mt65xx.c index f532cee3461e..5a0b04c1c755 100644 --- a/drivers/spi/spi-mt65xx.c +++ b/drivers/spi/spi-mt65xx.c @@ -1312,7 +1312,7 @@ static int mtk_spi_suspend(struct device *dev) clk_disable_unprepare(mdata->spi_hclk); } - return ret; + return 0; } static int mtk_spi_resume(struct device *dev)