| From a6d9f400753e0d55ea035d175d58df988005a05a Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 3 Apr 2020 15:07:28 +0200 |
| Subject: watchdog: da9062: No need to ping manually before setting timeout |
| |
| From: Stefan Riedmueller <s.riedmueller@phytec.de> |
| |
| [ Upstream commit a0948ddba65f4f6d3cfb5e2b84685485d0452966 ] |
| |
| There is actually no need to ping the watchdog before disabling it |
| during timeout change. Disabling the watchdog already takes care of |
| resetting the counter. |
| |
| This fixes an issue during boot when the userspace watchdog handler takes |
| over and the watchdog is already running. Opening the watchdog in this case |
| leads to the first ping and directly after that without the required |
| heartbeat delay a second ping issued by the set_timeout call. Due to the |
| missing delay this resulted in a reset. |
| |
| Signed-off-by: Stefan Riedmueller <s.riedmueller@phytec.de> |
| Reviewed-by: Guenter Roeck <linux@roeck-us.net> |
| Reviewed-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com> |
| Link: https://lore.kernel.org/r/20200403130728.39260-3-s.riedmueller@phytec.de |
| 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/da9062_wdt.c | 5 ----- |
| 1 file changed, 5 deletions(-) |
| |
| diff --git a/drivers/watchdog/da9062_wdt.c b/drivers/watchdog/da9062_wdt.c |
| index 79383ff620199..1443386bb590b 100644 |
| --- a/drivers/watchdog/da9062_wdt.c |
| +++ b/drivers/watchdog/da9062_wdt.c |
| @@ -94,11 +94,6 @@ static int da9062_wdt_update_timeout_register(struct da9062_watchdog *wdt, |
| unsigned int regval) |
| { |
| struct da9062 *chip = wdt->hw; |
| - int ret; |
| - |
| - ret = da9062_reset_watchdog_timer(wdt); |
| - if (ret) |
| - return ret; |
| |
| return regmap_update_bits(chip->regmap, |
| DA9062AA_CONTROL_D, |
| -- |
| 2.25.1 |
| |