diff options
author | Marek Szyprowski <m.szyprowski@samsung.com> | 2011-09-05 20:10:06 +0900 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2011-09-15 13:59:58 +0900 |
commit | caf27307fa322f079338480c7a3387e79d7d3712 (patch) | |
tree | 44e8e7e19967906feff0d9173d7618eb1c58b5b8 /arch/arm/plat-samsung/include/plat/watchdog-reset.h | |
parent | 0685d5ec3e8a2462c29920c1f8187a6c640b6fc9 (diff) | |
download | blackbird-op-linux-caf27307fa322f079338480c7a3387e79d7d3712.tar.gz blackbird-op-linux-caf27307fa322f079338480c7a3387e79d7d3712.zip |
ARM: SAMSUNG: fix watchdog reset issue with clk_get()
clkdev framework uses global mutex to protect clock tree, so it is not
possible to call clk_get() in interrupt context. This patch fixes this
issue and makes system reset by watchdog call working again.
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch/arm/plat-samsung/include/plat/watchdog-reset.h')
-rw-r--r-- | arch/arm/plat-samsung/include/plat/watchdog-reset.h | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/arch/arm/plat-samsung/include/plat/watchdog-reset.h b/arch/arm/plat-samsung/include/plat/watchdog-reset.h index 54b762acb5a0..40dbb2b0ae22 100644 --- a/arch/arm/plat-samsung/include/plat/watchdog-reset.h +++ b/arch/arm/plat-samsung/include/plat/watchdog-reset.h @@ -10,6 +10,7 @@ * published by the Free Software Foundation. */ +#include <plat/clock.h> #include <plat/regs-watchdog.h> #include <mach/map.h> @@ -19,17 +20,12 @@ static inline void arch_wdt_reset(void) { - struct clk *wdtclk; - printk("arch_reset: attempting watchdog reset\n"); __raw_writel(0, S3C2410_WTCON); /* disable watchdog, to be safe */ - wdtclk = clk_get(NULL, "watchdog"); - if (!IS_ERR(wdtclk)) { - clk_enable(wdtclk); - } else - printk(KERN_WARNING "%s: warning: cannot get watchdog clock\n", __func__); + if (s3c2410_wdtclk) + clk_enable(s3c2410_wdtclk); /* put initial values into count and data */ __raw_writel(0x80, S3C2410_WTCNT); |