diff options
author | Jean Delvare <jdelvare@suse.de> | 2015-06-21 09:32:33 +0200 |
---|---|---|
committer | Wim Van Sebroeck <wim@iguana.be> | 2015-06-22 15:54:36 +0200 |
commit | 46c80b20d07e9309677d81e1226dc30a055b63b7 (patch) | |
tree | 7dee31b813cf2bf913a78d9f24a7fee8b3daa3bb | |
parent | a47911e99fe8d2080426951711a7e776d331ba77 (diff) | |
download | linux-46c80b20d07e9309677d81e1226dc30a055b63b7.tar.bz2 |
watchdog: hpwdt: Add support for WDIOC_SETOPTIONS
WDIOC_SETOPTIONS makes it possible to disable and re-enable the
watchdog timer while the hpwdt driver is loaded.
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
-rw-r--r-- | drivers/watchdog/hpwdt.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c index ada3e44f9932..286369d4f0f5 100644 --- a/drivers/watchdog/hpwdt.c +++ b/drivers/watchdog/hpwdt.c @@ -588,7 +588,7 @@ static long hpwdt_ioctl(struct file *file, unsigned int cmd, { void __user *argp = (void __user *)arg; int __user *p = argp; - int new_margin; + int new_margin, options; int ret = -ENOTTY; switch (cmd) { @@ -608,6 +608,20 @@ static long hpwdt_ioctl(struct file *file, unsigned int cmd, ret = 0; break; + case WDIOC_SETOPTIONS: + ret = get_user(options, p); + if (ret) + break; + + if (options & WDIOS_DISABLECARD) + hpwdt_stop(); + + if (options & WDIOS_ENABLECARD) { + hpwdt_start(); + hpwdt_ping(); + } + break; + case WDIOC_SETTIMEOUT: ret = get_user(new_margin, p); if (ret) |