From 76e2b190803484db033153fe8a97b381a567ed25 Mon Sep 17 00:00:00 2001
From: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Date: Wed, 14 Nov 2012 19:16:35 +0800
Subject: [PATCH 1/4] watchdog: add keep alive support

this will allow to ping the watchdog via poller

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com>
---
 drivers/watchdog/Kconfig   |  1 +
 drivers/watchdog/wd_core.c | 25 +++++++++++++++++++++++++
 include/watchdog.h         |  2 ++
 3 files changed, 28 insertions(+)

diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index 63fb1a8c5..7ebff89b9 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -4,6 +4,7 @@ config WATCHDOG_IMX_RESET_SOURCE
 
 menuconfig WATCHDOG
 	bool "Watchdog support"
+	select GENERIC_POLLER
 	help
 	  Many platforms support a watchdog to keep track of a working machine.
 	  This framework provides routines to handle these watchdogs.
diff --git a/drivers/watchdog/wd_core.c b/drivers/watchdog/wd_core.c
index 3a3f51964..52537afef 100644
--- a/drivers/watchdog/wd_core.c
+++ b/drivers/watchdog/wd_core.c
@@ -18,6 +18,7 @@
 #include <errno.h>
 #include <linux/ctype.h>
 #include <watchdog.h>
+#include <poller.h>
 
 static LIST_HEAD(watchdog_list);
 
@@ -31,6 +32,20 @@ static const char *watchdog_name(struct watchdog *wd)
 	return "unknown";
 }
 
+static struct watchdog *watchdog_get_default(void);
+
+static void watchdog_poller_func(struct poller_struct *poller)
+{
+	struct watchdog *wd = watchdog_get_default();
+
+	if (wd)
+                wd->keep_alive(wd);
+}
+
+static struct poller_struct watchdog_poller = {
+	.func = watchdog_poller_func,
+};
+
 int watchdog_register(struct watchdog *wd)
 {
 	if (!wd->priority)
@@ -41,6 +56,16 @@ int watchdog_register(struct watchdog *wd)
 	pr_debug("registering watchdog %s with priority %d\n", watchdog_name(wd),
 			wd->priority);
 
+
+	if (wd->keep_alive) {
+		int ret;
+
+		ret = poller_register(&watchdog_poller);
+		if (ret) {
+			return ret;
+		}
+	}
+
 	return 0;
 }
 EXPORT_SYMBOL(watchdog_register);
diff --git a/include/watchdog.h b/include/watchdog.h
index 3e8a487a4..a2660c2e0 100644
--- a/include/watchdog.h
+++ b/include/watchdog.h
@@ -13,12 +13,14 @@
 #ifndef INCLUDE_WATCHDOG_H
 # define INCLUDE_WATCHDOG_H
 
+
 struct watchdog {
 	int (*set_timeout)(struct watchdog *, unsigned);
 	const char *name;
 	struct device_d *dev;
 	unsigned int priority;
 	struct list_head list;
+	void (*keep_alive)(struct watchdog *);
 };
 
 #ifdef CONFIG_WATCHDOG
-- 
2.12.0

