Skip to content
Snippets Groups Projects
Commit bd858e49 authored by Johannes Thumshirn's avatar Johannes Thumshirn Committed by Wim Van Sebroeck
Browse files

watchdog: menz069_wdt: fix timeout setting


When setting the timeout for the menz069_wdt watchdog driver, we
erroneously read from the 'watchdog value register' (WVR) instead of the
'watchdog timer register' (WTR) and then write the value back into WTR.

This can potentially lead to wrong timeouts and wrong enable bit settings.

Signed-off-by: default avatarJohannes Thumshirn <jth@kernel.org>
Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20230418172531.177349-3-jth@kernel.org


Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
Signed-off-by: default avatarWim Van Sebroeck <wim@linux-watchdog.org>
parent 87b22656
No related branches found
No related tags found
No related merge requests found
...@@ -77,7 +77,7 @@ static int men_z069_wdt_set_timeout(struct watchdog_device *wdt, ...@@ -77,7 +77,7 @@ static int men_z069_wdt_set_timeout(struct watchdog_device *wdt,
wdt->timeout = timeout; wdt->timeout = timeout;
val = timeout * MEN_Z069_TIMER_FREQ; val = timeout * MEN_Z069_TIMER_FREQ;
reg = readw(drv->base + MEN_Z069_WVR); reg = readw(drv->base + MEN_Z069_WTR);
ena = reg & MEN_Z069_WTR_WDEN; ena = reg & MEN_Z069_WTR_WDEN;
reg = ena | val; reg = ena | val;
writew(reg, drv->base + MEN_Z069_WTR); writew(reg, drv->base + MEN_Z069_WTR);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment