Message ID | 20230822131237.1022815-4-lizetao1@huawei.com |
---|---|
State | Superseded |
Headers | show |
Series | spi: Use devm_clk_get_*() helper function to simplify the drivers. | expand |
> -----Original Message----- > From: Li Zetao <lizetao1@huawei.com> > Sent: Tuesday, August 22, 2023 9:12 PM > Subject: [PATCH -next 03/25] spi: aspeed: Use helper function > devm_clk_get_enabled() > > Since commit 7ef9651e9792 ("clk: Provide new devm_clk helpers for prepared > and enabled clocks"), devm_clk_get() and clk_prepare_enable() can now be > replaced by devm_clk_get_enabled() when driver enables (and possibly > prepares) the clocks for the whole lifetime of the device. Moreover, it is no > longer necessary to unprepare and disable the clocks explicitly. > > Signed-off-by: Li Zetao <lizetao1@huawei.com> > --- > drivers/spi/spi-aspeed-smc.c | 16 ++-------------- > 1 file changed, 2 insertions(+), 14 deletions(-) > > diff --git a/drivers/spi/spi-aspeed-smc.c b/drivers/spi/spi-aspeed-smc.c index > 21b0fa646c7d..bbd417c55e7f 100644 > --- a/drivers/spi/spi-aspeed-smc.c > +++ b/drivers/spi/spi-aspeed-smc.c > @@ -748,7 +748,7 @@ static int aspeed_spi_probe(struct platform_device > *pdev) > aspi->ahb_window_size = resource_size(res); > aspi->ahb_base_phy = res->start; > > - aspi->clk = devm_clk_get(&pdev->dev, NULL); > + aspi->clk = devm_clk_get_enabled(&pdev->dev, NULL); > if (IS_ERR(aspi->clk)) { > dev_err(dev, "missing clock\n"); > return PTR_ERR(aspi->clk); > @@ -760,12 +760,6 @@ static int aspeed_spi_probe(struct platform_device > *pdev) > return -EINVAL; > } > > - ret = clk_prepare_enable(aspi->clk); > - if (ret) { > - dev_err(dev, "can not enable the clock\n"); > - return ret; > - } > - > /* IRQ is for DMA, which the driver doesn't support yet */ > > ctlr->mode_bits = SPI_RX_DUAL | SPI_TX_DUAL | data->mode_bits; @@ > -777,14 +771,9 @@ static int aspeed_spi_probe(struct platform_device *pdev) > ctlr->dev.of_node = dev->of_node; > > ret = devm_spi_register_controller(dev, ctlr); > - if (ret) { > + if (ret) > dev_err(&pdev->dev, "spi_register_controller failed\n"); > - goto disable_clk; > - } > - return 0; > > -disable_clk: > - clk_disable_unprepare(aspi->clk); > return ret; > } > > @@ -793,7 +782,6 @@ static void aspeed_spi_remove(struct platform_device > *pdev) > struct aspeed_spi *aspi = platform_get_drvdata(pdev); > > aspeed_spi_enable(aspi, false); > - clk_disable_unprepare(aspi->clk); > } > > /* > -- > 2.34.1 Reviewed-by: Chin-Ting Kuo <chin-ting_kuo@aspeedtech.com>
On 8/22/23 15:12, Li Zetao wrote: > Since commit 7ef9651e9792 ("clk: Provide new devm_clk helpers for prepared > and enabled clocks"), devm_clk_get() and clk_prepare_enable() can now be > replaced by devm_clk_get_enabled() when driver enables (and possibly > prepares) the clocks for the whole lifetime of the device. Moreover, it is > no longer necessary to unprepare and disable the clocks explicitly. > > Signed-off-by: Li Zetao <lizetao1@huawei.com> Reviewed-by: Cédric Le Goater <clg@kaod.org> Thanks, C.
diff --git a/drivers/spi/spi-aspeed-smc.c b/drivers/spi/spi-aspeed-smc.c index 21b0fa646c7d..bbd417c55e7f 100644 --- a/drivers/spi/spi-aspeed-smc.c +++ b/drivers/spi/spi-aspeed-smc.c @@ -748,7 +748,7 @@ static int aspeed_spi_probe(struct platform_device *pdev) aspi->ahb_window_size = resource_size(res); aspi->ahb_base_phy = res->start; - aspi->clk = devm_clk_get(&pdev->dev, NULL); + aspi->clk = devm_clk_get_enabled(&pdev->dev, NULL); if (IS_ERR(aspi->clk)) { dev_err(dev, "missing clock\n"); return PTR_ERR(aspi->clk); @@ -760,12 +760,6 @@ static int aspeed_spi_probe(struct platform_device *pdev) return -EINVAL; } - ret = clk_prepare_enable(aspi->clk); - if (ret) { - dev_err(dev, "can not enable the clock\n"); - return ret; - } - /* IRQ is for DMA, which the driver doesn't support yet */ ctlr->mode_bits = SPI_RX_DUAL | SPI_TX_DUAL | data->mode_bits; @@ -777,14 +771,9 @@ static int aspeed_spi_probe(struct platform_device *pdev) ctlr->dev.of_node = dev->of_node; ret = devm_spi_register_controller(dev, ctlr); - if (ret) { + if (ret) dev_err(&pdev->dev, "spi_register_controller failed\n"); - goto disable_clk; - } - return 0; -disable_clk: - clk_disable_unprepare(aspi->clk); return ret; } @@ -793,7 +782,6 @@ static void aspeed_spi_remove(struct platform_device *pdev) struct aspeed_spi *aspi = platform_get_drvdata(pdev); aspeed_spi_enable(aspi, false); - clk_disable_unprepare(aspi->clk); } /*
Since commit 7ef9651e9792 ("clk: Provide new devm_clk helpers for prepared and enabled clocks"), devm_clk_get() and clk_prepare_enable() can now be replaced by devm_clk_get_enabled() when driver enables (and possibly prepares) the clocks for the whole lifetime of the device. Moreover, it is no longer necessary to unprepare and disable the clocks explicitly. Signed-off-by: Li Zetao <lizetao1@huawei.com> --- drivers/spi/spi-aspeed-smc.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-)