From: 黄涛 <huangtao@rock-chips.com>
Date: Wed, 30 Jan 2013 02:29:05 +0000 (+0800)
Subject: fiq_debugger: keep alive when watchdog enabled
X-Git-Tag: firefly_0821_release~7697
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f09662e94c129be85db1b50d08ffe70500049404;p=firefly-linux-kernel-4.4.55.git

fiq_debugger: keep alive when watchdog enabled
---

diff --git a/arch/arm/common/fiq_debugger.c b/arch/arm/common/fiq_debugger.c
index d92bafa616e5..152f38f5a022 100644
--- a/arch/arm/common/fiq_debugger.c
+++ b/arch/arm/common/fiq_debugger.c
@@ -43,6 +43,13 @@
 
 #include "fiq_debugger_ringbuf.h"
 
+#ifdef CONFIG_RK29_WATCHDOG
+extern void rk29_wdt_keepalive(void);
+#define wdt_keepalive() rk29_wdt_keepalive()
+#else
+#define wdt_keepalive() do {} while (0)
+#endif
+
 #define DEBUG_MAX 64
 #define CMD_COUNT 0x0f
 #define MAX_UNHANDLED_FIQ_COUNT 1000000
@@ -210,6 +217,7 @@ static void dump_kernel_log(struct fiq_debugger_state *state)
 	saved_oip = oops_in_progress;
 	oops_in_progress = 1;
 	for (;;) {
+		wdt_keepalive();
 		ret = log_buf_copy(buf, idx, 1023);
 		if (ret <= 0)
 			break;
@@ -229,6 +237,8 @@ static void dump_last_kernel_log(struct fiq_debugger_state *state)
 	char *s = last_log_get(&size);
 
 	for (i = 0; i < size; i++) {
+		if (i % 1024 == 0)
+			wdt_keepalive();
 		c = s[i];
 		if (c == '\n') {
 			state->pdata->uart_putc(state->pdev, '\r');