summaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-samsung/include/plat/watchdog-reset.h
diff options
context:
space:
mode:
authorMarek Szyprowski <m.szyprowski@samsung.com>2011-09-05 20:10:06 +0900
committerKukjin Kim <kgene.kim@samsung.com>2011-09-15 13:59:58 +0900
commitcaf27307fa322f079338480c7a3387e79d7d3712 (patch)
tree44e8e7e19967906feff0d9173d7618eb1c58b5b8 /arch/arm/plat-samsung/include/plat/watchdog-reset.h
parent0685d5ec3e8a2462c29920c1f8187a6c640b6fc9 (diff)
downloadblackbird-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.h10
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);
OpenPOWER on IntegriCloud