summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2020-04-17 20:40:08 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2020-04-17 20:40:08 +0200
commit1634615dc14d258f3c5695338db26d5f115dabc7 (patch)
tree8447936b869cbc49ffe6b9560fb2455a38d45b9e /drivers
parentMerge tag 'devicetree-fixes-for-5.7' of git://git.kernel.org/pub/scm/linux/ke... (diff)
parentwatchdog: sp805: fix restart handler (diff)
downloadlinux-1634615dc14d258f3c5695338db26d5f115dabc7.tar.xz
linux-1634615dc14d258f3c5695338db26d5f115dabc7.zip
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
Diffstat (limited to 'drivers')
-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 53e04926a7b2..190d26e2e75f 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;
}