[PATCH v3 12/17] spi: stm32-qspi: Use helper function devm_clk_get_enabled()
Pei Xiao <[email protected]>
| Newsgroups | org.ozlabs.lists.openbmc,dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-mediatek,org.infradead.lists.linux-riscv,org.infradead.lists.linux-rockchip,org.kernel.vger.linux-kernel,org.kernel.vger.linux-spi |
|---|---|
| Message-ID | <b887a25df30f38e1339f94ae464929e4e9f75f03.1773733017.git.xiaopei01@kylinos.cn> |
devm_clk_get() and clk_prepare_enable() can now be replaced by devm_clk_get_enabled() when driver enables the clocks. Moreover, it is no longer necessary to unprepare and disable the clocks explicitly. Simplify code. Signed-off-by: Pei Xiao <[email protected]> --- drivers/spi/spi-stm32-qspi.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/drivers/spi/spi-stm32-qspi.c b/drivers/spi/spi-stm32-qspi.c index df1bbacec90a..a8436f70fdfd 100644 --- a/drivers/spi/spi-stm32-qspi.c +++ b/drivers/spi/spi-stm32-qspi.c @@ -819,25 +819,19 @@ static int stm32_qspi_probe(struct platform_device *pdev) init_completion(&qspi->match_completion); - qspi->clk = devm_clk_get(dev, NULL); + qspi->clk = devm_clk_get_enabled(dev, NULL); if (IS_ERR(qspi->clk)) - return PTR_ERR(qspi->clk); - + return dev_err_probe(dev, PTR_ERR(qspi->clk), + "can not enable the clock\n"); qspi->clk_rate = clk_get_rate(qspi->clk); if (!qspi->clk_rate) return -EINVAL; - ret = clk_prepare_enable(qspi->clk); - if (ret) { - dev_err(dev, "can not enable the clock\n"); - return ret; - } - rstc = devm_reset_control_get_exclusive(dev, NULL); if (IS_ERR(rstc)) { ret = PTR_ERR(rstc); if (ret == -EPROBE_DEFER) - goto err_clk_disable; + goto err_defer; } else { reset_control_assert(rstc); udelay(2); @@ -886,8 +880,7 @@ static int stm32_qspi_probe(struct platform_device *pdev) pm_runtime_dont_use_autosuspend(qspi->dev); err_dma_free: stm32_qspi_dma_free(qspi); -err_clk_disable: - clk_disable_unprepare(qspi->clk); +err_defer: return ret; } @@ -906,7 +899,6 @@ static void stm32_qspi_remove(struct platform_device *pdev) pm_runtime_disable(qspi->dev); pm_runtime_set_suspended(qspi->dev); pm_runtime_dont_use_autosuspend(qspi->dev); - clk_disable_unprepare(qspi->clk); } static int stm32_qspi_runtime_suspend(struct device *dev) -- 2.25.1