diff options
author | Oliver Schuster <oliver.s@inbox.com> | 2008-04-01 17:06:21 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-01 11:31:05 -0700 |
commit | 0e45adb8f5371f3d20a6df21cd13ce32fbe9bf15 (patch) | |
tree | 15a603c06c3cf93aac29db83c3458f4f73dbda4b | |
parent | d5f1a21ca05cad212829460ee7900915128e3401 (diff) |
[WATCHDOG] Fix it8712f_wdt.c wrong byte order accessing WDT_TIMEOUT
This patch corrects an error in the driver it8712f_wdt. You cannot set
the 16-bit WDT_TIMEOUT access as a 16-bit outw, because the byte
ordering will be wrong. So just do the high 8 bits as a separate
access.
Signed-off-by: Oliver Schuster <olivers137@aol.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | drivers/watchdog/it8712f_wdt.c | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/drivers/watchdog/it8712f_wdt.c b/drivers/watchdog/it8712f_wdt.c index 1efcad3b6fca..ca90c5192596 100644 --- a/drivers/watchdog/it8712f_wdt.c +++ b/drivers/watchdog/it8712f_wdt.c @@ -111,15 +111,6 @@ superio_inw(int reg) return val; } -static void -superio_outw(int val, int reg) -{ - outb(reg++, REG); - outb((val >> 8) & 0xff, VAL); - outb(reg, REG); - outb(val & 0xff, VAL); -} - static inline void superio_select(int ldn) { @@ -170,9 +161,8 @@ it8712f_wdt_update_margin(void) superio_outb(config, WDT_CONFIG); if (revision >= 0x08) - superio_outw(units, WDT_TIMEOUT); - else - superio_outb(units, WDT_TIMEOUT); + superio_outb(units >> 8, WDT_TIMEOUT + 1); + superio_outb(units, WDT_TIMEOUT); } static int |