Linux Watchdog driver development
 help / color / mirror / Atom feed
* [PATCH 1/5] watchdog: dw_wdt: use devm_clk_get()
@ 2013-03-06  9:01 Jingoo Han
  2013-03-06  9:01 ` [PATCH 2/5] watchdog: imx2_wdt: " Jingoo Han
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Jingoo Han @ 2013-03-06  9:01 UTC (permalink / raw)
  To: 'Wim Van Sebroeck'; +Cc: linux-watchdog, 'Jingoo Han'

Use devm_clk_get() to make cleanup paths more simple.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
 drivers/watchdog/dw_wdt.c |    7 ++-----
 1 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c
index 2037669..2e70fd0 100644
--- a/drivers/watchdog/dw_wdt.c
+++ b/drivers/watchdog/dw_wdt.c
@@ -305,13 +305,13 @@ static int dw_wdt_drv_probe(struct platform_device *pdev)
 	if (IS_ERR(dw_wdt.regs))
 		return PTR_ERR(dw_wdt.regs);
 
-	dw_wdt.clk = clk_get(&pdev->dev, NULL);
+	dw_wdt.clk = devm_clk_get(&pdev->dev, NULL);
 	if (IS_ERR(dw_wdt.clk))
 		return PTR_ERR(dw_wdt.clk);
 
 	ret = clk_enable(dw_wdt.clk);
 	if (ret)
-		goto out_put_clk;
+		return ret;
 
 	spin_lock_init(&dw_wdt.lock);
 
@@ -327,8 +327,6 @@ static int dw_wdt_drv_probe(struct platform_device *pdev)
 
 out_disable_clk:
 	clk_disable(dw_wdt.clk);
-out_put_clk:
-	clk_put(dw_wdt.clk);
 
 	return ret;
 }
@@ -338,7 +336,6 @@ static int dw_wdt_drv_remove(struct platform_device *pdev)
 	misc_deregister(&dw_wdt_miscdev);
 
 	clk_disable(dw_wdt.clk);
-	clk_put(dw_wdt.clk);
 
 	return 0;
 }
-- 
1.7.2.5



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/5] watchdog: imx2_wdt: use devm_clk_get()
  2013-03-06  9:01 [PATCH 1/5] watchdog: dw_wdt: use devm_clk_get() Jingoo Han
@ 2013-03-06  9:01 ` Jingoo Han
  2013-03-06  9:02 ` [PATCH 3/5] watchdog: pnx4008_wdt: " Jingoo Han
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Jingoo Han @ 2013-03-06  9:01 UTC (permalink / raw)
  To: 'Wim Van Sebroeck'; +Cc: linux-watchdog, 'Jingoo Han'

Use devm_clk_get() to make cleanup paths more simple.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
 drivers/watchdog/imx2_wdt.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/watchdog/imx2_wdt.c b/drivers/watchdog/imx2_wdt.c
index ff90882..0c2b075 100644
--- a/drivers/watchdog/imx2_wdt.c
+++ b/drivers/watchdog/imx2_wdt.c
@@ -266,7 +266,7 @@ static int __init imx2_wdt_probe(struct platform_device *pdev)
 	if (IS_ERR(imx2_wdt.base))
 		return PTR_ERR(imx2_wdt.base);
 
-	imx2_wdt.clk = clk_get(&pdev->dev, NULL);
+	imx2_wdt.clk = devm_clk_get(&pdev->dev, NULL);
 	if (IS_ERR(imx2_wdt.clk)) {
 		dev_err(&pdev->dev, "can't get Watchdog clock\n");
 		return PTR_ERR(imx2_wdt.clk);
@@ -291,7 +291,6 @@ static int __init imx2_wdt_probe(struct platform_device *pdev)
 
 fail:
 	imx2_wdt_miscdev.parent = NULL;
-	clk_put(imx2_wdt.clk);
 	return ret;
 }
 
@@ -304,8 +303,7 @@ static int __exit imx2_wdt_remove(struct platform_device *pdev)
 
 		dev_crit(imx2_wdt_miscdev.parent,
 			"Device removed: Expect reboot!\n");
-	} else
-		clk_put(imx2_wdt.clk);
+	}
 
 	imx2_wdt_miscdev.parent = NULL;
 	return 0;
-- 
1.7.2.5



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/5] watchdog: pnx4008_wdt: use devm_clk_get()
  2013-03-06  9:01 [PATCH 1/5] watchdog: dw_wdt: use devm_clk_get() Jingoo Han
  2013-03-06  9:01 ` [PATCH 2/5] watchdog: imx2_wdt: " Jingoo Han
