* [PATCH] it87_wdt: Add support for IT8720F watchdog
@ 2010-09-14 0:47 Ondrej Zajicek
0 siblings, 0 replies; only message in thread
From: Ondrej Zajicek @ 2010-09-14 0:47 UTC (permalink / raw)
To: olivers137, wim, linux-kernel
This simple patch adds support for a watchdog in IT8720F Super IO chip
to it87_wdt driver.
Signed-off-by: Ondrej Zajicek <santiago@crfreenet.org>
---
diff -uprN a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
--- a/drivers/watchdog/Kconfig 2010-08-27 01:47:12.000000000 +0200
+++ b/drivers/watchdog/Kconfig 2010-09-13 19:03:43.000000000 +0200
@@ -547,10 +547,11 @@ config IT87_WDT
tristate "IT87 Watchdog Timer"
depends on X86 && EXPERIMENTAL
---help---
- This is the driver for the hardware watchdog on the ITE IT8716,
- IT8718, IT8726, IT8712(Version J,K) Super I/O chips. This watchdog
- simply watches your kernel to make sure it doesn't freeze, and if
- it does, it reboots your computer after a certain amount of time.
+ This is the driver for the hardware watchdog on the ITE
+ IT8716, IT8718, IT8720, IT8726, IT8712(Version J,K) Super I/O
+ chips. This watchdog simply watches your kernel to make sure
+ it doesn't freeze, and if it does, it reboots your computer
+ after a certain amount of time.
To compile this driver as a module, choose M here: the module will
be called it87_wdt.
diff -uprN a/drivers/watchdog/it87_wdt.c b/drivers/watchdog/it87_wdt.c
--- a/drivers/watchdog/it87_wdt.c 2010-08-27 01:47:12.000000000 +0200
+++ b/drivers/watchdog/it87_wdt.c 2010-09-13 22:31:48.000000000 +0200
@@ -12,7 +12,7 @@
* http://www.ite.com.tw/
*
* Support of the watchdog timers, which are available on
- * IT8716, IT8718, IT8726 and IT8712 (J,K version).
+ * IT8716, IT8718, IT8720, IT8726 and IT8712 (J,K version).
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -45,7 +45,7 @@
#include <asm/system.h>
-#define WATCHDOG_VERSION "1.12"
+#define WATCHDOG_VERSION "1.13"
#define WATCHDOG_NAME "IT87 WDT"
#define PFX WATCHDOG_NAME ": "
#define DRIVER_VERSION WATCHDOG_NAME " driver, v" WATCHDOG_VERSION "\n"
@@ -80,6 +80,7 @@
#define IT8712_ID 0x8712
#define IT8716_ID 0x8716
#define IT8718_ID 0x8718
+#define IT8720_ID 0x8720
#define IT8726_ID 0x8726 /* the data sheet suggest wrongly 0x8716 */
/* GPIO Configuration Registers LDN=0x07 */
@@ -92,7 +93,7 @@
#define WDT_CIRINT 0x80
#define WDT_MOUSEINT 0x40
#define WDT_KYBINT 0x20
-#define WDT_GAMEPORT 0x10 /* not it8718 */
+#define WDT_GAMEPORT 0x10 /* not in it8718, it8720 */
#define WDT_FORCE 0x02
#define WDT_ZERO 0x01
@@ -529,6 +530,7 @@ static struct notifier_block wdt_notifie
static int __init it87_wdt_init(void)
{
int rc = 0;
+ int try_gameport = !nogameport;
u16 chip_type;
u8 chip_rev;
unsigned long flags;
@@ -542,9 +544,12 @@ static int __init it87_wdt_init(void)
switch (chip_type) {
case IT8716_ID:
- case IT8718_ID:
case IT8726_ID:
break;
+ case IT8718_ID:
+ case IT8720_ID:
+ try_gameport = 0;
+ break;
case IT8712_ID:
if (chip_rev > 7)
break;
@@ -571,7 +576,7 @@ static int __init it87_wdt_init(void)
superio_outb(0x00, WDTCTRL);
/* First try to get Gameport support */
- if (chip_type != IT8718_ID && !nogameport) {
+ if (try_gameport) {
superio_select(GAMEPORT);
base = superio_inw(BASEREG);
if (!base) {
@@ -676,7 +681,7 @@ err_out_region:
spin_unlock_irqrestore(&spinlock, flags);
}
err_out:
- if (chip_type != IT8718_ID && !nogameport) {
+ if (try_gameport) {
spin_lock_irqsave(&spinlock, flags);
superio_enter();
superio_select(GAMEPORT);
--
Elen sila lumenn' omentielvo
Ondrej 'SanTiago' Zajicek (email: santiago@crfreenet.org)
OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net)
"To err is human -- to blame it on a computer is even more so."
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2010-09-14 0:39 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-09-14 0:47 [PATCH] it87_wdt: Add support for IT8720F watchdog Ondrej Zajicek
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.