I am writting a Linux module device driver form some PCI hardware
our company has made. The problem I am having concerns interrupt
handling. I install the interrupt handler with
iRetCode = request_irq
(
PCIIrqLine,
&interrupt_handler,
0,
"our device",
&board_info_structure
);
and call
enable_irq(PCIIrqLine);
I have been able to confirm that our PCI card thinks that it is raising
an interrupt, but the interrupt routine never gets called. In addition,
checking /proc/interrupts shows
0: 169002 timer
1: 2 keyboard
2: 0 cascade
8: 1 + rtc
9: 56601 eth0
10: 6136 aic7xxx
11: 0 out device
12: 4 PS/2 Mouse
13: 1 math error
15: 0 + ide1
a count of 0 which has never changed. That is, the kernel never receives
an interrupt.
I have also replaced our PCI device with another to rule out the
dodgy component possibility and behaviour stays the same.
I have been using "Linux Device Drivers" by Alessandro Rubini and have
rechecked everything he says on Interrupt Handling and PCI devices, and
as fare as I can tell, when it comes to PCI this is all there is.
If anyone has any words of wisdom they could share, it would be appreciated.
Or is there a good example of handling interrupts on a PCI device somewhere
in the kernel?
Regards
Greg.
-- +----------------------------------------------------+ | Do you want to know more? | | --== Greg Johnson ==-- | | HW/SW Engineer gjohnson@research.canon.com.au | | Canon Information Systems Research Australia | | 1 Thomas Holt Dr, North Ryde, NSW, 2113, Australia | | "I FLEXed my BISON and it went YACC!" - me. | +----------------------------------------------------+- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/