mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 05:34:13 +08:00
watchdog: iTCO_wdt.c - problems with newer hardware due to SMI clearing (part 2)
Redhat Bugzilla: Bug 727875 - TCO_EN bit is disabled by TCO driver The previous patch breaks reset watchdog behaviour on the older hardware. It is therefor better to make sure that the behaviour for older hardware (<=ICH5 or 6300ESB) is preserved and that the behaviour for newer hardware is changed. We therefor use the iTCO_version to see if we need the clearing of the SMI_TCO_EN bit in the SMI_EN register. So the new behaviour becomes: turn_SMI_watchdog_clear_off=0 -> Do not turn off SMI clearing watchdog. turn_SMI_watchdog_clear_off=1 -> Turn off SMI clearing watchdog when iTCO_version=1 (ICHO till ICH5 + 6300ESB only) turn_SMI_watchdog_clear_off=2 -> Turn off SMI clearing watchdog. Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
This commit is contained in:
parent
e67d668e14
commit
0d098587ce
@ -384,10 +384,10 @@ MODULE_PARM_DESC(nowayout,
|
||||
"Watchdog cannot be stopped once started (default="
|
||||
__MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
|
||||
|
||||
static int turn_SMI_watchdog_clear_off = 0;
|
||||
static int turn_SMI_watchdog_clear_off = 1;
|
||||
module_param(turn_SMI_watchdog_clear_off, int, 0);
|
||||
MODULE_PARM_DESC(turn_SMI_watchdog_clear_off,
|
||||
"Turn off SMI clearing watchdog (default=0)");
|
||||
"Turn off SMI clearing watchdog (depends on TCO-version)(default=1)");
|
||||
|
||||
/*
|
||||
* Some TCO specific functions
|
||||
@ -813,7 +813,7 @@ static int __devinit iTCO_wdt_init(struct pci_dev *pdev,
|
||||
ret = -EIO;
|
||||
goto out_unmap;
|
||||
}
|
||||
if (turn_SMI_watchdog_clear_off) {
|
||||
if (turn_SMI_watchdog_clear_off >= iTCO_wdt_private.iTCO_version) {
|
||||
/* Bit 13: TCO_EN -> 0 = Disables TCO logic generating an SMI# */
|
||||
val32 = inl(SMI_EN);
|
||||
val32 &= 0xffffdfff; /* Turn off SMI clearing watchdog */
|
||||
|
Loading…
Reference in New Issue
Block a user