watchdog: sbsa: Test WDOG_HW_RUNNING bit in suspend and resume
authorWang Wensheng <wangwensheng4@huawei.com>
Wed, 1 Mar 2023 11:37:02 +0000 (11:37 +0000)
committerWim Van Sebroeck <wim@linux-watchdog.org>
Sat, 22 Apr 2023 10:53:53 +0000 (12:53 +0200)
commit74d6c68c74fac3e6bdc28fba69889ed7ef05a7f8
tree4c2dfbe33cd34d9c385b0a212e7594697c7186e2
parent96c6e56d3ed46840d575102b7b76a760b28de55b
watchdog: sbsa: Test WDOG_HW_RUNNING bit in suspend and resume

If the sbsa_gwdt is enabled by BIOS, the kernel set WDOG_HW_RUNNING bit
and keep it alive before anyone else would open it. When system suspend,
the sbsa_gwdt would not be disabled because WDOG_ACTIVE is not set. Then
the sbsa_gwdt would reach timeout since no one touch it during system
suspend.

To solve this, just test WDOG_HW_RUNNING bit in suspend and disable the
sbsa_gwdt if the bit is set, then reopen it accordingly in resume
process.

Signed-off-by: Wang Wensheng <wangwensheng4@huawei.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20230301113702.76437-1-wangwensheng4@huawei.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
drivers/watchdog/sbsa_gwdt.c