Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-watchdog
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 3 Aug 2011 06:48:47 +0000 (20:48 -1000)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 3 Aug 2011 06:48:47 +0000 (20:48 -1000)
* git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-watchdog:
  watchdog: Cleanup WATCHDOG_CORE help text
  watchdog: Fix POST failure on ASUS P5N32-E SLI and similar boards
  watchdog: shwdt: fix usage of mod_timer

drivers/watchdog/Kconfig
drivers/watchdog/nv_tco.c
drivers/watchdog/shwdt.c

index f441726ddf2bbf2a988981e32066806720fde5c3..86b0735e6aa0fd652ace4ba8546e0a49245590f2 100644 (file)
@@ -36,9 +36,6 @@ config WATCHDOG_CORE
          and gives them the /dev/watchdog interface (and later also the
          sysfs interface).
 
-         To compile this driver as a module, choose M here: the module will
-         be called watchdog.
-
 config WATCHDOG_NOWAYOUT
        bool "Disable watchdog shutdown on close"
        help
index afa78a54711e1f51097eb9425ebe3f4b8fa0b72a..809f41c30c4433dfb3e45b53835935608f95753e 100644 (file)
@@ -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 = {
index db84f2322d1ad1ef4d69f12ed2dd2936a03d4b16..a267dc078dafb777f6855a56aef73ae48c1228f5 100644 (file)
@@ -64,7 +64,7 @@
  * misses its deadline, the kernel timer will allow the WDT to overflow.
  */
 static int clock_division_ratio = WTCSR_CKS_4096;
-#define next_ping_period(cks)  msecs_to_jiffies(cks - 4)
+#define next_ping_period(cks)  (jiffies + msecs_to_jiffies(cks - 4))
 
 static const struct watchdog_info sh_wdt_info;
 static struct platform_device *sh_wdt_dev;