Message ID | 20230821031737.1973183-12-lizetao1@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [-next,v3,01/12] mtd: spear_smi: Use helper function devm_clk_get_enabled() | expand |
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; > }
Hi again, miquel.raynal@bootlin.com wrote on Mon, 21 Aug 2023 09:38:25 +0200: > 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? I see you already took that one, perfect ;-) Sorry for the noise. Thanks, Miquèl
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; }