]> xenbits.xensource.com Git - people/aperard/linux.git/commit
watchdog: stm32_iwdg: initialize default timeout
authorBen Wolsieffer <ben.wolsieffer@hefring.com>
Wed, 28 Feb 2024 18:27:23 +0000 (13:27 -0500)
committerWim Van Sebroeck <wim@linux-watchdog.org>
Sun, 3 Mar 2024 13:17:31 +0000 (14:17 +0100)
commitdbd7c0088b7f44aa0b9276ed3449df075a7b5b54
treec54bf6d9b2c6c36694d07fe1e6078e94e9838965
parentf4c53582530991fe5dedd124932cf06b955a0b8a
watchdog: stm32_iwdg: initialize default timeout

The driver never sets a default timeout value, therefore it is
initialized to zero. When CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED is
enabled, the watchdog is started during probe. The kernel is supposed to
automatically ping the watchdog from this point until userspace takes
over, but this does not happen if the configured timeout is zero. A zero
timeout causes watchdog_need_worker() to return false, so the heartbeat
worker does not run and the system therefore resets soon after the
driver is probed.

This patch fixes this by setting an arbitrary non-zero default timeout.
The default could be read from the hardware instead, but I didn't see
any reason to add this complexity.

This has been tested on an STM32F746.

Fixes: 85fdc63fe256 ("drivers: watchdog: stm32_iwdg: set WDOG_HW_RUNNING at probe")
Signed-off-by: Ben Wolsieffer <ben.wolsieffer@hefring.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20240228182723.12855-1-ben.wolsieffer@hefring.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
drivers/watchdog/stm32_iwdg.c