@ 2013-03-06  9:02 ` Jingoo Han
  2013-03-06  9:02 ` [PATCH 4/5] watchdog: shwdt: " Jingoo Han
  2013-03-06  9:03 ` [PATCH 5/5] watchdog: sp805_wdt: " Jingoo Han
  3 siblings, 0 replies; 5+ messages in thread
From: Jingoo Han @ 2013-03-06  9:02 UTC (permalink / raw)
  To: 'Wim Van Sebroeck'; +Cc: linux-watchdog, 'Jingoo Han'

Use devm_clk_get() to make cleanup paths more simple.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
 drivers/watchdog/pnx4008_wdt.c |    7 ++-----
 1 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/watchdog/pnx4008_wdt.c b/drivers/watchdog/pnx4008_wdt.c
index a3684a3..b30bd43 100644
--- a/drivers/watchdog/pnx4008_wdt.c
+++ b/drivers/watchdog/pnx4008_wdt.c
@@ -159,13 +159,13 @@ static int pnx4008_wdt_probe(struct platform_device *pdev)
 	if (IS_ERR(wdt_base))
 		return PTR_ERR(wdt_base);
 
-	wdt_clk = clk_get(&pdev->dev, NULL);
+	wdt_clk = devm_clk_get(&pdev->dev, NULL);
 	if (IS_ERR(wdt_clk))
 		return PTR_ERR(wdt_clk);
 
 	ret = clk_enable(wdt_clk);
 	if (ret)
-		goto out;
+		return ret;
 
 	pnx4008_wdd.bootstatus = (readl(WDTIM_RES(wdt_base)) & WDOG_RESET) ?
 			WDIOF_CARDRESET : 0;
@@ -186,8 +186,6 @@ static int pnx4008_wdt_probe(struct platform_device *pdev)
 
 disable_clk:
 	clk_disable(wdt_clk);
-out:
-	clk_put(wdt_clk);
 	return ret;
 }
 
@@ -196,7 +194,6 @@ static int pnx4008_wdt_remove(struct platform_device *pdev)
 	watchdog_unregister_device(&pnx4008_wdd);
 
 	clk_disable(wdt_clk);
-	clk_put(wdt_clk);
 
 	return 0;
 }
-- 
1.7.2.5



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 4/5] watchdog: shwdt: use devm_clk_get()
  2013-03-06  9:01 [PATCH 1/5] watchdog: dw_wdt: use devm_clk_get() Jingoo Han
  2013-03-06  9:01 ` [PATCH 2/5] watchdog: imx2_wdt: " Jingoo Han
  2013-03-06  9:02 ` [PATCH 3/5] watchdog: pnx4008_wdt: " Jingoo Han
@ 2013-03-06  9:02 ` Jingoo Han
  2013-03-06  9:03 ` [PATCH 5/5] watchdog: sp805_wdt: " Jingoo Han
  3 siblings, 0 replies; 5+ messages in thread
From: Jingoo Han @ 2013-03-06  9:02 UTC (permalink / raw)
  To: 'Wim Van Sebroeck'; +Cc: linux-watchdog, 'Jingoo Han'

Use devm_clk_get() to make cleanup paths more simple.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
 drivers/watchdog/shwdt.c |   16 ++++------------
 1 files changed, 4 insertions(+), 12 deletions(-)

diff --git a/drivers/watchdog/shwdt.c b/drivers/watchdog/shwdt.c
index 6a89e40..e5fe555 100644
--- a/drivers/watchdog/shwdt.c
+++ b/drivers/watchdog/shwdt.c
@@ -240,7 +240,7 @@ static int sh_wdt_probe(struct platform_device *pdev)
 
 	wdt->dev = &pdev->dev;
 
-	wdt->clk = clk_get(&pdev->dev, NULL);
+	wdt->clk = devm_clk_get(&pdev->dev, NULL);
 	if (IS_ERR(wdt->clk)) {
 		/*
 		 * Clock framework support is optional, continue on
@@ -250,10 +250,8 @@ static int sh_wdt_probe(struct platform_device *pdev)
 	}
 
 	wdt->base = devm_request_and_ioremap(wdt->dev, res);
-	if (unlikely(!wdt->base)) {
-		rc = -EADDRNOTAVAIL;
-		goto err;
-	}
+	if (unlikely(!wdt->base))
+		return -EADDRNOTAVAIL;
 
 	watchdog_set_nowayout(&sh_wdt_dev, nowayout);
 	watchdog_set_drvdata(&sh_wdt_dev, wdt);
@@ -276,7 +274,7 @@ static int sh_wdt_probe(struct platform_device *pdev)
 	rc = watchdog_register_device(&sh_wdt_dev);
 	if (unlikely(rc)) {
 		dev_err(&pdev->dev, "Can't register watchdog (err=%d)\n", rc);
-		goto err;
+		return rc;
 	}
 
 	init_timer(&wdt->timer);
@@ -291,11 +289,6 @@ static int sh_wdt_probe(struct platform_device *pdev)
 	pm_runtime_enable(&pdev->dev);
 
 	return 0;
-
-err:
-	clk_put(wdt->clk);
-
-	return rc;
 }
 
 static int sh_wdt_remove(struct platform_device *pdev)
@@ -307,7 +300,6 @@ static int sh_wdt_remove(struct platform_device *pdev)
 	watchdog_unregister_device(&sh_wdt_dev);
 
 	pm_runtime_disable(&pdev->dev);
-	clk_put(wdt->clk);
 
 	return 0;
 }
-- 
1.7.2.5



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 5/5] watchdog: sp805_wdt: use devm_clk_get()
  2013-03-06  9:01 [PATCH 1/5] watchdog: dw_wdt: use devm_clk_get() Jingoo Han
                   ` (2 preceding siblings ...)
  2013-03-06  9:02 ` [PATCH 4/5] watchdog: shwdt: " Jingoo Han
@ 2013-03-06  9:03 ` Jingoo Han
  3 siblings, 0 replies; 5+ messages in thread
