aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorNaveen Gupta <ngupta@google.com>2005-08-17 03:11:46 -0400
committerWim Van Sebroeck <wim@iguana.be>2005-09-11 15:51:18 -0400
commitce2f50b4ae71f700c7b4b0bf0ff11c328611dae8 (patch)
tree52570a06396baa2fa96eafe4b7403b9328b676ed /drivers
parent28562af3d4b21d687dd57c44006aeeed1036c781 (diff)
[WATCHDOG] i6300esb-set_correct_reload_register_bit
This patch writes into bit 8 of the reload register to perform the correct 'Reload Sequence' instead of writing into bit 4 of Watchdog for Intel 6300ESB chipset. Signed-off-by: Naveen Gupta <ngupta@google.com> Signed-off-by: David Hardeman <david@2gen.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be> Signed-off-by: Andrew Morton <akpm@osdl.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/char/watchdog/i6300esb.c6
-rw-r--r--drivers/char/watchdog/i6300esb.h2
2 files changed, 5 insertions, 3 deletions
diff --git a/drivers/char/watchdog/i6300esb.c b/drivers/char/watchdog/i6300esb.c
index f0e96fbd6489..c04b246858ae 100644
--- a/drivers/char/watchdog/i6300esb.c
+++ b/drivers/char/watchdog/i6300esb.c
@@ -109,7 +109,7 @@ static int esb_timer_stop(void)
109 spin_lock(&esb_lock); 109 spin_lock(&esb_lock);
110 /* First, reset timers as suggested by the docs */ 110 /* First, reset timers as suggested by the docs */
111 esb_unlock_registers(); 111 esb_unlock_registers();
112 writew(0x10, ESB_RELOAD_REG); 112 writew(ESB_WDT_RELOAD, ESB_RELOAD_REG);
113 /* Then disable the WDT */ 113 /* Then disable the WDT */
114 pci_write_config_byte(esb_pci, ESB_LOCK_REG, 0x0); 114 pci_write_config_byte(esb_pci, ESB_LOCK_REG, 0x0);
115 pci_read_config_byte(esb_pci, ESB_LOCK_REG, &val); 115 pci_read_config_byte(esb_pci, ESB_LOCK_REG, &val);
@@ -123,7 +123,7 @@ static void esb_timer_keepalive(void)
123{ 123{
124 spin_lock(&esb_lock); 124 spin_lock(&esb_lock);
125 esb_unlock_registers(); 125 esb_unlock_registers();
126 writew(0x10, ESB_RELOAD_REG); 126 writew(ESB_WDT_RELOAD, ESB_RELOAD_REG);
127 /* FIXME: Do we need to flush anything here? */ 127 /* FIXME: Do we need to flush anything here? */
128 spin_unlock(&esb_lock); 128 spin_unlock(&esb_lock);
129} 129}
@@ -153,7 +153,7 @@ static int esb_timer_set_heartbeat(int time)
153 153
154 /* Reload */ 154 /* Reload */
155 esb_unlock_registers(); 155 esb_unlock_registers();
156 writew(0x10, ESB_RELOAD_REG); 156 writew(ESB_WDT_RELOAD, ESB_RELOAD_REG);
157 157
158 /* FIXME: Do we need to flush everything out? */ 158 /* FIXME: Do we need to flush everything out? */
159 159
diff --git a/drivers/char/watchdog/i6300esb.h b/drivers/char/watchdog/i6300esb.h
index b5b47e3dda1a..20c923bbb1c9 100644
--- a/drivers/char/watchdog/i6300esb.h
+++ b/drivers/char/watchdog/i6300esb.h
@@ -54,6 +54,8 @@
54#define ESB_WDT_FREQ ( 0x01 << 2 ) /* Decrement frequency */ 54#define ESB_WDT_FREQ ( 0x01 << 2 ) /* Decrement frequency */
55#define ESB_WDT_INTTYPE ( 0x11 << 0 ) /* Interrupt type on timer1 timeout */ 55#define ESB_WDT_INTTYPE ( 0x11 << 0 ) /* Interrupt type on timer1 timeout */
56 56
57/* Reload register bits */
58#define ESB_WDT_RELOAD ( 0x01 << 8 ) /* prevent timeout */
57 59
58/* 60/*
59 * Some magic constants 61 * Some magic constants