Date: Tue, 18 Mar 1997 22:29:18 -0500 From: "Louis A. Mamakos" <louie@TransSys.COM> To: Amancio Hasty <hasty@rah.star-gate.com> Cc: multimedia@freebsd.org Subject: Re: PCI shared IRQs? Message-ID: <199703190329.WAA01841@whizzo.transsys.com> In-Reply-To: Your message of "Tue, 18 Mar 1997 10:40:40 PST." <199703181840.KAA14284@rah.star-gate.com> References: <199703181840.KAA14284@rah.star-gate.com>
next in thread | previous in thread | raw e-mail | index | archive | help
> > > Does anyone in the list know how pci.c manages to multiplex different > devices using the same IRQ? The nitty-gritty is the dispatch routing in /sys/pci/pci.c pci_int(), which walks the list of register interrupt handlers attached to each PCI interrupt. When the first driver registers for an interrupt, the interrupt handler points directly to the driver. When subsequent drivers register, then interrupt handler points the dispatch routine and a list of interrupt handlers is created, each of which is called. The reason this can be made to work is that interrupts are level sensitive on the PCI bus, rather than edge sensistive on the ISA. Thus, a board will continue to assert an interrupt until serviced. louie
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199703190329.WAA01841>