Subject: Re: PCI device driver interface changes
To: Wolfgang Solfrank <ws@KURT.TOOLS.DE>
From: Chris G Demetriou <Chris_G_Demetriou@UX2.SP.CS.CMU.EDU>
List: current-users
Date: 03/27/1996 14:26:43
> >    void            *pci_intr_establish __P((pci_chipset_tag_t pc,
> > 		       pci_intr_handle_t ih, int level, int (*func)(void *),
> > 		       void *arg)); 
> > 
> > Doesn't PCI allow for both level- and edge-triggered interrupts?  I
> > think this also needs an IST_* constant.
> No, PCI allows only for level-triggered interrupts (at least the 2.0 spec).

To quote the spec (page 15 of the PCI Local Bus Specification,
revision 2.0), just in case any of you are still awake:

2.2.6 Interrupt Pins (Optional)

Interrupts on PCI are optional and defined as "level sensitive,"
asserted low (negative true), using open drain output drivers. [ ... ]

[ ... ]

The system vendor is free to combine the various INTx# signals from
PCI connector(s) in any way to connect them to the interrupt
controller.  They may be wired-ORed or electronically switched under
program control, or any combination thereof.  This means the device
driver may not make any assumptions about interrupt sharing.  All PCI
device drivers must be able to share an interrupt (chaining) with any
other logical device, including devices in the same multi-function