diff options
Diffstat (limited to 'drivers/watchdog/iTCO_wdt.c')
-rw-r--r-- | drivers/watchdog/iTCO_wdt.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/drivers/watchdog/iTCO_wdt.c b/drivers/watchdog/iTCO_wdt.c index 751a591684da..ba6ad662635a 100644 --- a/drivers/watchdog/iTCO_wdt.c +++ b/drivers/watchdog/iTCO_wdt.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * intel TCO Watchdog Driver | 2 | * intel TCO Watchdog Driver |
3 | * | 3 | * |
4 | * (c) Copyright 2006-2010 Wim Van Sebroeck <wim@iguana.be>. | 4 | * (c) Copyright 2006-2011 Wim Van Sebroeck <wim@iguana.be>. |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or | 6 | * This program is free software; you can redistribute it and/or |
7 | * modify it under the terms of the GNU General Public License | 7 | * modify it under the terms of the GNU General Public License |
@@ -44,7 +44,7 @@ | |||
44 | 44 | ||
45 | /* Module and version information */ | 45 | /* Module and version information */ |
46 | #define DRV_NAME "iTCO_wdt" | 46 | #define DRV_NAME "iTCO_wdt" |
47 | #define DRV_VERSION "1.06" | 47 | #define DRV_VERSION "1.07" |
48 | #define PFX DRV_NAME ": " | 48 | #define PFX DRV_NAME ": " |
49 | 49 | ||
50 | /* Includes */ | 50 | /* Includes */ |
@@ -384,6 +384,11 @@ MODULE_PARM_DESC(nowayout, | |||
384 | "Watchdog cannot be stopped once started (default=" | 384 | "Watchdog cannot be stopped once started (default=" |
385 | __MODULE_STRING(WATCHDOG_NOWAYOUT) ")"); | 385 | __MODULE_STRING(WATCHDOG_NOWAYOUT) ")"); |
386 | 386 | ||
387 | static int turn_SMI_watchdog_clear_off = 0; | ||
388 | module_param(turn_SMI_watchdog_clear_off, int, 0); | ||
389 | MODULE_PARM_DESC(turn_SMI_watchdog_clear_off, | ||
390 | "Turn off SMI clearing watchdog (default=0)"); | ||
391 | |||
387 | /* | 392 | /* |
388 | * Some TCO specific functions | 393 | * Some TCO specific functions |
389 | */ | 394 | */ |
@@ -808,10 +813,12 @@ static int __devinit iTCO_wdt_init(struct pci_dev *pdev, | |||
808 | ret = -EIO; | 813 | ret = -EIO; |
809 | goto out_unmap; | 814 | goto out_unmap; |
810 | } | 815 | } |
811 | /* Bit 13: TCO_EN -> 0 = Disables TCO logic generating an SMI# */ | 816 | if (turn_SMI_watchdog_clear_off) { |
812 | val32 = inl(SMI_EN); | 817 | /* Bit 13: TCO_EN -> 0 = Disables TCO logic generating an SMI# */ |
813 | val32 &= 0xffffdfff; /* Turn off SMI clearing watchdog */ | 818 | val32 = inl(SMI_EN); |
814 | outl(val32, SMI_EN); | 819 | val32 &= 0xffffdfff; /* Turn off SMI clearing watchdog */ |
820 | outl(val32, SMI_EN); | ||
821 | } | ||
815 | 822 | ||
816 | /* The TCO I/O registers reside in a 32-byte range pointed to | 823 | /* The TCO I/O registers reside in a 32-byte range pointed to |
817 | by the TCOBASE value */ | 824 | by the TCOBASE value */ |