Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
0efa7383
Commit
0efa7383
authored
Feb 12, 2003
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://linux-dj.bkbits.net/watchdog
into home.transmeta.com:/home/torvalds/v2.5/linux
parents
5f49bfc9
7e0d4363
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
416 additions
and
86 deletions
+416
-86
drivers/char/watchdog/Kconfig
drivers/char/watchdog/Kconfig
+10
-0
drivers/char/watchdog/Makefile
drivers/char/watchdog/Makefile
+1
-0
drivers/char/watchdog/acquirewdt.c
drivers/char/watchdog/acquirewdt.c
+1
-1
drivers/char/watchdog/alim7101_wdt.c
drivers/char/watchdog/alim7101_wdt.c
+5
-5
drivers/char/watchdog/cpu5wdt.c
drivers/char/watchdog/cpu5wdt.c
+312
-0
drivers/char/watchdog/machzwd.c
drivers/char/watchdog/machzwd.c
+6
-6
drivers/char/watchdog/pcwd.c
drivers/char/watchdog/pcwd.c
+26
-19
drivers/char/watchdog/sbc60xxwdt.c
drivers/char/watchdog/sbc60xxwdt.c
+6
-6
drivers/char/watchdog/sc1200wdt.c
drivers/char/watchdog/sc1200wdt.c
+10
-10
drivers/char/watchdog/sc520_wdt.c
drivers/char/watchdog/sc520_wdt.c
+12
-12
drivers/char/watchdog/w83877f_wdt.c
drivers/char/watchdog/w83877f_wdt.c
+6
-6
drivers/char/watchdog/wafer5823wdt.c
drivers/char/watchdog/wafer5823wdt.c
+11
-11
drivers/char/watchdog/wdt.c
drivers/char/watchdog/wdt.c
+9
-9
drivers/char/watchdog/wdt977.c
drivers/char/watchdog/wdt977.c
+1
-1
No files found.
drivers/char/watchdog/Kconfig
View file @
0efa7383
...
...
@@ -354,4 +354,14 @@ config WAFER_WDT
Documentation/modules.txt. The module will be called
wafer5823wdt.o
config CPU5_WDT
tristate "SMA CPU5 Watchdog"
depends on WATCHDOG
---help---
TBD.
This driver is also available as a module ( = code which can be
inserted in and removed from the running kernel whenever you want).
The module is called cpu5wdt.o. If you want to compile it as a
module, say M here and read <file:Documentation/modules.txt>.
endmenu
drivers/char/watchdog/Makefile
View file @
0efa7383
...
...
@@ -29,3 +29,4 @@ obj-$(CONFIG_SC520_WDT) += sc520_wdt.o
obj-$(CONFIG_ALIM7101_WDT)
+=
alim7101_wdt.o
obj-$(CONFIG_SC1200_WDT)
+=
sc1200wdt.o
obj-$(CONFIG_WAFER_WDT)
+=
wafer5823wdt.o
obj-$(CONFIG_CPU5_WDT)
+=
cpu5wdt.o
drivers/char/watchdog/acquirewdt.c
View file @
0efa7383
...
...
@@ -220,7 +220,7 @@ static struct notifier_block acq_notifier =
static
int
__init
acq_init
(
void
)
{
printk
(
"WDT driver for Acquire single board computer initialising.
\n
"
);
printk
(
KERN_INFO
"WDT driver for Acquire single board computer initialising.
\n
"
);
spin_lock_init
(
&
acq_lock
);
if
(
misc_register
(
&
acq_miscdev
))
...
...
drivers/char/watchdog/alim7101_wdt.c
View file @
0efa7383
...
...
@@ -100,7 +100,7 @@ static void wdt_timer_ping(unsigned long data)
pci_write_config_byte
(
alim7101_pmu
,
ALI_7101_WDT
,
(
tmp
&
~
ALI_WDT_ARM
));
pci_write_config_byte
(
alim7101_pmu
,
ALI_7101_WDT
,
(
tmp
|
ALI_WDT_ARM
));
}
else
{
printk
(
OUR_NAME
": Heartbeat lost! Will not ping the watchdog
\n
"
);
printk
(
KERN_INFO
OUR_NAME
": Heartbeat lost! Will not ping the watchdog
\n
"
);
}
/* Re-set the timer interval */
timer
.
expires
=
jiffies
+
WDT_INTERVAL
;
...
...
@@ -136,7 +136,7 @@ static void wdt_startup(void)
add_timer
(
&
timer
);
printk
(
OUR_NAME
": Watchdog timer is now enabled.
\n
"
);
printk
(
KERN_INFO
OUR_NAME
": Watchdog timer is now enabled.
\n
"
);
}
static
void
wdt_turnoff
(
void
)
...
...
@@ -144,7 +144,7 @@ static void wdt_turnoff(void)
/* Stop the timer */
del_timer_sync
(
&
timer
);
wdt_change
(
WDT_DISABLE
);
printk
(
OUR_NAME
": Watchdog timer is now disabled...
\n
"
);
printk
(
KERN_INFO
OUR_NAME
": Watchdog timer is now disabled...
\n
"
);
}
/*
...
...
@@ -203,7 +203,7 @@ static int fop_close(struct inode * inode, struct file * file)
if
(
wdt_expect_close
)
wdt_turnoff
();
else
printk
(
OUR_NAME
": device file closed unexpectedly. Will not stop the WDT!
\n
"
);
printk
(
KERN_INFO
OUR_NAME
": device file closed unexpectedly. Will not stop the WDT!
\n
"
);
clear_bit
(
0
,
&
wdt_is_open
);
return
0
;
...
...
@@ -262,7 +262,7 @@ static int wdt_notify_sys(struct notifier_block *this, unsigned long code, void
* reboot with no heartbeat
*/
wdt_change
(
WDT_ENABLE
);
printk
(
OUR_NAME
": Watchdog timer is now enabled with no heartbeat - should reboot in ~1 second.
\n
"
);
printk
(
KERN_INFO
OUR_NAME
": Watchdog timer is now enabled with no heartbeat - should reboot in ~1 second.
\n
"
);
}
return
NOTIFY_DONE
;
}
...
...
drivers/char/watchdog/cpu5wdt.c
0 → 100644
View file @
0efa7383
/*
* sma cpu5 watchdog driver
*
* Copyright (C) 2003 Heiko Ronsdorf <hero@ihg.uni-duisburg.de>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#include <linux/module.h>
#include <linux/types.h>
#include <linux/errno.h>
#include <linux/miscdevice.h>
#include <linux/fs.h>
#include <linux/init.h>
#include <linux/ioport.h>
#include <linux/timer.h>
#include <asm/io.h>
#include <asm/uaccess.h>
#include <linux/watchdog.h>
/* adjustable parameters */
static
int
verbose
=
0
;
static
int
port
=
0x91
;
static
volatile
int
ticks
=
10000
;
#define PFX "cpu5wdt: "
#define CPU5WDT_EXTENT 0x0A
#define CPU5WDT_STATUS_REG 0x00
#define CPU5WDT_TIME_A_REG 0x02
#define CPU5WDT_TIME_B_REG 0x03
#define CPU5WDT_MODE_REG 0x04
#define CPU5WDT_TRIGGER_REG 0x07
#define CPU5WDT_ENABLE_REG 0x08
#define CPU5WDT_RESET_REG 0x09
#define CPU5WDT_INTERVAL (HZ/10+1)
/* some device data */
static
struct
{
struct
semaphore
stop
;
volatile
int
running
;
struct
timer_list
timer
;
volatile
int
queue
;
int
default_ticks
;
int
min_ticks
;
unsigned
long
inuse
;
}
cpu5wdt_device
;
/* generic helper functions */
static
void
cpu5wdt_trigger
(
unsigned
long
unused
)
{
if
(
verbose
>
2
)
printk
(
KERN_DEBUG
PFX
"trigger at %i ticks
\n
"
,
ticks
);
if
(
cpu5wdt_device
.
running
)
ticks
--
;
/* keep watchdog alive */
outb
(
1
,
port
+
CPU5WDT_TRIGGER_REG
);
/* requeue?? */
if
(
cpu5wdt_device
.
queue
&&
ticks
)
{
cpu5wdt_device
.
timer
.
expires
=
jiffies
+
CPU5WDT_INTERVAL
;
add_timer
(
&
cpu5wdt_device
.
timer
);
}
else
{
/* ticks doesn't matter anyway */
up
(
&
cpu5wdt_device
.
stop
);
}
}
static
void
cpu5wdt_reset
(
void
)
{
if
(
ticks
<
cpu5wdt_device
.
min_ticks
)
cpu5wdt_device
.
min_ticks
=
ticks
;
ticks
=
cpu5wdt_device
.
default_ticks
;
if
(
verbose
)
printk
(
KERN_DEBUG
PFX
"reset (%i ticks)
\n
"
,
(
int
)
ticks
);
}
static
void
cpu5wdt_start
(
void
)
{
if
(
!
cpu5wdt_device
.
queue
)
{
cpu5wdt_device
.
queue
=
1
;
outb
(
0
,
port
+
CPU5WDT_TIME_A_REG
);
outb
(
0
,
port
+
CPU5WDT_TIME_B_REG
);
outb
(
1
,
port
+
CPU5WDT_MODE_REG
);
outb
(
0
,
port
+
CPU5WDT_RESET_REG
);
outb
(
0
,
port
+
CPU5WDT_ENABLE_REG
);
cpu5wdt_device
.
timer
.
expires
=
jiffies
+
CPU5WDT_INTERVAL
;
add_timer
(
&
cpu5wdt_device
.
timer
);
}
/* if process dies, counter is not decremented */
cpu5wdt_device
.
running
++
;
}
static
int
cpu5wdt_stop
(
void
)
{
if
(
cpu5wdt_device
.
running
)
cpu5wdt_device
.
running
=
0
;
ticks
=
cpu5wdt_device
.
default_ticks
;
if
(
verbose
)
printk
(
KERN_CRIT
PFX
"stop not possible
\n
"
);
return
-
EIO
;
}
/* filesystem operations */
static
int
cpu5wdt_open
(
struct
inode
*
inode
,
struct
file
*
file
)
{
switch
(
minor
(
inode
->
i_rdev
))
{
case
WATCHDOG_MINOR
:
if
(
test_and_set_bit
(
0
,
&
cpu5wdt_device
.
inuse
)
)
return
-
EBUSY
;
break
;
default:
return
-
ENODEV
;
}
return
0
;
}
static
int
cpu5wdt_release
(
struct
inode
*
inode
,
struct
file
*
file
)
{
if
(
minor
(
inode
->
i_rdev
)
==
WATCHDOG_MINOR
)
{
clear_bit
(
0
,
&
cpu5wdt_device
.
inuse
);
}
return
0
;
}
static
int
cpu5wdt_ioctl
(
struct
inode
*
inode
,
struct
file
*
file
,
unsigned
int
cmd
,
unsigned
long
arg
)
{
unsigned
int
value
;
static
struct
watchdog_info
ident
=
{
.
options
=
WDIOF_CARDRESET
,
.
identity
=
"CPU5 WDT"
};
switch
(
cmd
)
{
case
WDIOC_KEEPALIVE
:
cpu5wdt_reset
();
break
;
case
WDIOC_GETSTATUS
:
value
=
inb
(
port
+
CPU5WDT_STATUS_REG
);
value
=
(
value
>>
2
)
&
1
;
if
(
copy_to_user
((
int
*
)
arg
,
(
int
*
)
&
value
,
sizeof
(
int
))
)
return
-
EFAULT
;
break
;
case
WDIOC_GETSUPPORT
:
if
(
copy_to_user
((
struct
watchdog_info
*
)
arg
,
&
ident
,
sizeof
(
ident
))
)
return
-
EFAULT
;
break
;
case
WDIOC_SETOPTIONS
:
if
(
copy_from_user
(
&
value
,
(
int
*
)
arg
,
sizeof
(
int
))
)
return
-
EFAULT
;
switch
(
value
)
{
case
WDIOS_ENABLECARD
:
cpu5wdt_start
();
break
;
case
WDIOS_DISABLECARD
:
return
cpu5wdt_stop
();
default:
return
-
EINVAL
;
}
break
;
default:
return
-
EINVAL
;
}
return
0
;
}
static
ssize_t
cpu5wdt_write
(
struct
file
*
file
,
const
char
*
buf
,
size_t
count
,
loff_t
*
ppos
)
{
if
(
!
count
)
return
-
EIO
;
cpu5wdt_reset
();
return
count
;
}
static
struct
file_operations
cpu5wdt_fops
=
{
.
owner
=
THIS_MODULE
,
.
ioctl
=
cpu5wdt_ioctl
,
.
open
=
cpu5wdt_open
,
.
write
=
cpu5wdt_write
,
.
release
=
cpu5wdt_release
,
};
static
struct
miscdevice
cpu5wdt_misc
=
{
.
minor
=
WATCHDOG_MINOR
,
.
name
=
"watchdog"
,
.
fops
=
&
cpu5wdt_fops
};
/* init/exit function */
static
int
__devinit
cpu5wdt_init
(
void
)
{
unsigned
int
val
;
int
err
;
if
(
verbose
)
printk
(
KERN_DEBUG
PFX
"port=0x%x, verbose=%i
\n
"
,
port
,
verbose
);
if
(
(
err
=
misc_register
(
&
cpu5wdt_misc
))
<
0
)
{
printk
(
KERN_ERR
PFX
"misc_register failed
\n
"
);
goto
no_misc
;
}
if
(
!
request_region
(
port
,
CPU5WDT_EXTENT
,
PFX
)
)
{
printk
(
KERN_ERR
PFX
"request_region failed
\n
"
);
err
=
-
EBUSY
;
goto
no_port
;
}
/* watchdog reboot? */
val
=
inb
(
port
+
CPU5WDT_STATUS_REG
);
val
=
(
val
>>
2
)
&
1
;
if
(
!
val
)
printk
(
KERN_INFO
PFX
"sorry, was my fault
\n
"
);
init_MUTEX_LOCKED
(
&
cpu5wdt_device
.
stop
);
cpu5wdt_device
.
queue
=
0
;
cpu5wdt_device
.
min_ticks
=
ticks
;
clear_bit
(
0
,
&
cpu5wdt_device
.
inuse
);
init_timer
(
&
cpu5wdt_device
.
timer
);
cpu5wdt_device
.
timer
.
function
=
cpu5wdt_trigger
;
cpu5wdt_device
.
timer
.
data
=
0
;
cpu5wdt_device
.
default_ticks
=
ticks
;
printk
(
KERN_INFO
PFX
"init success
\n
"
);
return
0
;
no_port:
misc_deregister
(
&
cpu5wdt_misc
);
no_misc:
return
err
;
}
static
int
__devinit
cpu5wdt_init_module
(
void
)
{
return
cpu5wdt_init
();
}
static
void
__devexit
cpu5wdt_exit
(
void
)
{
if
(
cpu5wdt_device
.
queue
)
{
cpu5wdt_device
.
queue
=
0
;
down
(
&
cpu5wdt_device
.
stop
);
}
misc_deregister
(
&
cpu5wdt_misc
);
release_region
(
port
,
CPU5WDT_EXTENT
);
}
static
void
__devexit
cpu5wdt_exit_module
(
void
)
{
cpu5wdt_exit
();
}
/* module entry points */
module_init
(
cpu5wdt_init_module
);
module_exit
(
cpu5wdt_exit_module
);
MODULE_AUTHOR
(
"Heiko Ronsdorf <hero@ihg.uni-duisburg.de>"
);
MODULE_DESCRIPTION
(
"sma cpu5 watchdog driver"
);
MODULE_SUPPORTED_DEVICE
(
"sma cpu5 watchdog"
);
MODULE_LICENSE
(
"GPL"
);
MODULE_PARM
(
port
,
"i"
);
MODULE_PARM_DESC
(
port
,
"base address of watchdog card, default is 0x91"
);
MODULE_PARM
(
verbose
,
"i"
);
MODULE_PARM_DESC
(
verbose
,
"be verbose, default is 0 (no)"
);
MODULE_PARM
(
ticks
,
"i"
);
MODULE_PARM_DESC
(
ticks
,
"count down ticks, default is 10000"
);
drivers/char/watchdog/machzwd.c
View file @
0efa7383
...
...
@@ -453,9 +453,9 @@ static struct file_operations zf_fops = {
};
static
struct
miscdevice
zf_miscdev
=
{
WATCHDOG_MINOR
,
"watchdog"
,
&
zf_fops
.
minor
=
WATCHDOG_MINOR
,
.
name
=
"watchdog"
,
.
fops
=
&
zf_fops
};
...
...
@@ -464,9 +464,9 @@ static struct miscdevice zf_miscdev = {
* turn the timebomb registers off.
*/
static
struct
notifier_block
zf_notifier
=
{
zf_notify_sys
,
NULL
,
0
.
notifier_call
=
zf_notify_sys
,
.
next
=
NULL
,
.
priority
=
0
};
static
void
__init
zf_show_action
(
int
act
)
...
...
drivers/char/watchdog/pcwd.c
View file @
0efa7383
...
...
@@ -56,6 +56,7 @@
#include <linux/watchdog.h>
#include <linux/init.h>
#include <linux/spinlock.h>
#include <linux/reboot.h>
#include <asm/uaccess.h>
#include <asm/io.h>
...
...
@@ -197,28 +198,30 @@ void pcwd_showprevstate(void)
if
(
revision
==
PCWD_REVISION_A
)
{
if
(
card_status
&
WD_WDRST
)
printk
(
"pcwd: Previous reboot was caused by the card.
\n
"
);
printk
(
KERN_INFO
"pcwd: Previous reboot was caused by the card.
\n
"
);
if
(
card_status
&
WD_T110
)
{
printk
(
"pcwd: Card senses a CPU Overheat. Panicking!
\n
"
);
panic
(
"pcwd: CPU Overheat.
\n
"
);
printk
(
KERN_EMERG
"pcwd: Card senses a CPU Overheat. Panicking!
\n
"
);
printk
(
KERN_EMERG
"pcwd: CPU Overheat.
\n
"
);
machine_power_off
();
}
if
((
!
(
card_status
&
WD_WDRST
))
&&
(
!
(
card_status
&
WD_T110
)))
printk
(
"pcwd: Cold boot sense.
\n
"
);
printk
(
KERN_INFO
"pcwd: Cold boot sense.
\n
"
);
}
else
{
if
(
card_status
&
0x01
)
printk
(
"pcwd: Previous reboot was caused by the card.
\n
"
);
printk
(
KERN_INFO
"pcwd: Previous reboot was caused by the card.
\n
"
);
if
(
card_status
&
0x04
)
{
printk
(
"pcwd: Card senses a CPU Overheat. Panicking!
\n
"
);
panic
(
"pcwd: CPU Overheat.
\n
"
);
printk
(
KERN_EMERG
"pcwd: Card senses a CPU Overheat. Panicking!
\n
"
);
printk
(
KERN_EMERG
"pcwd: CPU Overheat.
\n
"
);
machine_power_off
();
}
if
((
!
(
card_status
&
0x01
))
&&
(
!
(
card_status
&
0x04
)))
printk
(
"pcwd: Cold boot sense.
\n
"
);
printk
(
KERN_INFO
"pcwd: Cold boot sense.
\n
"
);
}
}
...
...
@@ -275,8 +278,10 @@ static int pcwd_ioctl(struct inode *inode, struct file *file,
{
rv
|=
WDIOF_OVERHEAT
;
if
(
temp_panic
)
panic
(
"pcwd: Temperature overheat trip!
\n
"
);
if
(
temp_panic
)
{
printk
(
KERN_INFO
"pcwd: Temperature overheat trip!
\n
"
);
machine_power_off
();
}
}
}
else
...
...
@@ -288,8 +293,10 @@ static int pcwd_ioctl(struct inode *inode, struct file *file,
{
rv
|=
WDIOF_OVERHEAT
;
if
(
temp_panic
)
panic
(
"pcwd: Temperature overheat trip!
\n
"
);
if
(
temp_panic
)
{
printk
(
KERN_INFO
"pcwd: Temperature overheat trip!
\n
"
);
machine_power_off
();
}
}
}
...
...
@@ -350,7 +357,7 @@ static int pcwd_ioctl(struct inode *inode, struct file *file,
spin_unlock
(
&
io_lock
);
if
((
cdat
&
0x10
)
==
0
)
{
printk
(
"pcwd: Could not disable card.
\n
"
);
printk
(
KERN_INFO
"pcwd: Could not disable card.
\n
"
);
return
-
EIO
;
}
...
...
@@ -365,7 +372,7 @@ static int pcwd_ioctl(struct inode *inode, struct file *file,
spin_unlock
(
&
io_lock
);
if
(
cdat
&
0x10
)
{
printk
(
"pcwd: Could not enable card.
\n
"
);
printk
(
KERN_INFO
"pcwd: Could not enable card.
\n
"
);
return
-
EIO
;
}
return
0
;
...
...
@@ -592,7 +599,7 @@ static int __init pcwatchdog_init(void)
revision
=
PCWD_REVISION_A
;
printk
(
"pcwd: v%s Ken Hollis (kenji@bitgate.com)
\n
"
,
WD_VER
);
printk
(
KERN_INFO
"pcwd: v%s Ken Hollis (kenji@bitgate.com)
\n
"
,
WD_VER
);
/* Initial variables */
supports_temp
=
0
;
...
...
@@ -611,7 +618,7 @@ static int __init pcwatchdog_init(void)
}
if
(
!
found
)
{
printk
(
"pcwd: No card detected, or port not available.
\n
"
);
printk
(
KERN_INFO
"pcwd: No card detected, or port not available.
\n
"
);
return
(
-
EIO
);
}
#endif
...
...
@@ -624,9 +631,9 @@ static int __init pcwatchdog_init(void)
revision
=
get_revision
();
if
(
revision
==
PCWD_REVISION_A
)
printk
(
"pcwd: PC Watchdog (REV.A) detected at port 0x%03x
\n
"
,
current_readport
);
printk
(
KERN_INFO
"pcwd: PC Watchdog (REV.A) detected at port 0x%03x
\n
"
,
current_readport
);
else
if
(
revision
==
PCWD_REVISION_C
)
printk
(
"pcwd: PC Watchdog (REV.C) detected at port 0x%03x (Firmware version: %s)
\n
"
,
printk
(
KERN_INFO
"pcwd: PC Watchdog (REV.C) detected at port 0x%03x (Firmware version: %s)
\n
"
,
current_readport
,
get_firmware
());
else
{
/* Should NEVER happen, unless get_revision() fails. */
...
...
@@ -635,7 +642,7 @@ static int __init pcwatchdog_init(void)
}
if
(
supports_temp
)
printk
(
"pcwd: Temperature Option Detected.
\n
"
);
printk
(
KERN_INFO
"pcwd: Temperature Option Detected.
\n
"
);
debug_off
();
...
...
drivers/char/watchdog/sbc60xxwdt.c
View file @
0efa7383
...
...
@@ -267,9 +267,9 @@ static struct file_operations wdt_fops = {
};
static
struct
miscdevice
wdt_miscdev
=
{
WATCHDOG_MINOR
,
"watchdog"
,
&
wdt_fops
.
minor
=
WATCHDOG_MINOR
,
.
name
=
"watchdog"
,
.
fops
=
&
wdt_fops
};
/*
...
...
@@ -291,9 +291,9 @@ static int wdt_notify_sys(struct notifier_block *this, unsigned long code,
static
struct
notifier_block
wdt_notifier
=
{
wdt_notify_sys
,
0
,
0
.
notifier_call
=
wdt_notify_sys
,
.
next
=
NULL
,
.
priority
=
0
};
static
void
__exit
sbc60xxwdt_unload
(
void
)
...
...
drivers/char/watchdog/sc1200wdt.c
View file @
0efa7383
...
...
@@ -297,18 +297,18 @@ static struct notifier_block sc1200wdt_notifier =
static
struct
file_operations
sc1200wdt_fops
=
{
owner:
THIS_MODULE
,
write:
sc1200wdt_write
,
ioctl:
sc1200wdt_ioctl
,
open:
sc1200wdt_open
,
release:
sc1200wdt_release
.
owner
=
THIS_MODULE
,
.
write
=
sc1200wdt_write
,
.
ioctl
=
sc1200wdt_ioctl
,
.
open
=
sc1200wdt_open
,
.
release
=
sc1200wdt_release
};
static
struct
miscdevice
sc1200wdt_miscdev
=
{
minor:
WATCHDOG_MINOR
,
name:
"watchdog"
,
fops:
&
sc1200wdt_fops
,
.
minor
=
WATCHDOG_MINOR
,
.
name
=
"watchdog"
,
.
fops
=
&
sc1200wdt_fops
,
};
...
...
@@ -397,10 +397,12 @@ static int __init sc1200wdt_init(void)
goto
out_clean
;
}
#if defined CONFIG_PNP
/* now that the user has specified an IO port and we haven't detected
* any devices, disable pnp support */
isapnp
=
0
;
pnp_unregister_driver
(
&
scl200wdt_pnp_driver
);
#endif
if
(
!
request_region
(
io
,
io_len
,
SC1200_MODULE_NAME
))
{
printk
(
KERN_ERR
PFX
"Unable to register IO port %#x
\n
"
,
io
);
...
...
@@ -484,5 +486,3 @@ module_exit(sc1200wdt_exit);
MODULE_AUTHOR
(
"Zwane Mwaikambo <zwane@commfireservices.com>"
);
MODULE_DESCRIPTION
(
"Driver for National Semiconductor PC87307/PC97307 watchdog component"
);
MODULE_LICENSE
(
"GPL"
);
EXPORT_NO_SYMBOLS
;
drivers/char/watchdog/sc520_wdt.c
View file @
0efa7383
...
...
@@ -281,18 +281,18 @@ static int fop_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
}
static
struct
file_operations
wdt_fops
=
{
owner:
THIS_MODULE
,
llseek:
fop_llseek
,
write:
fop_write
,
open:
fop_open
,
release:
fop_close
,
ioctl:
fop_ioctl
.
owner
=
THIS_MODULE
,
.
llseek
=
fop_llseek
,
.
write
=
fop_write
,
.
open
=
fop_open
,
.
release
=
fop_close
,
.
ioctl
=
fop_ioctl
};
static
struct
miscdevice
wdt_miscdev
=
{
WATCHDOG_MINOR
,
"watchdog"
,
&
wdt_fops
.
minor
=
WATCHDOG_MINOR
,
.
name
=
"watchdog"
,
.
fops
=
&
wdt_fops
};
/*
...
...
@@ -314,9 +314,9 @@ static int wdt_notify_sys(struct notifier_block *this, unsigned long code,
static
struct
notifier_block
wdt_notifier
=
{
wdt_notify_sys
,
0
,
0
.
notifier_call
=
wdt_notify_sys
,
.
next
=
NULL
,
.
priority
=
0
};
static
void
__exit
sc520_wdt_unload
(
void
)
...
...
drivers/char/watchdog/w83877f_wdt.c
View file @
0efa7383
...
...
@@ -275,9 +275,9 @@ static struct file_operations wdt_fops = {
};
static
struct
miscdevice
wdt_miscdev
=
{
WATCHDOG_MINOR
,
"watchdog"
,
&
wdt_fops
.
minor
=
WATCHDOG_MINOR
,
.
name
=
"watchdog"
,
.
fops
=
&
wdt_fops
};
/*
...
...
@@ -299,9 +299,9 @@ static int wdt_notify_sys(struct notifier_block *this, unsigned long code,
static
struct
notifier_block
wdt_notifier
=
{
wdt_notify_sys
,
0
,
0
.
notifier_call
=
wdt_notify_sys
,
.
next
=
NULL
,
.
priority
=
0
};
static
void
__exit
w83877f_wdt_unload
(
void
)
...
...
drivers/char/watchdog/wafer5823wdt.c
View file @
0efa7383
...
...
@@ -198,17 +198,17 @@ static int wafwdt_notify_sys(struct notifier_block *this, unsigned long code, vo
*/
static
struct
file_operations
wafwdt_fops
=
{
owner:
THIS_MODULE
,
write:
wafwdt_write
,
ioctl:
wafwdt_ioctl
,
open:
wafwdt_open
,
release:
wafwdt_close
,
.
owner
=
THIS_MODULE
,
.
write
=
wafwdt_write
,
.
ioctl
=
wafwdt_ioctl
,
.
open
=
wafwdt_open
,
.
release
=
wafwdt_close
,
};
static
struct
miscdevice
wafwdt_miscdev
=
{
WATCHDOG_MINOR
,
"watchdog"
,
&
wafwdt_fops
.
minor
=
WATCHDOG_MINOR
,
.
name
=
"watchdog"
,
.
fops
=
&
wafwdt_fops
};
/*
...
...
@@ -217,9 +217,9 @@ static struct miscdevice wafwdt_miscdev = {
*/
static
struct
notifier_block
wafwdt_notifier
=
{
wafwdt_notify_sys
,
NULL
,
0
.
notifier_call
=
wafwdt_notify_sys
,
.
next
=
NULL
,
.
priority
=
0
};
static
int
__init
wafwdt_init
(
void
)
...
...
drivers/char/watchdog/wdt.c
View file @
0efa7383
...
...
@@ -465,17 +465,17 @@ static struct file_operations wdt_fops = {
static
struct
miscdevice
wdt_miscdev
=
{
WATCHDOG_MINOR
,
"watchdog"
,
&
wdt_fops
.
minor
=
WATCHDOG_MINOR
,
.
name
=
"watchdog"
,
.
fops
=
&
wdt_fops
};
#ifdef CONFIG_WDT_501
static
struct
miscdevice
temp_miscdev
=
{
TEMP_MINOR
,
"temperature"
,
&
wdt_fops
.
minor
=
TEMP_MINOR
,
.
name
=
"temperature"
,
.
fops
=
&
wdt_fops
};
#endif
...
...
@@ -486,9 +486,9 @@ static struct miscdevice temp_miscdev=
static
struct
notifier_block
wdt_notifier
=
{
wdt_notify_sys
,
NULL
,
0
.
notifier_call
=
wdt_notify_sys
,
.
next
=
NULL
,
.
priority
=
0
};
/**
...
...
drivers/char/watchdog/wdt977.c
View file @
0efa7383
...
...
@@ -258,7 +258,7 @@ static int wdt977_ioctl(struct inode *inode, struct file *file,
unsigned
int
cmd
,
unsigned
long
arg
)
{
static
struct
watchdog_info
ident
=
{
identity
:
"Winbond 83977"
.
identity
=
"Winbond 83977"
};
int
temp
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment