]> 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>
Thu, 28 Aug 2025 14:25:59 +0000 (16:25 +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 61af5d1332ac6710ca44500b4338cc8a7ee1544f..e3e09dc38c655ec591b2cdf90d3dfae3332d0166 100644 (file)
@@ -658,6 +658,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);