Re: [PATCH -next v3 11/12] mtd: spi-nor: nxp-spifi: Use helper function devm_clk_get_enabled()

Miquel Raynal
2023-08-21T07:38:42Z

Hi Tudor,

lizetao1@huawei.com wrote on Mon, 21 Aug 2023 11:17:36 +0800:

> 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, so drop
> the label "dis_clks" and "dis_clk_reg".

This patch seems very simple, do you mind if I apply it directly into
mtd/next for the next PR?

Thanks,
Miquèl

> Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
> Signed-off-by: Li Zetao <lizetao1@huawei.com>
> ---
> v2 -> v3: Modify the syntax error in the commit message.
> v2: https://lore.kernel.org/all/20230818074642.308166-12-lizetao1@huawei.com/
> v1 -> v2: Modify commit message.
> v1: https://lore.kernel.org/all/20230817024509.3951629-12-lizetao1@huawei.com/
>
> drivers/mtd/spi-nor/controllers/nxp-spifi.c | 33 ++++-----------------
> 1 file changed, 6 insertions(+), 27 deletions(-)
>
> diff --git a/drivers/mtd/spi-nor/controllers/nxp-spifi.c b/drivers/mtd/spi-nor/controllers/nxp-spifi.c
> index 337e83bf3362..5d8f47ab146f 100644
> --- a/drivers/mtd/spi-nor/controllers/nxp-spifi.c
> +++ b/drivers/mtd/spi-nor/controllers/nxp-spifi.c
> @@ -394,30 +394,18 @@ static int nxp_spifi_probe(struct platform_device *pdev)
> if (IS_ERR(spifi->flash_base))
> return PTR_ERR(spifi->flash_base);
>
> - spifi->clk_spifi = devm_clk_get(&pdev->dev, "spifi");
> + spifi->clk_spifi = devm_clk_get_enabled(&pdev->dev, "spifi");
> if (IS_ERR(spifi->clk_spifi)) {
> - dev_err(&pdev->dev, "spifi clock not found\n");
> + dev_err(&pdev->dev, "spifi clock not found or unable to enable\n");
> return PTR_ERR(spifi->clk_spifi);
> }
>
> - spifi->clk_reg = devm_clk_get(&pdev->dev, "reg");
> + spifi->clk_reg = devm_clk_get_enabled(&pdev->dev, "reg");
> if (IS_ERR(spifi->clk_reg)) {
> - dev_err(&pdev->dev, "reg clock not found\n");
> + dev_err(&pdev->dev, "reg clock not found or unable to enable\n");
> return PTR_ERR(spifi->clk_reg);
> }
>
> - ret = clk_prepare_enable(spifi->clk_reg);
> - if (ret) {
> - dev_err(&pdev->dev, "unable to enable reg clock\n");
> - return ret;
> - }
> -
> - ret = clk_prepare_enable(spifi->clk_spifi);
> - if (ret) {
> - dev_err(&pdev->dev, "unable to enable spifi clock\n");
> - goto dis_clk_reg;
> - }
> -
> spifi->dev = &pdev->dev;
> platform_set_drvdata(pdev, spifi);
>
> @@ -430,24 +418,17 @@ static int nxp_spifi_probe(struct platform_device *pdev)
> flash_np = of_get_next_available_child(pdev->dev.of_node, NULL);
> if (!flash_np) {
> dev_err(&pdev->dev, "no SPI flash device to configure\n");
> - ret = -ENODEV;
> - goto dis_clks;
> + return -ENODEV;
> }
>
> ret = nxp_spifi_setup_flash(spifi, flash_np);
> of_node_put(flash_np);
> if (ret) {
> dev_err(&pdev->dev, "unable to setup flash chip\n");
> - goto dis_clks;
> + return ret;
> }
>
> return 0;
> -
> -dis_clks:
> - clk_disable_unprepare(spifi->clk_spifi);
> -dis_clk_reg:
> - clk_disable_unprepare(spifi->clk_reg);
> - return ret;
> }
>
> static int nxp_spifi_remove(struct platform_device *pdev)
> @@ -455,8 +436,6 @@ static int nxp_spifi_remove(struct platform_device *pdev)
> struct nxp_spifi *spifi = platform_get_drvdata(pdev);
>
> mtd_device_unregister(&spifi->nor.mtd);
> - clk_disable_unprepare(spifi->clk_spifi);
> - clk_disable_unprepare(spifi->clk_reg);
>
> return 0;
> }