[PATCH -next 3/3] watchdog: sunplus: Use the devm_clk_get_enabled() helper function
Guenter Roeck
linux at roeck-us.net
Thu Aug 24 08:47:54 PDT 2023
On Thu, Aug 24, 2023 at 09:55:14PM +0800, Jinjie Ruan wrote:
> watchdog: ath79_wdt: Use the devm_clk_get_enabled() helper function
>
> The devm_clk_get_enabled() helper:
> - calls devm_clk_get()
> - calls clk_prepare_enable() and registers what is needed in order to
> call clk_disable_unprepare() when needed, as a managed resource.
>
> This simplifies the code and avoids the need of a dedicated function used
> with devm_add_action_or_reset().
>
> Signed-off-by: Jinjie Ruan <ruanjinjie at huawei.com>
Reviewed-by: Guenter Roeck <linux at roeck-us.net>
> ---
> drivers/watchdog/sunplus_wdt.c | 17 ++---------------
> 1 file changed, 2 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/watchdog/sunplus_wdt.c b/drivers/watchdog/sunplus_wdt.c
> index e2d8c532bcb1..9d3ca848e8b6 100644
> --- a/drivers/watchdog/sunplus_wdt.c
> +++ b/drivers/watchdog/sunplus_wdt.c
> @@ -136,11 +136,6 @@ static const struct watchdog_ops sp_wdt_ops = {
> .restart = sp_wdt_restart,
> };
>
> -static void sp_clk_disable_unprepare(void *data)
> -{
> - clk_disable_unprepare(data);
> -}
> -
> static void sp_reset_control_assert(void *data)
> {
> reset_control_assert(data);
> @@ -156,17 +151,9 @@ static int sp_wdt_probe(struct platform_device *pdev)
> if (!priv)
> return -ENOMEM;
>
> - priv->clk = devm_clk_get(dev, NULL);
> + priv->clk = devm_clk_get_enabled(dev, NULL);
> if (IS_ERR(priv->clk))
> - return dev_err_probe(dev, PTR_ERR(priv->clk), "Failed to get clock\n");
> -
> - ret = clk_prepare_enable(priv->clk);
> - if (ret)
> - return dev_err_probe(dev, ret, "Failed to enable clock\n");
> -
> - ret = devm_add_action_or_reset(dev, sp_clk_disable_unprepare, priv->clk);
> - if (ret)
> - return ret;
> + return dev_err_probe(dev, PTR_ERR(priv->clk), "Failed to enable clock\n");
>
> /* The timer and watchdog shared the STC reset */
> priv->rstc = devm_reset_control_get_shared(dev, NULL);
> --
> 2.34.1
>
More information about the linux-arm-kernel
mailing list