patch-2.2.19 linux/arch/i386/kernel/time.c
Next file: linux/arch/i386/kernel/traps.c
Previous file: linux/arch/i386/kernel/smp.c
Back to the patch index
Back to the overall index
- Lines: 38
- Date:
Sun Mar 25 11:37:30 2001
- Orig file:
v2.2.18/arch/i386/kernel/time.c
- Orig date:
Sun Mar 25 11:28:17 2001
diff -u --new-file --recursive --exclude-from /usr/src/exclude v2.2.18/arch/i386/kernel/time.c linux/arch/i386/kernel/time.c
@@ -176,6 +176,14 @@
count |= inb_p(0x40) << 8;
+ /* VIA686a test code... reset the latch if count > max */
+ if (count > LATCH-1) {
+ outb_p(0x34, 0x43);
+ outb_p(LATCH & 0xff, 0x40);
+ outb(LATCH >> 8, 0x40);
+ count = LATCH - 1;
+ }
+
/*
* avoiding timer inconsistencies (they are rare, but they happen)...
* there are two kinds of problems that must be avoided here:
@@ -468,6 +476,22 @@
count = inb_p(0x40); /* read the latched count */
count |= inb(0x40) << 8;
+
+ /* VIA686a test code... reset the latch if count > max */
+ if (count > LATCH-1) {
+ static int last_whine;
+ outb_p(0x34, 0x43);
+ outb_p(LATCH & 0xff, 0x40);
+ outb(LATCH >> 8, 0x40);
+ count = LATCH - 1;
+ if(time_after(jiffies, last_whine))
+ {
+ printk(KERN_WARNING "probable hardware bug: clock timer configuration lost - probably a VIA686a.\n");
+ printk(KERN_WARNING "probable hardware bug: restoring chip configuration.\n");
+ last_whine = jiffies + HZ;
+ }
+ }
+
#if 0
spin_unlock(&i8253_lock);
#endif
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)