mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-28 16:56:26 +00:00
watchdog: sunplus: 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@huawei.com> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Link: https://lore.kernel.org/r/20230824135514.2661364-4-ruanjinjie@huawei.com Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
This commit is contained in:
parent
c51a6977bd
commit
bdb970186d
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user