On Sat, Jan 02, 1999 at 04:42:57PM +0100, Martin Husemann wrote:
This is supposed to happen:
- on the Amiga (shared ISA interrupts)
ZBUS, not ISA.
- on PCI cards (level triggered interrupts might be shared)
- on PCMCIA cards (all cards on one pcmcia controller share an interrupt)
It should never happen:
- on ISA or ISAPNP cards on the i386
There realy are two problems mixed here, and the right solution is to extend
the struct isic_softc by a new flag: interrupt might be shared. If this flag
is set by the bus-specific attachment code the interrupt handler should not
complain but return 0 (interrupt not for me).
If this flag is set and the interrupt was from this card we should also play
the "mask all interrupts and reenable them" game, if the cards driver does
not provide a special "clrirq" routine.
Uhm.... for the Amiga there was no fiddling needed, if I recall right.
I suggest to separate the functions
- "private interupt" flag enabling that debug message
- "clear interupt" routine, which might be NULL meaning "dont call it".
[or maybe make it mandatory, and provide a null function... considering
that we won't see any VAX port (with the hight-overhead calls) soon, maybe
this is faster?)]
On i386 ISA, set "private interupt" to "1" and "clear interupt" to 0.
For shared interupt cards that nead explicit clearing, put a function
there that does the right thing.
The board-specific attach function probably knows best what to do.
* Progress (n.): The process through which Usenet has evolved from
smart people in front of dumb terminals to dumb people in front of
smart terminals. -- ob...@burnout.demon.co.uk (obscurity)
To Unsubscribe: send mail to majo...@FreeBSD.org
with "unsubscribe freebsd-isdn" in the body of the message