]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commit
watchdog: s3c2410: Fix infinite interrupt in soft mode
authorKrzysztof Kozlowski <krzk@kernel.org>
Fri, 24 Feb 2017 15:11:16 +0000 (17:11 +0200)
committerGuenter Roeck <linux@roeck-us.net>
Fri, 24 Feb 2017 22:00:23 +0000 (14:00 -0800)
commit0b445549ea6f91ffea78a976fe89b932db6e077a
treec93a5baf70597d0adba105b8729394dbd9e4c021
parent4f21195d42ef930f20e1753532709bb294aa73ac
watchdog: s3c2410: Fix infinite interrupt in soft mode

In soft (no-reboot) mode, the driver self-pings watchdog upon expiration
of an interrupt.  However the interrupt itself was not cleared thus on
first hit, the system enters infinite interrupt handling loop.

On Odroid U3 (Exynos4412), when booted with s3c2410_wdt.soft_noboot=1
argument the console is flooded:
# killall -9 watchdog
[   60.523760] s3c2410-wdt 10060000.watchdog: watchdog timer expired (irq)
[   60.536744] s3c2410-wdt 10060000.watchdog: watchdog timer expired (irq)

Fix this by writing something to the WTCLRINT register to clear the
interrupt.  The register WTCLRINT however appeared in S3C6410 so a new
watchdog quirk and flavor are needed.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Documentation/devicetree/bindings/watchdog/samsung-wdt.txt
drivers/watchdog/s3c2410_wdt.c