|
@@ -1,7 +1,7 @@
|
|
|
/*
|
|
|
* intel TCO Watchdog Driver
|
|
|
*
|
|
|
- * (c) Copyright 2006-2010 Wim Van Sebroeck <wim@iguana.be>.
|
|
|
+ * (c) Copyright 2006-2011 Wim Van Sebroeck <wim@iguana.be>.
|
|
|
*
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
* modify it under the terms of the GNU General Public License
|
|
@@ -44,7 +44,7 @@
|
|
|
|
|
|
/* Module and version information */
|
|
|
#define DRV_NAME "iTCO_wdt"
|
|
|
-#define DRV_VERSION "1.06"
|
|
|
+#define DRV_VERSION "1.07"
|
|
|
#define PFX DRV_NAME ": "
|
|
|
|
|
|
/* Includes */
|
|
@@ -384,6 +384,11 @@ MODULE_PARM_DESC(nowayout,
|
|
|
"Watchdog cannot be stopped once started (default="
|
|
|
__MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
|
|
|
|
|
|
+static int turn_SMI_watchdog_clear_off = 0;
|
|
|
+module_param(turn_SMI_watchdog_clear_off, int, 0);
|
|
|
+MODULE_PARM_DESC(turn_SMI_watchdog_clear_off,
|
|
|
+ "Turn off SMI clearing watchdog (default=0)");
|
|
|
+
|
|
|
/*
|
|
|
* Some TCO specific functions
|
|
|
*/
|
|
@@ -808,10 +813,12 @@ static int __devinit iTCO_wdt_init(struct pci_dev *pdev,
|
|
|
ret = -EIO;
|
|
|
goto out_unmap;
|
|
|
}
|
|
|
- /* Bit 13: TCO_EN -> 0 = Disables TCO logic generating an SMI# */
|
|
|
- val32 = inl(SMI_EN);
|
|
|
- val32 &= 0xffffdfff; /* Turn off SMI clearing watchdog */
|
|
|
- outl(val32, SMI_EN);
|
|
|
+ if (turn_SMI_watchdog_clear_off) {
|
|
|
+ /* Bit 13: TCO_EN -> 0 = Disables TCO logic generating an SMI# */
|
|
|
+ val32 = inl(SMI_EN);
|
|
|
+ val32 &= 0xffffdfff; /* Turn off SMI clearing watchdog */
|
|
|
+ outl(val32, SMI_EN);
|
|
|
+ }
|
|
|
|
|
|
/* The TCO I/O registers reside in a 32-byte range pointed to
|
|
|
by the TCOBASE value */
|