Interrupts not being raised.

Greg Johnson (gjohnson@research.canon.com.au)
Fri, 12 Feb 1999 11:33:07 +1100 (EST)


Hello,

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/