@@ -228,6 +228,9 @@ static struct watchdog_device hpwdt_dev = {
.timeout = DEFAULT_MARGIN,
.pretimeout = PRETIMEOUT_SEC,
.max_hw_heartbeat_ms = HPWDT_MAX_TIMER * 1000,
+#ifdef CONFIG_HPWDT_NMI_DECODING
+ .preaction = WDIOP_NMI,
+#endif
};
@@ -280,6 +280,7 @@ static int __init imx2_wdt_probe(struct platform_device *pdev)
wdog->min_timeout = 1;
wdog->timeout = IMX2_WDT_DEFAULT_TIME;
wdog->max_hw_heartbeat_ms = IMX2_WDT_MAX_TIME * 1000;
+ wdog->preaction = WDIOP_INTERRUPT;
wdog->parent = &pdev->dev;
ret = platform_get_irq(pdev, 0);
@@ -169,6 +169,7 @@ static int imx_sc_wdt_probe(struct platform_device *pdev)
wdog->max_timeout = MAX_TIMEOUT;
wdog->parent = dev;
wdog->timeout = DEFAULT_TIMEOUT;
+ wdog->preaction = WDIOP_INTERRUPT;
watchdog_init_timeout(wdog, 0, dev);
watchdog_stop_on_reboot(wdog);
@@ -184,6 +184,7 @@ static int pm8916_wdt_probe(struct platform_device *pdev)
wdt->wdev.max_timeout = PM8916_WDT_MAX_TIMEOUT;
wdt->wdev.timeout = PM8916_WDT_DEFAULT_TIMEOUT;
wdt->wdev.pretimeout = 0;
+ wdt->wdev.preaction = WDIOP_INTERRUPT;
watchdog_set_drvdata(&wdt->wdev, wdt);
watchdog_init_timeout(&wdt->wdev, 0, dev);
@@ -125,6 +125,7 @@ static struct watchdog_device softdog_dev = {
.min_timeout = 1,
.max_timeout = 65535,
.timeout = TIMER_MARGIN,
+ .preaction = WDIOP_INTERRUPT,
};
static int __init softdog_init(void)
@@ -302,6 +302,7 @@ static int sprd_wdt_probe(struct platform_device *pdev)
wdt->wdd.min_timeout = SPRD_WDT_MIN_TIMEOUT;
wdt->wdd.max_timeout = SPRD_WDT_MAX_TIMEOUT;
wdt->wdd.timeout = SPRD_WDT_MAX_TIMEOUT;
+ wdt->wdd.preaction = WDIOP_INTERRUPT;
ret = sprd_wdt_enable(wdt);
if (ret) {