Message ID | 20201218093512.871-1-vulab@iscas.ac.cn (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | iio: adc: stm32-adc: Remove redundant null check before clk_prepare_enable/clk_disable_unprepare | expand |
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 <vulab@iscas.ac.cn> > --- > 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 <fabrice.gasnier@foss.st.com> 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; > } >
On Fri, 18 Dec 2020 15:32:32 +0100 Fabrice Gasnier <fabrice.gasnier@foss.st.com> 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 <vulab@iscas.ac.cn> > > --- > > 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 <fabrice.gasnier@foss.st.com> 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; > > } > >
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; }
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 <vulab@iscas.ac.cn> --- drivers/iio/adc/stm32-adc-core.c | 29 +++++++++++------------------ drivers/iio/adc/stm32-adc.c | 14 +++++--------- 2 files changed, 16 insertions(+), 27 deletions(-)