patch-2.4.18 linux/drivers/char/i810-tco.c
Next file: linux/drivers/char/ib700wdt.c
Previous file: linux/drivers/char/generic_serial.c
Back to the patch index
Back to the overall index
- Lines: 41
- Date:
Thu Jan 17 22:00:03 2002
- Orig file:
linux.orig/drivers/char/i810-tco.c
- Orig date:
Mon Feb 18 20:18:39 2002
diff -Naur -X /home/marcelo/lib/dontdiff linux.orig/drivers/char/i810-tco.c linux/drivers/char/i810-tco.c
@@ -181,7 +181,7 @@
/*
* Shut off the timer.
*/
-#ifdef CONFIG_WATCHDOG_NOWAYOUT
+#ifndef CONFIG_WATCHDOG_NOWAYOUT
tco_timer_stop ();
timer_alive = 0;
#endif
@@ -208,8 +208,10 @@
static int i810tco_ioctl (struct inode *inode, struct file *file,
unsigned int cmd, unsigned long arg)
{
+ int new_margin, u_margin;
+
static struct watchdog_info ident = {
- 0,
+ WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING,
0,
"i810 TCO timer"
};
@@ -229,6 +231,19 @@
case WDIOC_KEEPALIVE:
tco_timer_reload ();
return 0;
+ case WDIOC_SETTIMEOUT:
+ if (get_user(u_margin, (int *) arg))
+ return -EFAULT;
+ new_margin = (u_margin * 10 + 5) / 6;
+ if ((new_margin < 3) || (new_margin > 63))
+ return -EINVAL;
+ if (tco_timer_settimer((unsigned char)new_margin))
+ return -EINVAL;
+ i810_margin = new_margin;
+ tco_timer_reload();
+ /* Fall */
+ case WDIOC_GETTIMEOUT:
+ return put_user((int)(i810_margin * 6 / 10), (int *) arg);
}
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)