[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <a2d036ae-de4e-770d-03d1-e4147ddaee10@roeck-us.net>
Date: Tue, 18 Apr 2023 11:21:29 -0700
From: Guenter Roeck <linux@...ck-us.net>
To: Johannes Thumshirn <jth@...nel.org>,
Wim Van Sebroeck <wim@...ux-watchdog.org>
Cc: linux-watchdog@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/2] watchdog: menz069_wdt: fix timeout setting
On 4/18/23 10:25, Johannes Thumshirn wrote:
> 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: Johannes Thumshirn <jth@...nel.org>
Reviewed-by: Guenter Roeck <linux@...ck-us.net>
> ---
> drivers/watchdog/menz69_wdt.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/watchdog/menz69_wdt.c b/drivers/watchdog/menz69_wdt.c
> index bca0938f3429..3c98030b9fcd 100644
> --- a/drivers/watchdog/menz69_wdt.c
> +++ b/drivers/watchdog/menz69_wdt.c
> @@ -77,7 +77,7 @@ static int men_z069_wdt_set_timeout(struct watchdog_device *wdt,
> wdt->timeout = timeout;
> 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;
> reg = ena | val;
> writew(reg, drv->base + MEN_Z069_WTR);
Powered by blists - more mailing lists