PCI7230/PCI9052 Interrupt Handling

Hi All,

I’m developing a device driver for ADLINK’s NuDAQ PCI7230 digital I/O
with PLX’s PCI9052 PCI host onboard and I get trouble handling IRQs
from the board.

When I get interrupt, I should figure out whether the source of the
interrupt is my device. AFAIK, it can be done by reading LINTi1 Status
bit of the 9052’s Interrupt Control/Status Register. After the system
boots, LINTi1 Status is 0. Then an external device pulses interrupt
input of the board, and the driver detects interrupt with LINTi1
Status set to 1. After that I can nothing to do to make it back to 0.
This is the case of level-triggered interrupt used. When I try to use
edge-triggered interrupts, LINTi1 Status could be reset to 0 after the
first interrupt, but then the driver does not receive interrupts any
more.

In both cases I’ve described, the board’s interrupt pin was pulsed
many times. The board itself is alright - ADLINK’s native driver
detected correct number of interrupts in the same situation.

Maybe I’ve missed something while configuring PCI9052? Any
suggestions would be appreciated.


Best regards,
D.