diff options
Diffstat (limited to 'drivers/char/watchdog/s3c2410_wdt.c')
-rw-r--r-- | drivers/char/watchdog/s3c2410_wdt.c | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/drivers/char/watchdog/s3c2410_wdt.c b/drivers/char/watchdog/s3c2410_wdt.c index 3625b2601b42..b732020acadb 100644 --- a/drivers/char/watchdog/s3c2410_wdt.c +++ b/drivers/char/watchdog/s3c2410_wdt.c | |||
@@ -464,32 +464,28 @@ static void s3c2410wdt_shutdown(struct device *dev) | |||
464 | static unsigned long wtcon_save; | 464 | static unsigned long wtcon_save; |
465 | static unsigned long wtdat_save; | 465 | static unsigned long wtdat_save; |
466 | 466 | ||
467 | static int s3c2410wdt_suspend(struct device *dev, pm_message_t state, u32 level) | 467 | static int s3c2410wdt_suspend(struct device *dev, pm_message_t state) |
468 | { | 468 | { |
469 | if (level == SUSPEND_POWER_DOWN) { | 469 | /* Save watchdog state, and turn it off. */ |
470 | /* Save watchdog state, and turn it off. */ | 470 | wtcon_save = readl(wdt_base + S3C2410_WTCON); |
471 | wtcon_save = readl(wdt_base + S3C2410_WTCON); | 471 | wtdat_save = readl(wdt_base + S3C2410_WTDAT); |
472 | wtdat_save = readl(wdt_base + S3C2410_WTDAT); | ||
473 | 472 | ||
474 | /* Note that WTCNT doesn't need to be saved. */ | 473 | /* Note that WTCNT doesn't need to be saved. */ |
475 | s3c2410wdt_stop(); | 474 | s3c2410wdt_stop(); |
476 | } | ||
477 | 475 | ||
478 | return 0; | 476 | return 0; |
479 | } | 477 | } |
480 | 478 | ||
481 | static int s3c2410wdt_resume(struct device *dev, u32 level) | 479 | static int s3c2410wdt_resume(struct device *dev) |
482 | { | 480 | { |
483 | if (level == RESUME_POWER_ON) { | 481 | /* Restore watchdog state. */ |
484 | /* Restore watchdog state. */ | ||
485 | 482 | ||
486 | writel(wtdat_save, wdt_base + S3C2410_WTDAT); | 483 | writel(wtdat_save, wdt_base + S3C2410_WTDAT); |
487 | writel(wtdat_save, wdt_base + S3C2410_WTCNT); /* Reset count */ | 484 | writel(wtdat_save, wdt_base + S3C2410_WTCNT); /* Reset count */ |
488 | writel(wtcon_save, wdt_base + S3C2410_WTCON); | 485 | writel(wtcon_save, wdt_base + S3C2410_WTCON); |
489 | 486 | ||
490 | printk(KERN_INFO PFX "watchdog %sabled\n", | 487 | printk(KERN_INFO PFX "watchdog %sabled\n", |
491 | (wtcon_save & S3C2410_WTCON_ENABLE) ? "en" : "dis"); | 488 | (wtcon_save & S3C2410_WTCON_ENABLE) ? "en" : "dis"); |
492 | } | ||
493 | 489 | ||
494 | return 0; | 490 | return 0; |
495 | } | 491 | } |