diff options
author | Dale Farnsworth <dale@farnsworth.org> | 2007-07-24 14:16:29 -0400 |
---|---|---|
committer | Wim Van Sebroeck <wim@iguana.be> | 2007-07-24 17:16:15 -0400 |
commit | 85d57238d2ff9d95892dd1f266b85d2359d48dcc (patch) | |
tree | c1141dfe2a22d3b354296acca2ed201b4543955e /drivers/char/watchdog/mv64x60_wdt.c | |
parent | 94796f908788b3ea2b6e60e5272f4e26cea3fc22 (diff) |
[WATCHDOG] mv64x60_wdt: Add WDIOC_SETOPTIONS ioctl support
Allow the watchdog timer to be enabled or disabled via the
WDIOC_SETOPTIONS ioctl.
Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Diffstat (limited to 'drivers/char/watchdog/mv64x60_wdt.c')
-rw-r--r-- | drivers/char/watchdog/mv64x60_wdt.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/char/watchdog/mv64x60_wdt.c b/drivers/char/watchdog/mv64x60_wdt.c index e990e3af8be4..7b4812776382 100644 --- a/drivers/char/watchdog/mv64x60_wdt.c +++ b/drivers/char/watchdog/mv64x60_wdt.c | |||
@@ -132,6 +132,7 @@ static int mv64x60_wdt_ioctl(struct inode *inode, struct file *file, | |||
132 | unsigned int cmd, unsigned long arg) | 132 | unsigned int cmd, unsigned long arg) |
133 | { | 133 | { |
134 | int timeout; | 134 | int timeout; |
135 | int options; | ||
135 | void __user *argp = (void __user *)arg; | 136 | void __user *argp = (void __user *)arg; |
136 | static struct watchdog_info info = { | 137 | static struct watchdog_info info = { |
137 | .options = WDIOF_SETTIMEOUT | | 138 | .options = WDIOF_SETTIMEOUT | |
@@ -157,7 +158,15 @@ static int mv64x60_wdt_ioctl(struct inode *inode, struct file *file, | |||
157 | return -EOPNOTSUPP; | 158 | return -EOPNOTSUPP; |
158 | 159 | ||
159 | case WDIOC_SETOPTIONS: | 160 | case WDIOC_SETOPTIONS: |
160 | return -EOPNOTSUPP; | 161 | if (get_user(options, (int __user *)argp)) |
162 | return -EFAULT; | ||
163 | |||
164 | if (options & WDIOS_DISABLECARD) | ||
165 | mv64x60_wdt_handler_disable(); | ||
166 | |||
167 | if (options & WDIOS_ENABLECARD) | ||
168 | mv64x60_wdt_handler_enable(); | ||
169 | break; | ||
161 | 170 | ||
162 | case WDIOC_KEEPALIVE: | 171 | case WDIOC_KEEPALIVE: |
163 | mv64x60_wdt_service(); | 172 | mv64x60_wdt_service(); |