From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.5 required=3.0 tests=BAYES_00,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_2 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9F87AC433DB for ; Tue, 29 Dec 2020 17:15:28 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 70BD822209 for ; Tue, 29 Dec 2020 17:15:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726333AbgL2RP2 (ORCPT ); Tue, 29 Dec 2020 12:15:28 -0500 Received: from mail.kernel.org ([198.145.29.99]:44428 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726111AbgL2RP1 (ORCPT ); Tue, 29 Dec 2020 12:15:27 -0500 Received: from archlinux (cpc108967-cmbg20-2-0-cust86.5-4.cable.virginm.net [81.101.6.87]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 4F6A021D94; Tue, 29 Dec 2020 17:14:44 +0000 (UTC) Date: Tue, 29 Dec 2020 17:14:41 +0000 From: Jonathan Cameron To: Fabrice Gasnier Cc: Xu Wang , , , , , , , , , , , , , , Subject: Re: [PATCH] iio: adc: stm32-adc: Remove redundant null check before clk_prepare_enable/clk_disable_unprepare Message-ID: <20201229171441.5bfa812b@archlinux> In-Reply-To: References: <20201218093512.871-1-vulab@iscas.ac.cn> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 18 Dec 2020 15:32:32 +0100 Fabrice Gasnier wrote: > On 12/18/20 10:35 AM, Xu Wang wrote: > > Because clk_prepare_enable() and clk_disable_unprepare() already checked > > NULL clock parameter, so the additional checks are unnecessary, just > > remove them. > > > > Signed-off-by: Xu Wang > > --- > > drivers/iio/adc/stm32-adc-core.c | 29 +++++++++++------------------ > > drivers/iio/adc/stm32-adc.c | 14 +++++--------- > > 2 files changed, 16 insertions(+), 27 deletions(-) > > Hi Xu, > > Acked-by: Fabrice Gasnier Applied, thanks, Jonathan > > Thanks for your patch, > Best Regards, > Fabrice > > > > > diff --git a/drivers/iio/adc/stm32-adc-core.c b/drivers/iio/adc/stm32-adc-core.c > > index 9d1ad6e38e85..c088cb990193 100644 > > --- a/drivers/iio/adc/stm32-adc-core.c > > +++ b/drivers/iio/adc/stm32-adc-core.c > > @@ -535,20 +535,16 @@ static int stm32_adc_core_hw_start(struct device *dev) > > goto err_switches_dis; > > } > > > > - if (priv->bclk) { > > - ret = clk_prepare_enable(priv->bclk); > > - if (ret < 0) { > > - dev_err(dev, "bus clk enable failed\n"); > > - goto err_regulator_disable; > > - } > > + ret = clk_prepare_enable(priv->bclk); > > + if (ret < 0) { > > + dev_err(dev, "bus clk enable failed\n"); > > + goto err_regulator_disable; > > } > > > > - if (priv->aclk) { > > - ret = clk_prepare_enable(priv->aclk); > > - if (ret < 0) { > > - dev_err(dev, "adc clk enable failed\n"); > > - goto err_bclk_disable; > > - } > > + ret = clk_prepare_enable(priv->aclk); > > + if (ret < 0) { > > + dev_err(dev, "adc clk enable failed\n"); > > + goto err_bclk_disable; > > } > > > > writel_relaxed(priv->ccr_bak, priv->common.base + priv->cfg->regs->ccr); > > @@ -556,8 +552,7 @@ static int stm32_adc_core_hw_start(struct device *dev) > > return 0; > > > > err_bclk_disable: > > - if (priv->bclk) > > - clk_disable_unprepare(priv->bclk); > > + clk_disable_unprepare(priv->bclk); > > err_regulator_disable: > > regulator_disable(priv->vref); > > err_switches_dis: > > @@ -575,10 +570,8 @@ static void stm32_adc_core_hw_stop(struct device *dev) > > > > /* Backup CCR that may be lost (depends on power state to achieve) */ > > priv->ccr_bak = readl_relaxed(priv->common.base + priv->cfg->regs->ccr); > > - if (priv->aclk) > > - clk_disable_unprepare(priv->aclk); > > - if (priv->bclk) > > - clk_disable_unprepare(priv->bclk); > > + clk_disable_unprepare(priv->aclk); > > + clk_disable_unprepare(priv->bclk); > > regulator_disable(priv->vref); > > stm32_adc_core_switches_supply_dis(priv); > > regulator_disable(priv->vdda); > > diff --git a/drivers/iio/adc/stm32-adc.c b/drivers/iio/adc/stm32-adc.c > > index c067c994dae2..f7c53cea509a 100644 > > --- a/drivers/iio/adc/stm32-adc.c > > +++ b/drivers/iio/adc/stm32-adc.c > > @@ -546,8 +546,7 @@ static int stm32_adc_hw_stop(struct device *dev) > > if (adc->cfg->unprepare) > > adc->cfg->unprepare(indio_dev); > > > > - if (adc->clk) > > - clk_disable_unprepare(adc->clk); > > + clk_disable_unprepare(adc->clk); > > > > return 0; > > } > > @@ -558,11 +557,9 @@ static int stm32_adc_hw_start(struct device *dev) > > struct stm32_adc *adc = iio_priv(indio_dev); > > int ret; > > > > - if (adc->clk) { > > - ret = clk_prepare_enable(adc->clk); > > - if (ret) > > - return ret; > > - } > > + ret = clk_prepare_enable(adc->clk); > > + if (ret) > > + return ret; > > > > stm32_adc_set_res(adc); > > > > @@ -575,8 +572,7 @@ static int stm32_adc_hw_start(struct device *dev) > > return 0; > > > > err_clk_dis: > > - if (adc->clk) > > - clk_disable_unprepare(adc->clk); > > + clk_disable_unprepare(adc->clk); > > > > return ret; > > } > >