]> asedeno.scripts.mit.edu Git - linux.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)
committerWim Van Sebroeck <wim@iguana.be>
Thu, 28 Dec 2017 19:44:55 +0000 (20:44 +0100)
commit1bfe8889380890efe4943d125124f5a7b48571b0
tree5372fd635e6097216e182e8cdd30e0a7a364eae1
parentd4238aa458b8c3e64d6f124aafa5c230cae31d6a
watchdog: dw_wdt: add stop watchdog operation

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>
drivers/watchdog/dw_wdt.c