Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 48136
b: refs/heads/master
c: f3dc073
h: refs/heads/master
v: v3
  • Loading branch information
Wim Van Sebroeck committed Jan 9, 2007
1 parent 4e87a4c commit 11682cd
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f9146f26da9a4336e02e35bf20222dcb2ee62c7f
refs/heads/master: f3dc07330c3e43a8d365eaa74693e320e6ed79d9
24 changes: 20 additions & 4 deletions trunk/drivers/char/watchdog/pcwd.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@
#include <asm/io.h> /* For inb/outb/... */

/* Module and version information */
#define WATCHDOG_VERSION "1.17"
#define WATCHDOG_DATE "12 Feb 2006"
#define WATCHDOG_VERSION "1.18"
#define WATCHDOG_DATE "06 Jan 2007"
#define WATCHDOG_DRIVER_NAME "ISA-PC Watchdog"
#define WATCHDOG_NAME "pcwd"
#define PFX WATCHDOG_NAME ": "
Expand Down Expand Up @@ -132,6 +132,18 @@
#define CMD_ISA_DELAY_TIME_8SECS 0x0C
#define CMD_ISA_RESET_RELAYS 0x0D

/* Watchdog's Dip Switch heartbeat values */
static const int heartbeat_tbl [] = {
20, /* OFF-OFF-OFF = 20 Sec */
40, /* OFF-OFF-ON = 40 Sec */
60, /* OFF-ON-OFF = 1 Min */
300, /* OFF-ON-ON = 5 Min */
600, /* ON-OFF-OFF = 10 Min */
1800, /* ON-OFF-ON = 30 Min */
3600, /* ON-ON-OFF = 1 Hour */
7200, /* ON-ON-ON = 2 hour */
};

/*
* We are using an kernel timer to do the pinging of the watchdog
* every ~500ms. We try to set the internal heartbeat of the
Expand Down Expand Up @@ -167,10 +179,10 @@ static int debug = QUIET;
module_param(debug, int, 0);
MODULE_PARM_DESC(debug, "Debug level: 0=Quiet, 1=Verbose, 2=Debug (default=0)");

#define WATCHDOG_HEARTBEAT 60 /* 60 sec default heartbeat */
#define WATCHDOG_HEARTBEAT 0 /* default heartbeat = delay-time from dip-switches */
static int heartbeat = WATCHDOG_HEARTBEAT;
module_param(heartbeat, int, 0);
MODULE_PARM_DESC(heartbeat, "Watchdog heartbeat in seconds. (2<=heartbeat<=7200, default=" __MODULE_STRING(WATCHDOG_HEARTBEAT) ")");
MODULE_PARM_DESC(heartbeat, "Watchdog heartbeat in seconds. (2<=heartbeat<=7200 or 0=delay-time from dip-switches, default=" __MODULE_STRING(WATCHDOG_HEARTBEAT) ")");

static int nowayout = WATCHDOG_NOWAYOUT;
module_param(nowayout, int, 0);
Expand Down Expand Up @@ -844,6 +856,10 @@ static int __devinit pcwatchdog_init(int base_addr)
/* Show info about the card itself */
pcwd_show_card_info();

/* If heartbeat = 0 then we use the heartbeat from the dip-switches */
if (heartbeat == 0)
heartbeat = heartbeat_tbl[(pcwd_get_option_switches() & 0x07)];

/* Check that the heartbeat value is within it's range ; if not reset to the default */
if (pcwd_set_heartbeat(heartbeat)) {
pcwd_set_heartbeat(WATCHDOG_HEARTBEAT);
Expand Down

0 comments on commit 11682cd

Please sign in to comment.