From: Jingoo Han @ 2013-03-06  9:03 UTC (permalink / raw)
  To: 'Wim Van Sebroeck'; +Cc: linux-watchdog, 'Jingoo Han'

Use devm_clk_get() to make cleanup paths more simple.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
 drivers/watchdog/sp805_wdt.c |    7 ++-----
 1 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/watchdog/sp805_wdt.c b/drivers/watchdog/sp805_wdt.c
index 8872642..58df98a 100644
--- a/drivers/watchdog/sp805_wdt.c
+++ b/drivers/watchdog/sp805_wdt.c
@@ -231,7 +231,7 @@ sp805_wdt_probe(struct amba_device *adev, const struct amba_id *id)
 		goto err;
 	}
 
-	wdt->clk = clk_get(&adev->dev, NULL);
+	wdt->clk = devm_clk_get(&adev->dev, NULL);
 	if (IS_ERR(wdt->clk)) {
 		dev_warn(&adev->dev, "Clock not found\n");
 		ret = PTR_ERR(wdt->clk);
@@ -251,15 +251,13 @@ sp805_wdt_probe(struct amba_device *adev, const struct amba_id *id)
 	if (ret) {
 		dev_err(&adev->dev, "watchdog_register_device() failed: %d\n",
 				ret);
-		goto err_register;
+		goto err;
 	}
 	amba_set_drvdata(adev, wdt);
 
 	dev_info(&adev->dev, "registration successful\n");
 	return 0;
 
-err_register:
-	clk_put(wdt->clk);
 err:
 	dev_err(&adev->dev, "Probe Failed!!!\n");
 	return ret;
@@ -272,7 +270,6 @@ static int sp805_wdt_remove(struct amba_device *adev)
 	watchdog_unregister_device(&wdt->wdd);
 	amba_set_drvdata(adev, NULL);
 	watchdog_set_drvdata(&wdt->wdd, NULL);
-	clk_put(wdt->clk);
 
 	return 0;
 }
-- 
1.7.2.5



^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-03-06  9:03 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-06  9:01 [PATCH 1/5] watchdog: dw_wdt: use devm_clk_get() Jingoo Han
2013-03-06  9:01 ` [PATCH 2/5] watchdog: imx2_wdt: " Jingoo Han
2013-03-06  9:02 ` [PATCH 3/5] watchdog: pnx4008_wdt: " Jingoo Han
2013-03-06  9:02 ` [PATCH 4/5] watchdog: shwdt: " Jingoo Han
2013-03-06  9:03 ` [PATCH 5/5] watchdog: sp805_wdt: " Jingoo Han

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox