diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-24 02:56:26 +0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-24 02:56:26 +0400 |
commit | 6d03a68e6d5528630955452ec4b768dbde0dc00c (patch) | |
tree | 56e843eec067ddba67fc098196b17e22c56d302f /drivers/char/watchdog/w83627hf_wdt.c | |
parent | 0c0e4668e0e65dd1404e8cf066d147235f95561d (diff) | |
parent | cbf40d3f04c2c76a58f1183bb4a9a82fefb842e3 (diff) | |
download | linux-6d03a68e6d5528630955452ec4b768dbde0dc00c.tar.xz |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog
* git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog: (33 commits)
[WATCHDOG] remove experimental on iTCO_wdt.c
[WATCHDOG] Atmel AT91RM9200 rename.
[WATCHDOG] includes for sample watchdog program.
[WATCHDOG] watchdog/iTCO_wdt: fix bug related to gcc uninit warning
[WATCHDOG] add ich8 support to iTCO_wdt.c (patch 2)
[WATCHDOG] add ich8 support to iTCO_wdt.c
[WATCHDOG] ioremap balanced with iounmap for drivers/char/watchdog/s3c2410_wdt.c
[WATCHDOG] w83697hf/hg WDT driver - Kconfig patch
[WATCHDOG] w83697hf/hg WDT driver - autodetect patch
[WATCHDOG] w83697hf/hg WDT driver - patch 16
[WATCHDOG] w83697hf/hg WDT driver - patch 15
[WATCHDOG] w83697hf/hg WDT driver - patch 14
[WATCHDOG] w83697hf/hg WDT driver - patch 13
[WATCHDOG] w83697hf/hg WDT driver - patch 12
[WATCHDOG] w83697hf/hg WDT driver - patch 11
[WATCHDOG] w83697hf/hg WDT driver - patch 10
[WATCHDOG] w83697hf/hg WDT driver - patch 9
[WATCHDOG] w83697hf/hg WDT driver - patch 8
[WATCHDOG] w83697hf/hg WDT driver - patch 7
[WATCHDOG] w83697hf/hg WDT driver - patch 6
...
Diffstat (limited to 'drivers/char/watchdog/w83627hf_wdt.c')
-rw-r--r-- | drivers/char/watchdog/w83627hf_wdt.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/char/watchdog/w83627hf_wdt.c b/drivers/char/watchdog/w83627hf_wdt.c index b4adc527e687..07d4bff27226 100644 --- a/drivers/char/watchdog/w83627hf_wdt.c +++ b/drivers/char/watchdog/w83627hf_wdt.c @@ -33,6 +33,7 @@ #include <linux/notifier.h> #include <linux/reboot.h> #include <linux/init.h> +#include <linux/spinlock.h> #include <asm/io.h> #include <asm/uaccess.h> @@ -44,6 +45,7 @@ static unsigned long wdt_is_open; static char expect_close; +static spinlock_t io_lock; /* You must set this - there is no sane way to probe for this board. */ static int wdt_io = 0x2E; @@ -110,12 +112,16 @@ w83627hf_init(void) static void wdt_ctrl(int timeout) { + spin_lock(&io_lock); + w83627hf_select_wd_register(); outb_p(0xF6, WDT_EFER); /* Select CRF6 */ outb_p(timeout, WDT_EFDR); /* Write Timeout counter to CRF6 */ w83627hf_unselect_wd_register(); + + spin_unlock(&io_lock); } static int @@ -303,6 +309,8 @@ wdt_init(void) { int ret; + spin_lock_init(&io_lock); + printk(KERN_INFO "WDT driver for the Winbond(TM) W83627HF Super I/O chip initialising.\n"); if (wdt_set_heartbeat(timeout)) { |