patch-2.1.15 linux/arch/i386/kernel/time.c
Next file: linux/arch/i386/kernel/trampoline.S
Previous file: linux/arch/i386/kernel/smp.c
Back to the patch index
Back to the overall index
- Lines: 22
- Date:
Thu Dec 12 16:51:08 1996
- Orig file:
v2.1.14/linux/arch/i386/kernel/time.c
- Orig date:
Tue Nov 12 15:56:02 1996
diff -u --recursive --new-file v2.1.14/linux/arch/i386/kernel/time.c linux/arch/i386/kernel/time.c
@@ -371,6 +371,21 @@
closely for now.. */
/*smp_message_pass(MSG_ALL_BUT_SELF, MSG_RESCHEDULE, 0L, 0); */
+#ifdef CONFIG_MCA
+ if( MCA_bus ) {
+ /* The PS/2 uses level-triggered interrupts. You can't
+ turn them off, nor would you want to (any attempt to
+ enable edge-triggered interrupts usually gets intercepted by a
+ special hardware circuit). Hence we have to acknowledge
+ the timer interrupt. Through some incredibly stupid
+ design idea, the reset for IRQ 0 is done by setting the
+ high bit of the PPI port B (0x61). Note that some PS/2s,
+ notably the 55SX, work fine if this is removed. */
+
+ irq = inb_p( 0x61 ); /* read the current state */
+ outb_p( irq|0x80, 0x61 ); /* reset the IRQ */
+ }
+#endif
}
#ifndef CONFIG_APM /* cycle counter may be unreliable */
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov