2024-02-14 16:50:40

by Jerry Hoemann

[permalink] [raw]
Subject: [PATCH v2 0/1] watchdog/hpwdt: Support Suspend and Resume

Add suspend/resume support to hpwdt.

Changes from v1
---
1) dropped dev_dbg messages in suspend/resume.

2) switch from DEFINE_SIMPLE_DEV_PM_OPS to LATE_SYSTEM_SLEEP_PM_OPS




Jerry Hoemann (1):
watchdog/hpwdt: Support Suspend and Resume

drivers/watchdog/hpwdt.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

--
2.43.0



2024-02-14 16:51:32

by Jerry Hoemann

[permalink] [raw]
Subject: [PATCH v2 1/1] watchdog/hpwdt: Support Suspend and Resume

Add call backs to support suspend and resume.

Signed-off-by: Jerry Hoemann <[email protected]>
---
drivers/watchdog/hpwdt.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c
index 138dc8d8ca3d..ae30e394d176 100644
--- a/drivers/watchdog/hpwdt.c
+++ b/drivers/watchdog/hpwdt.c
@@ -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");
--
2.43.0


2024-02-14 16:56:54

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH v2 1/1] watchdog/hpwdt: Support Suspend and Resume

On 2/14/24 08:49, Jerry Hoemann wrote:
> Add call backs to support suspend and resume.
>
> Signed-off-by: Jerry Hoemann <[email protected]>

Reviewed-by: Guenter Roeck <[email protected]>

> ---
> drivers/watchdog/hpwdt.c | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c
> index 138dc8d8ca3d..ae30e394d176 100644
> --- a/drivers/watchdog/hpwdt.c
> +++ b/drivers/watchdog/hpwdt.c
> @@ -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");