Subject: Re: Interrupt Routing on PCI-PCI Bridges
To: Jochen Kunz <jkunz@unixag-kl.fh-kl.de>
From: Nathan J. Williams <nathanw@wasabisystems.com>
List: tech-kern
Date: 08/14/2004 14:35:00
Jochen Kunz <jkunz@unixag-kl.fh-kl.de> writes:

> PCI devices can share a single interrupt. So there are two
> possibilities: 

> A) It is possible to determine in a device independent way which PCI
> device caused the interrupt. In that case the interrupt routing code
> needs to be extended so that it determines the exact device and calls
> only the interrupt handler in question.

> B) It is _not_ possible to determine which PCI device caused the
> interrupt. In that case the interrupt routing code needs to be extended
> so that it calls all interrupt handlers related to this interrupt.
> 
> From what it looks like and what you told me B) is the case.

(b) is the case. PCI does not have a generic register that indicates
an interrupt, and reading the device-specific registers that indicate
whether a device is responsible for the interrupt is exactly the job
of the device's interrupt handlers (and is the reason why interrupt
handlers return a value to say whether they handled the interrupt or
not).

        - Nathan