···49 * More info available at http://www.berkprod.com/ or http://www.pcwatchdog.com/50 */5152-#include <linux/module.h>53-#include <linux/moduleparam.h>54-#include <linux/types.h>55-#include <linux/timer.h>56-#include <linux/jiffies.h>57-#include <linux/config.h>58-#include <linux/wait.h>59-#include <linux/slab.h>60-#include <linux/ioport.h>61-#include <linux/delay.h>62-#include <linux/fs.h>63-#include <linux/miscdevice.h>64-#include <linux/watchdog.h>65-#include <linux/notifier.h>66-#include <linux/init.h>67-#include <linux/spinlock.h>68-#include <linux/reboot.h>69#include <linux/sched.h> /* TASK_INTERRUPTIBLE, set_current_state() and friends */70-#include <asm/uaccess.h>71-#include <asm/io.h>72000073#define WD_VER "1.16 (06/12/2004)"74#define PFX "pcwd: "75···87#define PCWD_REVISION_C 28889/*90- * These are the defines that describe the control status bits for the91 * PC Watchdog card, revision A.92 */93#define WD_WDRST 0x01 /* Previously reset state */···97#define WD_SRLY2 0x80 /* Software external relay triggered */9899/*100- * These are the defines that describe the control status bits for the101 * PC Watchdog card, revision C.102 */103#define WD_REVC_WTRP 0x01 /* Watchdog Trip status */···109#define ISA_COMMAND_TIMEOUT 1000110111/* Watchdog's internal commands */112-#define CMD_ISA_IDLE 0x00113-#define CMD_ISA_VERSION_INTEGER 0x01114-#define CMD_ISA_VERSION_TENTH 0x02115-#define CMD_ISA_VERSION_HUNDRETH 0x03116-#define CMD_ISA_VERSION_MINOR 0x04117-#define CMD_ISA_SWITCH_SETTINGS 0x05118-#define CMD_ISA_DELAY_TIME_2SECS 0x0A119-#define CMD_ISA_DELAY_TIME_4SECS 0x0B120-#define CMD_ISA_DELAY_TIME_8SECS 0x0C121122/*123 * We are using an kernel timer to do the pinging of the watchdog···770 printk(KERN_INFO PFX "No previous trip detected - Cold boot or reset\n");771772 /* Check that the heartbeat value is within it's range ; if not reset to the default */773- if (pcwd_set_heartbeat(heartbeat)) {774- pcwd_set_heartbeat(WATCHDOG_HEARTBEAT);775- printk(KERN_INFO PFX "heartbeat value must be 2<=heartbeat<=7200, using %d\n",776- WATCHDOG_HEARTBEAT);777 }778779 ret = register_reboot_notifier(&pcwd_notifier);
···49 * More info available at http://www.berkprod.com/ or http://www.pcwatchdog.com/50 */5152+#include <linux/config.h> /* For CONFIG_WATCHDOG_NOWAYOUT/... */53+#include <linux/module.h> /* For module specific items */54+#include <linux/moduleparam.h> /* For new moduleparam's */55+#include <linux/types.h> /* For standard types (like size_t) */56+#include <linux/errno.h> /* For the -ENODEV/... values */57+#include <linux/kernel.h> /* For printk/panic/... */58+#include <linux/delay.h> /* For mdelay function */59+#include <linux/timer.h> /* For timer related operations */60+#include <linux/jiffies.h> /* For jiffies stuff */61+#include <linux/miscdevice.h> /* For MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR) */62+#include <linux/watchdog.h> /* For the watchdog specific items */63+#include <linux/notifier.h> /* For notifier support */64+#include <linux/reboot.h> /* For reboot_notifier stuff */65+#include <linux/init.h> /* For __init/__exit/... */66+#include <linux/fs.h> /* For file operations */67+#include <linux/ioport.h> /* For io-port access */68+#include <linux/spinlock.h> /* For spin_lock/spin_unlock/... */69#include <linux/sched.h> /* TASK_INTERRUPTIBLE, set_current_state() and friends */70+#include <linux/slab.h> /* For kmalloc */07172+#include <asm/uaccess.h> /* For copy_to_user/put_user/... */73+#include <asm/io.h> /* For inb/outb/... */74+75+/* Module and version information */76#define WD_VER "1.16 (06/12/2004)"77#define PFX "pcwd: "78···84#define PCWD_REVISION_C 28586/*87+ * These are the defines that describe the control status #1 bits for the88 * PC Watchdog card, revision A.89 */90#define WD_WDRST 0x01 /* Previously reset state */···94#define WD_SRLY2 0x80 /* Software external relay triggered */9596/*97+ * These are the defines that describe the control status #1 bits for the98 * PC Watchdog card, revision C.99 */100#define WD_REVC_WTRP 0x01 /* Watchdog Trip status */···106#define ISA_COMMAND_TIMEOUT 1000107108/* Watchdog's internal commands */109+#define CMD_ISA_IDLE 0x00110+#define CMD_ISA_VERSION_INTEGER 0x01111+#define CMD_ISA_VERSION_TENTH 0x02112+#define CMD_ISA_VERSION_HUNDRETH 0x03113+#define CMD_ISA_VERSION_MINOR 0x04114+#define CMD_ISA_SWITCH_SETTINGS 0x05115+#define CMD_ISA_DELAY_TIME_2SECS 0x0A116+#define CMD_ISA_DELAY_TIME_4SECS 0x0B117+#define CMD_ISA_DELAY_TIME_8SECS 0x0C118119/*120 * We are using an kernel timer to do the pinging of the watchdog···767 printk(KERN_INFO PFX "No previous trip detected - Cold boot or reset\n");768769 /* Check that the heartbeat value is within it's range ; if not reset to the default */770+ if (pcwd_set_heartbeat(heartbeat)) {771+ pcwd_set_heartbeat(WATCHDOG_HEARTBEAT);772+ printk(KERN_INFO PFX "heartbeat value must be 2<=heartbeat<=7200, using %d\n",773+ WATCHDOG_HEARTBEAT);774 }775776 ret = register_reboot_notifier(&pcwd_notifier);