diff options
Diffstat (limited to 'drivers/watchdog/at32ap700x_wdt.c')
-rw-r--r-- | drivers/watchdog/at32ap700x_wdt.c | 43 |
1 files changed, 21 insertions, 22 deletions
diff --git a/drivers/watchdog/at32ap700x_wdt.c b/drivers/watchdog/at32ap700x_wdt.c index ae0fca5e8749..e8ae638e5804 100644 --- a/drivers/watchdog/at32ap700x_wdt.c +++ b/drivers/watchdog/at32ap700x_wdt.c | |||
@@ -212,8 +212,8 @@ static struct watchdog_info at32_wdt_info = { | |||
212 | /* | 212 | /* |
213 | * Handle commands from user-space. | 213 | * Handle commands from user-space. |
214 | */ | 214 | */ |
215 | static int at32_wdt_ioctl(struct inode *inode, struct file *file, | 215 | static long at32_wdt_ioctl(struct file *file, |
216 | unsigned int cmd, unsigned long arg) | 216 | unsigned int cmd, unsigned long arg) |
217 | { | 217 | { |
218 | int ret = -ENOTTY; | 218 | int ret = -ENOTTY; |
219 | int time; | 219 | int time; |
@@ -221,27 +221,10 @@ static int at32_wdt_ioctl(struct inode *inode, struct file *file, | |||
221 | int __user *p = argp; | 221 | int __user *p = argp; |
222 | 222 | ||
223 | switch (cmd) { | 223 | switch (cmd) { |
224 | case WDIOC_KEEPALIVE: | ||
225 | at32_wdt_pat(); | ||
226 | ret = 0; | ||
227 | break; | ||
228 | case WDIOC_GETSUPPORT: | 224 | case WDIOC_GETSUPPORT: |
229 | ret = copy_to_user(argp, &at32_wdt_info, | 225 | ret = copy_to_user(argp, &at32_wdt_info, |
230 | sizeof(at32_wdt_info)) ? -EFAULT : 0; | 226 | sizeof(at32_wdt_info)) ? -EFAULT : 0; |
231 | break; | 227 | break; |
232 | case WDIOC_SETTIMEOUT: | ||
233 | ret = get_user(time, p); | ||
234 | if (ret) | ||
235 | break; | ||
236 | ret = at32_wdt_settimeout(time); | ||
237 | if (ret) | ||
238 | break; | ||
239 | /* Enable new time value */ | ||
240 | at32_wdt_start(); | ||
241 | /* fall through */ | ||
242 | case WDIOC_GETTIMEOUT: | ||
243 | ret = put_user(wdt->timeout, p); | ||
244 | break; | ||
245 | case WDIOC_GETSTATUS: | 228 | case WDIOC_GETSTATUS: |
246 | ret = put_user(0, p); | 229 | ret = put_user(0, p); |
247 | break; | 230 | break; |
@@ -258,6 +241,23 @@ static int at32_wdt_ioctl(struct inode *inode, struct file *file, | |||
258 | at32_wdt_start(); | 241 | at32_wdt_start(); |
259 | ret = 0; | 242 | ret = 0; |
260 | break; | 243 | break; |
244 | case WDIOC_KEEPALIVE: | ||
245 | at32_wdt_pat(); | ||
246 | ret = 0; | ||
247 | break; | ||
248 | case WDIOC_SETTIMEOUT: | ||
249 | ret = get_user(time, p); | ||
250 | if (ret) | ||
251 | break; | ||
252 | ret = at32_wdt_settimeout(time); | ||
253 | if (ret) | ||
254 | break; | ||
255 | /* Enable new time value */ | ||
256 | at32_wdt_start(); | ||
257 | /* fall through */ | ||
258 | case WDIOC_GETTIMEOUT: | ||
259 | ret = put_user(wdt->timeout, p); | ||
260 | break; | ||
261 | } | 261 | } |
262 | 262 | ||
263 | return ret; | 263 | return ret; |
@@ -283,7 +283,7 @@ static ssize_t at32_wdt_write(struct file *file, const char __user *data, | |||
283 | */ | 283 | */ |
284 | for (i = 0; i != len; i++) { | 284 | for (i = 0; i != len; i++) { |
285 | char c; | 285 | char c; |
286 | if (get_user(c, data+i)) | 286 | if (get_user(c, data + i)) |
287 | return -EFAULT; | 287 | return -EFAULT; |
288 | if (c == 'V') | 288 | if (c == 'V') |
289 | expect_release = 42; | 289 | expect_release = 42; |
@@ -298,7 +298,7 @@ static ssize_t at32_wdt_write(struct file *file, const char __user *data, | |||
298 | static const struct file_operations at32_wdt_fops = { | 298 | static const struct file_operations at32_wdt_fops = { |
299 | .owner = THIS_MODULE, | 299 | .owner = THIS_MODULE, |
300 | .llseek = no_llseek, | 300 | .llseek = no_llseek, |
301 | .ioctl = at32_wdt_ioctl, | 301 | .unlocked_ioctl = at32_wdt_ioctl, |
302 | .open = at32_wdt_open, | 302 | .open = at32_wdt_open, |
303 | .release = at32_wdt_close, | 303 | .release = at32_wdt_close, |
304 | .write = at32_wdt_write, | 304 | .write = at32_wdt_write, |
@@ -391,7 +391,6 @@ static int __exit at32_wdt_remove(struct platform_device *pdev) | |||
391 | wdt = NULL; | 391 | wdt = NULL; |
392 | platform_set_drvdata(pdev, NULL); | 392 | platform_set_drvdata(pdev, NULL); |
393 | } | 393 | } |
394 | |||
395 | return 0; | 394 | return 0; |
396 | } | 395 | } |
397 | 396 | ||