aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2020-04-17 11:40:08 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2020-04-17 11:40:08 -0700
commit1634615dc14d258f3c5695338db26d5f115dabc7 (patch)
tree8447936b869cbc49ffe6b9560fb2455a38d45b9e
parent8fce9058ca8b1c784515e7986385f2b33927a44b (diff)
parentea104a9e4d3e9ebc26fb78dac35585b142ee288b (diff)
downloadlinux-1634615dc14d258f3c5695338db26d5f115dabc7.tar.gz
Merge tag 'linux-watchdog-5.7-rc2' of git://www.linux-watchdog.org/linux-watchdog
Pull watchdog fix from Wim Van Sebroeck: "Fix restart handler in sp805 driver" * tag 'linux-watchdog-5.7-rc2' of git://www.linux-watchdog.org/linux-watchdog: watchdog: sp805: fix restart handler
-rw-r--r--drivers/watchdog/sp805_wdt.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/watchdog/sp805_wdt.c b/drivers/watchdog/sp805_wdt.c
index 53e04926a7b2d..190d26e2e75f9 100644
--- a/drivers/watchdog/sp805_wdt.c
+++ b/drivers/watchdog/sp805_wdt.c
@@ -137,10 +137,14 @@ wdt_restart(struct watchdog_device *wdd, unsigned long mode, void *cmd)
{
struct sp805_wdt *wdt = watchdog_get_drvdata(wdd);
+ writel_relaxed(UNLOCK, wdt->base + WDTLOCK);
writel_relaxed(0, wdt->base + WDTCONTROL);
writel_relaxed(0, wdt->base + WDTLOAD);
writel_relaxed(INT_ENABLE | RESET_ENABLE, wdt->base + WDTCONTROL);
+ /* Flush posted writes. */
+ readl_relaxed(wdt->base + WDTLOCK);
+
return 0;
}