|
@@ -236,15 +236,22 @@ static int davinci_wdt_probe(struct platform_device *pdev)
|
|
|
|
|
|
wdt_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
|
|
davinci_wdt->base = devm_ioremap_resource(dev, wdt_mem);
|
|
|
- if (IS_ERR(davinci_wdt->base))
|
|
|
- return PTR_ERR(davinci_wdt->base);
|
|
|
+ if (IS_ERR(davinci_wdt->base)) {
|
|
|
+ ret = PTR_ERR(davinci_wdt->base);
|
|
|
+ goto err_clk_disable;
|
|
|
+ }
|
|
|
|
|
|
ret = watchdog_register_device(wdd);
|
|
|
- if (ret < 0) {
|
|
|
- clk_disable_unprepare(davinci_wdt->clk);
|
|
|
+ if (ret) {
|
|
|
dev_err(dev, "cannot register watchdog device\n");
|
|
|
+ goto err_clk_disable;
|
|
|
}
|
|
|
|
|
|
+ return 0;
|
|
|
+
|
|
|
+err_clk_disable:
|
|
|
+ clk_disable_unprepare(davinci_wdt->clk);
|
|
|
+
|
|
|
return ret;
|
|
|
}
|
|
|
|