summaryrefslogtreecommitdiff
path: root/drivers/watchdog/sbc8360.c
diff options
context:
space:
mode:
authorWim Van Sebroeck <wim@iguana.be>2008-07-18 19:59:48 +0000
committerWim Van Sebroeck <wim@iguana.be>2008-08-06 13:21:16 +0000
commit12b7a1523eda9cd72362fdda928ddb995ecdc06d (patch)
treeb5f38749e148f3afb3c5afdae0c7cb4c81c8b973 /drivers/watchdog/sbc8360.c
parent0c06090c9472db0525cb6fe229c3bea33bbbbb3c (diff)
[WATCHDOG] sbc8360.c - move stop code into a function
Move the sbc8360.c watchdog stop code into a seperate function. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Diffstat (limited to 'drivers/watchdog/sbc8360.c')
-rw-r--r--drivers/watchdog/sbc8360.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/drivers/watchdog/sbc8360.c b/drivers/watchdog/sbc8360.c
index c66fa6694fc3..fd83dd052d8c 100644
--- a/drivers/watchdog/sbc8360.c
+++ b/drivers/watchdog/sbc8360.c
@@ -231,6 +231,13 @@ static void sbc8360_ping(void)
outb(wd_margin, SBC8360_BASETIME);
}
+/* stop watchdog */
+static void sbc8360_stop(void)
+{
+ /* De-activate the watchdog */
+ outb(0, SBC8360_ENABLE);
+}
+
/* Userspace pings kernel driver, or requests clean close */
static ssize_t sbc8360_write(struct file *file, const char __user *buf,
size_t count, loff_t *ppos)
@@ -271,7 +278,7 @@ static int sbc8360_open(struct inode *inode, struct file *file)
static int sbc8360_close(struct inode *inode, struct file *file)
{
if (expect_close == 42)
- outb(0, SBC8360_ENABLE);
+ sbc8360_stop();
else
printk(KERN_CRIT PFX
"SBC8360 device closed unexpectedly. SBC8360 will not stop!\n");
@@ -288,10 +295,9 @@ static int sbc8360_close(struct inode *inode, struct file *file)
static int sbc8360_notify_sys(struct notifier_block *this, unsigned long code,
void *unused)
{
- if (code == SYS_DOWN || code == SYS_HALT) {
- /* Disable the SBC8360 Watchdog */
- outb(0, SBC8360_ENABLE);
- }
+ if (code == SYS_DOWN || code == SYS_HALT)
+ sbc8360_stop(); /* Disable the SBC8360 Watchdog */
+
return NOTIFY_DONE;
}