]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 20 Aug 2025 16:30:41 +0000 (18:30 +0200)
[ Upstream commit ac3dbb91e0167d017f44701dd51c1efe30d0c256 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/watchdog/dw_wdt.c

index 84dca3695f862dc2a2c26717c8cbb27cad7db80e..e5e6d7f159180fef13ab906495480823a9799df0 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);