MLK-17154 watchdog: imx8_wdt: align timeout value with imx2_wdt
authorRobin Gong <yibin.gong@nxp.com>
Tue, 12 Dec 2017 06:33:14 +0000 (14:33 +0800)
committerLeonard Crestez <leonard.crestez@nxp.com>
Wed, 17 Apr 2019 23:51:34 +0000 (02:51 +0300)
Align timeout value with imx2_wdt.

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
(cherry picked from commit 6417e1a8039a16f7b1a76ea250237567ee3a72f5)

drivers/watchdog/imx8_wdt.c

index 366ac6f..ae3d65c 100644 (file)
 #include <soc/imx8/sc/sci.h>
 #include <soc/imx8/sc/svc/irq/api.h>
 
-#define DEFAULT_TIMEOUT 10
+#define DEFAULT_TIMEOUT 60
 /*
  * Software timer tick implemented in scfw side, support 10ms to 0xffffffff ms
- * in theory, but for normal case, 1s~60s is enough, you can change this max
+ * in theory, but for normal case, 1s~128s is enough, you can change this max
  * value in case it's not enough.
  */
-#define MAX_TIMEOUT 60
+#define MAX_TIMEOUT 128
+
+static bool nowayout = WATCHDOG_NOWAYOUT;
+module_param(nowayout, bool, 0000);
+MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default="
+                               __MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
+
+static unsigned int timeout = DEFAULT_TIMEOUT;
+module_param(timeout, uint, 0000);
+MODULE_PARM_DESC(timeout, "Watchdog timeout in seconds (default="
+                               __MODULE_STRING(DEFAULT_TIMEOUT) ")");
 
 static struct watchdog_device imx8_wdd;
 
@@ -84,6 +94,8 @@ static int imx8_wdt_set_timeout(struct watchdog_device *wdog,
 {
        struct arm_smccc_res res;
 
+       wdog->timeout = timeout;
+
        arm_smccc_smc(FSL_SIP_SRTC, FSL_SIP_SRTC_SET_TIMEOUT_WDOG,
                        timeout * 1000, 0, 0, 0, 0, 0, &res);