aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/watchdog
diff options
context:
space:
mode:
authorAndrew Chew <achew@nvidia.com>2015-11-09 16:11:38 -0800
committerWim Van Sebroeck <wim@iguana.be>2015-11-23 08:59:45 +0100
commit0879eee13f9cf79793ce88fb41bf0dd2a51093c0 (patch)
treeb4e3232a1c29cea1ab673b74fcedfb3f25c4381f /drivers/watchdog
parentwatchdog: w83977f_wdt: underflow in wdt_set_timeout() (diff)
downloadlinux-dev-0879eee13f9cf79793ce88fb41bf0dd2a51093c0.tar.xz
linux-dev-0879eee13f9cf79793ce88fb41bf0dd2a51093c0.zip
watchdog: tegra: Stop watchdog first if restarting
If we need to restart the watchdog due to someone changing the timeout interval, stop the watchdog before restarting it. Otherwise, the new timeout doesn't seem to take. Signed-off-by: Andrew Chew <achew@nvidia.com> Reviewed-by: Thierry Reding <treding@nvidia.com> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Diffstat (limited to 'drivers/watchdog')
-rw-r--r--drivers/watchdog/tegra_wdt.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/watchdog/tegra_wdt.c b/drivers/watchdog/tegra_wdt.c
index 7f97cdd53f29..9ec57608da82 100644
--- a/drivers/watchdog/tegra_wdt.c
+++ b/drivers/watchdog/tegra_wdt.c
@@ -140,8 +140,10 @@ static int tegra_wdt_set_timeout(struct watchdog_device *wdd,
{
wdd->timeout = timeout;
- if (watchdog_active(wdd))
+ if (watchdog_active(wdd)) {
+ tegra_wdt_stop(wdd);
return tegra_wdt_start(wdd);
+ }
return 0;
}