]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
watchdog: dw_wdt: Fix default timeout
authorSebastian Reichel <sebastian.reichel@collabora.com>
Thu, 17 Jul 2025 16:55:02 +0000 (18:55 +0200)
committerWim Van Sebroeck <wim@linux-watchdog.org>
Mon, 21 Jul 2025 09:10:33 +0000 (11:10 +0200)
The Synopsys Watchdog driver sets the default timeout to 30 seconds,
but on some devices this is not a valid timeout. E.g. on RK3588 the
actual timeout being used is 44 seconds instead.

Once the watchdog is started the value is updated accordingly, but
it would be better to expose a sensible timeout to userspace without
the need to first start the watchdog.

Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20250717-dw-wdt-fix-initial-timeout-v1-1-86dc864d48dd@kernel.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
drivers/watchdog/dw_wdt.c

index 26efca9ae0e7d2fea1b2eaf68085a70829b62b3a..c3fbb6068c520133c8a4ca97313706e877857a7f 100644 (file)
@@ -644,6 +644,8 @@ static int dw_wdt_drv_probe(struct platform_device *pdev)
        } else {
                wdd->timeout = DW_WDT_DEFAULT_SECONDS;
                watchdog_init_timeout(wdd, 0, dev);
+               /* Limit timeout value to hardware constraints. */
+               dw_wdt_set_timeout(wdd, wdd->timeout);
        }
 
        platform_set_drvdata(pdev, dw_wdt);