Message ID | 20230818093018.1051434-1-lizetao1@huawei.com |
---|---|
Headers | show |
Series | gpio: Use devm_clk_get_*() helper function to simplify the drivers. | expand |
On Fri, Aug 18, 2023 at 05:30:10PM +0800, 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 the 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. ... > - } else if (PTR_ERR(g->clk) == -EPROBE_DEFER) { > + g->clk = devm_clk_get_enabled(dev, NULL); > + if (PTR_ERR_OR_ZERO(g->clk) == -EPROBE_DEFER) > /* > * Percolate deferrals, for anything else, > * just live without the clocking. > */ > return PTR_ERR(g->clk); > - } It means you need to use _optional variant here and return whatever error you get. ... > platform_set_drvdata(pdev, g); Do you now need this?
On Fri, Aug 18, 2023 at 05:30:13PM +0800, 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 the 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. ... > - mvchip->clk = devm_clk_get(&pdev->dev, NULL); > /* Not all SoCs require a clock.*/ > - if (!IS_ERR(mvchip->clk)) > - clk_prepare_enable(mvchip->clk); > + mvchip->clk = devm_clk_get_enabled(&pdev->dev, NULL); The clk is only used in the PWM part, move it there and remove clk member from the private struct.
On Fri, Aug 18, 2023 at 05:30:09PM +0800, 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 the 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. It seems it fixes a bug that we try to remove the enabled clock on unbinding. Maybe Tony can shed a light here. If this is the case, add a Fixes tag. Otherwise it might be (undesired?) functional change and in any case has to be mentioned in the commit message.