rk fb: if lcdc is suspend ignore set par and display
[firefly-linux-kernel-4.4.55.git] / drivers / watchdog / ath79_wdt.c
index 37cb09b27b6328e85581955400cb94bf18b66f0e..c97a47ca89710e69060e7301115d7fbec2b11c62 100644 (file)
@@ -20,6 +20,7 @@
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
 #include <linux/bitops.h>
+#include <linux/delay.h>
 #include <linux/errno.h>
 #include <linux/fs.h>
 #include <linux/init.h>
@@ -91,6 +92,15 @@ static inline void ath79_wdt_keepalive(void)
 static inline void ath79_wdt_enable(void)
 {
        ath79_wdt_keepalive();
+
+       /*
+        * Updating the TIMER register requires a few microseconds
+        * on the AR934x SoCs at least. Use a small delay to ensure
+        * that the TIMER register is updated within the hardware
+        * before enabling the watchdog.
+        */
+       udelay(2);
+
        ath79_wdt_wr(WDOG_REG_CTRL, WDOG_CTRL_ACTION_FCR);
        /* flush write */
        ath79_wdt_rr(WDOG_REG_CTRL);