diff options
| -rw-r--r-- | drivers/watchdog/stmp3xxx_rtc_wdt.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/watchdog/stmp3xxx_rtc_wdt.c b/drivers/watchdog/stmp3xxx_rtc_wdt.c index 3804d5e9baea..a62b1b6decf4 100644 --- a/drivers/watchdog/stmp3xxx_rtc_wdt.c +++ b/drivers/watchdog/stmp3xxx_rtc_wdt.c | |||
| @@ -94,9 +94,33 @@ static int stmp3xxx_wdt_remove(struct platform_device *pdev) | |||
| 94 | return 0; | 94 | return 0; |
| 95 | } | 95 | } |
| 96 | 96 | ||
| 97 | static int __maybe_unused stmp3xxx_wdt_suspend(struct device *dev) | ||
| 98 | { | ||
| 99 | struct watchdog_device *wdd = &stmp3xxx_wdd; | ||
| 100 | |||
| 101 | if (watchdog_active(wdd)) | ||
| 102 | return wdt_stop(wdd); | ||
| 103 | |||
| 104 | return 0; | ||
| 105 | } | ||
| 106 | |||
| 107 | static int __maybe_unused stmp3xxx_wdt_resume(struct device *dev) | ||
| 108 | { | ||
| 109 | struct watchdog_device *wdd = &stmp3xxx_wdd; | ||
| 110 | |||
| 111 | if (watchdog_active(wdd)) | ||
| 112 | return wdt_start(wdd); | ||
| 113 | |||
| 114 | return 0; | ||
| 115 | } | ||
| 116 | |||
| 117 | static SIMPLE_DEV_PM_OPS(stmp3xxx_wdt_pm_ops, | ||
| 118 | stmp3xxx_wdt_suspend, stmp3xxx_wdt_resume); | ||
| 119 | |||
| 97 | static struct platform_driver stmp3xxx_wdt_driver = { | 120 | static struct platform_driver stmp3xxx_wdt_driver = { |
| 98 | .driver = { | 121 | .driver = { |
| 99 | .name = "stmp3xxx_rtc_wdt", | 122 | .name = "stmp3xxx_rtc_wdt", |
| 123 | .pm = &stmp3xxx_wdt_pm_ops, | ||
| 100 | }, | 124 | }, |
| 101 | .probe = stmp3xxx_wdt_probe, | 125 | .probe = stmp3xxx_wdt_probe, |
| 102 | .remove = stmp3xxx_wdt_remove, | 126 | .remove = stmp3xxx_wdt_remove, |
