watchdog/hpwdt: Support Suspend and Resume
authorJerry Hoemann <jerry.hoemann@hpe.com>
Wed, 14 Feb 2024 16:49:40 +0000 (09:49 -0700)
committerWim Van Sebroeck <wim@linux-watchdog.org>
Sun, 3 Mar 2024 13:17:30 +0000 (14:17 +0100)
Add call backs to support suspend and resume.

Signed-off-by: Jerry Hoemann <jerry.hoemann@hpe.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20240214164941.630775-2-jerry.hoemann@hpe.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
drivers/watchdog/hpwdt.c

index 138dc8d8ca3d8a6b4ae4114137a6bc28cb3f09a7..ae30e394d176e5714ee58b336843485f338db5a6 100644 (file)
@@ -378,11 +378,36 @@ static void hpwdt_exit(struct pci_dev *dev)
        pci_disable_device(dev);
 }
 
+static int hpwdt_suspend(struct device *dev)
+{
+       if (watchdog_active(&hpwdt_dev))
+               hpwdt_stop();
+
+       return 0;
+}
+
+static int hpwdt_resume(struct device *dev)
+{
+       if (watchdog_active(&hpwdt_dev))
+               hpwdt_start(&hpwdt_dev);
+
+       return 0;
+}
+
+static const struct dev_pm_ops hpwdt_pm_ops = {
+       LATE_SYSTEM_SLEEP_PM_OPS(hpwdt_suspend, hpwdt_resume)
+};
+
 static struct pci_driver hpwdt_driver = {
        .name = "hpwdt",
        .id_table = hpwdt_devices,
        .probe = hpwdt_init_one,
        .remove = hpwdt_exit,
+
+       .driver = {
+               .name = "hpwdt",
+               .pm = &hpwdt_pm_ops,
+       }
 };
 
 MODULE_AUTHOR("Tom Mingarelli");