]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
watchdog: bd96801_wdt: Fix timeout for enabled WDG
authorMatti Vaittinen <mazziesaccount@gmail.com>
Fri, 31 Jul 2026 09:36:28 +0000 (12:36 +0300)
committerGuenter Roeck <linux@roeck-us.net>
Fri, 31 Jul 2026 14:19:08 +0000 (07:19 -0700)
commit1246aa2b6ccc8944676bd24ff3e37cc56b93b51b
tree856a779f4df22c7fd22cb0f9bc1987beb04dd3ac
parent8d2b10eef6f3b1336be2d1197db29b0c697f1d41
watchdog: bd96801_wdt: Fix timeout for enabled WDG

When watchdog is enabled at the probe time, the bd96801 driver retrieves
the timeout configuration from the registers to set-up the heart-beat
values.

As Sashiko pointed out at
https://lore.kernel.org/all/20260722085819.495211F000E9@smtp.kernel.org/
the timeout values are incorrectly computed in driver, resulting wrong
heartbeat. This leads to devere problems if watchdog was enabled at probe
time.

According to the data-sheet, the "too fast" ping limit is configured as
multiple of FASTNG_MIN. Furthermore, the "too slow" ping limit is
configured as multiples of "too fast" timeout. The FASTNG_MIN is set to
11, meaning 1.1 mS and "too fast" and "too slow" limits are computed from
this. Hence, converting the limits to mS should be done by dividing by 10,
not by dividing by USEC_PER_MSEC.

Fix this by dividing the timeout values with correct scaling factor.

While at it, fix whitespace problem (double empty line).

Signed-off-by: Matti Vaittinen <mazziesaccount@gmail.com>
Fixes: 09dad69757b6 ("watchdog: ROHM BD96801 PMIC WDG driver")
Link: https://lore.kernel.org/r/amxskHmQbi9v-8_l@mva-rohm
[groeck: Added reference to whitespace change to description]
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/watchdog/bd96801_wdt.c