From 93642ecd463df30d032da8ac37c2676cee4ad876 Mon Sep 17 00:00:00 2001
From: "P@Draig Brady"
Date: Wed, 17 Aug 2005 09:06:07 +0200
Subject: [WATCHDOG] w83627hf_wdt.c-initialized_bios_bug
Attached is a small update to the w83627hf watchdog driver
to initialise appropriately if it was already initialised
in the BIOS. On tyan motherboards for e.g. you can init
the watchdog to 4 mins, then when the driver is loaded it
sets the watchdog to "seconds" mode, and then machine will
reboot within 4 seconds. So this patch resets the timeout
to the configured value if the watchdog is already running.
Signed-off-by: P@draig Brady
Signed-off-by: Wim Van Sebroeck
---
drivers/char/watchdog/w83627hf_wdt.c | 6 ++++++
1 file changed, 6 insertions(+)
(limited to 'drivers/char')
diff --git a/drivers/char/watchdog/w83627hf_wdt.c b/drivers/char/watchdog/w83627hf_wdt.c
index 465e0fd..b5d8210 100644
--- a/drivers/char/watchdog/w83627hf_wdt.c
+++ b/drivers/char/watchdog/w83627hf_wdt.c
@@ -93,6 +93,12 @@ w83627hf_init(void)
w83627hf_select_wd_register();
+ outb_p(0xF6, WDT_EFER); /* Select CRF6 */
+ t=inb_p(WDT_EFDR); /* read CRF6 */
+ if (t != 0) {
+ printk (KERN_INFO PFX "Watchdog already running. Resetting timeout to %d sec\n", timeout);
+ outb_p(timeout, WDT_EFDR); /* Write back to CRF6 */
+ }
outb_p(0xF5, WDT_EFER); /* Select CRF5 */
t=inb_p(WDT_EFDR); /* read CRF5 */
t&=~0x0C; /* set second mode & disable keyboard turning off watchdog */
--
cgit v1.1