@@ -131,7 +131,8 @@ static const struct watchdog_info adv_ec_wdt_info = {
.identity = DRIVER_NAME,
.options = WDIOF_SETTIMEOUT |
WDIOF_MAGICCLOSE |
- WDIOF_KEEPALIVEPING,
+ WDIOF_KEEPALIVEPING |
+ WDIOF_STOP_MAYSLEEP,
};
static const struct watchdog_ops adv_ec_wdt_ops = {
@@ -90,7 +90,8 @@ static const struct watchdog_info smcwd_info = {
.identity = DRV_NAME,
.options = WDIOF_SETTIMEOUT |
WDIOF_KEEPALIVEPING |
- WDIOF_MAGICCLOSE,
+ WDIOF_MAGICCLOSE |
+ WDIOF_STOP_MAYSLEEP,
};
static const struct watchdog_ops smcwd_ops = {
@@ -232,7 +232,7 @@ static int armada_37xx_wdt_stop(struct watchdog_device *wdt)
}
static const struct watchdog_info armada_37xx_wdt_info = {
- .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE,
+ .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE | WDIOF_STOP_MAYSLEEP,
.identity = "Armada 37xx Watchdog",
};
@@ -181,7 +181,7 @@ static int asm9260_restart(struct watchdog_device *wdd, unsigned long action,
static const struct watchdog_info asm9260_wdt_ident = {
.options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING
- | WDIOF_MAGICCLOSE,
+ | WDIOF_MAGICCLOSE | WDIOF_STOP_MAYSLEEP,
.identity = "Alphascale asm9260 Watchdog",
};
@@ -162,7 +162,8 @@ static const struct watchdog_info bcm47xx_wdt_info = {
.identity = DRV_NAME,
.options = WDIOF_SETTIMEOUT |
WDIOF_KEEPALIVEPING |
- WDIOF_MAGICCLOSE,
+ WDIOF_MAGICCLOSE |
+ WDIOF_STOP_MAYSLEEP,
};
static const struct watchdog_ops bcm47xx_wdt_soft_ops = {
@@ -68,7 +68,7 @@ static int bd9576_wdt_stop(struct watchdog_device *wdd)
static const struct watchdog_info bd957x_wdt_ident = {
.options = WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING |
- WDIOF_SETTIMEOUT,
+ WDIOF_SETTIMEOUT | WDIOF_STOP_MAYSLEEP,
.identity = "BD957x Watchdog",
};
@@ -89,7 +89,7 @@ static int bd96801_wdt_stop(struct watchdog_device *wdt)
static const struct watchdog_info bd96801_wdt_info = {
.options = WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING |
- WDIOF_SETTIMEOUT,
+ WDIOF_SETTIMEOUT | WDIOF_STOP_MAYSLEEP,
.identity = "BD96801 Watchdog",
};
@@ -151,7 +151,7 @@ static int cgbc_wdt_set_timeout(struct watchdog_device *wdd,
static const struct watchdog_info cgbc_wdt_info = {
.identity = "CGBC Watchdog",
.options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING |
- WDIOF_MAGICCLOSE | WDIOF_PRETIMEOUT
+ WDIOF_MAGICCLOSE | WDIOF_PRETIMEOUT | WDIOF_STOP_MAYSLEEP,
};
static const struct watchdog_ops cgbc_wdt_ops = {
@@ -107,7 +107,10 @@ static int cros_ec_wdt_set_timeout(struct watchdog_device *wdd, unsigned int t)
}
static const struct watchdog_info cros_ec_wdt_ident = {
- .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_MAGICCLOSE |
+ WDIOF_STOP_MAYSLEEP,
.firmware_version = 0,
.identity = DRV_NAME,
};
@@ -139,7 +139,8 @@ static const struct watchdog_info da9052_wdt_info = {
WDIOF_KEEPALIVEPING |
WDIOF_CARDRESET |
WDIOF_OVERHEAT |
- WDIOF_POWERUNDER,
+ WDIOF_POWERUNDER |
+ WDIOF_STOP_MAYSLEEP,
.identity = "DA9052 Watchdog",
};
@@ -105,7 +105,9 @@ static int da9055_wdt_stop(struct watchdog_device *wdt_dev)
}
static const struct watchdog_info da9055_wdt_info = {
- .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_STOP_MAYSLEEP,
.identity = "DA9055 Watchdog",
};
@@ -180,7 +180,9 @@ static int da9062_wdt_restart(struct watchdog_device *wdd, unsigned long action,
}
static const struct watchdog_info da9062_watchdog_info = {
- .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_STOP_MAYSLEEP,
.identity = "DA9062 WDT",
};
@@ -198,7 +198,9 @@ static int da9063_wdt_restart(struct watchdog_device *wdd, unsigned long action,
}
static const struct watchdog_info da9063_watchdog_info = {
- .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_STOP_MAYSLEEP,
.identity = "DA9063 Watchdog",
};
@@ -61,7 +61,10 @@ static int db8500_wdt_set_timeout(struct watchdog_device *wdd,
}
static const struct watchdog_info db8500_wdt_info = {
- .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_MAGICCLOSE |
+ WDIOF_STOP_MAYSLEEP,
.identity = "DB8500 WDT",
.firmware_version = 1,
};
@@ -336,13 +336,14 @@ static unsigned int dw_wdt_get_timeleft(struct watchdog_device *wdd)
static const struct watchdog_info dw_wdt_ident = {
.options = WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT |
- WDIOF_MAGICCLOSE,
+ WDIOF_MAGICCLOSE | WDIOF_STOP_MAYSLEEP,
.identity = "Synopsys DesignWare Watchdog",
};
static const struct watchdog_info dw_wdt_pt_ident = {
.options = WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT |
- WDIOF_PRETIMEOUT | WDIOF_MAGICCLOSE,
+ WDIOF_PRETIMEOUT | WDIOF_MAGICCLOSE |
+ WDIOF_STOP_MAYSLEEP,
.identity = "Synopsys DesignWare Watchdog",
};
@@ -469,7 +469,8 @@ static int fintek_wdt_probe(struct platform_device *pdev)
wd->ident.options = WDIOF_SETTIMEOUT
| WDIOF_MAGICCLOSE
| WDIOF_KEEPALIVEPING
- | WDIOF_CARDRESET;
+ | WDIOF_CARDRESET
+ | WDIOF_STOP_MAYSLEEP;
snprintf(wd->ident.identity,
sizeof(wd->ident.identity), "%s watchdog",
@@ -93,7 +93,7 @@ static int gpio_wdt_stop(struct watchdog_device *wdd)
static const struct watchdog_info gpio_wdt_ident = {
.options = WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING |
- WDIOF_SETTIMEOUT,
+ WDIOF_SETTIMEOUT | WDIOF_STOP_MAYSLEEP,
.identity = "GPIO Watchdog",
};
@@ -190,7 +190,10 @@ static int esb_timer_set_heartbeat(struct watchdog_device *wdd,
static struct watchdog_info esb_info = {
.identity = ESB_MODULE_NAME,
- .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_MAGICCLOSE |
+ WDIOF_STOP_MAYSLEEP,
};
static const struct watchdog_ops esb_ops = {
@@ -172,7 +172,7 @@ static const struct watchdog_ops imx_sc_wdt_ops = {
static struct watchdog_info imx_sc_wdt_info = {
.identity = "i.MX SC watchdog timer",
.options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING |
- WDIOF_MAGICCLOSE,
+ WDIOF_MAGICCLOSE | WDIOF_STOP_MAYSLEEP,
};
static int imx_sc_wdt_probe(struct platform_device *pdev)
@@ -112,7 +112,10 @@ static irqreturn_t mid_wdt_irq(int irq, void *dev_id)
static const struct watchdog_info mid_wdt_info = {
.identity = "Intel MID SCU watchdog",
- .options = WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT | WDIOF_MAGICCLOSE,
+ .options = WDIOF_KEEPALIVEPING |
+ WDIOF_SETTIMEOUT |
+ WDIOF_MAGICCLOSE |
+ WDIOF_STOP_MAYSLEEP,
};
static const struct watchdog_ops mid_wdt_ops = {
@@ -265,7 +265,10 @@ static const struct dmi_system_id it87_quirks[] = {
};
static const struct watchdog_info ident = {
- .options = WDIOF_SETTIMEOUT | WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_MAGICCLOSE |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_STOP_MAYSLEEP,
.firmware_version = 1,
.identity = WATCHDOG_NAME,
};
@@ -112,7 +112,10 @@ static int jz4740_wdt_restart(struct watchdog_device *wdt_dev,
}
static const struct watchdog_info jz4740_wdt_info = {
- .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_MAGICCLOSE |
+ WDIOF_STOP_MAYSLEEP,
.identity = "jz4740 Watchdog",
};
@@ -419,7 +419,8 @@ static const struct watchdog_info kempld_wdt_info = {
.options = WDIOF_SETTIMEOUT |
WDIOF_KEEPALIVEPING |
WDIOF_MAGICCLOSE |
- WDIOF_PRETIMEOUT
+ WDIOF_PRETIMEOUT |
+ WDIOF_STOP_MAYSLEEP,
};
static const struct watchdog_ops kempld_wdt_ops = {
@@ -140,7 +140,10 @@ static int wdt_ping(struct watchdog_device *wdog)
}
static const struct watchdog_info wdt_info = {
- .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_MAGICCLOSE |
+ WDIOF_STOP_MAYSLEEP,
.identity = "Lenovo SE10 Watchdog",
};
@@ -144,7 +144,10 @@ static int max77620_wdt_set_timeout(struct watchdog_device *wdt_dev,
static const struct watchdog_info max77620_wdt_info = {
.identity = "max77620-watchdog",
- .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_MAGICCLOSE |
+ WDIOF_STOP_MAYSLEEP,
};
static const struct watchdog_ops max77620_wdt_ops = {
@@ -315,7 +315,8 @@ static struct watchdog_info wd_info = {
.identity = INTEL_AMT_WATCHDOG_ID,
.options = WDIOF_KEEPALIVEPING |
WDIOF_SETTIMEOUT |
- WDIOF_ALARMONLY,
+ WDIOF_ALARMONLY |
+ WDIOF_STOP_MAYSLEEP,
};
/**
@@ -99,7 +99,9 @@ static int menf21bmc_wdt_ping(struct watchdog_device *wdt)
}
static const struct watchdog_info menf21bmc_wdt_info = {
- .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_STOP_MAYSLEEP,
.identity = DEVNAME,
};
@@ -24,7 +24,7 @@
#define MLXREG_WDT_MAX_TIMEOUT_TYPE3 65535
#define MLXREG_WDT_MIN_TIMEOUT 1
#define MLXREG_WDT_OPTIONS_BASE (WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE | \
- WDIOF_SETTIMEOUT)
+ WDIOF_SETTIMEOUT | WDIOF_STOP_MAYSLEEP)
/**
* struct mlxreg_wdt - wd private data:
@@ -77,7 +77,10 @@ static int msc313e_wdt_settimeout(struct watchdog_device *wdev, unsigned int new
static const struct watchdog_info msc313e_wdt_ident = {
.identity = "MSC313e watchdog",
- .options = WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT,
+ .options = WDIOF_MAGICCLOSE |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_SETTIMEOUT |
+ WDIOF_STOP_MAYSLEEP,
};
static const struct watchdog_ops msc313e_wdt_ops = {
@@ -176,7 +176,8 @@ static const struct watchdog_info npcm_wdt_info = {
.identity = KBUILD_MODNAME,
.options = WDIOF_SETTIMEOUT
| WDIOF_KEEPALIVEPING
- | WDIOF_MAGICCLOSE,
+ | WDIOF_MAGICCLOSE
+ | WDIOF_STOP_MAYSLEEP,
};
static const struct watchdog_ops npcm_wdt_ops = {
@@ -213,7 +213,10 @@ static unsigned int omap_wdt_get_timeleft(struct watchdog_device *wdog)
}
static const struct watchdog_info omap_wdt_info = {
- .options = WDIOF_SETTIMEOUT | WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_MAGICCLOSE |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_STOP_MAYSLEEP,
.identity = "OMAP Watchdog",
};
@@ -117,14 +117,15 @@ static irqreturn_t pm8916_wdt_isr(int irq, void *arg)
static const struct watchdog_info pm8916_wdt_ident = {
.options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE |
- WDIOF_OVERHEAT | WDIOF_CARDRESET | WDIOF_POWERUNDER,
+ WDIOF_OVERHEAT | WDIOF_CARDRESET | WDIOF_POWERUNDER |
+ WDIOF_STOP_MAYSLEEP,
.identity = "QCOM PM8916 PON WDT",
};
static const struct watchdog_info pm8916_wdt_pt_ident = {
.options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE |
WDIOF_OVERHEAT | WDIOF_CARDRESET | WDIOF_POWERUNDER |
- WDIOF_PRETIMEOUT,
+ WDIOF_PRETIMEOUT | WDIOF_STOP_MAYSLEEP,
.identity = "QCOM PM8916 PON WDT",
};
@@ -133,7 +133,7 @@ static int pseries_wdt_stop(struct watchdog_device *wdd)
static struct watchdog_info pseries_wdt_info = {
.identity = DRV_NAME,
.options = WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE | WDIOF_SETTIMEOUT
- | WDIOF_PRETIMEOUT,
+ | WDIOF_PRETIMEOUT | WDIOF_STOP_MAYSLEEP,
};
static const struct watchdog_ops pseries_wdt_ops = {
@@ -211,7 +211,10 @@ static int rave_sp_wdt_ping(struct watchdog_device *wdd)
}
static const struct watchdog_info rave_sp_wdt_info = {
- .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_MAGICCLOSE |
+ WDIOF_STOP_MAYSLEEP,
.identity = "RAVE SP Watchdog",
};
@@ -158,8 +158,11 @@ static int rwdt_restart(struct watchdog_device *wdev, unsigned long action,
}
static const struct watchdog_info rwdt_ident = {
- .options = WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT |
- WDIOF_CARDRESET,
+ .options = WDIOF_MAGICCLOSE |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_SETTIMEOUT |
+ WDIOF_CARDRESET |
+ WDIOF_STOP_MAYSLEEP,
.identity = "Renesas WDT Watchdog",
};
@@ -87,7 +87,10 @@ static int retu_wdt_set_timeout(struct watchdog_device *wdog,
}
static const struct watchdog_info retu_wdt_info = {
- .options = WDIOF_SETTIMEOUT | WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_MAGICCLOSE |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_STOP_MAYSLEEP,
.identity = "Retu watchdog",
};
@@ -125,8 +125,10 @@ static int rn5t618_wdt_ping(struct watchdog_device *wdt_dev)
}
static const struct watchdog_info rn5t618_wdt_info = {
- .options = WDIOF_SETTIMEOUT | WDIOF_MAGICCLOSE |
- WDIOF_KEEPALIVEPING,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_MAGICCLOSE |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_STOP_MAYSLEEP,
.identity = DRIVER_NAME,
};
@@ -219,7 +219,10 @@ static int rzg2l_wdt_restart(struct watchdog_device *wdev,
}
static const struct watchdog_info rzg2l_wdt_ident = {
- .options = WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT,
+ .options = WDIOF_MAGICCLOSE |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_SETTIMEOUT |
+ WDIOF_STOP_MAYSLEEP,
.identity = "Renesas RZ/G2L WDT Watchdog",
};
@@ -135,7 +135,10 @@ static int rzv2h_wdt_stop(struct watchdog_device *wdev)
}
static const struct watchdog_info rzv2h_wdt_ident = {
- .options = WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT,
+ .options = WDIOF_MAGICCLOSE |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_SETTIMEOUT |
+ WDIOF_STOP_MAYSLEEP,
.identity = "Renesas RZ/V2H WDT Watchdog",
};
@@ -194,8 +194,10 @@ static void sh_wdt_ping(struct timer_list *t)
}
static const struct watchdog_info sh_wdt_info = {
- .options = WDIOF_KEEPALIVEPING | WDIOF_SETTIMEOUT |
- WDIOF_MAGICCLOSE,
+ .options = WDIOF_KEEPALIVEPING |
+ WDIOF_SETTIMEOUT |
+ WDIOF_MAGICCLOSE |
+ WDIOF_STOP_MAYSLEEP,
.firmware_version = 1,
.identity = "SH WDT",
};
@@ -104,7 +104,10 @@ static int sl28cpld_wdt_set_timeout(struct watchdog_device *wdd,
}
static const struct watchdog_info sl28cpld_wdt_info = {
- .options = WDIOF_MAGICCLOSE | WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING,
+ .options = WDIOF_MAGICCLOSE |
+ WDIOF_SETTIMEOUT |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_STOP_MAYSLEEP,
.identity = "sl28cpld watchdog",
};
@@ -162,7 +162,10 @@ static int softdog_stop(struct watchdog_device *w)
static struct watchdog_info softdog_info = {
.identity = "Software Watchdog",
- .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_MAGICCLOSE |
+ WDIOF_STOP_MAYSLEEP,
};
static const struct watchdog_ops softdog_ops = {
@@ -214,7 +214,10 @@ static int wdt_disable(struct watchdog_device *wdd)
}
static const struct watchdog_info wdt_info = {
- .options = WDIOF_MAGICCLOSE | WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING,
+ .options = WDIOF_MAGICCLOSE |
+ WDIOF_SETTIMEOUT |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_STOP_MAYSLEEP,
.identity = MODULE_NAME,
};
@@ -409,7 +409,8 @@ static int starfive_wdt_set_timeout(struct watchdog_device *wdd,
return 0;
}
-#define STARFIVE_WDT_OPTIONS (WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE)
+#define STARFIVE_WDT_OPTIONS (WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | \
+ WDIOF_MAGICCLOSE | WDIOF_STOP_MAYSLEEP)
static const struct watchdog_info starfive_wdt_info = {
.options = STARFIVE_WDT_OPTIONS,
@@ -67,7 +67,10 @@ static int pmic_wdt_set_timeout(struct watchdog_device *wdd,
}
static const struct watchdog_info pmic_watchdog_info = {
- .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_MAGICCLOSE |
+ WDIOF_STOP_MAYSLEEP,
.identity = "STPMIC1 PMIC Watchdog",
};
@@ -100,7 +100,10 @@ static const struct watchdog_ops ts4800_wdt_ops = {
};
static const struct watchdog_info ts4800_wdt_info = {
- .options = WDIOF_SETTIMEOUT | WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_MAGICCLOSE |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_STOP_MAYSLEEP,
.identity = "TS-4800 Watchdog",
};
@@ -45,7 +45,10 @@ static int twl4030_wdt_set_timeout(struct watchdog_device *wdt,
}
static const struct watchdog_info twl4030_wdt_info = {
- .options = WDIOF_SETTIMEOUT | WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_MAGICCLOSE |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_STOP_MAYSLEEP,
.identity = "TWL4030 Watchdog",
};
@@ -168,7 +168,8 @@ static const struct watchdog_info uniphier_wdt_info = {
.options = WDIOF_SETTIMEOUT |
WDIOF_KEEPALIVEPING |
WDIOF_MAGICCLOSE |
- WDIOF_OVERHEAT,
+ WDIOF_OVERHEAT |
+ WDIOF_STOP_MAYSLEEP,
};
static const struct watchdog_ops uniphier_wdt_ops = {
@@ -314,7 +314,10 @@ static unsigned int wdt_get_time(struct watchdog_device *wdog)
*/
static const struct watchdog_info wdt_info = {
- .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_MAGICCLOSE |
+ WDIOF_STOP_MAYSLEEP,
.identity = "W83627HF Watchdog",
};
@@ -156,7 +156,10 @@ static int wm831x_wdt_set_timeout(struct watchdog_device *wdt_dev,
}
static const struct watchdog_info wm831x_wdt_info = {
- .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_MAGICCLOSE |
+ WDIOF_STOP_MAYSLEEP,
.identity = "WM831x Watchdog",
};
@@ -117,7 +117,10 @@ static int wm8350_wdt_ping(struct watchdog_device *wdt_dev)
}
static const struct watchdog_info wm8350_wdt_info = {
- .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_MAGICCLOSE |
+ WDIOF_STOP_MAYSLEEP,
.identity = "WM8350 Watchdog",
};
@@ -99,7 +99,10 @@ static unsigned int xen_wdt_get_timeleft(struct watchdog_device *wdd)
static struct watchdog_info xen_wdt_info = {
.identity = DRV_NAME,
- .options = WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_MAGICCLOSE |
+ WDIOF_STOP_MAYSLEEP,
};
static const struct watchdog_ops xen_wdt_ops = {
@@ -417,7 +417,10 @@ static int ziirave_firm_upload(struct watchdog_device *wdd,
}
static const struct watchdog_info ziirave_wdt_info = {
- .options = WDIOF_SETTIMEOUT | WDIOF_MAGICCLOSE | WDIOF_KEEPALIVEPING,
+ .options = WDIOF_SETTIMEOUT |
+ WDIOF_MAGICCLOSE |
+ WDIOF_KEEPALIVEPING |
+ WDIOF_STOP_MAYSLEEP,
.identity = "RAVE Switch Watchdog",
};
@@ -48,6 +48,7 @@ struct watchdog_info {
#define WDIOF_PRETIMEOUT 0x0200 /* Pretimeout (in seconds), get/set */
#define WDIOF_ALARMONLY 0x0400 /* Watchdog triggers a management or
other external alarm not a reboot */
+#define WDIOF_STOP_MAYSLEEP 0x0800 /* Watchdog Stop may sleep */
#define WDIOF_KEEPALIVEPING 0x8000 /* Keep alive ping reply */
#define WDIOS_DISABLECARD 0x0001 /* Turn off the watchdog timer */
A new option flag is added to watchdog_info. This helps the watchdog core to check whether stop functions would sleep or not. The option flags of individual drivers are also updated accordingly. Signed-off-by: George Cherian <george.cherian@marvell.com> --- drivers/watchdog/advantech_ec_wdt.c | 3 ++- drivers/watchdog/arm_smc_wdt.c | 3 ++- drivers/watchdog/armada_37xx_wdt.c | 2 +- drivers/watchdog/asm9260_wdt.c | 2 +- drivers/watchdog/bcm47xx_wdt.c | 3 ++- drivers/watchdog/bd9576_wdt.c | 2 +- drivers/watchdog/bd96801_wdt.c | 2 +- drivers/watchdog/cgbc_wdt.c | 2 +- drivers/watchdog/cros_ec_wdt.c | 5 ++++- drivers/watchdog/da9052_wdt.c | 3 ++- drivers/watchdog/da9055_wdt.c | 4 +++- drivers/watchdog/da9062_wdt.c | 4 +++- drivers/watchdog/da9063_wdt.c | 4 +++- drivers/watchdog/db8500_wdt.c | 5 ++++- drivers/watchdog/dw_wdt.c | 5 +++-- drivers/watchdog/f71808e_wdt.c | 3 ++- drivers/watchdog/gpio_wdt.c | 2 +- drivers/watchdog/i6300esb.c | 5 ++++- drivers/watchdog/imx_sc_wdt.c | 2 +- drivers/watchdog/intel-mid_wdt.c | 5 ++++- drivers/watchdog/it87_wdt.c | 5 ++++- drivers/watchdog/jz4740_wdt.c | 5 ++++- drivers/watchdog/kempld_wdt.c | 3 ++- drivers/watchdog/lenovo_se10_wdt.c | 5 ++++- drivers/watchdog/max77620_wdt.c | 5 ++++- drivers/watchdog/mei_wdt.c | 3 ++- drivers/watchdog/menf21bmc_wdt.c | 4 +++- drivers/watchdog/mlx_wdt.c | 2 +- drivers/watchdog/msc313e_wdt.c | 5 ++++- drivers/watchdog/npcm_wdt.c | 3 ++- drivers/watchdog/omap_wdt.c | 5 ++++- drivers/watchdog/pm8916_wdt.c | 5 +++-- drivers/watchdog/pseries-wdt.c | 2 +- drivers/watchdog/rave-sp-wdt.c | 5 ++++- drivers/watchdog/renesas_wdt.c | 7 +++++-- drivers/watchdog/retu_wdt.c | 5 ++++- drivers/watchdog/rn5t618_wdt.c | 6 ++++-- drivers/watchdog/rzg2l_wdt.c | 5 ++++- drivers/watchdog/rzv2h_wdt.c | 5 ++++- drivers/watchdog/shwdt.c | 6 ++++-- drivers/watchdog/sl28cpld_wdt.c | 5 ++++- drivers/watchdog/softdog.c | 5 ++++- drivers/watchdog/sp805_wdt.c | 5 ++++- drivers/watchdog/starfive-wdt.c | 3 ++- drivers/watchdog/stpmic1_wdt.c | 5 ++++- drivers/watchdog/ts4800_wdt.c | 5 ++++- drivers/watchdog/twl4030_wdt.c | 5 ++++- drivers/watchdog/uniphier_wdt.c | 3 ++- drivers/watchdog/w83627hf_wdt.c | 5 ++++- drivers/watchdog/wm831x_wdt.c | 5 ++++- drivers/watchdog/wm8350_wdt.c | 5 ++++- drivers/watchdog/xen_wdt.c | 5 ++++- drivers/watchdog/ziirave_wdt.c | 5 ++++- include/uapi/linux/watchdog.h | 1 + 54 files changed, 161 insertions(+), 58 deletions(-)