All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] watchdog: bcm47xx_wdt.c: add restart handler support
@ 2015-01-24 13:47 Rafał Miłecki
  2015-01-24 13:58 ` [PATCH V2] " Rafał Miłecki
  2015-01-24 16:32 ` [PATCH] " Guenter Roeck
  0 siblings, 2 replies; 15+ messages in thread
From: Rafał Miłecki @ 2015-01-24 13:47 UTC (permalink / raw)
  To: Wim Van Sebroeck; +Cc: linux-watchdog, Hauke Mehrtens, Rafał Miłecki

Just like in case of other watchdog drivers, use the new kernel core
API to provide restart support.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
---
 drivers/watchdog/bcm47xx_wdt.c | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/drivers/watchdog/bcm47xx_wdt.c b/drivers/watchdog/bcm47xx_wdt.c
index 9816485..dac3c5d 100644
--- a/drivers/watchdog/bcm47xx_wdt.c
+++ b/drivers/watchdog/bcm47xx_wdt.c
@@ -169,6 +169,17 @@ static int bcm47xx_wdt_notify_sys(struct notifier_block *this,
 	return NOTIFY_DONE;
 }
 
+static int bcm47xx_wdt_restart(struct notifier_block *this, unsigned long mode,
+			       void *cmd)
+{
+	struct bcm47xx_wdt *wdt;
+
+	wdt = container_of(this, struct bcm47xx_wdt, restart_handler);
+	wdt->timer_set(wdt, 1);
+
+	return NOTIFY_DONE;
+}
+
 static struct watchdog_ops bcm47xx_wdt_soft_ops = {
 	.owner		= THIS_MODULE,
 	.start		= bcm47xx_wdt_soft_start,
@@ -204,20 +215,27 @@ static int bcm47xx_wdt_probe(struct platform_device *pdev)
 	watchdog_set_nowayout(&wdt->wdd, nowayout);
 
 	wdt->notifier.notifier_call = &bcm47xx_wdt_notify_sys;
-
 	ret = register_reboot_notifier(&wdt->notifier);
 	if (ret)
 		goto err_timer;
 
-	ret = watchdog_register_device(&wdt->wdd);
+	wdt->restart_handler.notifier_call = &bcm47xx_wdt_restart;
+	wdt->restart_handler.priority = 128;
+	ret = register_restart_handler(&wdt->restart_handler);
 	if (ret)
 		goto err_notifier;
 
+	ret = watchdog_register_device(&wdt->wdd);
+	if (ret)
+		goto err_handler;
+
 	dev_info(&pdev->dev, "BCM47xx Watchdog Timer enabled (%d seconds%s%s)\n",
 		timeout, nowayout ? ", nowayout" : "",
 		soft ? ", Software Timer" : "");
 	return 0;
 
+err_handler:
+	unregister_restart_handler(&wdt->restart_handler);
 err_notifier:
 	unregister_reboot_notifier(&wdt->notifier);
 err_timer:
-- 
1.8.4.5


^ permalink raw reply related	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2015-01-25 15:46 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-24 13:47 [PATCH] watchdog: bcm47xx_wdt.c: add restart handler support Rafał Miłecki
2015-01-24 13:58 ` [PATCH V2] " Rafał Miłecki
2015-01-24 16:33   ` Guenter Roeck
2015-01-24 16:48     ` Rafał Miłecki
2015-01-24 16:58       ` Guenter Roeck
2015-01-24 17:17   ` Hauke Mehrtens
2015-01-24 17:34     ` Rafał Miłecki
2015-01-25 10:40   ` [PATCH V3] " Rafał Miłecki
2015-01-25 15:46     ` Guenter Roeck
2015-01-24 16:32 ` [PATCH] " Guenter Roeck
2015-01-24 16:45   ` Rafał Miłecki
2015-01-24 16:54     ` Guenter Roeck
2015-01-24 17:31       ` Rafał Miłecki
2015-01-24 18:09         ` Guenter Roeck
2015-01-24 19:02           ` Rafał Miłecki

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.