From 99e13f8b9e4db6f142ade90c50eb76c7c194bd50 Mon Sep 17 00:00:00 2001 From: Wim Van Sebroeck Date: Mon, 1 Sep 2003 00:33:33 +0200 Subject: [PATCH] [WATCHDOG] wafer5823wdt.c - patch3 fix MODULE_PARM_DESC for timeout add WDIOC_SETOPTIONS functionality --- drivers/char/watchdog/wafer5823wdt.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/drivers/char/watchdog/wafer5823wdt.c b/drivers/char/watchdog/wafer5823wdt.c index a893bc8adf4e8..b855ef5652720 100644 --- a/drivers/char/watchdog/wafer5823wdt.c +++ b/drivers/char/watchdog/wafer5823wdt.c @@ -66,7 +66,7 @@ MODULE_PARM_DESC(wdt_start, "Wafer 5823 WDT 'start' io port (default 0x443)"); static int timeout = WD_TIMO; /* in seconds */ module_param(timeout, int, 0); -MODULE_PARM_DESC(timeout, "Watchdog timeout in seconds. 1<= timeout <=255, default=" __MODULE_STRING(WATCHDOG_TIMEOUT) "."); +MODULE_PARM_DESC(timeout, "Watchdog timeout in seconds. 1<= timeout <=255, default=" __MODULE_STRING(WD_TIMO) "."); #ifdef CONFIG_WATCHDOG_NOWAYOUT static int nowayout = 1; @@ -166,6 +166,26 @@ static int wafwdt_ioctl(struct inode *inode, struct file *file, unsigned int cmd case WDIOC_GETTIMEOUT: return put_user(timeout, (int *)arg); + case WDIOC_SETOPTIONS: + { + int options, retval = -EINVAL; + + if (get_user(options, (int *)arg)) + return -EFAULT; + + if (options & WDIOS_DISABLECARD) { + wafwdt_start(); + retval = 0; + } + + if (options & WDIOS_ENABLECARD) { + wafwdt_stop(); + retval = 0; + } + + return retval; + } + default: return -ENOTTY; } -- 2.53.0