diff options
author | Mart Gerrits <mart1987@gmail.com> | 2011-07-30 16:59:12 +0200 |
---|---|---|
committer | Wim Van Sebroeck <wim@iguana.be> | 2011-08-02 08:22:54 +0000 |
commit | 6b01d30eef64456ad9e261d2173266a3244da8e1 (patch) | |
tree | 2b7c9974baf021e516ee09d9b74f215283515a5e /drivers/watchdog | |
parent | bea1906620ce72b63f83735c4cc2642b25ec54ae (diff) | |
download | kernel_goldelico_gta04-6b01d30eef64456ad9e261d2173266a3244da8e1.zip kernel_goldelico_gta04-6b01d30eef64456ad9e261d2173266a3244da8e1.tar.gz kernel_goldelico_gta04-6b01d30eef64456ad9e261d2173266a3244da8e1.tar.bz2 |
watchdog: Fix POST failure on ASUS P5N32-E SLI and similar boards
At present the module does not unset the NO_REBOOT bit upon shutdown, this
causes the BIOS to fail the POST once and reset. During the next boot it
displays the following error message:
***** Warning: System BOOT Fail *****
Your system last boot fail or POST interrupted.
Please enter setup to load default and reboot again.
Press F1 to continue, DEL to enter SETUP
With this patch the NO_REBOOT flag will be unset on shutdown and thus stop
this failure from occurring.
Tested on 'ASUS P5N32-E SLI with BIOS revision 1801' and
'ASUS P5N32-E SLI PLUS with BIOS revision 1502'.
Signed-off-by: Mart Gerrits <mart1987@gmail.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Diffstat (limited to 'drivers/watchdog')
-rw-r--r-- | drivers/watchdog/nv_tco.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/watchdog/nv_tco.c b/drivers/watchdog/nv_tco.c index afa78a5..809f41c 100644 --- a/drivers/watchdog/nv_tco.c +++ b/drivers/watchdog/nv_tco.c @@ -458,7 +458,15 @@ static int __devexit nv_tco_remove(struct platform_device *dev) static void nv_tco_shutdown(struct platform_device *dev) { + u32 val; + tco_timer_stop(); + + /* Some BIOSes fail the POST (once) if the NO_REBOOT flag is not + * unset during shutdown. */ + pci_read_config_dword(tco_pci, MCP51_SMBUS_SETUP_B, &val); + val &= ~MCP51_SMBUS_SETUP_B_TCO_REBOOT; + pci_write_config_dword(tco_pci, MCP51_SMBUS_SETUP_B, val); } static struct platform_driver nv_tco_driver = { |