diff options
author | Wim Van Sebroeck <wim@iguana.be> | 2011-11-29 16:24:16 +0100 |
---|---|---|
committer | Wim Van Sebroeck <wim@iguana.be> | 2012-01-06 15:22:04 +0100 |
commit | ff0b3cd4a416bc727b0797b95b229b278d2a28f2 (patch) | |
tree | cd6bdc2304ee8fd751f3bd79607c7bcaf337e198 /include | |
parent | b8ec61189f3b4cd9d1b2856342f5d7676151d01c (diff) | |
download | op-kernel-dev-ff0b3cd4a416bc727b0797b95b229b278d2a28f2.zip op-kernel-dev-ff0b3cd4a416bc727b0797b95b229b278d2a28f2.tar.gz |
watchdog: add nowayout helpers to Watchdog Timer Driver Kernel API
Add two nowayout helpers for the Watchdog Timer Driver Kernel API.
And apply this to the already converted drivers.
Note: s3c2410_wdt lost the nowayout feature during the conversion.
Reviewed-by: Wolfram Sang <w.sang@pengutronix.de>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/watchdog.h | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/include/linux/watchdog.h b/include/linux/watchdog.h index 111843f..43ba5b3c 100644 --- a/include/linux/watchdog.h +++ b/include/linux/watchdog.h @@ -53,11 +53,7 @@ struct watchdog_info { #ifdef __KERNEL__ -#ifdef CONFIG_WATCHDOG_NOWAYOUT -#define WATCHDOG_NOWAYOUT 1 -#else -#define WATCHDOG_NOWAYOUT 0 -#endif +#include <linux/bitops.h> struct watchdog_ops; struct watchdog_device; @@ -122,6 +118,21 @@ struct watchdog_device { #define WDOG_NO_WAY_OUT 3 /* Is 'nowayout' feature set ? */ }; +#ifdef CONFIG_WATCHDOG_NOWAYOUT +#define WATCHDOG_NOWAYOUT 1 +#define WATCHDOG_NOWAYOUT_INIT_STATUS (1 << WDOG_NO_WAY_OUT) +#else +#define WATCHDOG_NOWAYOUT 0 +#define WATCHDOG_NOWAYOUT_INIT_STATUS 0 +#endif + +/* Use the following function to set the nowayout feature */ +static inline void watchdog_set_nowayout(struct watchdog_device *wdd, int nowayout) +{ + if (nowayout) + set_bit(WDOG_NO_WAY_OUT, &wdd->status); +} + /* Use the following functions to manipulate watchdog driver specific data */ static inline void watchdog_set_drvdata(struct watchdog_device *wdd, void *data) { |