Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

watchdog: realtek_otto: Use devm_clk_get_enabled() helper

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: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: Sander Vanheule <sander@svanheule.net>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/5e4255782fbb43d1b4b5cd03bd12d7a184497134.1672498920.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>

authored by

Christophe JAILLET and committed by
Wim Van Sebroeck
3c22939e a224764f

+2 -15
+2 -15
drivers/watchdog/realtek_otto_wdt.c
··· 235 235 WDIOF_PRETIMEOUT, 236 236 }; 237 237 238 - static void otto_wdt_clock_action(void *data) 239 - { 240 - clk_disable_unprepare(data); 241 - } 242 - 243 238 static int otto_wdt_probe_clk(struct otto_wdt_ctrl *ctrl) 244 239 { 245 - struct clk *clk = devm_clk_get(ctrl->dev, NULL); 246 - int ret; 240 + struct clk *clk; 247 241 242 + clk = devm_clk_get_enabled(ctrl->dev, NULL); 248 243 if (IS_ERR(clk)) 249 244 return dev_err_probe(ctrl->dev, PTR_ERR(clk), "Failed to get clock\n"); 250 - 251 - ret = clk_prepare_enable(clk); 252 - if (ret) 253 - return dev_err_probe(ctrl->dev, ret, "Failed to enable clock\n"); 254 - 255 - ret = devm_add_action_or_reset(ctrl->dev, otto_wdt_clock_action, clk); 256 - if (ret) 257 - return ret; 258 245 259 246 ctrl->clk_rate_khz = clk_get_rate(clk) / 1000; 260 247 if (ctrl->clk_rate_khz == 0)