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

Miquel Raynal miquel.raynal at bootlin.com
Mon Aug 21 00:38:25 PDT 2023


Hi Tudor,

lizetao1 at 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 at bootlin.com>
> Signed-off-by: Li Zetao <lizetao1 at 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;
>  }




More information about the Linux-mediatek mailing list