[PATCH V2 22/22] watchdog/sp805: Add clk_{un}prepare support
Viresh Kumar
viresh.kumar at st.com
Mon Mar 12 00:22:17 EDT 2012
clk_{un}prepare() routines are required for required on some platforms to run
part of clk enable/disable() routines from contexts that can schedule.
This patch adds support for these routines in sp805 driver.
Signed-off-by: Viresh Kumar <viresh.kumar at st.com>
---
drivers/watchdog/sp805_wdt.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/drivers/watchdog/sp805_wdt.c b/drivers/watchdog/sp805_wdt.c
index 5c34eda..938b8ab 100644
--- a/drivers/watchdog/sp805_wdt.c
+++ b/drivers/watchdog/sp805_wdt.c
@@ -130,9 +130,16 @@ static int wdt_config(struct watchdog_device *wdd, bool ping)
int ret;
if (!ping) {
+ ret = clk_prepare(wdt->clk);
+ if (ret) {
+ dev_err(&wdt->adev->dev, "clock prepare fail");
+ return ret;
+ }
+
ret = clk_enable(wdt->clk);
if (ret) {
dev_err(&wdt->adev->dev, "clock enable fail");
+ clk_unprepare(wdt->clk);
return ret;
}
}
@@ -184,6 +191,7 @@ static int wdt_disable(struct watchdog_device *wdd)
spin_unlock(&wdt->lock);
clk_disable(wdt->clk);
+ clk_unprepare(wdt->clk);
return 0;
}
--
1.7.8.110.g4cb5d
More information about the linux-arm-kernel
mailing list