Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

watchdog: mpcore_wdt: Add suspend/resume support.

Add support for suspend and resume to the MPCore watchdog driver.

Signed-off-by: Peter Fordham <peter.fordham@gmail.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>

authored by

Peter Fordham and committed by
Wim Van Sebroeck
641e4f44 fad0a9dd

+23
+23
drivers/watchdog/mpcore_wdt.c
··· 407 407 return 0; 408 408 } 409 409 410 + #ifdef CONFIG_PM 411 + static int mpcore_wdt_suspend(struct platform_device *dev, pm_message_t msg) 412 + { 413 + struct mpcore_wdt *wdt = platform_get_drvdata(dev); 414 + mpcore_wdt_stop(wdt); /* Turn the WDT off */ 415 + return 0; 416 + } 417 + 418 + static int mpcore_wdt_resume(struct platform_device *dev) 419 + { 420 + struct mpcore_wdt *wdt = platform_get_drvdata(dev); 421 + /* re-activate timer */ 422 + if (test_bit(0, &wdt->timer_alive)) 423 + mpcore_wdt_start(wdt); 424 + return 0; 425 + } 426 + #else 427 + #define mpcore_wdt_suspend NULL 428 + #define mpcore_wdt_resume NULL 429 + #endif 430 + 410 431 /* work with hotplug and coldplug */ 411 432 MODULE_ALIAS("platform:mpcore_wdt"); 412 433 413 434 static struct platform_driver mpcore_wdt_driver = { 414 435 .probe = mpcore_wdt_probe, 415 436 .remove = __devexit_p(mpcore_wdt_remove), 437 + .suspend = mpcore_wdt_suspend, 438 + .resume = mpcore_wdt_resume, 416 439 .shutdown = mpcore_wdt_shutdown, 417 440 .driver = { 418 441 .owner = THIS_MODULE,