From ed067948fa3687554c38dacf6a35bec95dca2a46 Mon Sep 17 00:00:00 2001 From: Paul Mundt Date: Thu, 10 May 2012 16:14:40 +0900 Subject: [PATCH] --- yaml --- r: 305239 b: refs/heads/master c: d42c97443da5a542201f6cbaf793606877115d05 h: refs/heads/master i: 305237: 8814fa29bfb32d8d16cf75df24edf5e19f44566b 305235: 19b0729debc607d657fdbef5be231007f95f8ffc 305231: f494f43e10ba6cb01465dfb16c295ac1d181f6e5 v: v3 --- [refs] | 2 +- trunk/drivers/watchdog/shwdt.c | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index b22a18bf5187..71704ec46e4a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8c013d964ac32c20afe2cdeadf59926d87012b37 +refs/heads/master: d42c97443da5a542201f6cbaf793606877115d05 diff --git a/trunk/drivers/watchdog/shwdt.c b/trunk/drivers/watchdog/shwdt.c index b11104702d23..e5b59bebcdb1 100644 --- a/trunk/drivers/watchdog/shwdt.c +++ b/trunk/drivers/watchdog/shwdt.c @@ -89,6 +89,7 @@ static int sh_wdt_start(struct watchdog_device *wdt_dev) u8 csr; pm_runtime_get_sync(wdt->dev); + clk_enable(wdt->clk); spin_lock_irqsave(&wdt->lock, flags); @@ -140,6 +141,7 @@ static int sh_wdt_stop(struct watchdog_device *wdt_dev) spin_unlock_irqrestore(&wdt->lock, flags); + clk_disable(wdt->clk); pm_runtime_put_sync(wdt->dev); return 0; @@ -247,12 +249,10 @@ static int __devinit sh_wdt_probe(struct platform_device *pdev) wdt->clk = NULL; } - clk_enable(wdt->clk); - wdt->base = devm_request_and_ioremap(wdt->dev, res); if (unlikely(!wdt->base)) { rc = -EADDRNOTAVAIL; - goto out_disable; + goto err; } watchdog_set_nowayout(&sh_wdt_dev, nowayout); @@ -276,7 +276,7 @@ static int __devinit 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 out_disable; + goto err; } init_timer(&wdt->timer); @@ -292,8 +292,7 @@ static int __devinit sh_wdt_probe(struct platform_device *pdev) return 0; -out_disable: - clk_disable(wdt->clk); +err: clk_put(wdt->clk); return rc; @@ -308,7 +307,6 @@ static int __devexit sh_wdt_remove(struct platform_device *pdev) watchdog_unregister_device(&sh_wdt_dev); pm_runtime_disable(&pdev->dev); - clk_disable(wdt->clk); clk_put(wdt->clk); return 0;