diff options
Diffstat (limited to 'drivers/watchdog/i6300esb.c')
-rw-r--r-- | drivers/watchdog/i6300esb.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/drivers/watchdog/i6300esb.c b/drivers/watchdog/i6300esb.c index c768cb718904..c13383f7fcb9 100644 --- a/drivers/watchdog/i6300esb.c +++ b/drivers/watchdog/i6300esb.c | |||
@@ -9,18 +9,18 @@ | |||
9 | * as published by the Free Software Foundation; either version | 9 | * as published by the Free Software Foundation; either version |
10 | * 2 of the License, or (at your option) any later version. | 10 | * 2 of the License, or (at your option) any later version. |
11 | * | 11 | * |
12 | * based on i810-tco.c which is in turn based on softdog.c | 12 | * based on i810-tco.c which is in turn based on softdog.c |
13 | * | 13 | * |
14 | * The timer is implemented in the following I/O controller hubs: | 14 | * The timer is implemented in the following I/O controller hubs: |
15 | * (See the intel documentation on http://developer.intel.com.) | 15 | * (See the intel documentation on http://developer.intel.com.) |
16 | * 6300ESB chip : document number 300641-003 | 16 | * 6300ESB chip : document number 300641-003 |
17 | * | 17 | * |
18 | * 2004YYZZ Ross Biro | 18 | * 2004YYZZ Ross Biro |
19 | * Initial version 0.01 | 19 | * Initial version 0.01 |
20 | * 2004YYZZ Ross Biro | 20 | * 2004YYZZ Ross Biro |
21 | * Version 0.02 | 21 | * Version 0.02 |
22 | * 20050210 David Härdeman <david@2gen.com> | 22 | * 20050210 David Härdeman <david@2gen.com> |
23 | * Ported driver to kernel 2.6 | 23 | * Ported driver to kernel 2.6 |
24 | */ | 24 | */ |
25 | 25 | ||
26 | /* | 26 | /* |
@@ -108,7 +108,8 @@ MODULE_PARM_DESC(nowayout, | |||
108 | * reload register. After this the appropriate registers can be written | 108 | * reload register. After this the appropriate registers can be written |
109 | * to once before they need to be unlocked again. | 109 | * to once before they need to be unlocked again. |
110 | */ | 110 | */ |
111 | static inline void esb_unlock_registers(void) { | 111 | static inline void esb_unlock_registers(void) |
112 | { | ||
112 | writeb(ESB_UNLOCK1, ESB_RELOAD_REG); | 113 | writeb(ESB_UNLOCK1, ESB_RELOAD_REG); |
113 | writeb(ESB_UNLOCK2, ESB_RELOAD_REG); | 114 | writeb(ESB_UNLOCK2, ESB_RELOAD_REG); |
114 | } | 115 | } |
@@ -169,7 +170,7 @@ static int esb_timer_set_heartbeat(int time) | |||
169 | 170 | ||
170 | /* Write timer 2 */ | 171 | /* Write timer 2 */ |
171 | esb_unlock_registers(); | 172 | esb_unlock_registers(); |
172 | writel(val, ESB_TIMER2_REG); | 173 | writel(val, ESB_TIMER2_REG); |
173 | 174 | ||
174 | /* Reload */ | 175 | /* Reload */ |
175 | esb_unlock_registers(); | 176 | esb_unlock_registers(); |
@@ -196,7 +197,7 @@ static int esb_timer_read(void) | |||
196 | } | 197 | } |
197 | 198 | ||
198 | /* | 199 | /* |
199 | * /dev/watchdog handling | 200 | * /dev/watchdog handling |
200 | */ | 201 | */ |
201 | 202 | ||
202 | static int esb_open(struct inode *inode, struct file *file) | 203 | static int esb_open(struct inode *inode, struct file *file) |
@@ -242,7 +243,7 @@ static ssize_t esb_write(struct file *file, const char __user *data, | |||
242 | /* scan to see whether or not we got the magic character */ | 243 | /* scan to see whether or not we got the magic character */ |
243 | for (i = 0; i != len; i++) { | 244 | for (i = 0; i != len; i++) { |
244 | char c; | 245 | char c; |
245 | if (get_user(c, data+i)) | 246 | if (get_user(c, data + i)) |
246 | return -EFAULT; | 247 | return -EFAULT; |
247 | if (c == 'V') | 248 | if (c == 'V') |
248 | esb_expect_close = 42; | 249 | esb_expect_close = 42; |
@@ -262,11 +263,11 @@ static long esb_ioctl(struct file *file, unsigned int cmd, unsigned long arg) | |||
262 | void __user *argp = (void __user *)arg; | 263 | void __user *argp = (void __user *)arg; |
263 | int __user *p = argp; | 264 | int __user *p = argp; |
264 | static struct watchdog_info ident = { | 265 | static struct watchdog_info ident = { |
265 | .options = WDIOF_SETTIMEOUT | | 266 | .options = WDIOF_SETTIMEOUT | |
266 | WDIOF_KEEPALIVEPING | | 267 | WDIOF_KEEPALIVEPING | |
267 | WDIOF_MAGICCLOSE, | 268 | WDIOF_MAGICCLOSE, |
268 | .firmware_version = 0, | 269 | .firmware_version = 0, |
269 | .identity = ESB_MODULE_NAME, | 270 | .identity = ESB_MODULE_NAME, |
270 | }; | 271 | }; |
271 | 272 | ||
272 | switch (cmd) { | 273 | switch (cmd) { |
@@ -324,10 +325,9 @@ static long esb_ioctl(struct file *file, unsigned int cmd, unsigned long arg) | |||
324 | static int esb_notify_sys(struct notifier_block *this, | 325 | static int esb_notify_sys(struct notifier_block *this, |
325 | unsigned long code, void *unused) | 326 | unsigned long code, void *unused) |
326 | { | 327 | { |
327 | if (code == SYS_DOWN || code == SYS_HALT) { | 328 | if (code == SYS_DOWN || code == SYS_HALT) |
328 | /* Turn the WDT off */ | 329 | esb_timer_stop(); /* Turn the WDT off */ |
329 | esb_timer_stop(); | 330 | |
330 | } | ||
331 | return NOTIFY_DONE; | 331 | return NOTIFY_DONE; |
332 | } | 332 | } |
333 | 333 | ||