From: Corey Minyard <cminyard@xxxxxxxxxx> None can be changed, so no need for the set operation. The only one not done was kempld_wdt.c; I couldn't figure out how the pretimeout worked in that one. Cc: Jerry Hoemann <jerry.hoemann@xxxxxxx> Cc: NXP Linux Team <linux-imx@xxxxxxx> Cc: Orson Zhai <orsonzhai@xxxxxxxxx> Cc: Baolin Wang <baolin.wang@xxxxxxxxxx> Cc: Chunyan Zhang <zhang.lyra@xxxxxxxxx> Signed-off-by: Corey Minyard <cminyard@xxxxxxxxxx> --- drivers/watchdog/hpwdt.c | 3 +++ drivers/watchdog/imx2_wdt.c | 1 + drivers/watchdog/imx_sc_wdt.c | 1 + drivers/watchdog/pm8916_wdt.c | 1 + drivers/watchdog/softdog.c | 1 + drivers/watchdog/sprd_wdt.c | 1 + 6 files changed, 8 insertions(+) diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c index 7d34bcf1c45b..4c8875dac5fa 100644 --- a/drivers/watchdog/hpwdt.c +++ b/drivers/watchdog/hpwdt.c @@ -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 }; diff --git a/drivers/watchdog/imx2_wdt.c b/drivers/watchdog/imx2_wdt.c index 32af3974e6bb..14f64523f12b 100644 --- a/drivers/watchdog/imx2_wdt.c +++ b/drivers/watchdog/imx2_wdt.c @@ -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); diff --git a/drivers/watchdog/imx_sc_wdt.c b/drivers/watchdog/imx_sc_wdt.c index 78eaaf75a263..164bde58036a 100644 --- a/drivers/watchdog/imx_sc_wdt.c +++ b/drivers/watchdog/imx_sc_wdt.c @@ -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); diff --git a/drivers/watchdog/pm8916_wdt.c b/drivers/watchdog/pm8916_wdt.c index 2d3652004e39..b70cd45067d6 100644 --- a/drivers/watchdog/pm8916_wdt.c +++ b/drivers/watchdog/pm8916_wdt.c @@ -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); diff --git a/drivers/watchdog/softdog.c b/drivers/watchdog/softdog.c index 3e4885c1545e..cb3f829d8bcb 100644 --- a/drivers/watchdog/softdog.c +++ b/drivers/watchdog/softdog.c @@ -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) diff --git a/drivers/watchdog/sprd_wdt.c b/drivers/watchdog/sprd_wdt.c index edba4e278685..d70c738c7356 100644 --- a/drivers/watchdog/sprd_wdt.c +++ b/drivers/watchdog/sprd_wdt.c @@ -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) { -- 2.17.1