Re: [PATCH v4 3/8] watchdog/at91sam9_wdt: Convert to use the watchdog framework
Hi Wenyou, > According to Documentation/watchdog/convert_drivers_to_kernel_api.txt, > remove the file_operations struct, miscdevice, and obsolete includes > > Since the at91sam watchdog inherent characteristics, add the watchdog > operations: at91wdt_start, at91wdt_stop and at91wdt_ping. > This code not only converts the watchdog to the new framework, but it also adds the is_enable related code changes which should be a seperate patch. So I took your original patch and changed it to the below at91sam9_wdt watchdog conversion patch. Note: this is also without Fabio's timeout-sec patch, this one needs to come after the conversion. Please test this patch and let me know if this works (the watchdog should behave the same before as after this patch). Kind regards, Wim. --- diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index 5e8a034..c36fcb0 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -125,6 +125,7 @@ config AT91RM9200_WATCHDOG config AT91SAM9X_WATCHDOG tristate "AT91SAM9X / AT91CAP9 watchdog" depends on ARCH_AT91 && !ARCH_AT91RM9200 + select WATCHDOG_CORE help Watchdog timer embedded into AT91SAM9X and AT91CAP9 chips. This will reboot your system when the timeout is reached. diff --git a/drivers/watchdog/at91sam9_wdt.c b/drivers/watchdog/at91sam9_wdt.c index 6dad954..53fa325 100644 --- a/drivers/watchdog/at91sam9_wdt.c +++ b/drivers/watchdog/at91sam9_wdt.c @@ -18,11 +18,9 @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #include -#include #include #include #include -#include #include #include #include @@ -68,19 +66,17 @@ module_param(nowayout, bool, 0); MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started " "(default=" __MODULE_STRING(WATCHDOG_NOWAYOUT) ")"); +static struct watchdog_device at91_wdt_dev; static void at91_ping(unsigned long data); static struct { void __iomem *base; unsigned long next_heartbeat; /* the next_heartbeat for the timer */ - unsigned long open; - char expect_close; struct timer_list timer;/* The timer that pings the watchdog */ } at91wdt_private; /* . */ - /* * Reload the watchdog timer. (ie, pat the watchdog) */ @@ -95,39 +91,37 @@ static inline void at91_wdt_reset(void) static void at91_ping(unsigned long data) { if (time_before(jiffies, at91wdt_private.next_heartbeat) || - (!nowayout && !at91wdt_private.open)) { + (!watchdog_active(_wdt_dev))) { at91_wdt_reset(); mod_timer(_private.timer, jiffies + WDT_TIMEOUT); } else pr_crit("I will reset your machine !\n"); } -/* - * Watchdog device is opened, and watchdog starts running. - */ -static int at91_wdt_open(struct inode *inode, struct file *file) +static int at91_wdt_ping(struct watchdog_device *wdd) { - if (test_and_set_bit(0, _private.open)) - return -EBUSY; + /* calculate when the next userspace timeout will be */ + at91wdt_private.next_heartbeat = jiffies + wdd->timeout * HZ; + return 0; +} - at91wdt_private.next_heartbeat = jiffies + heartbeat * HZ; +static int at91_wdt_start(struct watchdog_device *wdd) +{ + /* calculate the next userspace timeout and modify the timer */ + at91_wdt_ping(wdd); mod_timer(_private.timer, jiffies + WDT_TIMEOUT); - - return nonseekable_open(inode, file); + return 0; } -/* - * Close the watchdog device. - */ -static int at91_wdt_close(struct inode *inode, struct file *file) +static int at91_wdt_stop(struct watchdog_device *wdd) { - clear_bit(0, _private.open); - - /* stop internal ping */ - if (!at91wdt_private.expect_close) - del_timer(_private.timer); + /* The watchdog timer hardware can not be stopped... */ + return 0; +} - at91wdt_private.expect_close = 0; +static int at91_wdt_set_timeout(struct watchdog_device *wdd, unsigned int new_timeout) +{ + wdd->timeout = new_timeout; return 0; } @@ -163,96 +157,27 @@ static int at91_wdt_settimeout(unsigned int timeout) return 0; } +/* . */ + static const struct watchdog_info at91_wdt_info = { .identity = DRV_NAME, .options= WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE, }; -/* - * Handle commands from user-space. - */ -static long at91_wdt_ioctl(struct file *file, - unsigned int cmd, unsigned long arg) -{ - void __user *argp = (void __user *)arg; - int __user *p = argp; - int new_value; - -
Re: [PATCH v4 2/8] watchdog/at91sam9_wdt: Remove at91wdt_private and add at91wdt_drvdata struct
Hi Wenyou, > Remove the global variable at91wdt_private, add the struct at91wdt_drvdata > as a substitute, and set it as the driver data of the at91wdt_wdd. I rather have this after the conversion of the watchdog to the new framework. Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v4 1/8] watchdog: add the function watchdog_is_open
Hi Wenyou, > Add the function watchdog_is_open to check whether or not > the /dev/watchdog? is opened > > Signed-off-by: Wenyou Yang > Cc: w...@iguana.be > Cc: linux-watch...@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > --- > include/linux/watchdog.h |8 > 1 file changed, 8 insertions(+) > > diff --git a/include/linux/watchdog.h b/include/linux/watchdog.h > index e40cc2b..7ea4465 100644 > --- a/include/linux/watchdog.h > +++ b/include/linux/watchdog.h > @@ -111,6 +111,14 @@ static inline bool watchdog_active(struct > watchdog_device *wdd) > return test_bit(WDOG_ACTIVE, >status); > } > > +/* Use the following function to check whether or not > + * the /dev/watchdog? is opened > + */ > +static inline bool watchdog_is_open(struct watchdog_device *wddev) > +{ > + return test_bit(WDOG_DEV_OPEN, >status); > +} > + > /* Use the following function to set the nowayout feature */ > static inline void watchdog_set_nowayout(struct watchdog_device *wdd, bool > nowayout) > { NAK, this is not good. You should use watchdog_active instead. Reason: your device could have been opened as for instance /dev/watchdog0. Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v4 1/8] watchdog: add the function watchdog_is_open
Hi Wenyou, Add the function watchdog_is_open to check whether or not the /dev/watchdog? is opened Signed-off-by: Wenyou Yang wenyou.y...@atmel.com Cc: w...@iguana.be Cc: linux-watch...@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- include/linux/watchdog.h |8 1 file changed, 8 insertions(+) diff --git a/include/linux/watchdog.h b/include/linux/watchdog.h index e40cc2b..7ea4465 100644 --- a/include/linux/watchdog.h +++ b/include/linux/watchdog.h @@ -111,6 +111,14 @@ static inline bool watchdog_active(struct watchdog_device *wdd) return test_bit(WDOG_ACTIVE, wdd-status); } +/* Use the following function to check whether or not + * the /dev/watchdog? is opened + */ +static inline bool watchdog_is_open(struct watchdog_device *wddev) +{ + return test_bit(WDOG_DEV_OPEN, wddev-status); +} + /* Use the following function to set the nowayout feature */ static inline void watchdog_set_nowayout(struct watchdog_device *wdd, bool nowayout) { NAK, this is not good. You should use watchdog_active instead. Reason: your device could have been opened as for instance /dev/watchdog0. Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v4 2/8] watchdog/at91sam9_wdt: Remove at91wdt_private and add at91wdt_drvdata struct
Hi Wenyou, Remove the global variable at91wdt_private, add the struct at91wdt_drvdata as a substitute, and set it as the driver data of the at91wdt_wdd. I rather have this after the conversion of the watchdog to the new framework. Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v4 3/8] watchdog/at91sam9_wdt: Convert to use the watchdog framework
Hi Wenyou, According to Documentation/watchdog/convert_drivers_to_kernel_api.txt, remove the file_operations struct, miscdevice, and obsolete includes Since the at91sam watchdog inherent characteristics, add the watchdog operations: at91wdt_start, at91wdt_stop and at91wdt_ping. This code not only converts the watchdog to the new framework, but it also adds the is_enable related code changes which should be a seperate patch. So I took your original patch and changed it to the below at91sam9_wdt watchdog conversion patch. Note: this is also without Fabio's timeout-sec patch, this one needs to come after the conversion. Please test this patch and let me know if this works (the watchdog should behave the same before as after this patch). Kind regards, Wim. --- diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index 5e8a034..c36fcb0 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -125,6 +125,7 @@ config AT91RM9200_WATCHDOG config AT91SAM9X_WATCHDOG tristate AT91SAM9X / AT91CAP9 watchdog depends on ARCH_AT91 !ARCH_AT91RM9200 + select WATCHDOG_CORE help Watchdog timer embedded into AT91SAM9X and AT91CAP9 chips. This will reboot your system when the timeout is reached. diff --git a/drivers/watchdog/at91sam9_wdt.c b/drivers/watchdog/at91sam9_wdt.c index 6dad954..53fa325 100644 --- a/drivers/watchdog/at91sam9_wdt.c +++ b/drivers/watchdog/at91sam9_wdt.c @@ -18,11 +18,9 @@ #define pr_fmt(fmt) KBUILD_MODNAME : fmt #include linux/errno.h -#include linux/fs.h #include linux/init.h #include linux/io.h #include linux/kernel.h -#include linux/miscdevice.h #include linux/module.h #include linux/moduleparam.h #include linux/platform_device.h @@ -68,19 +66,17 @@ module_param(nowayout, bool, 0); MODULE_PARM_DESC(nowayout, Watchdog cannot be stopped once started (default= __MODULE_STRING(WATCHDOG_NOWAYOUT) )); +static struct watchdog_device at91_wdt_dev; static void at91_ping(unsigned long data); static struct { void __iomem *base; unsigned long next_heartbeat; /* the next_heartbeat for the timer */ - unsigned long open; - char expect_close; struct timer_list timer;/* The timer that pings the watchdog */ } at91wdt_private; /* . */ - /* * Reload the watchdog timer. (ie, pat the watchdog) */ @@ -95,39 +91,37 @@ static inline void at91_wdt_reset(void) static void at91_ping(unsigned long data) { if (time_before(jiffies, at91wdt_private.next_heartbeat) || - (!nowayout !at91wdt_private.open)) { + (!watchdog_active(at91_wdt_dev))) { at91_wdt_reset(); mod_timer(at91wdt_private.timer, jiffies + WDT_TIMEOUT); } else pr_crit(I will reset your machine !\n); } -/* - * Watchdog device is opened, and watchdog starts running. - */ -static int at91_wdt_open(struct inode *inode, struct file *file) +static int at91_wdt_ping(struct watchdog_device *wdd) { - if (test_and_set_bit(0, at91wdt_private.open)) - return -EBUSY; + /* calculate when the next userspace timeout will be */ + at91wdt_private.next_heartbeat = jiffies + wdd-timeout * HZ; + return 0; +} - at91wdt_private.next_heartbeat = jiffies + heartbeat * HZ; +static int at91_wdt_start(struct watchdog_device *wdd) +{ + /* calculate the next userspace timeout and modify the timer */ + at91_wdt_ping(wdd); mod_timer(at91wdt_private.timer, jiffies + WDT_TIMEOUT); - - return nonseekable_open(inode, file); + return 0; } -/* - * Close the watchdog device. - */ -static int at91_wdt_close(struct inode *inode, struct file *file) +static int at91_wdt_stop(struct watchdog_device *wdd) { - clear_bit(0, at91wdt_private.open); - - /* stop internal ping */ - if (!at91wdt_private.expect_close) - del_timer(at91wdt_private.timer); + /* The watchdog timer hardware can not be stopped... */ + return 0; +} - at91wdt_private.expect_close = 0; +static int at91_wdt_set_timeout(struct watchdog_device *wdd, unsigned int new_timeout) +{ + wdd-timeout = new_timeout; return 0; } @@ -163,96 +157,27 @@ static int at91_wdt_settimeout(unsigned int timeout) return 0; } +/* . */ + static const struct watchdog_info at91_wdt_info = { .identity = DRV_NAME, .options= WDIOF_SETTIMEOUT | WDIOF_KEEPALIVEPING | WDIOF_MAGICCLOSE, }; -/* - * Handle commands from user-space. - */ -static long at91_wdt_ioctl(struct file *file, - unsigned int cmd, unsigned long arg) -{ - void __user *argp = (void __user *)arg; - int __user *p = argp; - int
Re: [PATCH v4 5/8] watchdog/at91sam9_wdt: Add nowayout helpers to Watchdog Timer Driver Kernel API
Hi Wenyou diff --git a/drivers/watchdog/at91sam9_wdt.c b/drivers/watchdog/at91sam9_wdt.c index c6d9f1f..e60a718 100644 --- a/drivers/watchdog/at91sam9_wdt.c +++ b/drivers/watchdog/at91sam9_wdt.c @@ -238,6 +238,8 @@ static int __init at91wdt_probe(struct platform_device *pdev) return ret; } + watchdog_set_nowayout(at91wdt_wdd, nowayout); + watchdog_init_timeout(at91wdt_wdd, heartbeat, pdev-dev.of_node); ret = at91wdt_enable(at91wdt_wdd, ms_to_ticks(WDT_HW_TIMEOUT * 1000)); allready part of the patch I just sent you. Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v4 6/8] watchdog/at91sam9_wdt: Remove the __initdata of at91wdt_wdd
Hi Wenyou, For this variable will be used in the timer handler. Signed-off-by: Wenyou Yang wenyou.y...@atmel.com Cc: w...@iguana.be Cc: linux-watch...@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- drivers/watchdog/at91sam9_wdt.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/watchdog/at91sam9_wdt.c b/drivers/watchdog/at91sam9_wdt.c index e60a718..3fc90ba 100644 --- a/drivers/watchdog/at91sam9_wdt.c +++ b/drivers/watchdog/at91sam9_wdt.c @@ -199,7 +199,7 @@ static struct watchdog_ops at91wdt_ops = { .ping = at91wdt_ping, }; -static struct watchdog_device at91wdt_wdd __initdata = { +static struct watchdog_device at91wdt_wdd = { .timeout = WDT_HEARTBEAT, .min_timeout = MIN_HEARTBEAT, .max_timeout = MAX_HEARTBEAT, should imho also have been part of your previous patches. Anyway, it's also like this in the patch I just sent you. Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v4 4/8] watchdog/at91sam9_wdt: Adjust the options of watchdog_info
Hi Wenyou, Since the Watchdog Timer Mode Register can be only written only once, so the watchdog_info shall not support WDIOF_SETTIMEOUT and WDIOF_MAGICCLOSE options, remove them. Ik you keep using the timer, then you don't have to remove this. Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: linux-next: manual merge of the watchdog tree with the mfd tree
Hi Stephen, > Today's linux-next merge of the watchdog tree got conflicts in > drivers/watchdog/Kconfig and drivers/watchdog/Makefile between commit > 699ff59052e7 ("watchdog: Add support for ux500_wdt watchdog") from the > mfd tree and commit 77b709cb6c9d ("watchdog: introduce retu_wdt driver") > from the watchdog tree. > > I fixed it up (see below) and can carry the fix as necessary (no action > is required). Thanks! Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: linux-next: manual merge of the watchdog tree with the mfd tree
Hi Stephen, Today's linux-next merge of the watchdog tree got conflicts in drivers/watchdog/Kconfig and drivers/watchdog/Makefile between commit 699ff59052e7 (watchdog: Add support for ux500_wdt watchdog) from the mfd tree and commit 77b709cb6c9d (watchdog: introduce retu_wdt driver) from the watchdog tree. I fixed it up (see below) and can carry the fix as necessary (no action is required). Thanks! Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] watchdog: Convert BookE watchdog driver to watchdog infrastructure
Hi Guenter, > Signed-off-by: Guenter Roeck > --- > drivers/watchdog/Kconfig |1 + > drivers/watchdog/booke_wdt.c | 185 > +++--- > 2 files changed, 66 insertions(+), 120 deletions(-) > Added to linux-watchdog-next. Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v5] watchdog: introduce retu_wdt driver
Hi Aaro, > Introduce Retu watchdog driver. > > Cc: linux-watch...@vger.kernel.org > Acked-by: Felipe Balbi > Acked-by: Tony Lindgren > Signed-off-by: Aaro Koskinen > Cc: Wim Van Sebroeck Added tolinux-watchdog-next. Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v5] watchdog: introduce retu_wdt driver
Hi Aaro, Introduce Retu watchdog driver. Cc: linux-watch...@vger.kernel.org Acked-by: Felipe Balbi ba...@ti.com Acked-by: Tony Lindgren t...@atomide.com Signed-off-by: Aaro Koskinen aaro.koski...@iki.fi Cc: Wim Van Sebroeck w...@iguana.be Added tolinux-watchdog-next. Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] watchdog: Convert BookE watchdog driver to watchdog infrastructure
Hi Guenter, Signed-off-by: Guenter Roeck li...@roeck-us.net --- drivers/watchdog/Kconfig |1 + drivers/watchdog/booke_wdt.c | 185 +++--- 2 files changed, 66 insertions(+), 120 deletions(-) Added to linux-watchdog-next. Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] orion_wdt: Add platform alias
Hi Lubomir, > ...so that it's automatically picked up on relevant platforms. > Tested on Kirkwood-based GuruPlug. > > Signed-off-by: Lubomir Rintel > --- > drivers/watchdog/orion_wdt.c |1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/drivers/watchdog/orion_wdt.c b/drivers/watchdog/orion_wdt.c > index c20f96b..c9dd66f 100644 > --- a/drivers/watchdog/orion_wdt.c > +++ b/drivers/watchdog/orion_wdt.c > @@ -223,4 +223,5 @@ MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped > once started (default=" > __MODULE_STRING(WATCHDOG_NOWAYOUT) ")"); > > MODULE_LICENSE("GPL"); > +MODULE_ALIAS("platform:orion_wdt"); > MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR); > -- > 1.7.1 > Added to linux-watchdog-next. Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 10/19] watchdog: at91sam9: at91_wdt_dt_ids cannot be __init
Hi Arnd, > The device IDs are referenced by the driver and potentially > used beyond the init time, as kbuild correctly warns > about. Remove the __initconst annotation. > > Without this patch, building at91_dt_defconfig results in: > > WARNING: drivers/watchdog/built-in.o(.data+0x28): Section mismatch in > reference from the variable at91wdt_driver to the (unknown reference) > .init.rodata:(unknown) > The variable at91wdt_driver references > the (unknown reference) __initconst (unknown) > > Signed-off-by: Arnd Bergmann > Cc: Wim Van Sebroeck > Cc: linux-watch...@vger.kernel.org > Cc: Nicolas Ferre > Cc: Fabio Porcedda Added to linux-watchdog-next. Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] watchdog: da9055_wdt needs to select WATCHDOG_CORE
Hi Randy, > From: Randy Dunlap > > DA9055_WATCHDOG needs to select WATCHDOG_CORE so that it will > build cleanly. Fixes these build errors: > > da9055_wdt.c:(.text+0xe9bc7): undefined reference to > `watchdog_unregister_device' > da9055_wdt.c:(.text+0xe9f4b): undefined reference to > `watchdog_register_device' > > Signed-off-by: Randy Dunlap > Cc: David Dajun Chen > Cc: Wim Van Sebroeck > Cc: linux-watch...@vger.kernel.org > --- > drivers/watchdog/Kconfig |1 + > 1 file changed, 1 insertion(+) > > Found in linux-next, but also applies to mainline. > > --- linux-next-20130128.orig/drivers/watchdog/Kconfig > +++ linux-next-20130128/drivers/watchdog/Kconfig > @@ -79,6 +79,7 @@ config DA9052_WATCHDOG > config DA9055_WATCHDOG > tristate "Dialog Semiconductor DA9055 Watchdog" > depends on MFD_DA9055 > + select WATCHDOG_CORE > help > If you say yes here you get support for watchdog on the Dialog > Semiconductor DA9055 PMIC. Added to linux-watchdog-next. Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 2/2] sp5100_tco: Write back the original value to reserved bits, instead of zero
Hi, > In case of SP5100 or SB7x0 chipsets, the sp5100_tco module writes zero to > reserved bits. The module, however, shouldn't depend on specific default > value, and should perform a read-merge-write operation for the reserved > bits. > > This patch makes the sp5100_tco module perform a read-merge-write operation > on all the chipset (sp5100, sb7x0, sb8x0 or later). > > Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43176 > Signed-off-by: Takahisa Tanaka Added to linux-watchdog-next. Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 1/2] sp5100_tco: Fix wrong indirect I/O access for getting value of reserved bits
Hi, > In case of SB800 or later chipset and re-programming MMIO address(*), > sp5100_tco module may read incorrect value of reserved bit, because the module > reads a value from an incorrect I/O address. However, this bug doesn't cause > a problem, because when re-programming MMIO address, by chance the module > writes zero (this is BIOS's default value) to the low three bits of register. > * In most cases, PC with SB8x0 or later chipset doesn't need to re-programming > MMIO address, because such PC can enable AcpiMmio and can use 0xfed80b00 for > watchdog register base address. > > This patch fixes this bug. > > Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43176 > Signed-off-by: Takahisa Tanaka Added to linux-watchdog-next. Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 1/2] sp5100_tco: Fix wrong indirect I/O access for getting value of reserved bits
Hi, In case of SB800 or later chipset and re-programming MMIO address(*), sp5100_tco module may read incorrect value of reserved bit, because the module reads a value from an incorrect I/O address. However, this bug doesn't cause a problem, because when re-programming MMIO address, by chance the module writes zero (this is BIOS's default value) to the low three bits of register. * In most cases, PC with SB8x0 or later chipset doesn't need to re-programming MMIO address, because such PC can enable AcpiMmio and can use 0xfed80b00 for watchdog register base address. This patch fixes this bug. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43176 Signed-off-by: Takahisa Tanaka mc74h...@gmail.com Added to linux-watchdog-next. Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 2/2] sp5100_tco: Write back the original value to reserved bits, instead of zero
Hi, In case of SP5100 or SB7x0 chipsets, the sp5100_tco module writes zero to reserved bits. The module, however, shouldn't depend on specific default value, and should perform a read-merge-write operation for the reserved bits. This patch makes the sp5100_tco module perform a read-merge-write operation on all the chipset (sp5100, sb7x0, sb8x0 or later). Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43176 Signed-off-by: Takahisa Tanaka mc74h...@gmail.com Added to linux-watchdog-next. Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] watchdog: da9055_wdt needs to select WATCHDOG_CORE
Hi Randy, From: Randy Dunlap rdun...@infradead.org DA9055_WATCHDOG needs to select WATCHDOG_CORE so that it will build cleanly. Fixes these build errors: da9055_wdt.c:(.text+0xe9bc7): undefined reference to `watchdog_unregister_device' da9055_wdt.c:(.text+0xe9f4b): undefined reference to `watchdog_register_device' Signed-off-by: Randy Dunlap rdun...@infradead.org Cc: David Dajun Chen dc...@diasemi.com Cc: Wim Van Sebroeck w...@iguana.be Cc: linux-watch...@vger.kernel.org --- drivers/watchdog/Kconfig |1 + 1 file changed, 1 insertion(+) Found in linux-next, but also applies to mainline. --- linux-next-20130128.orig/drivers/watchdog/Kconfig +++ linux-next-20130128/drivers/watchdog/Kconfig @@ -79,6 +79,7 @@ config DA9052_WATCHDOG config DA9055_WATCHDOG tristate Dialog Semiconductor DA9055 Watchdog depends on MFD_DA9055 + select WATCHDOG_CORE help If you say yes here you get support for watchdog on the Dialog Semiconductor DA9055 PMIC. Added to linux-watchdog-next. Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 10/19] watchdog: at91sam9: at91_wdt_dt_ids cannot be __init
Hi Arnd, The device IDs are referenced by the driver and potentially used beyond the init time, as kbuild correctly warns about. Remove the __initconst annotation. Without this patch, building at91_dt_defconfig results in: WARNING: drivers/watchdog/built-in.o(.data+0x28): Section mismatch in reference from the variable at91wdt_driver to the (unknown reference) .init.rodata:(unknown) The variable at91wdt_driver references the (unknown reference) __initconst (unknown) Signed-off-by: Arnd Bergmann a...@arndb.de Cc: Wim Van Sebroeck w...@iguana.be Cc: linux-watch...@vger.kernel.org Cc: Nicolas Ferre nicolas.fe...@atmel.com Cc: Fabio Porcedda fabio.porce...@gmail.com Added to linux-watchdog-next. Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] orion_wdt: Add platform alias
Hi Lubomir, ...so that it's automatically picked up on relevant platforms. Tested on Kirkwood-based GuruPlug. Signed-off-by: Lubomir Rintel lkund...@v3.sk --- drivers/watchdog/orion_wdt.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/drivers/watchdog/orion_wdt.c b/drivers/watchdog/orion_wdt.c index c20f96b..c9dd66f 100644 --- a/drivers/watchdog/orion_wdt.c +++ b/drivers/watchdog/orion_wdt.c @@ -223,4 +223,5 @@ MODULE_PARM_DESC(nowayout, Watchdog cannot be stopped once started (default= __MODULE_STRING(WATCHDOG_NOWAYOUT) )); MODULE_LICENSE(GPL); +MODULE_ALIAS(platform:orion_wdt); MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR); -- 1.7.1 Added to linux-watchdog-next. Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v2 3/4] watchdog: add support for ux500_wdt watchdog
Hi Fabio, Samuel, > This patch adds support for the ux500_wdt watchdog that is found in > ST-Ericsson Ux500 platform. The driver is based on PRCMU APIs. > > Acked-by: Linus Walleij > Acked-by: Lee Jones > Signed-off-by: Fabio Baltieri Acked-by: Wim Van Sebroeck Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v2 3/4] watchdog: add support for ux500_wdt watchdog
Hi Fabio, Samuel, This patch adds support for the ux500_wdt watchdog that is found in ST-Ericsson Ux500 platform. The driver is based on PRCMU APIs. Acked-by: Linus Walleij linus.wall...@linaro.org Acked-by: Lee Jones lee.jo...@linaro.org Signed-off-by: Fabio Baltieri fabio.balti...@linaro.org Acked-by: Wim Van Sebroeck w...@iguana.be Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/4] watchdog: add support for ux500_wdt watchdog
Hi Fabio, > This patch adds support for the ux500_wdt watchdog that is found in > ST-Ericsson Ux500 platform. The driver is based on PRCMU APIs. > > Acked-by: Lee Jones > Signed-off-by: Fabio Baltieri > +static int timeout = WATCHDOG_TIMEOUT; > +module_param(timeout, int, 0); > +MODULE_PARM_DESC(timeout, > + "Watchdog timeout in seconds. default=" > + __MODULE_STRING(WATCHDOG_TIMEOUT) "."); We should go for unsigned int timeout values... > +static int nowayout = WATCHDOG_NOWAYOUT; > +module_param(nowayout, int, 0); > +MODULE_PARM_DESC(nowayout, > + "Watchdog cannot be stopped once started (default=" > + __MODULE_STRING(WATCHDOG_NOWAYOUT) ")"); nowayout is a boolean value so please change this to static bool nowayout = WATCHDOG_NOWAYOUT; The rest is OK by me. So if bowayout get's fixed then you have my acked-by. Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/4] watchdog: add support for ux500_wdt watchdog
Hi Fabio, This patch adds support for the ux500_wdt watchdog that is found in ST-Ericsson Ux500 platform. The driver is based on PRCMU APIs. Acked-by: Lee Jones lee.jo...@linaro.org Signed-off-by: Fabio Baltieri fabio.balti...@linaro.org +static int timeout = WATCHDOG_TIMEOUT; +module_param(timeout, int, 0); +MODULE_PARM_DESC(timeout, + Watchdog timeout in seconds. default= + __MODULE_STRING(WATCHDOG_TIMEOUT) .); We should go for unsigned int timeout values... +static int nowayout = WATCHDOG_NOWAYOUT; +module_param(nowayout, int, 0); +MODULE_PARM_DESC(nowayout, + Watchdog cannot be stopped once started (default= + __MODULE_STRING(WATCHDOG_NOWAYOUT) )); nowayout is a boolean value so please change this to static bool nowayout = WATCHDOG_NOWAYOUT; The rest is OK by me. So if bowayout get's fixed then you have my acked-by. Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/4] watchdog: add support for ux500_wdt watchdog
Hi Samuel, > On Fri, Jan 18, 2013 at 12:40:13PM +0100, Fabio Baltieri wrote: > > This patch adds support for the ux500_wdt watchdog that is found in > > ST-Ericsson Ux500 platform. The driver is based on PRCMU APIs. > > > > Acked-by: Lee Jones > > Signed-off-by: Fabio Baltieri > > --- > > drivers/watchdog/Kconfig| 12 +++ > > drivers/watchdog/Makefile | 1 + > > drivers/watchdog/ux500_wdt.c| 171 > > > > include/linux/platform_data/ux500_wdt.h | 19 > > 4 files changed, 203 insertions(+) > > create mode 100644 drivers/watchdog/ux500_wdt.c > > create mode 100644 include/linux/platform_data/ux500_wdt.h > There is a dependency between this one an the first patch. > Wim, would you like me to carry this patch through the MFD tree ? Seen the dependancy's -> best way would be to take this via the MFD tree. I allready looked at the patches and it looks OK at the first glans. I'll review them and lett you know if they have my Acked-by :-). Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/4] watchdog: add support for ux500_wdt watchdog
Hi Samuel, On Fri, Jan 18, 2013 at 12:40:13PM +0100, Fabio Baltieri wrote: This patch adds support for the ux500_wdt watchdog that is found in ST-Ericsson Ux500 platform. The driver is based on PRCMU APIs. Acked-by: Lee Jones lee.jo...@linaro.org Signed-off-by: Fabio Baltieri fabio.balti...@linaro.org --- drivers/watchdog/Kconfig| 12 +++ drivers/watchdog/Makefile | 1 + drivers/watchdog/ux500_wdt.c| 171 include/linux/platform_data/ux500_wdt.h | 19 4 files changed, 203 insertions(+) create mode 100644 drivers/watchdog/ux500_wdt.c create mode 100644 include/linux/platform_data/ux500_wdt.h There is a dependency between this one an the first patch. Wim, would you like me to carry this patch through the MFD tree ? Seen the dependancy's - best way would be to take this via the MFD tree. I allready looked at the patches and it looks OK at the first glans. I'll review them and lett you know if they have my Acked-by :-). Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[GIT PULL REQUEST] watchdog - v3.8-rc1 Fixes
Hi Linus, Please pull from 'master' branch of git://www.linux-watchdog.org/linux-watchdog.git It fixes some small errors in the new da9055 driver, eliminates a compiler warning and adds DT support for the twl4030_wdt driver (so that we can have multiple watchdogs with DT on the omap platforms). This will update the following files: Documentation/devicetree/bindings/watchdog/twl4030-wdt.txt | 10 +++ arch/arm/boot/dts/twl4030.dtsi |4 +++ drivers/watchdog/da9055_wdt.c | 17 - drivers/watchdog/omap_wdt.c|1 drivers/watchdog/twl4030_wdt.c | 11 ++-- 5 files changed, 29 insertions(+), 14 deletions(-) with these Changes: commit 8899b8d93ec64b7a8e54807a68a958e1206535e2 Author: Aaro Koskinen Date: Sun Dec 23 22:03:37 2012 +0200 watchdog: twl4030_wdt: add DT support Add DT support for twl4030_wdt. This is needed to get twl4030_wdt to probe when booting with DT. Signed-off-by: Aaro Koskinen Signed-off-by: Wim Van Sebroeck commit 412b3729dd0234771c67452b8999191f1e8d8630 Author: Aaro Koskinen Date: Sun Dec 23 22:03:36 2012 +0200 watchdog: omap_wdt: eliminate unused variable and a compiler warning We forgot to delete this in the commit 4f4753d9 (watchdog: omap_wdt: convert to devm_ functions), and as a result the following compilation warning was introduced: drivers/watchdog/omap_wdt.c: In function 'omap_wdt_remove': drivers/watchdog/omap_wdt.c:299:19: warning: unused variable 'res' [-Wunused-variable] Signed-off-by: Aaro Koskinen Reviewed-by: Paul Walmsley Signed-off-by: Wim Van Sebroeck commit 98e4a293895dda2b74476ac3a9f79c58b5d0155a Author: Axel Lin Date: Sat Dec 22 11:07:01 2012 +0800 watchdog: da9055: Don't update wdt_dev->timeout in da9055_wdt_set_timeout error path Otherwise, WDIOC_GETTIMEOUT returns wrong value if set_timeout fails. This patch also removes unnecessary ret variable in da9055_wdt_ping function. Signed-off-by: Axel Lin Signed-off-by: Wim Van Sebroeck commit ee8c94adff9bd8609e70fb2ecdfaa71f561ed40d Author: Axel Lin Date: Fri Dec 21 21:09:06 2012 +0800 watchdog: da9055: Fix invalid free of devm_ allocated data It is not required to free devm_ allocated data. Since kref_put needs a valid release function, da9055_wdt_release_resources() is not deleted. Signed-off-by: Axel Lin Signed-off-by: Wim Van Sebroeck For completeness, I added the overal diff below. Greetings, Wim. diff --git a/Documentation/devicetree/bindings/watchdog/twl4030-wdt.txt b/Documentation/devicetree/bindings/watchdog/twl4030-wdt.txt new file mode 100644 index 000..80a3719 --- /dev/null +++ b/Documentation/devicetree/bindings/watchdog/twl4030-wdt.txt @@ -0,0 +1,10 @@ +Device tree bindings for twl4030-wdt driver (TWL4030 watchdog) + +Required properties: + compatible = "ti,twl4030-wdt"; + +Example: + +watchdog { + compatible = "ti,twl4030-wdt"; +}; diff --git a/arch/arm/boot/dts/twl4030.dtsi b/arch/arm/boot/dts/twl4030.dtsi index 63411b0..ed0bc95 100644 --- a/arch/arm/boot/dts/twl4030.dtsi +++ b/arch/arm/boot/dts/twl4030.dtsi @@ -19,6 +19,10 @@ interrupts = <11>; }; + watchdog { + compatible = "ti,twl4030-wdt"; + }; + vdac: regulator-vdac { compatible = "ti,twl4030-vdac"; regulator-min-microvolt = <180>; diff --git a/drivers/watchdog/da9055_wdt.c b/drivers/watchdog/da9055_wdt.c index 709ea1a..f5ad105 100644 --- a/drivers/watchdog/da9055_wdt.c +++ b/drivers/watchdog/da9055_wdt.c @@ -72,20 +72,21 @@ static int da9055_wdt_set_timeout(struct watchdog_device *wdt_dev, DA9055_TWDSCALE_MASK, da9055_wdt_maps[i].reg_val << DA9055_TWDSCALE_SHIFT); - if (ret < 0) + if (ret < 0) { dev_err(da9055->dev, "Failed to update timescale bit, %d\n", ret); + return ret; + } wdt_dev->timeout = timeout; - return ret; + return 0; } static int da9055_wdt_ping(struct watchdog_device *wdt_dev) { struct da9055_wdt_data *driver_data = watchdog_get_drvdata(wdt_dev); struct da9055 *da9055 = driver_data->da9055; - int ret; /* * We have a minimum time for watchdog window called TWDMIN. A write @@ -94,18 +95,12 @@ static int da9055_wdt_ping(struct watchdog_device *wdt_dev) mdelay(DA9055_TWDMIN); /* Reset the watchdog timer */ - ret = da9055_reg_update(da9055, DA9055_REG
[GIT PULL REQUEST] watchdog - v3.8-rc1 Fixes
Hi Linus, Please pull from 'master' branch of git://www.linux-watchdog.org/linux-watchdog.git It fixes some small errors in the new da9055 driver, eliminates a compiler warning and adds DT support for the twl4030_wdt driver (so that we can have multiple watchdogs with DT on the omap platforms). This will update the following files: Documentation/devicetree/bindings/watchdog/twl4030-wdt.txt | 10 +++ arch/arm/boot/dts/twl4030.dtsi |4 +++ drivers/watchdog/da9055_wdt.c | 17 - drivers/watchdog/omap_wdt.c|1 drivers/watchdog/twl4030_wdt.c | 11 ++-- 5 files changed, 29 insertions(+), 14 deletions(-) with these Changes: commit 8899b8d93ec64b7a8e54807a68a958e1206535e2 Author: Aaro Koskinen aaro.koski...@iki.fi Date: Sun Dec 23 22:03:37 2012 +0200 watchdog: twl4030_wdt: add DT support Add DT support for twl4030_wdt. This is needed to get twl4030_wdt to probe when booting with DT. Signed-off-by: Aaro Koskinen aaro.koski...@iki.fi Signed-off-by: Wim Van Sebroeck w...@iguana.be commit 412b3729dd0234771c67452b8999191f1e8d8630 Author: Aaro Koskinen aaro.koski...@iki.fi Date: Sun Dec 23 22:03:36 2012 +0200 watchdog: omap_wdt: eliminate unused variable and a compiler warning We forgot to delete this in the commit 4f4753d9 (watchdog: omap_wdt: convert to devm_ functions), and as a result the following compilation warning was introduced: drivers/watchdog/omap_wdt.c: In function 'omap_wdt_remove': drivers/watchdog/omap_wdt.c:299:19: warning: unused variable 'res' [-Wunused-variable] Signed-off-by: Aaro Koskinen aaro.koski...@iki.fi Reviewed-by: Paul Walmsley p...@pwsan.com Signed-off-by: Wim Van Sebroeck w...@iguana.be commit 98e4a293895dda2b74476ac3a9f79c58b5d0155a Author: Axel Lin axel@ingics.com Date: Sat Dec 22 11:07:01 2012 +0800 watchdog: da9055: Don't update wdt_dev-timeout in da9055_wdt_set_timeout error path Otherwise, WDIOC_GETTIMEOUT returns wrong value if set_timeout fails. This patch also removes unnecessary ret variable in da9055_wdt_ping function. Signed-off-by: Axel Lin axel@ingics.com Signed-off-by: Wim Van Sebroeck w...@iguana.be commit ee8c94adff9bd8609e70fb2ecdfaa71f561ed40d Author: Axel Lin axel@ingics.com Date: Fri Dec 21 21:09:06 2012 +0800 watchdog: da9055: Fix invalid free of devm_ allocated data It is not required to free devm_ allocated data. Since kref_put needs a valid release function, da9055_wdt_release_resources() is not deleted. Signed-off-by: Axel Lin axel@ingics.com Signed-off-by: Wim Van Sebroeck w...@iguana.be For completeness, I added the overal diff below. Greetings, Wim. diff --git a/Documentation/devicetree/bindings/watchdog/twl4030-wdt.txt b/Documentation/devicetree/bindings/watchdog/twl4030-wdt.txt new file mode 100644 index 000..80a3719 --- /dev/null +++ b/Documentation/devicetree/bindings/watchdog/twl4030-wdt.txt @@ -0,0 +1,10 @@ +Device tree bindings for twl4030-wdt driver (TWL4030 watchdog) + +Required properties: + compatible = ti,twl4030-wdt; + +Example: + +watchdog { + compatible = ti,twl4030-wdt; +}; diff --git a/arch/arm/boot/dts/twl4030.dtsi b/arch/arm/boot/dts/twl4030.dtsi index 63411b0..ed0bc95 100644 --- a/arch/arm/boot/dts/twl4030.dtsi +++ b/arch/arm/boot/dts/twl4030.dtsi @@ -19,6 +19,10 @@ interrupts = 11; }; + watchdog { + compatible = ti,twl4030-wdt; + }; + vdac: regulator-vdac { compatible = ti,twl4030-vdac; regulator-min-microvolt = 180; diff --git a/drivers/watchdog/da9055_wdt.c b/drivers/watchdog/da9055_wdt.c index 709ea1a..f5ad105 100644 --- a/drivers/watchdog/da9055_wdt.c +++ b/drivers/watchdog/da9055_wdt.c @@ -72,20 +72,21 @@ static int da9055_wdt_set_timeout(struct watchdog_device *wdt_dev, DA9055_TWDSCALE_MASK, da9055_wdt_maps[i].reg_val DA9055_TWDSCALE_SHIFT); - if (ret 0) + if (ret 0) { dev_err(da9055-dev, Failed to update timescale bit, %d\n, ret); + return ret; + } wdt_dev-timeout = timeout; - return ret; + return 0; } static int da9055_wdt_ping(struct watchdog_device *wdt_dev) { struct da9055_wdt_data *driver_data = watchdog_get_drvdata(wdt_dev); struct da9055 *da9055 = driver_data-da9055; - int ret; /* * We have a minimum time for watchdog window called TWDMIN. A write @@ -94,18 +95,12 @@ static int da9055_wdt_ping(struct watchdog_device *wdt_dev
Re: [PATCH v4 3/7] watchdog: sp805_wdt depends on ARM
Hi Davide > From: Alessandro Rubini > > The SP805 driver is only used by the Spear machines, and uses > writel_relaxed, which is not available on all architectures. > > The dependency from CONFIG_ARM avoids compilation problems under > randomconfig when CONFIG_ARM_AMBA is enabled for x86 builds. > > Signed-off-by: Alessandro Rubini > Acked-by: Giancarlo Asnaghi > Signed-off-by: Davide Ciminaghi Signed-off-by: Wim Van Sebroeck Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: watchdog: del_timer call missing on the cpu5wdt.c
Hi, > We do a setup_timer at init stage of the module, but we didn't > de-activate the time using del_timer. Added to linux-watchdog-next. Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: watchdog: del_timer call missing on the cpu5wdt.c
Hi, We do a setup_timer at init stage of the module, but we didn't de-activate the time using del_timer. Added to linux-watchdog-next. Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v4 3/7] watchdog: sp805_wdt depends on ARM
Hi Davide From: Alessandro Rubini rub...@gnudd.com The SP805 driver is only used by the Spear machines, and uses writel_relaxed, which is not available on all architectures. The dependency from CONFIG_ARM avoids compilation problems under randomconfig when CONFIG_ARM_AMBA is enabled for x86 builds. Signed-off-by: Alessandro Rubini rub...@gnudd.com Acked-by: Giancarlo Asnaghi giancarlo.asna...@st.com Signed-off-by: Davide Ciminaghi cimina...@gnudd.com Signed-off-by: Wim Van Sebroeck w...@iguana.be Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL REQUEST] watchdog - v3.6-rc5 Fixes
Hi Murali, > Wim, > > Could you take the watchdog davinci patch as well? > http://www.mail-archive.com/davinci-linux-open-source@linux.davincidsp.com/msg23630.html > > I have tried 2 times to send the patch to the linux-watchdog list, but the > server is rejecting it for some reason. The second time I tried registering > my email id to the list and re-sent, but no success. > > Murali It's in linux-watchdog-next since yesterday-evening. Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [GIT PULL REQUEST] watchdog - v3.6-rc5 Fixes
Hi Murali, Wim, Could you take the watchdog davinci patch as well? http://www.mail-archive.com/davinci-linux-open-source@linux.davincidsp.com/msg23630.html I have tried 2 times to send the patch to the linux-watchdog list, but the server is rejecting it for some reason. The second time I tried registering my email id to the list and re-sent, but no success. Murali It's in linux-watchdog-next since yesterday-evening. Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3] watchdog/imx2+: add support for pretimeout interrupt functionality
Hi Oskar, > unless there is another issue with this patch, > could You give an ack now? > > thanks, > Oskar > > On Thu, Sep 20, 2012 at 15:37:24 +, Oskar Schirmer wrote: > > This watchdog device provides pretimeout facilities: > > Set some timeout value and get informed about imminent > > watchdog activity thru interrupt. > > > > Allow user to wait for this asynchronous event thru poll(2), > > and to clear it implicitely upon dog appeasement. > > > > There is only one precedent in current kernel that implements > > watchdog pretimeout, ipmi_watchdog. It provides pretimeout > > event thru poll, and requires a read(2) call to clear it. > > > > However, as write(2) does calm the dog and so wind up the > > timer anyway, it is obvious to let poll(2) state writability > > where pretimeout has passed. > [...] No, I'm not givinbg this an ACK nor a NAK at this moment. I will review best options after the next merge window. Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v3] watchdog/imx2+: add support for pretimeout interrupt functionality
Hi Oskar, unless there is another issue with this patch, could You give an ack now? thanks, Oskar On Thu, Sep 20, 2012 at 15:37:24 +, Oskar Schirmer wrote: This watchdog device provides pretimeout facilities: Set some timeout value and get informed about imminent watchdog activity thru interrupt. Allow user to wait for this asynchronous event thru poll(2), and to clear it implicitely upon dog appeasement. There is only one precedent in current kernel that implements watchdog pretimeout, ipmi_watchdog. It provides pretimeout event thru poll, and requires a read(2) call to clear it. However, as write(2) does calm the dog and so wind up the timer anyway, it is obvious to let poll(2) state writability where pretimeout has passed. [...] No, I'm not givinbg this an ACK nor a NAK at this moment. I will review best options after the next merge window. Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [Patch v1 6/7] DA9055 Watchdog driver
Hi Ashish > Any update on this patch? > On Fri, 2012-09-14 at 19:03 +0530, Ashish Jangam wrote: > > This is the Watchdog patch for the DA9055 PMIC. This patch has got > > dependency on the DA9055 MFD core. > > > > This patch is functionally tested on SMDK6410 > > > > Signed-off-by: David Dajun Chen > > Signed-off-by: Ashish Jangam > > --- > > drivers/watchdog/Kconfig | 10 ++ > > drivers/watchdog/Makefile |1 + > > drivers/watchdog/da9055_wdt.c | 227 > > + > > 3 files changed, 238 insertions(+), 0 deletions(-) > > create mode 100644 drivers/watchdog/da9055_wdt.c I'll review it tomorrow- or wednesday-evening. My first impression is that it looks OK. Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [Patch v1 6/7] DA9055 Watchdog driver
Hi Ashish Any update on this patch? On Fri, 2012-09-14 at 19:03 +0530, Ashish Jangam wrote: This is the Watchdog patch for the DA9055 PMIC. This patch has got dependency on the DA9055 MFD core. This patch is functionally tested on SMDK6410 Signed-off-by: David Dajun Chen dc...@diasemi.com Signed-off-by: Ashish Jangam ashish.jan...@kpitcummins.com --- drivers/watchdog/Kconfig | 10 ++ drivers/watchdog/Makefile |1 + drivers/watchdog/da9055_wdt.c | 227 + 3 files changed, 238 insertions(+), 0 deletions(-) create mode 100644 drivers/watchdog/da9055_wdt.c I'll review it tomorrow- or wednesday-evening. My first impression is that it looks OK. Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[GIT PULL REQUEST] watchdog - v3.6-rc5 Fixes
Hi Linus, Please pull from 'master' branch of git://www.linux-watchdog.org/linux-watchdog.git It will fix a kdump issue in hpwdt and a possible NULL dereference. This will update the following files: hpwdt.c |3 +++ watchdog_core.c |3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) with these Changes: commit b232a70a1735c004f9ee6fdf363def527b9234b6 Author: Wei Yongjun Date: Mon Sep 10 12:41:15 2012 +0800 watchdog: move the dereference below the NULL test The dereference should be moved below the NULL test. spatch with a semantic match is used to found this. (http://coccinelle.lip6.fr/) Signed-off-by: Wei Yongjun Signed-off-by: Wim Van Sebroeck commit 308b135e4fcc00c80c07e0e04e7afa8edf78583c Author: Toshi Kani Date: Mon Aug 27 12:52:24 2012 -0600 hpwdt: Fix kdump issue in hpwdt kdump can be interrupted by watchdog timer when the timer is left activated on the crash kernel. Changed the hpwdt driver to disable watchdog timer at boot-time. This assures that watchdog timer is disabled until /dev/watchdog is opened, and prevents watchdog timer to be left running on the crash kernel. Signed-off-by: Toshi Kani Tested-by: Lisa Mitchell Signed-off-by: Thomas Mingarelli Signed-off-by: Wim Van Sebroeck Cc: stable For completeness, I added the overal diff below. Greetings, Wim. diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c index 1eff743..ae60406 100644 --- a/drivers/watchdog/hpwdt.c +++ b/drivers/watchdog/hpwdt.c @@ -814,6 +814,9 @@ static int __devinit hpwdt_init_one(struct pci_dev *dev, hpwdt_timer_reg = pci_mem_addr + 0x70; hpwdt_timer_con = pci_mem_addr + 0x72; + /* Make sure that timer is disabled until /dev/watchdog is opened */ + hpwdt_stop(); + /* Make sure that we have a valid soft_margin */ if (hpwdt_change_timer(soft_margin)) hpwdt_change_timer(DEFAULT_MARGIN); diff --git a/drivers/watchdog/watchdog_core.c b/drivers/watchdog/watchdog_core.c index 6aa46a9..3796434 100644 --- a/drivers/watchdog/watchdog_core.c +++ b/drivers/watchdog/watchdog_core.c @@ -128,11 +128,12 @@ EXPORT_SYMBOL_GPL(watchdog_register_device); void watchdog_unregister_device(struct watchdog_device *wdd) { int ret; - int devno = wdd->cdev.dev; + int devno; if (wdd == NULL) return; + devno = wdd->cdev.dev; ret = watchdog_dev_unregister(wdd); if (ret) pr_err("error unregistering /dev/watchdog (err=%d)\n", ret); -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[GIT PULL REQUEST] watchdog - v3.6-rc5 Fixes
Hi Linus, Please pull from 'master' branch of git://www.linux-watchdog.org/linux-watchdog.git It will fix a kdump issue in hpwdt and a possible NULL dereference. This will update the following files: hpwdt.c |3 +++ watchdog_core.c |3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) with these Changes: commit b232a70a1735c004f9ee6fdf363def527b9234b6 Author: Wei Yongjun yongjun_...@trendmicro.com.cn Date: Mon Sep 10 12:41:15 2012 +0800 watchdog: move the dereference below the NULL test The dereference should be moved below the NULL test. spatch with a semantic match is used to found this. (http://coccinelle.lip6.fr/) Signed-off-by: Wei Yongjun yongjun_...@trendmicro.com.cn Signed-off-by: Wim Van Sebroeck w...@iguana.be commit 308b135e4fcc00c80c07e0e04e7afa8edf78583c Author: Toshi Kani toshi.k...@hp.com Date: Mon Aug 27 12:52:24 2012 -0600 hpwdt: Fix kdump issue in hpwdt kdump can be interrupted by watchdog timer when the timer is left activated on the crash kernel. Changed the hpwdt driver to disable watchdog timer at boot-time. This assures that watchdog timer is disabled until /dev/watchdog is opened, and prevents watchdog timer to be left running on the crash kernel. Signed-off-by: Toshi Kani toshi.k...@hp.com Tested-by: Lisa Mitchell lisa.mitch...@hp.com Signed-off-by: Thomas Mingarelli thomas.mingare...@hp.com Signed-off-by: Wim Van Sebroeck w...@iguana.be Cc: stable sta...@vger.kernel.org For completeness, I added the overal diff below. Greetings, Wim. diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c index 1eff743..ae60406 100644 --- a/drivers/watchdog/hpwdt.c +++ b/drivers/watchdog/hpwdt.c @@ -814,6 +814,9 @@ static int __devinit hpwdt_init_one(struct pci_dev *dev, hpwdt_timer_reg = pci_mem_addr + 0x70; hpwdt_timer_con = pci_mem_addr + 0x72; + /* Make sure that timer is disabled until /dev/watchdog is opened */ + hpwdt_stop(); + /* Make sure that we have a valid soft_margin */ if (hpwdt_change_timer(soft_margin)) hpwdt_change_timer(DEFAULT_MARGIN); diff --git a/drivers/watchdog/watchdog_core.c b/drivers/watchdog/watchdog_core.c index 6aa46a9..3796434 100644 --- a/drivers/watchdog/watchdog_core.c +++ b/drivers/watchdog/watchdog_core.c @@ -128,11 +128,12 @@ EXPORT_SYMBOL_GPL(watchdog_register_device); void watchdog_unregister_device(struct watchdog_device *wdd) { int ret; - int devno = wdd-cdev.dev; + int devno; if (wdd == NULL) return; + devno = wdd-cdev.dev; ret = watchdog_dev_unregister(wdd); if (ret) pr_err(error unregistering /dev/watchdog (err=%d)\n, ret); -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] wdt:clk: preparation for switch to common clock framework
Hi Karicheri, > >> -Original Message- > >> From: Karicheri, Muralidharan > >> Sent: Thursday, August 30, 2012 2:29 PM > >> To: linux-kernel@vger.kernel.org; mturque...@linaro.org; linux- > >> watch...@vger.kernel.org; w...@iguana.be > >> Cc: Karicheri, Muralidharan > >> Subject: [PATCH] wdt:clk: preparation for switch to common clock framework > >> > >> As a first step towards migrating davinci platforms to use common clock > >> framework, replace all instances of clk_enable() with clk_prepare_enable() > >> and clk_disable() with clk_disable_unprepare(). Until the platform is > >> switched to use the CONFIG_HAVE_CLK_PREPARE Kconfig variable, this just > >> adds a might_sleep() call and would work without any issues. > >> > >> This will make it easy later to switch to common clk based implementation > >> of clk driver from DaVinci specific driver. > >> > >> Signed-off-by: Murali Karicheri Could you resent the original e-mail because I didn't seem to have received it... And I can't even find it in the linux-watchdog mailing list archives... Thanks, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v2] watchdog/imx2+: add support for pretimeout interrupt functionality
Hi Oskar, > This watchdog device provides pretimeout facilities: > Set some timeout value and get informed about imminent > watchdog activity thru interrupt. > > Allow user to wait for this interrupt thru poll(2), > and to clear it thru read(2). > > Signed-off-by: Oskar Schirmer > Cc: Wim Van Sebroeck > Cc: Wolfram Sang > Cc: Sascha Hauer > Cc: Andrew Morton I have a problem with the read and poll. We had "read()" in the past so we have a possible issue here (different function but userspace apps could still use the old read)... Can you explain what the read and poll does and where you want to use it. Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH v2] watchdog/imx2+: add support for pretimeout interrupt functionality
Hi Oskar, This watchdog device provides pretimeout facilities: Set some timeout value and get informed about imminent watchdog activity thru interrupt. Allow user to wait for this interrupt thru poll(2), and to clear it thru read(2). Signed-off-by: Oskar Schirmer os...@scara.com Cc: Wim Van Sebroeck w...@iguana.be Cc: Wolfram Sang w.s...@pengutronix.de Cc: Sascha Hauer ker...@pengutronix.de Cc: Andrew Morton a...@linux-foundation.org I have a problem with the read and poll. We had read() in the past so we have a possible issue here (different function but userspace apps could still use the old read)... Can you explain what the read and poll does and where you want to use it. Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] wdt:clk: preparation for switch to common clock framework
Hi Karicheri, -Original Message- From: Karicheri, Muralidharan Sent: Thursday, August 30, 2012 2:29 PM To: linux-kernel@vger.kernel.org; mturque...@linaro.org; linux- watch...@vger.kernel.org; w...@iguana.be Cc: Karicheri, Muralidharan Subject: [PATCH] wdt:clk: preparation for switch to common clock framework As a first step towards migrating davinci platforms to use common clock framework, replace all instances of clk_enable() with clk_prepare_enable() and clk_disable() with clk_disable_unprepare(). Until the platform is switched to use the CONFIG_HAVE_CLK_PREPARE Kconfig variable, this just adds a might_sleep() call and would work without any issues. This will make it easy later to switch to common clk based implementation of clk driver from DaVinci specific driver. Signed-off-by: Murali Karicheri m-kariche...@ti.com Could you resent the original e-mail because I didn't seem to have received it... And I can't even find it in the linux-watchdog mailing list archives... Thanks, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] hpwdt: Fix kdump issue in hpwdt
Hi Toshi, > kdump can be interrupted by watchdog timer when the timer is left > activated on the crash kernel. Changed the hpwdt driver to disable > watchdog timer at boot-time. This assures that watchdog timer is > disabled until /dev/watchdog is opened, and prevents watchdog timer > to be left running on the crash kernel. > > Signed-off-by: Toshi Kani > Tested-by: Lisa Mitchell > Cc: sta...@vger.kernel.org > --- > drivers/watchdog/hpwdt.c |3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c > index 1eff743..ae60406 100644 > --- a/drivers/watchdog/hpwdt.c > +++ b/drivers/watchdog/hpwdt.c > @@ -814,6 +814,9 @@ static int __devinit hpwdt_init_one(struct pci_dev *dev, > hpwdt_timer_reg = pci_mem_addr + 0x70; > hpwdt_timer_con = pci_mem_addr + 0x72; > > + /* Make sure that timer is disabled until /dev/watchdog is opened */ > + hpwdt_stop(); > + > /* Make sure that we have a valid soft_margin */ > if (hpwdt_change_timer(soft_margin)) > hpwdt_change_timer(DEFAULT_MARGIN); Added to linux-watchdog-next . Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] hpwdt: Fix kdump issue in hpwdt
Hi Toshi, kdump can be interrupted by watchdog timer when the timer is left activated on the crash kernel. Changed the hpwdt driver to disable watchdog timer at boot-time. This assures that watchdog timer is disabled until /dev/watchdog is opened, and prevents watchdog timer to be left running on the crash kernel. Signed-off-by: Toshi Kani toshi.k...@hp.com Tested-by: Lisa Mitchell lisa.mitch...@hp.com Cc: sta...@vger.kernel.org --- drivers/watchdog/hpwdt.c |3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c index 1eff743..ae60406 100644 --- a/drivers/watchdog/hpwdt.c +++ b/drivers/watchdog/hpwdt.c @@ -814,6 +814,9 @@ static int __devinit hpwdt_init_one(struct pci_dev *dev, hpwdt_timer_reg = pci_mem_addr + 0x70; hpwdt_timer_con = pci_mem_addr + 0x72; + /* Make sure that timer is disabled until /dev/watchdog is opened */ + hpwdt_stop(); + /* Make sure that we have a valid soft_margin */ if (hpwdt_change_timer(soft_margin)) hpwdt_change_timer(DEFAULT_MARGIN); Added to linux-watchdog-next . Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] watchdog: fix a compiler warning of test program
And the fix is in Linus his tree also now. Kind regards, Wim. > On 08/29/2012 06:39 AM, yan wrote: > > > This patch fixs the following compiler warning: > > > > > Hi, > This is already fixed in the watchdog git tree. > > Thanks. > > > Documentation/watchdog/src/watchdog-test.c:34:6: \ > > warning: no previous prototype for ‘term’ [-Wmissing-prototypes] > > > > Signed-off-by: yan > > --- > > Documentation/watchdog/src/watchdog-test.c |2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/Documentation/watchdog/src/watchdog-test.c > > b/Documentation/watchdog/src/watchdog-test.c > > index 73ff5cc..3da8229 100644 > > --- a/Documentation/watchdog/src/watchdog-test.c > > +++ b/Documentation/watchdog/src/watchdog-test.c > > @@ -31,7 +31,7 @@ static void keep_alive(void) > > * or "-e" to enable the card. > > */ > > > > -void term(int sig) > > +static void term(int sig) > > { > > close(fd); > > fprintf(stderr, "Stopping watchdog ticks...\n"); > > > > -- > ~Randy -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] watchdog: fix a compiler warning of test program
And the fix is in Linus his tree also now. Kind regards, Wim. On 08/29/2012 06:39 AM, yan wrote: This patch fixs the following compiler warning: Hi, This is already fixed in the watchdog git tree. Thanks. Documentation/watchdog/src/watchdog-test.c:34:6: \ warning: no previous prototype for ‘term’ [-Wmissing-prototypes] Signed-off-by: yan clouds@gmail.com --- Documentation/watchdog/src/watchdog-test.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/watchdog/src/watchdog-test.c b/Documentation/watchdog/src/watchdog-test.c index 73ff5cc..3da8229 100644 --- a/Documentation/watchdog/src/watchdog-test.c +++ b/Documentation/watchdog/src/watchdog-test.c @@ -31,7 +31,7 @@ static void keep_alive(void) * or -e to enable the card. */ -void term(int sig) +static void term(int sig) { close(fd); fprintf(stderr, Stopping watchdog ticks...\n); -- ~Randy -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[GIT PULL REQUEST] watchdog - v3.6-rc3 Fixes
Hi Linus, Please pull from 'master' branch of git://www.linux-watchdog.org/linux-watchdog.git It will fix a warning for watchdog-test.c and it will remove a duplicate inlude of delay.h This will update the following files: Documentation/watchdog/src/watchdog-test.c |2 +- drivers/watchdog/da9052_wdt.c |1 - 2 files changed, 1 insertion(+), 2 deletions(-) with these Changes: commit 3e5531caffcc07b67452c4a8170ffb4c2bd1c9b7 Author: Sachin Kamat Date: Tue Aug 7 15:14:12 2012 +0530 watchdog: da9052: Remove duplicate inclusion of delay.h delay.h header file was included twice. Signed-off-by: Sachin Kamat Signed-off-by: Wim Van Sebroeck commit 4b1c2f41c2dda158bb7a3dded70775a76b581995 Author: Randy Dunlap Date: Mon Jul 23 10:46:11 2012 -0700 watchdog: fix watchdog-test.c build warning Fix compiler warning by making the function static: Documentation/watchdog/src/watchdog-test.c:34:6: warning: no previous prototype for 'term' Signed-off-by: Randy Dunlap Signed-off-by: Wim Van Sebroeck For completeness, I added the overal diff below. Greetings, Wim. diff --git a/Documentation/watchdog/src/watchdog-test.c b/Documentation/watchdog/src/watchdog-test.c index 73ff5cc..3da8229 100644 --- a/Documentation/watchdog/src/watchdog-test.c +++ b/Documentation/watchdog/src/watchdog-test.c @@ -31,7 +31,7 @@ static void keep_alive(void) * or "-e" to enable the card. */ -void term(int sig) +static void term(int sig) { close(fd); fprintf(stderr, "Stopping watchdog ticks...\n"); diff --git a/drivers/watchdog/da9052_wdt.c b/drivers/watchdog/da9052_wdt.c index 3f75129..f7abbae 100644 --- a/drivers/watchdog/da9052_wdt.c +++ b/drivers/watchdog/da9052_wdt.c @@ -21,7 +21,6 @@ #include #include #include -#include #include #include -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[GIT PULL REQUEST] watchdog - v3.6-rc3 Fixes
Hi Linus, Please pull from 'master' branch of git://www.linux-watchdog.org/linux-watchdog.git It will fix a warning for watchdog-test.c and it will remove a duplicate inlude of delay.h This will update the following files: Documentation/watchdog/src/watchdog-test.c |2 +- drivers/watchdog/da9052_wdt.c |1 - 2 files changed, 1 insertion(+), 2 deletions(-) with these Changes: commit 3e5531caffcc07b67452c4a8170ffb4c2bd1c9b7 Author: Sachin Kamat sachin.ka...@linaro.org Date: Tue Aug 7 15:14:12 2012 +0530 watchdog: da9052: Remove duplicate inclusion of delay.h delay.h header file was included twice. Signed-off-by: Sachin Kamat sachin.ka...@linaro.org Signed-off-by: Wim Van Sebroeck w...@iguana.be commit 4b1c2f41c2dda158bb7a3dded70775a76b581995 Author: Randy Dunlap rdun...@xenotime.net Date: Mon Jul 23 10:46:11 2012 -0700 watchdog: fix watchdog-test.c build warning Fix compiler warning by making the function static: Documentation/watchdog/src/watchdog-test.c:34:6: warning: no previous prototype for 'term' Signed-off-by: Randy Dunlap rdun...@xenotime.net Signed-off-by: Wim Van Sebroeck w...@iguana.be For completeness, I added the overal diff below. Greetings, Wim. diff --git a/Documentation/watchdog/src/watchdog-test.c b/Documentation/watchdog/src/watchdog-test.c index 73ff5cc..3da8229 100644 --- a/Documentation/watchdog/src/watchdog-test.c +++ b/Documentation/watchdog/src/watchdog-test.c @@ -31,7 +31,7 @@ static void keep_alive(void) * or -e to enable the card. */ -void term(int sig) +static void term(int sig) { close(fd); fprintf(stderr, Stopping watchdog ticks...\n); diff --git a/drivers/watchdog/da9052_wdt.c b/drivers/watchdog/da9052_wdt.c index 3f75129..f7abbae 100644 --- a/drivers/watchdog/da9052_wdt.c +++ b/drivers/watchdog/da9052_wdt.c @@ -21,7 +21,6 @@ #include linux/types.h #include linux/kernel.h #include linux/jiffies.h -#include linux/delay.h #include linux/mfd/da9052/reg.h #include linux/mfd/da9052/da9052.h -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: Build regressions/improvements in v3.6-rc3
Hi Randi, > > *** WARNINGS *** > > > > 6202 regressions: > > + Documentation/watchdog/src/watchdog-test.c: warning: no previous > > prototype for 'term' [-Wmissing-prototypes]: => 34:6 > > > patch posted by me... not merged anywhere AFAIK. is in linux-watchdog-next. Will go to Linus this weekend. Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: Build regressions/improvements in v3.6-rc3
Hi Randi, *** WARNINGS *** 6202 regressions: + Documentation/watchdog/src/watchdog-test.c: warning: no previous prototype for 'term' [-Wmissing-prototypes]: = 34:6 patch posted by me... not merged anywhere AFAIK. is in linux-watchdog-next. Will go to Linus this weekend. Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] lpc_ich: Fix a 3.5 kernel regression for iTCO_wdt driver
Hi All, Cc-ing Samuel and Guenter also. > There are many reports (including 2 of my machines) that iTCO_wdt watchdog > driver fails to be initialized in 3.5 kernel with error message like: > > [5.265175] ACPI Warning: 0x1060-0x107f SystemIO conflicts with > Region \_SB_.PCI0.LPCB.TCOI 1 (20120320/utaddress-251) > [5.265192] ACPI: If an ACPI driver is available for this device, you > should use it instead of the native driver > [5.265206] lpc_ich: Resource conflict(s) found affecting iTCO_wdt > > The root cause the iTCO_wdt driver in 3.4 probes the HW IO resource from > LPC's PCI config space, while in 3.5 kernel it relies on lpc_ich driver > for the probe, which adds a new acpi_check_resource_conflict() check, and > give up the probe if there is any conflict with ACPI. > > Fix it by removing all the checks for iTCO_wdt to keep the same behavior as > 3.4 kernel. > https://bugzilla.kernel.org/show_bug.cgi?id=44991 > > Actually the same check could be removed for the gpio-ich in lpc_ich.c, > but I'm not sure if it will cause problems. > > Signed-off-by: Feng Tang > Cc: Aaron Sierra > Cc: Wim Van Sebroeck > Cc: Len Brown > Cc: Bob Moore > --- > drivers/mfd/lpc_ich.c | 20 +--- > 1 files changed, 1 insertions(+), 19 deletions(-) > > diff --git a/drivers/mfd/lpc_ich.c b/drivers/mfd/lpc_ich.c > index 027cc8f..a05fdfc 100644 > --- a/drivers/mfd/lpc_ich.c > +++ b/drivers/mfd/lpc_ich.c > @@ -765,7 +765,6 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev, > u32 base_addr_cfg; > u32 base_addr; > int ret; > - bool acpi_conflict = false; > struct resource *res; > > /* Setup power management base register */ > @@ -780,20 +779,11 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev > *dev, > res = wdt_io_res(ICH_RES_IO_TCO); > res->start = base_addr + ACPIBASE_TCO_OFF; > res->end = base_addr + ACPIBASE_TCO_END; > - ret = acpi_check_resource_conflict(res); > - if (ret) { > - acpi_conflict = true; > - goto wdt_done; > - } > > res = wdt_io_res(ICH_RES_IO_SMI); > res->start = base_addr + ACPIBASE_SMI_OFF; > res->end = base_addr + ACPIBASE_SMI_END; > - ret = acpi_check_resource_conflict(res); > - if (ret) { > - acpi_conflict = true; > - goto wdt_done; > - } > + > lpc_ich_enable_acpi_space(dev); > > /* > @@ -813,11 +803,6 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev > *dev, > res = wdt_mem_res(ICH_RES_MEM_GCS); > res->start = base_addr + ACPIBASE_GCS_OFF; > res->end = base_addr + ACPIBASE_GCS_END; > - ret = acpi_check_resource_conflict(res); > - if (ret) { > - acpi_conflict = true; > - goto wdt_done; > - } > } > > lpc_ich_finalize_cell(_ich_cells[LPC_WDT], id); > @@ -825,9 +810,6 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev, > 1, NULL, 0); > > wdt_done: > - if (acpi_conflict) > - pr_warn("Resource conflict(s) found affecting %s\n", > - lpc_ich_cells[LPC_WDT].name); > return ret; > } > Hi Len, Any idea why the acpi_check_resource_conflict() check gives a conflict? Thanks in advance, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 38/74] lto, watchdog/hpwdt.c: Make assembler label global
Hi andi, > From: Andi Kleen > > We cannot assume that the inline assembler code always ends up > in the same file as the original C file. So make any assembler labels > that are called with "extern" by C global > > Cc: w...@iguana.be > Signed-off-by: Andi Kleen You have my signed-off-by, but I'm Cc-ing also the author of the driver (Tom Mingarelli) so that he is also aware of the proposed change. Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 38/74] lto, watchdog/hpwdt.c: Make assembler label global
Hi andi, From: Andi Kleen a...@linux.intel.com We cannot assume that the inline assembler code always ends up in the same file as the original C file. So make any assembler labels that are called with extern by C global Cc: w...@iguana.be Signed-off-by: Andi Kleen a...@linux.intel.com You have my signed-off-by, but I'm Cc-ing also the author of the driver (Tom Mingarelli) so that he is also aware of the proposed change. Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] lpc_ich: Fix a 3.5 kernel regression for iTCO_wdt driver
Hi All, Cc-ing Samuel and Guenter also. There are many reports (including 2 of my machines) that iTCO_wdt watchdog driver fails to be initialized in 3.5 kernel with error message like: [5.265175] ACPI Warning: 0x1060-0x107f SystemIO conflicts with Region \_SB_.PCI0.LPCB.TCOI 1 (20120320/utaddress-251) [5.265192] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver [5.265206] lpc_ich: Resource conflict(s) found affecting iTCO_wdt The root cause the iTCO_wdt driver in 3.4 probes the HW IO resource from LPC's PCI config space, while in 3.5 kernel it relies on lpc_ich driver for the probe, which adds a new acpi_check_resource_conflict() check, and give up the probe if there is any conflict with ACPI. Fix it by removing all the checks for iTCO_wdt to keep the same behavior as 3.4 kernel. https://bugzilla.kernel.org/show_bug.cgi?id=44991 Actually the same check could be removed for the gpio-ich in lpc_ich.c, but I'm not sure if it will cause problems. Signed-off-by: Feng Tang feng.t...@intel.com Cc: Aaron Sierra asie...@xes-inc.com Cc: Wim Van Sebroeck w...@iguana.be Cc: Len Brown len.br...@intel.com Cc: Bob Moore robert.mo...@intel.com --- drivers/mfd/lpc_ich.c | 20 +--- 1 files changed, 1 insertions(+), 19 deletions(-) diff --git a/drivers/mfd/lpc_ich.c b/drivers/mfd/lpc_ich.c index 027cc8f..a05fdfc 100644 --- a/drivers/mfd/lpc_ich.c +++ b/drivers/mfd/lpc_ich.c @@ -765,7 +765,6 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev, u32 base_addr_cfg; u32 base_addr; int ret; - bool acpi_conflict = false; struct resource *res; /* Setup power management base register */ @@ -780,20 +779,11 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev, res = wdt_io_res(ICH_RES_IO_TCO); res-start = base_addr + ACPIBASE_TCO_OFF; res-end = base_addr + ACPIBASE_TCO_END; - ret = acpi_check_resource_conflict(res); - if (ret) { - acpi_conflict = true; - goto wdt_done; - } res = wdt_io_res(ICH_RES_IO_SMI); res-start = base_addr + ACPIBASE_SMI_OFF; res-end = base_addr + ACPIBASE_SMI_END; - ret = acpi_check_resource_conflict(res); - if (ret) { - acpi_conflict = true; - goto wdt_done; - } + lpc_ich_enable_acpi_space(dev); /* @@ -813,11 +803,6 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev, res = wdt_mem_res(ICH_RES_MEM_GCS); res-start = base_addr + ACPIBASE_GCS_OFF; res-end = base_addr + ACPIBASE_GCS_END; - ret = acpi_check_resource_conflict(res); - if (ret) { - acpi_conflict = true; - goto wdt_done; - } } lpc_ich_finalize_cell(lpc_ich_cells[LPC_WDT], id); @@ -825,9 +810,6 @@ static int __devinit lpc_ich_init_wdt(struct pci_dev *dev, 1, NULL, 0); wdt_done: - if (acpi_conflict) - pr_warn(Resource conflict(s) found affecting %s\n, - lpc_ich_cells[LPC_WDT].name); return ret; } Hi Len, Any idea why the acpi_check_resource_conflict() check gives a conflict? Thanks in advance, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[GIT PULL REQUEST] watchdog - v3.6 merge window
Hi Linus, Please pull from 'master' branch of git://www.linux-watchdog.org/linux-watchdog.git This merge set contains: * conversion of iTCO_wdt and orion_wdt to the generic watchdog API * uses module_platform_driver() for s3c2410_wdt * Adds support for Jetway JNF99 Motherboard * various fixes This will update the following files: char/ipmi/ipmi_watchdog.c | 13 -- watchdog/Kconfig |2 watchdog/bcm63xx_wdt.c|4 watchdog/coh901327_wdt.c |7 - watchdog/f71808e_wdt.c|4 watchdog/iTCO_wdt.c | 213 ++ watchdog/ie6xx_wdt.c |4 watchdog/of_xilinx_wdt.c |2 watchdog/omap_wdt.c | 17 --- watchdog/orion_wdt.c | 203 ++- watchdog/s3c2410_wdt.c| 16 --- watchdog/sch311x_wdt.c| 10 +- 12 files changed, 121 insertions(+), 374 deletions(-) with these Changes: commit 0dd6e4847ed8a42e81df6ffaa71129245a6d9d72 Author: Axel Lin Date: Mon Mar 26 11:14:29 2012 +0800 watchdog: orion_wdt: Convert driver to watchdog core Convert orion_wdt driver to use watchdog framework API. Signed-off-by: Axel Lin Tested-by: Andrew Lunn Signed-off-by: Wim Van Sebroeck commit 6b761b2902c56b468370e0ee1691c37e0dae042a Author: Sachin Kamat Date: Thu Jul 12 17:17:40 2012 +0530 watchdog: s3c2410_wdt: Use module_platform_driver() module_platform_driver() replaces module_init() and module_exit() and makes the code simpler. Signed-off-by: Sachin Kamat Signed-off-by: Wim Van Sebroeck commit 7732c6b96f127bb5d9474715149b4e94e369412c Author: Wim Van Sebroeck Date: Sun Jul 8 14:57:09 2012 +0200 watchdog: sch311x_wdt: Fix Polarity when starting watchdog Some motherboards like the Advantech ARK3400 documentation use a non-inverted GPIO pin. We fix this by assuming that the BIOS will set the Polarity bit for the GPIO correctly at startup and we keep the Bit-setting intact when we start and stop the watchdog. Reported-by: Jean-François Deverge Signed-off-by: Dave Mueller Signed-off-by: Wim Van Sebroeck commit 41814eed414ab3cef3d2b857ae3690a2b4888291 Author: Lokesh Vutla Date: Mon Jun 18 10:53:16 2012 +0530 Watchdog: OMAP: Fix the runtime pm code to avoid module getting stuck intransition state. OMAP watchdog driver is adapted to runtime PM like a general device driver but it is not appropriate. It is causing couple of functional issues. 1. On OMAP4 SYSCLK can't be gated, because of issue with WDTIMER2 module, which constantly stays in "in transition" state. Value of register CM_WKUP_WDTIMER2_CLKCTRL is always 0x0001 in this case. Issue occurs immediately after first idle, when hwmod framework tries to disable WDTIMER2 functional clock - "wd_timer2_fck". After this module falls to "in transition" state, and SYSCLK gating is blocked. 2. Due to runtime PM, watchdog timer may be completely disabled. In current code base watchdog timer is not disabled only because of issue 1. Otherwise state of WDTIMER2 module will be "Disabled", and there will be no interrupts from omap_wdt. In other words watchdog will not work at all. Watchdong is a special IP and it should not be disabled otherwise purpose of it itself is defeated. Watchdog functional clock should never be disabled. This patch updates the runtime PM handling in driver so that runtime PM is limited only during probe/shutdown and suspend/resume. The patch fixes issue 1 and 2 Signed-off-by: Lokesh Vutla Acked-by: Santosh Shilimkar Signed-off-by: Wim Van Sebroeck commit 0402450f45673d3c03340cb1e679bf2a1fc0abee Author: Gerard Snitselaar Date: Wed Jul 4 09:32:11 2012 -0700 watchdog: ie6xx_wdt: section mismatch in ie6xx_wdt_probe() ie6xx_wdt_probe() calls ie6xx_wdt_debugfs_exit() as part of it's error cleanup path, and ie6xx_wdt_debugfs_exit() is currently annotated __devexit. Signed-off-by: Gerard Snitselaar Signed-off-by: Wim Van Sebroeck commit 5a135f3c72c5bc738a29629d81a99c981b17a736 Author: Florian Fainelli Date: Fri Jun 29 11:14:44 2012 +0200 watchdog: bcm63xx_wdt: fix driver section mismatch bcm63xx_wdt was used as a platform_driver but was not suffixed with _driver, thus causing section mismatches, fix that. Signed-off-by: Florian Fainelli Signed-off-by: Wim Van Sebroeck commit bff23431fe7e2eba939fe4cdaa78d94a4d9497f7 Author: Wim Van Sebroeck Date: Sat Jun 9 14:10:28 2012 +0200 watchdog: iTCO_wdt.c: convert to watchdog core This patch converts the iTCO_wdt watchdog driver to use the generic watchdog framework. Signed-off-by: Wim Van Sebroeck commit 18cb2ae55f98648caf0d52ef075f38b16aae7ec6 Author: Oskar Schirmer
[GIT PULL REQUEST] watchdog - v3.6 merge window
Hi Linus, Please pull from 'master' branch of git://www.linux-watchdog.org/linux-watchdog.git This merge set contains: * conversion of iTCO_wdt and orion_wdt to the generic watchdog API * uses module_platform_driver() for s3c2410_wdt * Adds support for Jetway JNF99 Motherboard * various fixes This will update the following files: char/ipmi/ipmi_watchdog.c | 13 -- watchdog/Kconfig |2 watchdog/bcm63xx_wdt.c|4 watchdog/coh901327_wdt.c |7 - watchdog/f71808e_wdt.c|4 watchdog/iTCO_wdt.c | 213 ++ watchdog/ie6xx_wdt.c |4 watchdog/of_xilinx_wdt.c |2 watchdog/omap_wdt.c | 17 --- watchdog/orion_wdt.c | 203 ++- watchdog/s3c2410_wdt.c| 16 --- watchdog/sch311x_wdt.c| 10 +- 12 files changed, 121 insertions(+), 374 deletions(-) with these Changes: commit 0dd6e4847ed8a42e81df6ffaa71129245a6d9d72 Author: Axel Lin axel@gmail.com Date: Mon Mar 26 11:14:29 2012 +0800 watchdog: orion_wdt: Convert driver to watchdog core Convert orion_wdt driver to use watchdog framework API. Signed-off-by: Axel Lin axel@gmail.com Tested-by: Andrew Lunn and...@lunn.ch Signed-off-by: Wim Van Sebroeck w...@iguana.be commit 6b761b2902c56b468370e0ee1691c37e0dae042a Author: Sachin Kamat sachin.ka...@linaro.org Date: Thu Jul 12 17:17:40 2012 +0530 watchdog: s3c2410_wdt: Use module_platform_driver() module_platform_driver() replaces module_init() and module_exit() and makes the code simpler. Signed-off-by: Sachin Kamat sachin.ka...@linaro.org Signed-off-by: Wim Van Sebroeck w...@iguana.be commit 7732c6b96f127bb5d9474715149b4e94e369412c Author: Wim Van Sebroeck w...@iguana.be Date: Sun Jul 8 14:57:09 2012 +0200 watchdog: sch311x_wdt: Fix Polarity when starting watchdog Some motherboards like the Advantech ARK3400 documentation use a non-inverted GPIO pin. We fix this by assuming that the BIOS will set the Polarity bit for the GPIO correctly at startup and we keep the Bit-setting intact when we start and stop the watchdog. Reported-by: Jean-François Deverge jf.deve...@gmail.com Signed-off-by: Dave Mueller d.muel...@elsoft.ch Signed-off-by: Wim Van Sebroeck w...@iguana.be commit 41814eed414ab3cef3d2b857ae3690a2b4888291 Author: Lokesh Vutla lokeshvu...@ti.com Date: Mon Jun 18 10:53:16 2012 +0530 Watchdog: OMAP: Fix the runtime pm code to avoid module getting stuck intransition state. OMAP watchdog driver is adapted to runtime PM like a general device driver but it is not appropriate. It is causing couple of functional issues. 1. On OMAP4 SYSCLK can't be gated, because of issue with WDTIMER2 module, which constantly stays in in transition state. Value of register CM_WKUP_WDTIMER2_CLKCTRL is always 0x0001 in this case. Issue occurs immediately after first idle, when hwmod framework tries to disable WDTIMER2 functional clock - wd_timer2_fck. After this module falls to in transition state, and SYSCLK gating is blocked. 2. Due to runtime PM, watchdog timer may be completely disabled. In current code base watchdog timer is not disabled only because of issue 1. Otherwise state of WDTIMER2 module will be Disabled, and there will be no interrupts from omap_wdt. In other words watchdog will not work at all. Watchdong is a special IP and it should not be disabled otherwise purpose of it itself is defeated. Watchdog functional clock should never be disabled. This patch updates the runtime PM handling in driver so that runtime PM is limited only during probe/shutdown and suspend/resume. The patch fixes issue 1 and 2 Signed-off-by: Lokesh Vutla lokeshvu...@ti.com Acked-by: Santosh Shilimkar santosh.shilim...@ti.com Signed-off-by: Wim Van Sebroeck w...@iguana.be commit 0402450f45673d3c03340cb1e679bf2a1fc0abee Author: Gerard Snitselaar d...@snitselaar.org Date: Wed Jul 4 09:32:11 2012 -0700 watchdog: ie6xx_wdt: section mismatch in ie6xx_wdt_probe() ie6xx_wdt_probe() calls ie6xx_wdt_debugfs_exit() as part of it's error cleanup path, and ie6xx_wdt_debugfs_exit() is currently annotated __devexit. Signed-off-by: Gerard Snitselaar d...@snitselaar.org Signed-off-by: Wim Van Sebroeck w...@iguana.be commit 5a135f3c72c5bc738a29629d81a99c981b17a736 Author: Florian Fainelli flor...@openwrt.org Date: Fri Jun 29 11:14:44 2012 +0200 watchdog: bcm63xx_wdt: fix driver section mismatch bcm63xx_wdt was used as a platform_driver but was not suffixed with _driver, thus causing section mismatches, fix that. Signed-off-by: Florian Fainelli flor...@openwrt.org Signed-off-by: Wim Van Sebroeck w...@iguana.be commit bff23431fe7e2eba939fe4cdaa78d94a4d9497f7 Author: Wim Van
Re: [PATCH RFT] watchdog: Convert orion_wdt driver to watchdog core
Hi Axel, > 於 一,2012-06-18 於 16:01 +0200,Andrew Lunn 提到: > > On Fri, Jun 15, 2012 at 03:22:44PM +0800, Axel Lin wrote: > > > Convert the orion_wdt driver to the watchdog framework API. > > > > > > Signed-off-by: Axel Lin > > > > Hi Axel > > > > Tested-by: Andrew Lunn > > Hi Wim, > This patch has been tested by Andrew Lunn. > I notice you have not (yet) picked up this patch. > Any comments? Added into linux-watchdog-next (after removing the addition of a double #include line). Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH RFT] watchdog: Convert orion_wdt driver to watchdog core
Hi Axel, 於 一,2012-06-18 於 16:01 +0200,Andrew Lunn 提到: On Fri, Jun 15, 2012 at 03:22:44PM +0800, Axel Lin wrote: Convert the orion_wdt driver to the watchdog framework API. Signed-off-by: Axel Lin axel@gmail.com Hi Axel Tested-by: Andrew Lunn and...@lunn.ch Hi Wim, This patch has been tested by Andrew Lunn. I notice you have not (yet) picked up this patch. Any comments? Added into linux-watchdog-next (after removing the addition of a double #include linux/watchdog.h line). Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] watchdog/ie6xx_wdt: section mismatch in ie6xx_wdt_probe()
Hi Gerard, > ie6xx_wdt_probe() calls ie6xx_wdt_debugfs_exit() as part of > it's error cleanup path, and ie6xx_wdt_debugfs_exit() is > currently annotated __devexit. > > Signed-off-by: Gerard Snitselaar Added to linux-watchdog-next. Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] watchdog/ie6xx_wdt: section mismatch in ie6xx_wdt_probe()
Hi Gerard, ie6xx_wdt_probe() calls ie6xx_wdt_debugfs_exit() as part of it's error cleanup path, and ie6xx_wdt_debugfs_exit() is currently annotated __devexit. Signed-off-by: Gerard Snitselaar d...@snitselaar.org Added to linux-watchdog-next. Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCHv2 3/3] watchdog: omap_wdt: add device tree support
Hi Tony, > Hi Wim, > > * jgq...@gmail.com [120531 20:56]: > > From: Xiao Jiang > > > > Add device table for omap_wdt to support dt. > > Care to ack this patch in the series? Yep. Acked-by: Wim Van Sebroeck Kind regards, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCHv2 3/3] watchdog: omap_wdt: add device tree support
Hi Tony, Hi Wim, * jgq...@gmail.com jgq...@gmail.com [120531 20:56]: From: Xiao Jiang jgq...@gmail.com Add device table for omap_wdt to support dt. Care to ack this patch in the series? Yep. Acked-by: Wim Van Sebroeck w...@iguana.be Kind regards, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[WATCHDOG] v2.5.25-rc patches
Hi Linus, Please pull from 'master' branch of git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git or if master.kernel.org hasn't synced up yet: master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git This will update the following files: drivers/watchdog/Kconfig | 25 + drivers/watchdog/Makefile|2 drivers/watchdog/bfin_wdt.c |7 drivers/watchdog/hpwdt.c | 926 +++ drivers/watchdog/mtx-1_wdt.c | 35 + drivers/watchdog/sb_wdog.c | 353 6 files changed, 1340 insertions(+), 8 deletions(-) with these Changes: Author: Thomas Mingarelli <[EMAIL PROTECTED]> Date: Tue Dec 4 17:41:54 2007 + [WATCHDOG] HP ProLiant WatchDog driver Hp is providing a Hardware WatchDog Timer driver that will only work with the specific HW Timer located in the HP ProLiant iLO 2 ASIC. The iLO 2 HW Timer will generate a Non-maskable Interrupt (NMI) 9 seconds before physically resetting the server, by removing power, so that the event can be logged to the HP Integrated Management Log (IML), a Non-Volatile Random Access Memory (NVRAM). The logging of the event is performed using the HP ProLiant ROM via an Industry Standard access known as a BIOS Service Directory Entry. Signed-off-by: Thomas Mingarelli <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Author: Mike Frysinger <[EMAIL PROTECTED]> Date: Wed Jan 30 17:38:21 2008 +0800 [WATCHDOG] blackfin Watchdog driver: relocate all strings used in __init functions to __initdata Signed-off-by: Mike Frysinger <[EMAIL PROTECTED]> Signed-off-by: Bryan Wu <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Author: Florian Fainelli <[EMAIL PROTECTED]> Date: Mon Jan 7 19:08:49 2008 +0100 [WATCHDOG] Convert mtx1 wdt to be a platform device and use generic GPIO API This patch converts the MTX-1 to be a platform device, use the available generic GPIO API for the MTX-1 board and register the miscdev alias. Signed-off-by: Florian Fainelli <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Author: Andrew Sharp <[EMAIL PROTECTED]> Date: Thu Dec 13 16:16:42 2007 -0800 [WATCHDOG] Add support for SB1 hardware watchdog Support watchdog timers built into SiByte MIPS SoCs. Signed-off-by: Andy Sharp <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Cc: Ralf Baechle <[EMAIL PROTECTED]> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]> The Changes can also be looked at on: http://www.kernel.org/git/?p=linux/kernel/git/wim/linux-2.6-watchdog.git;a=summary For completeness, I added the overal diff below. Greetings, Wim. diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index afcdc69..254d115 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -402,6 +402,18 @@ config IT8712F_WDT To compile this driver as a module, choose M here: the module will be called it8712f_wdt. +config HP_WATCHDOG + tristate "HP Proliant iLO 2 Hardware Watchdog Timer" + depends on X86 + help + A software monitoring watchdog and NMI sourcing driver. This driver + will detect lockups and provide stack trace. Also, when an NMI + occurs this driver will make the necessary BIOS calls to log + the cause of the NMI. This is a driver that will only load on a + HP ProLiant system with a minimum of iLO2 support. + To compile this driver as a module, choose M here: the + module will be called hpwdt. + config SC1200_WDT tristate "National Semiconductor PC87307/PC97307 (ala SC1200) Watchdog" depends on X86 @@ -633,6 +645,19 @@ config WDT_RM9K_GPI To compile this driver as a module, choose M here: the module will be called rm9k_wdt. +config SIBYTE_WDOG + tristate "Sibyte SoC hardware watchdog" + depends on CPU_SB1 + help + Watchdog driver for the built in watchdog hardware in Sibyte + SoC processors. There are apparently two watchdog timers + on such processors; this driver supports only the first one, + because currently Linux only supports exporting one watchdog + to userspace. + + To compile this driver as a loadable module, choose M here. + The module will be called sb_wdog. + config AR7_WDT tristate "TI AR7 Watchdog Timer" depends on AR7 diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile index ebc2114..f3fb170 100644 --- a/drivers/watchdog/Makefile +++ b/drivers/watchdog/Mak
[WATCHDOG] v2.5.25-rc patches
Hi Linus, Please pull from 'master' branch of git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git or if master.kernel.org hasn't synced up yet: master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git This will update the following files: drivers/watchdog/Kconfig | 25 + drivers/watchdog/Makefile|2 drivers/watchdog/bfin_wdt.c |7 drivers/watchdog/hpwdt.c | 926 +++ drivers/watchdog/mtx-1_wdt.c | 35 + drivers/watchdog/sb_wdog.c | 353 6 files changed, 1340 insertions(+), 8 deletions(-) with these Changes: Author: Thomas Mingarelli [EMAIL PROTECTED] Date: Tue Dec 4 17:41:54 2007 + [WATCHDOG] HP ProLiant WatchDog driver Hp is providing a Hardware WatchDog Timer driver that will only work with the specific HW Timer located in the HP ProLiant iLO 2 ASIC. The iLO 2 HW Timer will generate a Non-maskable Interrupt (NMI) 9 seconds before physically resetting the server, by removing power, so that the event can be logged to the HP Integrated Management Log (IML), a Non-Volatile Random Access Memory (NVRAM). The logging of the event is performed using the HP ProLiant ROM via an Industry Standard access known as a BIOS Service Directory Entry. Signed-off-by: Thomas Mingarelli [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Author: Mike Frysinger [EMAIL PROTECTED] Date: Wed Jan 30 17:38:21 2008 +0800 [WATCHDOG] blackfin Watchdog driver: relocate all strings used in __init functions to __initdata Signed-off-by: Mike Frysinger [EMAIL PROTECTED] Signed-off-by: Bryan Wu [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Author: Florian Fainelli [EMAIL PROTECTED] Date: Mon Jan 7 19:08:49 2008 +0100 [WATCHDOG] Convert mtx1 wdt to be a platform device and use generic GPIO API This patch converts the MTX-1 to be a platform device, use the available generic GPIO API for the MTX-1 board and register the miscdev alias. Signed-off-by: Florian Fainelli [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Author: Andrew Sharp [EMAIL PROTECTED] Date: Thu Dec 13 16:16:42 2007 -0800 [WATCHDOG] Add support for SB1 hardware watchdog Support watchdog timers built into SiByte MIPS SoCs. Signed-off-by: Andy Sharp [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Cc: Ralf Baechle [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] The Changes can also be looked at on: http://www.kernel.org/git/?p=linux/kernel/git/wim/linux-2.6-watchdog.git;a=summary For completeness, I added the overal diff below. Greetings, Wim. diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index afcdc69..254d115 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -402,6 +402,18 @@ config IT8712F_WDT To compile this driver as a module, choose M here: the module will be called it8712f_wdt. +config HP_WATCHDOG + tristate HP Proliant iLO 2 Hardware Watchdog Timer + depends on X86 + help + A software monitoring watchdog and NMI sourcing driver. This driver + will detect lockups and provide stack trace. Also, when an NMI + occurs this driver will make the necessary BIOS calls to log + the cause of the NMI. This is a driver that will only load on a + HP ProLiant system with a minimum of iLO2 support. + To compile this driver as a module, choose M here: the + module will be called hpwdt. + config SC1200_WDT tristate National Semiconductor PC87307/PC97307 (ala SC1200) Watchdog depends on X86 @@ -633,6 +645,19 @@ config WDT_RM9K_GPI To compile this driver as a module, choose M here: the module will be called rm9k_wdt. +config SIBYTE_WDOG + tristate Sibyte SoC hardware watchdog + depends on CPU_SB1 + help + Watchdog driver for the built in watchdog hardware in Sibyte + SoC processors. There are apparently two watchdog timers + on such processors; this driver supports only the first one, + because currently Linux only supports exporting one watchdog + to userspace. + + To compile this driver as a loadable module, choose M here. + The module will be called sb_wdog. + config AR7_WDT tristate TI AR7 Watchdog Timer depends on AR7 diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile index ebc2114..f3fb170 100644 --- a/drivers/watchdog/Makefile +++ b/drivers/watchdog/Makefile @@ -67,6 +67,7 @@ obj-$(CONFIG_WAFER_WDT) += wafer5823wdt.o obj-$(CONFIG_I6300ESB_WDT) += i6300esb.o obj-$(CONFIG_ITCO_WDT) += iTCO_wdt.o iTCO_vendor_support.o obj
Re: DMI: add-type-41
Hi Matt, > > [PATCH] SMBIOS/DMI - add type 41 = Onboard Devices Extended Information > > Is there something in the kernel that will consume this data, or is it > being exported in /sys/class/dmi/id somehow? There will be one table > entry per device (Dell PowerEdge x9xx servers with recent BIOS do so). > > FWIW, my biosdevname app consumes this data, using dmidecode from > userspace. Just like smbios/dmi type 10 we add the the info to the dmi_devices list. The dmi_find_device function (see drivers/firmware/dmi_scan.c) makes this info available to other device drivers (like drivers/ata/ata_piix.c, drivers/misc/thinkpad_acpi.c, drivers/watchdog/ibmasr.c and drivers/char/ipmi/ipmi_si_intf.c). The dmi_devices list is a different list then the dmi_ident table that stores the BIOS, PRODUCT, BOARD and CHASSIS info (and that is exported to /sys/class/dmi/* ). The dmi_devices list is not exported to sysfs as far as I know. My opinion: if we have type 10 we will need type 41 in the future. If we don't need type 10 then we don't need type 41 neither (since we can use dmidecode in userspace). Greetings, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: DMI: add-type-41
Hi Matt, [PATCH] SMBIOS/DMI - add type 41 = Onboard Devices Extended Information Is there something in the kernel that will consume this data, or is it being exported in /sys/class/dmi/id somehow? There will be one table entry per device (Dell PowerEdge x9xx servers with recent BIOS do so). FWIW, my biosdevname app consumes this data, using dmidecode from userspace. Just like smbios/dmi type 10 we add the the info to the dmi_devices list. The dmi_find_device function (see drivers/firmware/dmi_scan.c) makes this info available to other device drivers (like drivers/ata/ata_piix.c, drivers/misc/thinkpad_acpi.c, drivers/watchdog/ibmasr.c and drivers/char/ipmi/ipmi_si_intf.c). The dmi_devices list is a different list then the dmi_ident table that stores the BIOS, PRODUCT, BOARD and CHASSIS info (and that is exported to /sys/class/dmi/* ). The dmi_devices list is not exported to sysfs as far as I know. My opinion: if we have type 10 we will need type 41 in the future. If we don't need type 10 then we don't need type 41 neither (since we can use dmidecode in userspace). Greetings, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: kernel panic on 2.6.24/iTCO_wdt not rebooting machine
Hi Denys, > Probably someone can help me with this? Or it is hardware bug of chipset? > I will try to look more docs, maybe i will be able to find whats wrong there. I'll have a look at it next week. Greetings, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: kernel panic on 2.6.24/iTCO_wdt not rebooting machine
Hi Denys, Probably someone can help me with this? Or it is hardware bug of chipset? I will try to look more docs, maybe i will be able to find whats wrong there. I'll have a look at it next week. Greetings, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[WATCHOG] v2.6.24 watchdog patches - part 2
Hi Linus, Please pull from 'master' branch of git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git or if master.kernel.org hasn't synced up yet: master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git This will update the following files: drivers/watchdog/Kconfig |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) with these Changes: Author: Thomas Bogendoerfer <[EMAIL PROTECTED]> Date: Sun Dec 2 12:54:42 2007 +0100 [WATCHDOG] use SGI_HAS_INDYDOG for INDYDOG depends Use SGI_HAS_INDYDOG for INDYDOG depends. Signed-off-by: Thomas Bogendoerfer <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Cc: Ralf Baechle <[EMAIL PROTECTED]> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]> The Changes can also be looked at on: http://www.kernel.org/git/?p=linux/kernel/git/wim/linux-2.6-watchdog.git;a=summary For completeness, I added the overal diff below. Greetings, Wim. diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index 899fc13..afcdc69 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -609,7 +609,7 @@ config SBC_EPX_C3_WATCHDOG config INDYDOG tristate "Indy/I2 Hardware Watchdog" - depends on SGI_IP22 + depends on SGI_HAS_INDYDOG help Hardware driver for the Indy's/I2's watchdog. This is a watchdog timer that will reboot the machine after a 60 second -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[WATCHOG] v2.6.24 watchdog patches - part 2
Hi Linus, Please pull from 'master' branch of git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git or if master.kernel.org hasn't synced up yet: master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git This will update the following files: drivers/watchdog/Kconfig |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) with these Changes: Author: Thomas Bogendoerfer [EMAIL PROTECTED] Date: Sun Dec 2 12:54:42 2007 +0100 [WATCHDOG] use SGI_HAS_INDYDOG for INDYDOG depends Use SGI_HAS_INDYDOG for INDYDOG depends. Signed-off-by: Thomas Bogendoerfer [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Cc: Ralf Baechle [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] The Changes can also be looked at on: http://www.kernel.org/git/?p=linux/kernel/git/wim/linux-2.6-watchdog.git;a=summary For completeness, I added the overal diff below. Greetings, Wim. diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index 899fc13..afcdc69 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -609,7 +609,7 @@ config SBC_EPX_C3_WATCHDOG config INDYDOG tristate Indy/I2 Hardware Watchdog - depends on SGI_IP22 + depends on SGI_HAS_INDYDOG help Hardware driver for the Indy's/I2's watchdog. This is a watchdog timer that will reboot the machine after a 60 second -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[WATCHOG] v2.6.24 watchdog patches
Hi Linus, Please pull from 'master' branch of git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git or if master.kernel.org hasn't synced up yet: master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git This will update the following files: drivers/watchdog/Kconfig|6 drivers/watchdog/Makefile |1 drivers/watchdog/alim1535_wdt.c | 20 +- drivers/watchdog/alim7101_wdt.c | 18 +- drivers/watchdog/ar7_wdt.c |2 drivers/watchdog/bfin_wdt.c |2 drivers/watchdog/it8712f_wdt.c |2 drivers/watchdog/mpc5200_wdt.c |2 drivers/watchdog/mtx-1_wdt.c|2 drivers/watchdog/sbc60xxwdt.c | 18 +- drivers/watchdog/scx200_wdt.c | 10 - drivers/watchdog/txx9wdt.c | 276 drivers/watchdog/w83877f_wdt.c | 18 +- drivers/watchdog/w83977f_wdt.c | 18 +- drivers/watchdog/wdt.c | 30 +++- drivers/watchdog/wdt977.c | 18 +- 16 files changed, 375 insertions(+), 68 deletions(-) with these Changes: Author: Jan Engelhardt <[EMAIL PROTECTED]> Date: Tue Jan 22 20:48:10 2008 +0100 [WATCHDOG] constify function pointer tables "static struct file_operations" should be "static const struct file_operations". Signed-off-by: Jan Engelhardt <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Author: Atsushi Nemoto <[EMAIL PROTECTED]> Date: Mon Nov 12 01:32:17 2007 +0900 [WATCHDOG] TXx9 watchdog driver This is a driver for watchdog timer built into TXx9 MIPS SoCs. Signed-off-by: Atsushi Nemoto <[EMAIL PROTECTED]> Cc: Ralf Baechle <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]> Author: Wim Van Sebroeck <[EMAIL PROTECTED]> Date: Wed Dec 26 20:32:51 2007 + [WATCHDOG] misc_register patch Make sure that we first do a register_reboot_notifier before we do a misc_register. A misc_register opens the interface to userspace and it's best to do this as the last action. Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Author: Alan Cox <[EMAIL PROTECTED]> Date: Wed Jan 9 21:36:01 2008 -0800 [WATCHDOG] wdt: fix locking The audit of _p usage shows various drivers assume inb_p is somehow atomic. Of course it isn't and the delay can be split from the I/O cycle causing a timing violation on chips that matter (eg this one) With the proposed use of udelay() for some _p delays this will cease to be a mostly theoretical bug (as the delay stall is unsplittable) and wants fixing. Lots of other drivers need fixing this way too. Signed-off-by: Alan Cox <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]> The Changes can also be looked at on: http://www.kernel.org/git/?p=linux/kernel/git/wim/linux-2.6-watchdog.git;a=summary For completeness, I added the overal diff below. Greetings, Wim. diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index fbd6112..899fc13 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -639,6 +639,12 @@ config AR7_WDT help Hardware driver for the TI AR7 Watchdog Timer. +config TXX9_WDT + tristate "Toshiba TXx9 Watchdog Timer" + depends on CPU_TX39XX || CPU_TX49XX + help + Hardware driver for the built-in watchdog timer on TXx9 MIPS SoCs. + # PARISC Architecture # POWERPC Architecture diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile index 87483cc..ebc2114 100644 --- a/drivers/watchdog/Makefile +++ b/drivers/watchdog/Makefile @@ -93,6 +93,7 @@ obj-$(CONFIG_INDYDOG) += indydog.o obj-$(CONFIG_WDT_MTX1) += mtx-1_wdt.o obj-$(CONFIG_WDT_RM9K_GPI) += rm9k_wdt.o obj-$(CONFIG_AR7_WDT) += ar7_wdt.o +obj-$(CONFIG_TXX9_WDT) += txx9wdt.o # PARISC Architecture diff --git a/drivers/watchdog/alim1535_wdt.c b/drivers/watchdog/alim1535_wdt.c index b481cc0..2b1fbdb 100644 --- a/drivers/watchdog/alim1535_wdt.c +++ b/drivers/watchdog/alim1535_wdt.c @@ -413,18 +413,18 @@ static int __init watchdog_init(void) /* Calculate the watchdog's timeout */ ali_settimer(timeout); - ret = misc_register(_miscdev); + ret = register_reboot_notifier(_notifier); if (ret != 0) { - printk(KERN_ERR PFX "cannot register miscdev on minor=%d (err=%d)\n", - WATCHDOG_MINOR, ret); + printk(KERN_ERR PFX "cannot register reboot notifier (err=%d)\n", + ret); goto out; } - ret = register_
[WATCHOG] v2.6.24 watchdog patches
Hi Linus, Please pull from 'master' branch of git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git or if master.kernel.org hasn't synced up yet: master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git This will update the following files: drivers/watchdog/Kconfig|6 drivers/watchdog/Makefile |1 drivers/watchdog/alim1535_wdt.c | 20 +- drivers/watchdog/alim7101_wdt.c | 18 +- drivers/watchdog/ar7_wdt.c |2 drivers/watchdog/bfin_wdt.c |2 drivers/watchdog/it8712f_wdt.c |2 drivers/watchdog/mpc5200_wdt.c |2 drivers/watchdog/mtx-1_wdt.c|2 drivers/watchdog/sbc60xxwdt.c | 18 +- drivers/watchdog/scx200_wdt.c | 10 - drivers/watchdog/txx9wdt.c | 276 drivers/watchdog/w83877f_wdt.c | 18 +- drivers/watchdog/w83977f_wdt.c | 18 +- drivers/watchdog/wdt.c | 30 +++- drivers/watchdog/wdt977.c | 18 +- 16 files changed, 375 insertions(+), 68 deletions(-) with these Changes: Author: Jan Engelhardt [EMAIL PROTECTED] Date: Tue Jan 22 20:48:10 2008 +0100 [WATCHDOG] constify function pointer tables static struct file_operations should be static const struct file_operations. Signed-off-by: Jan Engelhardt [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Author: Atsushi Nemoto [EMAIL PROTECTED] Date: Mon Nov 12 01:32:17 2007 +0900 [WATCHDOG] TXx9 watchdog driver This is a driver for watchdog timer built into TXx9 MIPS SoCs. Signed-off-by: Atsushi Nemoto [EMAIL PROTECTED] Cc: Ralf Baechle [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] Author: Wim Van Sebroeck [EMAIL PROTECTED] Date: Wed Dec 26 20:32:51 2007 + [WATCHDOG] misc_register patch Make sure that we first do a register_reboot_notifier before we do a misc_register. A misc_register opens the interface to userspace and it's best to do this as the last action. Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Author: Alan Cox [EMAIL PROTECTED] Date: Wed Jan 9 21:36:01 2008 -0800 [WATCHDOG] wdt: fix locking The audit of _p usage shows various drivers assume inb_p is somehow atomic. Of course it isn't and the delay can be split from the I/O cycle causing a timing violation on chips that matter (eg this one) With the proposed use of udelay() for some _p delays this will cease to be a mostly theoretical bug (as the delay stall is unsplittable) and wants fixing. Lots of other drivers need fixing this way too. Signed-off-by: Alan Cox [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] The Changes can also be looked at on: http://www.kernel.org/git/?p=linux/kernel/git/wim/linux-2.6-watchdog.git;a=summary For completeness, I added the overal diff below. Greetings, Wim. diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index fbd6112..899fc13 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -639,6 +639,12 @@ config AR7_WDT help Hardware driver for the TI AR7 Watchdog Timer. +config TXX9_WDT + tristate Toshiba TXx9 Watchdog Timer + depends on CPU_TX39XX || CPU_TX49XX + help + Hardware driver for the built-in watchdog timer on TXx9 MIPS SoCs. + # PARISC Architecture # POWERPC Architecture diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile index 87483cc..ebc2114 100644 --- a/drivers/watchdog/Makefile +++ b/drivers/watchdog/Makefile @@ -93,6 +93,7 @@ obj-$(CONFIG_INDYDOG) += indydog.o obj-$(CONFIG_WDT_MTX1) += mtx-1_wdt.o obj-$(CONFIG_WDT_RM9K_GPI) += rm9k_wdt.o obj-$(CONFIG_AR7_WDT) += ar7_wdt.o +obj-$(CONFIG_TXX9_WDT) += txx9wdt.o # PARISC Architecture diff --git a/drivers/watchdog/alim1535_wdt.c b/drivers/watchdog/alim1535_wdt.c index b481cc0..2b1fbdb 100644 --- a/drivers/watchdog/alim1535_wdt.c +++ b/drivers/watchdog/alim1535_wdt.c @@ -413,18 +413,18 @@ static int __init watchdog_init(void) /* Calculate the watchdog's timeout */ ali_settimer(timeout); - ret = misc_register(ali_miscdev); + ret = register_reboot_notifier(ali_notifier); if (ret != 0) { - printk(KERN_ERR PFX cannot register miscdev on minor=%d (err=%d)\n, - WATCHDOG_MINOR, ret); + printk(KERN_ERR PFX cannot register reboot notifier (err=%d)\n, + ret); goto out; } - ret = register_reboot_notifier(ali_notifier); + ret = misc_register(ali_miscdev); if (ret != 0) { - printk(KERN_ERR PFX cannot register reboot notifier (err=%d
DMI: add-type-41
Hi All, Would appreciate feedback on this patch. Thanks in advance, Wim. commit 4956e4e5e77b5a8f87bcfe6127ef17a406edf94b Author: Wim Van Sebroeck <[EMAIL PROTECTED]> Date: Mon Dec 31 17:21:33 2007 + [PATCH] SMBIOS/DMI - add type 41 = Onboard Devices Extended Information From version 2.6 of the SMBIOS standard, type 10 (On Board Devices Information) becomes obsolete. The reason for this is that no further fields can be added to this structure without adversely affecting existing software's ability to properly parse the data. Therefore type 41 (Onboard Devices Extended Information) was added. The structure is as follows: struct smbios_type_41 { u8 type; u8 length; u16 handle; u8 reference_designation_string; u8 device_type; /* same device type as in type 10 */ u8 device_type_instance; u16 segment_group_number; u8 bus_number; u8 device_function_number; }; For more info: http://www.dmtf.org/standards/smbios Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c index 0cdadea..c1b2891 100644 --- a/drivers/firmware/dmi_scan.c +++ b/drivers/firmware/dmi_scan.c @@ -222,6 +222,28 @@ static void __init dmi_save_ipmi_device(const struct dmi_header *dm) list_add(>list, _devices); } +static void __init dmi_save_extended_devices(const struct dmi_header *dm) +{ + const u8 *d = (u8*) dm + 5; + struct dmi_device *dev; + + /* Skip disabled device */ + if ((*d & 0x80) == 0) + return; + + dev = dmi_alloc(sizeof(*dev)); + if (!dev) { + printk(KERN_ERR "dmi_save_extended_devices: out of memory.\n"); + return; + } + + dev->type = *d-- & 0x7f; + dev->name = dmi_string(dm, *d); + dev->device_data = NULL; + + list_add(>list, _devices); +} + /* * Process a DMI table entry. Right now all we care about are the BIOS * and machine entries. For 2.5 we should pull the smbus controller info @@ -264,6 +286,9 @@ static void __init dmi_decode(const struct dmi_header *dm) break; case 38:/* IPMI Device Information */ dmi_save_ipmi_device(dm); + break; + case 41:/* Onboard Devices Extended Information */ + dmi_save_extended_devices(dm); } } diff --git a/include/linux/dmi.h b/include/linux/dmi.h index 00fc7a9..f9ba4b0 100644 --- a/include/linux/dmi.h +++ b/include/linux/dmi.h @@ -35,8 +35,11 @@ enum dmi_device_type { DMI_DEV_TYPE_ETHERNET, DMI_DEV_TYPE_TOKENRING, DMI_DEV_TYPE_SOUND, + DMI_DEV_TYPE_PATA, + DMI_DEV_TYPE_SATA, + DMI_DEV_TYPE_SAS, DMI_DEV_TYPE_IPMI = -1, - DMI_DEV_TYPE_OEM_STRING = -2 + DMI_DEV_TYPE_OEM_STRING = -2, }; struct dmi_header { -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
DMI: create dmi_get_slot()
Hi Len, I saw you added the dmi_get_slot function recently. If I look in drivers/firmware/dmi_scan.c however I now see: ... /** * dmi_get_system_info - return DMI data value * @field: data index (see enum dmi_field) * * Returns one DMI data value, can be used to perform * complex DMI data checks. */ const char *dmi_get_system_info(int field) { return dmi_ident[field]; } EXPORT_SYMBOL(dmi_get_system_info); ... /** * dmi_get_slot - return dmi_ident[slot] * @slot: index into dmi_ident[] */ char *dmi_get_slot(int slot) { return(dmi_ident[slot]); } Didn't we duplicate code here? Greetings, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
DMI: create dmi_get_slot()
Hi Len, I saw you added the dmi_get_slot function recently. If I look in drivers/firmware/dmi_scan.c however I now see: ... /** * dmi_get_system_info - return DMI data value * @field: data index (see enum dmi_field) * * Returns one DMI data value, can be used to perform * complex DMI data checks. */ const char *dmi_get_system_info(int field) { return dmi_ident[field]; } EXPORT_SYMBOL(dmi_get_system_info); ... /** * dmi_get_slot - return dmi_ident[slot] * @slot: index into dmi_ident[] */ char *dmi_get_slot(int slot) { return(dmi_ident[slot]); } Didn't we duplicate code here? Greetings, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
DMI: add-type-41
Hi All, Would appreciate feedback on this patch. Thanks in advance, Wim. commit 4956e4e5e77b5a8f87bcfe6127ef17a406edf94b Author: Wim Van Sebroeck [EMAIL PROTECTED] Date: Mon Dec 31 17:21:33 2007 + [PATCH] SMBIOS/DMI - add type 41 = Onboard Devices Extended Information From version 2.6 of the SMBIOS standard, type 10 (On Board Devices Information) becomes obsolete. The reason for this is that no further fields can be added to this structure without adversely affecting existing software's ability to properly parse the data. Therefore type 41 (Onboard Devices Extended Information) was added. The structure is as follows: struct smbios_type_41 { u8 type; u8 length; u16 handle; u8 reference_designation_string; u8 device_type; /* same device type as in type 10 */ u8 device_type_instance; u16 segment_group_number; u8 bus_number; u8 device_function_number; }; For more info: http://www.dmtf.org/standards/smbios Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c index 0cdadea..c1b2891 100644 --- a/drivers/firmware/dmi_scan.c +++ b/drivers/firmware/dmi_scan.c @@ -222,6 +222,28 @@ static void __init dmi_save_ipmi_device(const struct dmi_header *dm) list_add(dev-list, dmi_devices); } +static void __init dmi_save_extended_devices(const struct dmi_header *dm) +{ + const u8 *d = (u8*) dm + 5; + struct dmi_device *dev; + + /* Skip disabled device */ + if ((*d 0x80) == 0) + return; + + dev = dmi_alloc(sizeof(*dev)); + if (!dev) { + printk(KERN_ERR dmi_save_extended_devices: out of memory.\n); + return; + } + + dev-type = *d-- 0x7f; + dev-name = dmi_string(dm, *d); + dev-device_data = NULL; + + list_add(dev-list, dmi_devices); +} + /* * Process a DMI table entry. Right now all we care about are the BIOS * and machine entries. For 2.5 we should pull the smbus controller info @@ -264,6 +286,9 @@ static void __init dmi_decode(const struct dmi_header *dm) break; case 38:/* IPMI Device Information */ dmi_save_ipmi_device(dm); + break; + case 41:/* Onboard Devices Extended Information */ + dmi_save_extended_devices(dm); } } diff --git a/include/linux/dmi.h b/include/linux/dmi.h index 00fc7a9..f9ba4b0 100644 --- a/include/linux/dmi.h +++ b/include/linux/dmi.h @@ -35,8 +35,11 @@ enum dmi_device_type { DMI_DEV_TYPE_ETHERNET, DMI_DEV_TYPE_TOKENRING, DMI_DEV_TYPE_SOUND, + DMI_DEV_TYPE_PATA, + DMI_DEV_TYPE_SATA, + DMI_DEV_TYPE_SAS, DMI_DEV_TYPE_IPMI = -1, - DMI_DEV_TYPE_OEM_STRING = -2 + DMI_DEV_TYPE_OEM_STRING = -2, }; struct dmi_header { -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[WATCHDOG] v2.6.24-rc8 patches
Hi Linus, Please pull from 'master' branch of git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git or if master.kernel.org hasn't synced up yet: master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git This will update the following files: Documentation/watchdog/watchdog-api.txt | 38 +--- drivers/watchdog/w83697hf_wdt.c |4 --- 2 files changed, 22 insertions(+), 20 deletions(-) with these Changes: Author: Andrew Dyer <[EMAIL PROTECTED]> Date: Tue Jan 8 14:40:37 2008 -0600 [WATCHDOG] clarify watchdog operation in documentation It was not clear what the difference is/was between the nowayout feature and the Magic Close feature. Signed-off-by: "Andrew Dyer" <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Author: Wim Van Sebroeck <[EMAIL PROTECTED]> Date: Fri Jan 18 21:01:34 2008 + [WATCHDOG] Revert "Stop looking for device as soon as one is found" This reverts commit 3ff6eb4a2fe5757cbe7c5d57c8eb60ab0775f2f0. the !found check in the for loop allready made sure that only one device was found. Signed-Off-By: Pádraig Brady <[EMAIL PROTECTED]> Signed-Off-By: Wim Van Sebroeck <[EMAIL PROTECTED]> The Changes can also be looked at on: http://www.kernel.org/git/?p=linux/kernel/git/wim/linux-2.6-watchdog.git;a=summary For completeness, I added the overal diff below. Greetings, Wim. diff --git a/Documentation/watchdog/watchdog-api.txt b/Documentation/watchdog/watchdog-api.txt index bb7cb1d..4cc4ba9 100644 --- a/Documentation/watchdog/watchdog-api.txt +++ b/Documentation/watchdog/watchdog-api.txt @@ -42,23 +42,27 @@ like this source file: see Documentation/watchdog/src/watchdog-simple.c A more advanced driver could for example check that a HTTP server is still responding before doing the write call to ping the watchdog. -When the device is closed, the watchdog is disabled. This is not -always such a good idea, since if there is a bug in the watchdog -daemon and it crashes the system will not reboot. Because of this, -some of the drivers support the configuration option "Disable watchdog -shutdown on close", CONFIG_WATCHDOG_NOWAYOUT. If it is set to Y when -compiling the kernel, there is no way of disabling the watchdog once -it has been started. So, if the watchdog daemon crashes, the system -will reboot after the timeout has passed. Watchdog devices also usually -support the nowayout module parameter so that this option can be controlled -at runtime. - -Drivers will not disable the watchdog, unless a specific magic character 'V' -has been sent /dev/watchdog just before closing the file. If the userspace -daemon closes the file without sending this special character, the driver -will assume that the daemon (and userspace in general) died, and will stop -pinging the watchdog without disabling it first. This will then cause a -reboot if the watchdog is not re-opened in sufficient time. +When the device is closed, the watchdog is disabled, unless the "Magic +Close" feature is supported (see below). This is not always such a +good idea, since if there is a bug in the watchdog daemon and it +crashes the system will not reboot. Because of this, some of the +drivers support the configuration option "Disable watchdog shutdown on +close", CONFIG_WATCHDOG_NOWAYOUT. If it is set to Y when compiling +the kernel, there is no way of disabling the watchdog once it has been +started. So, if the watchdog daemon crashes, the system will reboot +after the timeout has passed. Watchdog devices also usually support +the nowayout module parameter so that this option can be controlled at +runtime. + +Magic Close feature: + +If a driver supports "Magic Close", the driver will not disable the +watchdog unless a specific magic character 'V' has been sent to +/dev/watchdog just before closing the file. If the userspace daemon +closes the file without sending this special character, the driver +will assume that the daemon (and userspace in general) died, and will +stop pinging the watchdog without disabling it first. This will then +cause a reboot if the watchdog is not re-opened in sufficient time. The ioctl API: diff --git a/drivers/watchdog/w83697hf_wdt.c b/drivers/watchdog/w83697hf_wdt.c index 6ea125e..c622a0e 100644 --- a/drivers/watchdog/w83697hf_wdt.c +++ b/drivers/watchdog/w83697hf_wdt.c @@ -382,10 +382,8 @@ wdt_init(void) /* we will autodetect the W83697HF/HG watchdog */ for (i = 0; ((!found) && (w83697hf_ioports[i] != 0)); i++) { wdt_io = w83697hf_ioports[i]; - if (!w83697hf_check_wdt()) { + i
[WATCHDOG] v2.6.24-rc8 patches
Hi Linus, Please pull from 'master' branch of git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git or if master.kernel.org hasn't synced up yet: master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git This will update the following files: Documentation/watchdog/watchdog-api.txt | 38 +--- drivers/watchdog/w83697hf_wdt.c |4 --- 2 files changed, 22 insertions(+), 20 deletions(-) with these Changes: Author: Andrew Dyer [EMAIL PROTECTED] Date: Tue Jan 8 14:40:37 2008 -0600 [WATCHDOG] clarify watchdog operation in documentation It was not clear what the difference is/was between the nowayout feature and the Magic Close feature. Signed-off-by: Andrew Dyer [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Author: Wim Van Sebroeck [EMAIL PROTECTED] Date: Fri Jan 18 21:01:34 2008 + [WATCHDOG] Revert Stop looking for device as soon as one is found This reverts commit 3ff6eb4a2fe5757cbe7c5d57c8eb60ab0775f2f0. the !found check in the for loop allready made sure that only one device was found. Signed-Off-By: Pádraig Brady [EMAIL PROTECTED] Signed-Off-By: Wim Van Sebroeck [EMAIL PROTECTED] The Changes can also be looked at on: http://www.kernel.org/git/?p=linux/kernel/git/wim/linux-2.6-watchdog.git;a=summary For completeness, I added the overal diff below. Greetings, Wim. diff --git a/Documentation/watchdog/watchdog-api.txt b/Documentation/watchdog/watchdog-api.txt index bb7cb1d..4cc4ba9 100644 --- a/Documentation/watchdog/watchdog-api.txt +++ b/Documentation/watchdog/watchdog-api.txt @@ -42,23 +42,27 @@ like this source file: see Documentation/watchdog/src/watchdog-simple.c A more advanced driver could for example check that a HTTP server is still responding before doing the write call to ping the watchdog. -When the device is closed, the watchdog is disabled. This is not -always such a good idea, since if there is a bug in the watchdog -daemon and it crashes the system will not reboot. Because of this, -some of the drivers support the configuration option Disable watchdog -shutdown on close, CONFIG_WATCHDOG_NOWAYOUT. If it is set to Y when -compiling the kernel, there is no way of disabling the watchdog once -it has been started. So, if the watchdog daemon crashes, the system -will reboot after the timeout has passed. Watchdog devices also usually -support the nowayout module parameter so that this option can be controlled -at runtime. - -Drivers will not disable the watchdog, unless a specific magic character 'V' -has been sent /dev/watchdog just before closing the file. If the userspace -daemon closes the file without sending this special character, the driver -will assume that the daemon (and userspace in general) died, and will stop -pinging the watchdog without disabling it first. This will then cause a -reboot if the watchdog is not re-opened in sufficient time. +When the device is closed, the watchdog is disabled, unless the Magic +Close feature is supported (see below). This is not always such a +good idea, since if there is a bug in the watchdog daemon and it +crashes the system will not reboot. Because of this, some of the +drivers support the configuration option Disable watchdog shutdown on +close, CONFIG_WATCHDOG_NOWAYOUT. If it is set to Y when compiling +the kernel, there is no way of disabling the watchdog once it has been +started. So, if the watchdog daemon crashes, the system will reboot +after the timeout has passed. Watchdog devices also usually support +the nowayout module parameter so that this option can be controlled at +runtime. + +Magic Close feature: + +If a driver supports Magic Close, the driver will not disable the +watchdog unless a specific magic character 'V' has been sent to +/dev/watchdog just before closing the file. If the userspace daemon +closes the file without sending this special character, the driver +will assume that the daemon (and userspace in general) died, and will +stop pinging the watchdog without disabling it first. This will then +cause a reboot if the watchdog is not re-opened in sufficient time. The ioctl API: diff --git a/drivers/watchdog/w83697hf_wdt.c b/drivers/watchdog/w83697hf_wdt.c index 6ea125e..c622a0e 100644 --- a/drivers/watchdog/w83697hf_wdt.c +++ b/drivers/watchdog/w83697hf_wdt.c @@ -382,10 +382,8 @@ wdt_init(void) /* we will autodetect the W83697HF/HG watchdog */ for (i = 0; ((!found) (w83697hf_ioports[i] != 0)); i++) { wdt_io = w83697hf_ioports[i]; - if (!w83697hf_check_wdt()) { + if (!w83697hf_check_wdt()) found++; - break
Re: watchdog behaviour on close? (watchdog-api.txt)
Hi Andrew, Sorry for the late response. > Hi, I am trying to implement a watchdog driver in 2.6.23 for the i.MXL > cpu (based off of drivers/char/watchdog/s3c2410_wdt.c). > > I had a question about the api doc for the watchdog > (Documentation/watchdog-api.txt). Line 37 says "When the device is > closed, the watchdog is disabled." Later on (Line 56) it says > "Drivers will not disable the watchdog, unless a specific magic > character 'V' has been sent /dev/watchdog just before closing the > file." > > I would assume that from reading L37 that the driver would > unconditionally shut down the watchdog when closing (unless > CONFIG_WATCHDOG_NOWAYOUT or the nowayout module param is specified), > but line 56 seems to contradict that. > > Can you clarify the intended behaviour? Line 56 describes the Magic Close feature that has been introduced by (I believe) Jakob Oestergaard. This feature is an extra safety that was added to make sure that if the watchdog daemon crashes the system is not left "uncontrolled". So what should the behaviour be: 1) when the watchdog driver is initialized it should make sure that the watchdog driver is not running for userspace. 2) when /dev/watchdog is opened the watchdog device should start 3) the watchdog is being kept alive by pinging it 4) when /dev/watchdog is closed and the driver received the magic char "V" (this is when you support the magic-close feature off-course) then the watchdog device should stop. 5) if you unload the watchdog driver module then you normally stop the watchdog device also (unless CONFIG_WATCHDOG_NOWAYOUT or the nowayout module param is specified). Hope this makes it clear now, Greetings, Wim. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: watchdog behaviour on close? (watchdog-api.txt)
Hi Andrew, Sorry for the late response. Hi, I am trying to implement a watchdog driver in 2.6.23 for the i.MXL cpu (based off of drivers/char/watchdog/s3c2410_wdt.c). I had a question about the api doc for the watchdog (Documentation/watchdog-api.txt). Line 37 says When the device is closed, the watchdog is disabled. Later on (Line 56) it says Drivers will not disable the watchdog, unless a specific magic character 'V' has been sent /dev/watchdog just before closing the file. I would assume that from reading L37 that the driver would unconditionally shut down the watchdog when closing (unless CONFIG_WATCHDOG_NOWAYOUT or the nowayout module param is specified), but line 56 seems to contradict that. Can you clarify the intended behaviour? Line 56 describes the Magic Close feature that has been introduced by (I believe) Jakob Oestergaard. This feature is an extra safety that was added to make sure that if the watchdog daemon crashes the system is not left uncontrolled. So what should the behaviour be: 1) when the watchdog driver is initialized it should make sure that the watchdog driver is not running for userspace. 2) when /dev/watchdog is opened the watchdog device should start 3) the watchdog is being kept alive by pinging it 4) when /dev/watchdog is closed and the driver received the magic char V (this is when you support the magic-close feature off-course) then the watchdog device should stop. 5) if you unload the watchdog driver module then you normally stop the watchdog device also (unless CONFIG_WATCHDOG_NOWAYOUT or the nowayout module param is specified). Hope this makes it clear now, Greetings, Wim. -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[WATCHDOG] v2.6.24 Watchdog Device Drivers patches - part 4
Hi Linus, Please pull from 'master' branch of git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git or if master.kernel.org hasn't synced up yet: master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git This will update the following files: drivers/char/ipmi/ipmi_watchdog.c |2 drivers/sbus/char/cpwatchdog.c|2 drivers/watchdog/Kconfig | 23 ++ drivers/watchdog/Makefile |2 drivers/watchdog/at32ap700x_wdt.c | 69 ++ drivers/watchdog/bfin_wdt.c |2 drivers/watchdog/it8712f_wdt.c| 400 ++ drivers/watchdog/sbc7240_wdt.c| 324 ++ drivers/watchdog/w83697hf_wdt.c |4 9 files changed, 821 insertions(+), 7 deletions(-) with these Changes: Author: Gilles Gigan <[EMAIL PROTECTED]> Date: Wed Oct 31 16:31:42 2007 +1000 [WATCHDOG] add Nano 7240 driver Adds support for the built-in watchdog on EPIC Nano 7240 boards from IEI. Tested on Nano-7240RS. Hardware documentation of the platform (including watchdog) can be found on the IEI website: http://www.ieiworld.com Signed-off-by: Gilles Gigan <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Author: Corey Minyard <[EMAIL PROTECTED]> Date: Tue Nov 20 12:14:46 2007 -0800 [WATCHDOG] ipmi: add the standard watchdog timeout ioctls Add the standard IOCTLs to the IPMI driver for setting and getting the pretimeout. Tested by Benoit Guillon. Signed off by: Corey Minyard <[EMAIL PROTECTED]> Cc: Benoit Guillon <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]> Author: Jorge Boncompte [DTI2] <[EMAIL PROTECTED]> Date: Mon Nov 19 15:09:21 2007 +0100 [WATCHDOG] IT8212F watchdog driver This patch adds support for the ITE Tech Inc. IT8712F EC-LPC Super I/O chipset found on many Pentium III and AMD motherboards. Developed using code from other watchdog drivers and the datasheet on ITE Tech homepage. Signed-off-by: Jorge Boncompte <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Author: Jiri Slaby <[EMAIL PROTECTED]> Date: Sat Nov 10 04:32:45 2007 +0100 [WATCHDOG] Sbus: cpwatchdog, remove SPIN_LOCK_UNLOCKED cpwatchdog, remove SPIN_LOCK_UNLOCKED SPIN_LOCK_UNLOCKED is deprecated, use __SPIN_LOCK_UNLOCKED with an unique name instead Signed-off-by: Jiri Slaby <[EMAIL PROTECTED]> Cc: "David S. Miller" <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]> Author: Jiri Slaby <[EMAIL PROTECTED]> Date: Sat Nov 10 05:58:44 2007 +0100 [WATCHDOG] bfin_wdt, remove SPIN_LOCK_UNLOCKED bfin_wdt, remove SPIN_LOCK_UNLOCKED SPIN_LOCK_UNLOCKED is deprecated, use DEFINE_SPINLOCK instead Signed-off-by: Jiri Slaby <[EMAIL PROTECTED]> Acked-by: Mike Frysinger <[EMAIL PROTECTED]> Cc: Bryan Wu <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]> Author: Samuel Tardieu <[EMAIL PROTECTED]> Date: Sun Nov 4 20:20:23 2007 +0100 [WATCHDOG] Stop looking for device as soon as one is found If no address is given for the W83697HF/HG watchdog IO port, stop looping through possible locations when a watchdog device has been found. Signed-off-by: Samuel Tardieu <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Author: Hans-Christian Egtvedt <[EMAIL PROTECTED]> Date: Tue Oct 30 14:56:20 2007 +0100 [WATCHDOG] at32ap700x_wdt: add support for boot status and add fix for silicon errata This patch enables the watchdog to read out the reset cause after a boot and provide this to the user. The driver will now also return -EIO if probed when booting from a watchdog reset. This is due to a silicon errata in the AT32AP700x devices. Detailed description and work-arounds can be found in the errata section of the datasheet avilable from http://www.atmel.com/dyn/products/datasheets.asp?family_id=682 Signed-off-by: Hans-Christian Egtvedt <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]> The Changes can also be looked at on: http://www.kernel.org/git/?p=linux/kernel/git/wim/linux-2.6-watchdog.git;a=summary For completeness, I added the overal diff below. Greetings, Wim. diff --git a/drivers/char/ipmi/ipmi_watc
[WATCHDOG] v2.6.24 Watchdog Device Drivers patches - part 4
Hi Linus, Please pull from 'master' branch of git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git or if master.kernel.org hasn't synced up yet: master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git This will update the following files: drivers/char/ipmi/ipmi_watchdog.c |2 drivers/sbus/char/cpwatchdog.c|2 drivers/watchdog/Kconfig | 23 ++ drivers/watchdog/Makefile |2 drivers/watchdog/at32ap700x_wdt.c | 69 ++ drivers/watchdog/bfin_wdt.c |2 drivers/watchdog/it8712f_wdt.c| 400 ++ drivers/watchdog/sbc7240_wdt.c| 324 ++ drivers/watchdog/w83697hf_wdt.c |4 9 files changed, 821 insertions(+), 7 deletions(-) with these Changes: Author: Gilles Gigan [EMAIL PROTECTED] Date: Wed Oct 31 16:31:42 2007 +1000 [WATCHDOG] add Nano 7240 driver Adds support for the built-in watchdog on EPIC Nano 7240 boards from IEI. Tested on Nano-7240RS. Hardware documentation of the platform (including watchdog) can be found on the IEI website: http://www.ieiworld.com Signed-off-by: Gilles Gigan [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Author: Corey Minyard [EMAIL PROTECTED] Date: Tue Nov 20 12:14:46 2007 -0800 [WATCHDOG] ipmi: add the standard watchdog timeout ioctls Add the standard IOCTLs to the IPMI driver for setting and getting the pretimeout. Tested by Benoit Guillon. Signed off by: Corey Minyard [EMAIL PROTECTED] Cc: Benoit Guillon [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] Author: Jorge Boncompte [DTI2] [EMAIL PROTECTED] Date: Mon Nov 19 15:09:21 2007 +0100 [WATCHDOG] IT8212F watchdog driver This patch adds support for the ITE Tech Inc. IT8712F EC-LPC Super I/O chipset found on many Pentium III and AMD motherboards. Developed using code from other watchdog drivers and the datasheet on ITE Tech homepage. Signed-off-by: Jorge Boncompte [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Author: Jiri Slaby [EMAIL PROTECTED] Date: Sat Nov 10 04:32:45 2007 +0100 [WATCHDOG] Sbus: cpwatchdog, remove SPIN_LOCK_UNLOCKED cpwatchdog, remove SPIN_LOCK_UNLOCKED SPIN_LOCK_UNLOCKED is deprecated, use __SPIN_LOCK_UNLOCKED with an unique name instead Signed-off-by: Jiri Slaby [EMAIL PROTECTED] Cc: David S. Miller [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] Author: Jiri Slaby [EMAIL PROTECTED] Date: Sat Nov 10 05:58:44 2007 +0100 [WATCHDOG] bfin_wdt, remove SPIN_LOCK_UNLOCKED bfin_wdt, remove SPIN_LOCK_UNLOCKED SPIN_LOCK_UNLOCKED is deprecated, use DEFINE_SPINLOCK instead Signed-off-by: Jiri Slaby [EMAIL PROTECTED] Acked-by: Mike Frysinger [EMAIL PROTECTED] Cc: Bryan Wu [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] Author: Samuel Tardieu [EMAIL PROTECTED] Date: Sun Nov 4 20:20:23 2007 +0100 [WATCHDOG] Stop looking for device as soon as one is found If no address is given for the W83697HF/HG watchdog IO port, stop looping through possible locations when a watchdog device has been found. Signed-off-by: Samuel Tardieu [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Author: Hans-Christian Egtvedt [EMAIL PROTECTED] Date: Tue Oct 30 14:56:20 2007 +0100 [WATCHDOG] at32ap700x_wdt: add support for boot status and add fix for silicon errata This patch enables the watchdog to read out the reset cause after a boot and provide this to the user. The driver will now also return -EIO if probed when booting from a watchdog reset. This is due to a silicon errata in the AT32AP700x devices. Detailed description and work-arounds can be found in the errata section of the datasheet avilable from http://www.atmel.com/dyn/products/datasheets.asp?family_id=682 Signed-off-by: Hans-Christian Egtvedt [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] The Changes can also be looked at on: http://www.kernel.org/git/?p=linux/kernel/git/wim/linux-2.6-watchdog.git;a=summary For completeness, I added the overal diff below. Greetings, Wim. diff --git a/drivers/char/ipmi/ipmi_watchdog.c b/drivers/char/ipmi/ipmi_watchdog.c index e686fc9..8f45ca9 100644 --- a/drivers/char/ipmi/ipmi_watchdog.c +++ b/drivers/char/ipmi/ipmi_watchdog.c @@ -669,6 +669,7 @@ static int ipmi_ioctl(struct inode *inode, struct file *file
[WATCHDOG] HP ProLiant WatchDog driver
Hi Andrew, Can you review the below new driver? For me it's OK. I agreed with Thomas that we will try to migrate the smbios routines into the arch specific part of the kernel in the future. Thanks in advance, Wim. commit b1ad0c9cab52a6437584929cc755898bd85d6045 Author: Thomas Mingarelli <[EMAIL PROTECTED]> Date: Tue Dec 4 17:41:54 2007 + [WATCHDOG] HP ProLiant WatchDog driver Hp is providing a Hardware WatchDog Timer driver that will only work with the specific HW Timer located in the HP ProLiant iLO 2 ASIC. The iLO 2 HW Timer will generate a Non-maskable Interrupt (NMI) 9 seconds before physically resetting the server, by removing power, so that the event can be logged to the HP Integrated Management Log (IML), a Non-Volatile Random Access Memory (NVRAM). The logging of the event is performed using the HP ProLiant ROM via an Industry Standard access known as a BIOS Service Directory Entry. Signed-off-by: Thomas Mingarelli <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index 9db5aeb..5bf471d 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -405,6 +405,18 @@ config IT8712F_WDT To compile this driver as a module, choose M here: the module will be called it8712f_wdt. +config HP_WATCHDOG + tristate "HP Proliant iLO 2 Hardware Watchdog Timer" + depends on X86 + help + A software monitoring watchdog and NMI sourcing driver. This driver + will detect lockups and provide stack trace. Also, when an NMI + occurs this driver will make the necessary BIOS calls to log + the cause of the NMI. This is a driver that will only load on a + HP ProLiant system with a minimum of iLO2 support. + To compile this driver as a module, choose M here: the + module will be called hpwdt. + config SC1200_WDT tristate "National Semiconductor PC87307/PC97307 (ala SC1200) Watchdog" depends on X86 diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile index bba9950..68d1989 100644 --- a/drivers/watchdog/Makefile +++ b/drivers/watchdog/Makefile @@ -69,6 +69,8 @@ obj-$(CONFIG_WAFER_WDT) += wafer5823wdt.o obj-$(CONFIG_I6300ESB_WDT) += i6300esb.o obj-$(CONFIG_ITCO_WDT) += iTCO_wdt.o iTCO_vendor_support.o obj-$(CONFIG_IT8712F_WDT) += it8712f_wdt.o +CFLAGS_hpwdt.o += -O +obj-$(CONFIG_HP_WATCHDOG) += hpwdt.o obj-$(CONFIG_SC1200_WDT) += sc1200wdt.o obj-$(CONFIG_SCx200_WDT) += scx200_wdt.o obj-$(CONFIG_PC87413_WDT) += pc87413_wdt.o diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c new file mode 100644 index 000..078c954 --- /dev/null +++ b/drivers/watchdog/hpwdt.c @@ -0,0 +1,981 @@ +/* + * HP WatchDog Driver + * based on + * + * SoftDog 0.05: A Software Watchdog Device + * + * (c) Copyright 2007 Hewlett-Packard Development Company, L.P. + * Thomas Mingarelli <[EMAIL PROTECTED]> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef CONFIG_X86_64 +#define HPWDT_ARCH 32 +#else +#define HPWDT_ARCH 64 +#endif + +#define PCI_BIOS32_SD_VALUE0x5F32335F +#define CRU_BIOS_SIGNATURE_VALUE 0x55524324 +#define PCI_BIOS32_PARAGRAPH_LEN 16 +#define PCI_ROM_BASE1 0x000F +#define ROM_SIZE 0x0 + +struct bios32_service_dir { + u32 signature; + u32 entry_point; + u8 revision; + u8 length; + u8 checksum; + u8 reserved[5]; +}; + +/* + * smbios_entry_point - defines SMBIOS entry point structure + * + * anchor_string[4] - anchor string (_SM_) + * check_sum - checksum of the entry point structure + * length - length of the entry point structure + * major_ver - major version (02h for revision 2.1) + * minor_ver - minor version (01h for revision 2.1) + * max_struct_size- size of the largest SMBIOS structure + * revision - entry point structure revision implemented + * reserved[5]- reserved + * intermediate_anchor[5] - intermediate anchor string (_DMI_) + * intermediate_check_sum - intermediate checksum + * table_length - structure table length + * table_address - structure table address + * number_structs - number of SMBIOS structures present + * bcd_revision - BCD revision + */ +struct smbios_entry_point { + u8 anchor_string[4]; +
[WATCHDOG] HP ProLiant WatchDog driver
Hi Andrew, Can you review the below new driver? For me it's OK. I agreed with Thomas that we will try to migrate the smbios routines into the arch specific part of the kernel in the future. Thanks in advance, Wim. commit b1ad0c9cab52a6437584929cc755898bd85d6045 Author: Thomas Mingarelli [EMAIL PROTECTED] Date: Tue Dec 4 17:41:54 2007 + [WATCHDOG] HP ProLiant WatchDog driver Hp is providing a Hardware WatchDog Timer driver that will only work with the specific HW Timer located in the HP ProLiant iLO 2 ASIC. The iLO 2 HW Timer will generate a Non-maskable Interrupt (NMI) 9 seconds before physically resetting the server, by removing power, so that the event can be logged to the HP Integrated Management Log (IML), a Non-Volatile Random Access Memory (NVRAM). The logging of the event is performed using the HP ProLiant ROM via an Industry Standard access known as a BIOS Service Directory Entry. Signed-off-by: Thomas Mingarelli [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index 9db5aeb..5bf471d 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -405,6 +405,18 @@ config IT8712F_WDT To compile this driver as a module, choose M here: the module will be called it8712f_wdt. +config HP_WATCHDOG + tristate HP Proliant iLO 2 Hardware Watchdog Timer + depends on X86 + help + A software monitoring watchdog and NMI sourcing driver. This driver + will detect lockups and provide stack trace. Also, when an NMI + occurs this driver will make the necessary BIOS calls to log + the cause of the NMI. This is a driver that will only load on a + HP ProLiant system with a minimum of iLO2 support. + To compile this driver as a module, choose M here: the + module will be called hpwdt. + config SC1200_WDT tristate National Semiconductor PC87307/PC97307 (ala SC1200) Watchdog depends on X86 diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile index bba9950..68d1989 100644 --- a/drivers/watchdog/Makefile +++ b/drivers/watchdog/Makefile @@ -69,6 +69,8 @@ obj-$(CONFIG_WAFER_WDT) += wafer5823wdt.o obj-$(CONFIG_I6300ESB_WDT) += i6300esb.o obj-$(CONFIG_ITCO_WDT) += iTCO_wdt.o iTCO_vendor_support.o obj-$(CONFIG_IT8712F_WDT) += it8712f_wdt.o +CFLAGS_hpwdt.o += -O +obj-$(CONFIG_HP_WATCHDOG) += hpwdt.o obj-$(CONFIG_SC1200_WDT) += sc1200wdt.o obj-$(CONFIG_SCx200_WDT) += scx200_wdt.o obj-$(CONFIG_PC87413_WDT) += pc87413_wdt.o diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c new file mode 100644 index 000..078c954 --- /dev/null +++ b/drivers/watchdog/hpwdt.c @@ -0,0 +1,981 @@ +/* + * HP WatchDog Driver + * based on + * + * SoftDog 0.05: A Software Watchdog Device + * + * (c) Copyright 2007 Hewlett-Packard Development Company, L.P. + * Thomas Mingarelli [EMAIL PROTECTED] + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation + * + */ + +#include linux/device.h +#include linux/fs.h +#include linux/init.h +#include linux/interrupt.h +#include linux/io.h +#include linux/irq.h +#include linux/kernel.h +#include linux/miscdevice.h +#include linux/mm.h +#include linux/module.h +#include linux/moduleparam.h +#include linux/notifier.h +#include linux/pci.h +#include linux/pci_ids.h +#include linux/reboot.h +#include linux/sched.h +#include linux/timer.h +#include linux/types.h +#include linux/uaccess.h +#include linux/watchdog.h +#include asm/desc.h +#include asm/kdebug.h + +#ifndef CONFIG_X86_64 +#define HPWDT_ARCH 32 +#else +#define HPWDT_ARCH 64 +#endif + +#define PCI_BIOS32_SD_VALUE0x5F32335F +#define CRU_BIOS_SIGNATURE_VALUE 0x55524324 +#define PCI_BIOS32_PARAGRAPH_LEN 16 +#define PCI_ROM_BASE1 0x000F +#define ROM_SIZE 0x0 + +struct bios32_service_dir { + u32 signature; + u32 entry_point; + u8 revision; + u8 length; + u8 checksum; + u8 reserved[5]; +}; + +/* + * smbios_entry_point - defines SMBIOS entry point structure + * + * anchor_string[4] - anchor string (_SM_) + * check_sum - checksum of the entry point structure + * length - length of the entry point structure + * major_ver - major version (02h for revision 2.1) + * minor_ver - minor version (01h for revision 2.1) + * max_struct_size- size of the largest SMBIOS structure + * revision - entry point structure revision implemented + * reserved[5]- reserved + * intermediate_anchor[5] - intermediate anchor string (_DMI_) + * intermediate_check_sum - intermediate checksum + * table_length - structure table
[WATCHDOG] v2.6.24 Watchdog Device Drivers patches - part 4
Hi Linus, Please pull from 'master' branch of git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git or if master.kernel.org hasn't synced up yet: master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git This will update the following files: drivers/sbus/char/cpwatchdog.c|2 drivers/watchdog/Kconfig | 10 drivers/watchdog/Makefile |1 drivers/watchdog/at32ap700x_wdt.c | 69 ++ drivers/watchdog/bfin_wdt.c |2 drivers/watchdog/it8712f_wdt.c| 400 ++ drivers/watchdog/w83697hf_wdt.c |4 7 files changed, 481 insertions(+), 7 deletions(-) with these Changes: Author: Jorge Boncompte [DTI2] <[EMAIL PROTECTED]> Date: Mon Nov 19 15:09:21 2007 +0100 [WATCHDOG] IT8212F watchdog driver This patch adds support for the ITE Tech Inc. IT8712F EC-LPC Super I/O chipset found on many Pentium III and AMD motherboards. Developed using code from other watchdog drivers and the datasheet on ITE Tech homepage. Signed-off-by: Jorge Boncompte <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Author: Jiri Slaby <[EMAIL PROTECTED]> Date: Sat Nov 10 04:32:45 2007 +0100 [WATCHDOG] Sbus: cpwatchdog, remove SPIN_LOCK_UNLOCKED cpwatchdog, remove SPIN_LOCK_UNLOCKED SPIN_LOCK_UNLOCKED is deprecated, use __SPIN_LOCK_UNLOCKED with an unique name instead Signed-off-by: Jiri Slaby <[EMAIL PROTECTED]> Cc: "David S. Miller" <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]> Author: Jiri Slaby <[EMAIL PROTECTED]> Date: Sat Nov 10 05:58:44 2007 +0100 [WATCHDOG] bfin_wdt, remove SPIN_LOCK_UNLOCKED bfin_wdt, remove SPIN_LOCK_UNLOCKED SPIN_LOCK_UNLOCKED is deprecated, use DEFINE_SPINLOCK instead Signed-off-by: Jiri Slaby <[EMAIL PROTECTED]> Acked-by: Mike Frysinger <[EMAIL PROTECTED]> Cc: Bryan Wu <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]> Author: Samuel Tardieu <[EMAIL PROTECTED]> Date: Sun Nov 4 20:20:23 2007 +0100 [WATCHDOG] Stop looking for device as soon as one is found If no address is given for the W83697HF/HG watchdog IO port, stop looping through possible locations when a watchdog device has been found. Signed-off-by: Samuel Tardieu <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Author: Hans-Christian Egtvedt <[EMAIL PROTECTED]> Date: Tue Oct 30 14:56:20 2007 +0100 [WATCHDOG] at32ap700x_wdt: add support for boot status and add fix for silicon errata This patch enables the watchdog to read out the reset cause after a boot and provide this to the user. The driver will now also return -EIO if probed when booting from a watchdog reset. This is due to a silicon errata in the AT32AP700x devices. Detailed description and work-arounds can be found in the errata section of the datasheet avilable from http://www.atmel.com/dyn/products/datasheets.asp?family_id=682 Signed-off-by: Hans-Christian Egtvedt <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]> The Changes can also be looked at on: http://www.kernel.org/git/?p=linux/kernel/git/wim/linux-2.6-watchdog.git;a=summary For completeness, I added the overal diff below. Greetings, Wim. diff --git a/drivers/sbus/char/cpwatchdog.c b/drivers/sbus/char/cpwatchdog.c index 7b5773d..a4e7581 100644 --- a/drivers/sbus/char/cpwatchdog.c +++ b/drivers/sbus/char/cpwatchdog.c @@ -154,7 +154,7 @@ struct wd_device { }; static struct wd_device wd_dev = { - 0, SPIN_LOCK_UNLOCKED, 0, 0, 0, 0, + 0, __SPIN_LOCK_UNLOCKED(wd_dev.lock), 0, 0, 0, 0, }; static struct timer_list wd_timer; diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index 2792bc1..126b554 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -392,6 +392,16 @@ config ITCO_VENDOR_SUPPORT devices. At this moment we only have additional support for some SuperMicro Inc. motherboards. +config IT8712F_WDT + tristate "IT8712F (Smart Guardian) Watchdog Timer" + depends on X86 + ---help--- + This is the driver for the built-in watchdog timer on the IT8712F + Super I/0 chipset used on many motherboards. + + To compile this driver as a module, choose M here: the + module will be called it8712f_wdt. + config SC1200_WDT tristate "Nation
[WATCHDOG] v2.6.24 Watchdog Device Drivers patches - part 4
Hi Linus, Please pull from 'master' branch of git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git or if master.kernel.org hasn't synced up yet: master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git This will update the following files: drivers/sbus/char/cpwatchdog.c|2 drivers/watchdog/Kconfig | 10 drivers/watchdog/Makefile |1 drivers/watchdog/at32ap700x_wdt.c | 69 ++ drivers/watchdog/bfin_wdt.c |2 drivers/watchdog/it8712f_wdt.c| 400 ++ drivers/watchdog/w83697hf_wdt.c |4 7 files changed, 481 insertions(+), 7 deletions(-) with these Changes: Author: Jorge Boncompte [DTI2] [EMAIL PROTECTED] Date: Mon Nov 19 15:09:21 2007 +0100 [WATCHDOG] IT8212F watchdog driver This patch adds support for the ITE Tech Inc. IT8712F EC-LPC Super I/O chipset found on many Pentium III and AMD motherboards. Developed using code from other watchdog drivers and the datasheet on ITE Tech homepage. Signed-off-by: Jorge Boncompte [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Author: Jiri Slaby [EMAIL PROTECTED] Date: Sat Nov 10 04:32:45 2007 +0100 [WATCHDOG] Sbus: cpwatchdog, remove SPIN_LOCK_UNLOCKED cpwatchdog, remove SPIN_LOCK_UNLOCKED SPIN_LOCK_UNLOCKED is deprecated, use __SPIN_LOCK_UNLOCKED with an unique name instead Signed-off-by: Jiri Slaby [EMAIL PROTECTED] Cc: David S. Miller [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] Author: Jiri Slaby [EMAIL PROTECTED] Date: Sat Nov 10 05:58:44 2007 +0100 [WATCHDOG] bfin_wdt, remove SPIN_LOCK_UNLOCKED bfin_wdt, remove SPIN_LOCK_UNLOCKED SPIN_LOCK_UNLOCKED is deprecated, use DEFINE_SPINLOCK instead Signed-off-by: Jiri Slaby [EMAIL PROTECTED] Acked-by: Mike Frysinger [EMAIL PROTECTED] Cc: Bryan Wu [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] Author: Samuel Tardieu [EMAIL PROTECTED] Date: Sun Nov 4 20:20:23 2007 +0100 [WATCHDOG] Stop looking for device as soon as one is found If no address is given for the W83697HF/HG watchdog IO port, stop looping through possible locations when a watchdog device has been found. Signed-off-by: Samuel Tardieu [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Author: Hans-Christian Egtvedt [EMAIL PROTECTED] Date: Tue Oct 30 14:56:20 2007 +0100 [WATCHDOG] at32ap700x_wdt: add support for boot status and add fix for silicon errata This patch enables the watchdog to read out the reset cause after a boot and provide this to the user. The driver will now also return -EIO if probed when booting from a watchdog reset. This is due to a silicon errata in the AT32AP700x devices. Detailed description and work-arounds can be found in the errata section of the datasheet avilable from http://www.atmel.com/dyn/products/datasheets.asp?family_id=682 Signed-off-by: Hans-Christian Egtvedt [EMAIL PROTECTED] Signed-off-by: Wim Van Sebroeck [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] The Changes can also be looked at on: http://www.kernel.org/git/?p=linux/kernel/git/wim/linux-2.6-watchdog.git;a=summary For completeness, I added the overal diff below. Greetings, Wim. diff --git a/drivers/sbus/char/cpwatchdog.c b/drivers/sbus/char/cpwatchdog.c index 7b5773d..a4e7581 100644 --- a/drivers/sbus/char/cpwatchdog.c +++ b/drivers/sbus/char/cpwatchdog.c @@ -154,7 +154,7 @@ struct wd_device { }; static struct wd_device wd_dev = { - 0, SPIN_LOCK_UNLOCKED, 0, 0, 0, 0, + 0, __SPIN_LOCK_UNLOCKED(wd_dev.lock), 0, 0, 0, 0, }; static struct timer_list wd_timer; diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index 2792bc1..126b554 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -392,6 +392,16 @@ config ITCO_VENDOR_SUPPORT devices. At this moment we only have additional support for some SuperMicro Inc. motherboards. +config IT8712F_WDT + tristate IT8712F (Smart Guardian) Watchdog Timer + depends on X86 + ---help--- + This is the driver for the built-in watchdog timer on the IT8712F + Super I/0 chipset used on many motherboards. + + To compile this driver as a module, choose M here: the + module will be called it8712f_wdt. + config SC1200_WDT tristate National Semiconductor PC87307/PC97307 (ala SC1200) Watchdog depends on X86 diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile index 7d9e573..e4779f7 100644 --- a/drivers/watchdog
Re: [PATCH 3/5] Sbus: cpwatchdog, remove SPIN_LOCK_UNLOCKED
Hi All, > cpwatchdog, remove SPIN_LOCK_UNLOCKED > > SPIN_LOCK_UNLOCKED is deprecated, use __SPIN_LOCK_UNLOCKED with an unique > name instead Added to linux-2.6-watchdog-mm git tree. Greetings, Wim. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 2/5] Watchdog: bfin_wdt, remove SPIN_LOCK_UNLOCKED
Hi All, > bfin_wdt, remove SPIN_LOCK_UNLOCKED > > SPIN_LOCK_UNLOCKED is deprecated, use DEFINE_SPINLOCK instead Added to linux-2.6-watchdog-mm git tree. Greetings, Wim. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 2/5] Watchdog: bfin_wdt, remove SPIN_LOCK_UNLOCKED
Hi All, bfin_wdt, remove SPIN_LOCK_UNLOCKED SPIN_LOCK_UNLOCKED is deprecated, use DEFINE_SPINLOCK instead Added to linux-2.6-watchdog-mm git tree. Greetings, Wim. - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/5] Sbus: cpwatchdog, remove SPIN_LOCK_UNLOCKED
Hi All, cpwatchdog, remove SPIN_LOCK_UNLOCKED SPIN_LOCK_UNLOCKED is deprecated, use __SPIN_LOCK_UNLOCKED with an unique name instead Added to linux-2.6-watchdog-mm git tree. Greetings, Wim. - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [HP ProLiant WatchDog driver] hpwdt HP WatchDog Patch
Hi Thomas, I reviewed yor code and have ome remarks: * All watchdog device drivers should work with seconds. Your driver works with minutes. Please change to seconds. * The misc_register function (which opens your driver towards user-space) should be the last iregister-action you take into the pci probe function. (So just before you do the printk where you say that the driver has been initialized). * The open and release functions should make sure that /dev/watchdog can only be opened once. * /dev/watchdog is a VFS (Virtual File System) so your open function should return with "return nonseekable_open(inode, file);". * please put the code to start the watchdog in a seperate function (this will make it easier to migrate your driver to the generic watchdog model in the future). * If you watchdog can't be stopped then you should use a timer to make sure that when /dev/watchdog is closed, that you continue to keepalive/ping the watchdog device. (please see mixcomwd.c (this device has the same problem)). * please put the code to change the timeout in a seperate function. * the default return value for the ioctl calls should be -ENOTTY (instead of -ENOIOCTLCMD). * the GETSTATUS call should also have a "put_user(0, (int *)arg);". * if possible please add sparse testing code into the ioctl handling. * Personnaly: I would rather see the generic smbios code somewhere in the arch/x86/ directory. We will probably need that also in other (non-watchdog) drivers in the future. Greetings, Wim. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [HP ProLiant WatchDog driver] hpwdt HP WatchDog Patch resend
Hi Thomas, I reviewed yor code and have ome remarks: * All watchdog device drivers should work with seconds. Your driver works with minutes. Please change to seconds. * The misc_register function (which opens your driver towards user-space) should be the last iregister-action you take into the pci probe function. (So just before you do the printk where you say that the driver has been initialized). * The open and release functions should make sure that /dev/watchdog can only be opened once. * /dev/watchdog is a VFS (Virtual File System) so your open function should return with return nonseekable_open(inode, file);. * please put the code to start the watchdog in a seperate function (this will make it easier to migrate your driver to the generic watchdog model in the future). * If you watchdog can't be stopped then you should use a timer to make sure that when /dev/watchdog is closed, that you continue to keepalive/ping the watchdog device. (please see mixcomwd.c (this device has the same problem)). * please put the code to change the timeout in a seperate function. * the default return value for the ioctl calls should be -ENOTTY (instead of -ENOIOCTLCMD). * the GETSTATUS call should also have a put_user(0, (int *)arg);. * if possible please add sparse testing code into the ioctl handling. * Personnaly: I would rather see the generic smbios code somewhere in the arch/x86/ directory. We will probably need that also in other (non-watchdog) drivers in the future. Greetings, Wim. - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[WATCHDOG] v2.6.24 Watchdog Device Drivers patches - part 3
Hi Linus, Please pull from 'master' branch of git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git or if master.kernel.org hasn't synced up yet: master.kernel.org:/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog.git This will update the following files: drivers/watchdog/alim1535_wdt.c |4 - drivers/watchdog/davinci_wdt.c|6 -- drivers/watchdog/i6300esb.c |4 - drivers/watchdog/iTCO_wdt.c | 114 ++ drivers/watchdog/ib700wdt.c |4 - drivers/watchdog/machzwd.c|7 -- drivers/watchdog/mpc83xx_wdt.c|5 - drivers/watchdog/pc87413_wdt.c|4 - drivers/watchdog/pnx4008_wdt.c|6 -- drivers/watchdog/sbc8360.c|3 - drivers/watchdog/sc1200wdt.c |3 - drivers/watchdog/sc520_wdt.c |4 - drivers/watchdog/smsc37b787_wdt.c |4 - drivers/watchdog/w83627hf_wdt.c |4 - drivers/watchdog/w83697hf_wdt.c |4 - drivers/watchdog/w83877f_wdt.c|4 - drivers/watchdog/w83977f_wdt.c|4 - drivers/watchdog/wafer5823wdt.c |4 - drivers/watchdog/wdt.c|3 - drivers/watchdog/wdt977.c |4 - drivers/watchdog/wdt_pci.c|6 +- 21 files changed, 92 insertions(+), 109 deletions(-) with these Changes: Author: Wim Van Sebroeck <[EMAIL PROTECTED]> Date: Fri Aug 31 08:23:10 2007 + [WATCHDOG] iTCO_wdt.c ICH8 pci-device-id's Add the pci-device-id's for the ICH8M and the ICH8M-E chipsets. Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Author: Wim Van Sebroeck <[EMAIL PROTECTED]> Date: Fri Aug 31 08:15:34 2007 + [WATCHDOG] iTCO_wdt.c init & exit fixes Mark init and exit procedures as __devinit & _-devexit. Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Author: Wim Van Sebroeck <[EMAIL PROTECTED]> Date: Sun Aug 19 20:17:58 2007 + [WATCHDOG] iTCO_wdt.c pci_device_id table clean-up Make the pci_device_id table more readable. Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Author: Alexey Dobriyan <[EMAIL PROTECTED]> Date: Thu Nov 1 16:27:08 2007 -0700 [WATCHDOG] spin_lock_init() fixes Some watchdog drivers initialize global spinlocks in module's init function which is tolerable, but some do it in PCI probe function. So, switch to static initialization to fix theoretical bugs and, more importantly, stop giving people bad examples. Signed-off-by: Alexey Dobriyan <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]> Author: Roel Kluin <[EMAIL PROTECTED]> Date: Tue Oct 23 03:08:27 2007 +0200 [WATCHDOG] Unlock in iTCO_wdt_start when reboot is disabled Unlock in iTCO_wdt_start when reboot is disabled Signed-off-by: Roel Kluin <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Author: Ilpo Jarvinen <[EMAIL PROTECTED]> Date: Tue Oct 23 13:40:54 2007 -0700 [WATCHDOG] Add necessary braces to if (...) \n #if... cases Signed-off-by: Ilpo Jarvinen <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]> Author: Florian Fainelli <[EMAIL PROTECTED]> Date: Wed Oct 17 15:42:22 2007 +0200 [WATCHDOG] trivial fix two returns in void functions This patch fixes two returns in the TI Davinci and PNX4008 in void functions. Signed-off-by: Florian Fainelli <[EMAIL PROTECTED]> Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]> The Changes can also be looked at on: http://www.kernel.org/git/?p=linux/kernel/git/wim/linux-2.6-watchdog.git;a=summary For completeness, I added the overal diff below. Greetings, Wim. diff --git a/drivers/watchdog/alim1535_wdt.c b/drivers/watchdog/alim1535_wdt.c index c404fc6..b481cc0 100644 --- a/drivers/watchdog/alim1535_wdt.c +++ b/drivers/watchdog/alim1535_wdt.c @@ -31,7 +31,7 @@ static unsigned long ali_is_open; static char ali_expect_release; static struct pci_dev *ali_pci; static u32 ali_timeout_bits; /* stores the computed timeout */ -static spinlock_t ali_lock;/* Guards the hardware */ +static DEFINE_SPINLOCK(ali_lock); /* Guards the hardware */ /* module parameters */ static int timeout = WATCHDOG_TIMEOUT; @@ -398,8 +398,6 @@ static int __init watchdog_init(void) { int ret; - spin_lock_init(_lock); - /* Check whether or not the hardware watchdog is there */ if (ali_find_watchdog() != 0) { return -ENODEV; diff --git a/drivers/watchdog/davinci_wdt.c b/drivers/watchdog/davinci_wdt.c index 19db530..a61cbd4 100644 --- a/drivers/watc