]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
watchdog: dw_wdt: add stop watchdog operation
authorOleksij Rempel <o.rempel@pengutronix.de>
Tue, 26 Sep 2017 06:11:22 +0000 (08:11 +0200)
committerThadeu Lima de Souza Cascardo <cascardo@canonical.com>
Thu, 12 Apr 2018 13:04:19 +0000 (10:04 -0300)
commitf6375d39fa25fbc203bd11c571fee306d33f8ae4
tree82b90698d77b4e0e7ae9335d291985de9a19ee28
parentb4271e0b38d184eed8fd47d63925b7209185e869
watchdog: dw_wdt: add stop watchdog operation

BugLink: http://bugs.launchpad.net/bugs/1763366
[ Upstream commit 1bfe8889380890efe4943d125124f5a7b48571b0 ]

The only way of stopping the watchdog is by resetting it.
Add the watchdog op for stopping the device and reset if
a reset line is provided.

At same time WDOG_HW_RUNNING should be remove from dw_wdt_start.
As commented by Guenter Roeck:
dw_wdt sets WDOG_HW_RUNNING in its open function. Result is
that the kref_get() in watchdog_open() won't be executed. But then
kref_put() in close will be called since the watchdog now does stop.
This causes the imbalance.

Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Cc: Wim Van Sebroeck <wim@iguana.be>
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: linux-watchdog@vger.kernel.org
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
drivers/watchdog/dw_wdt.c