There seems to have quite few problems with
IRQ probing these days (2.1.102).
I just read irq.c file, and there seems to have
a new function:
+int i8259A_irq_pending (unsigned int irq)
+{
+ unsigned int mask = 1<<irq;
+
+ if (irq < 8)
+ return (inb(0x20) & mask);
+ return (inb(0xA0) & (mask >> 8));
+}
But usually, the 8259 PIC is not left
in this state (read of Interrupt Request Register
at 0x20/0xA0) by the BIOS, but to read
In Service Register.
So, I wonder if this should not be added in
IRQ initialisation (in init_IRQ()):
/* Set PICs to read Interrupt Request
Register at address 0x20/0xA0 */
outb(0x0A, 0xA0);
outb(0x0A, 0x20);
I will test to add these two lines in
the previous function as soon as possible,
i.e. IT IS NOT TESTED.
The opposite is (*NOT for this patch*):
/* Reset PICs to read In Service Register
at address 0x20/0xA0 : */
outb(0x0B, 0x20);
outb(0x0B, 0xA0);
Just because it may help,
or because it is too late and I did
not see where it has been done...
Etienne.
----------- etienne.lorrain@ibm.net
-- hdc: irq timeout: status=0xd0 { Busy }
-- ide1: reset: success
----------> I like Linux !
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu