Andrea Arcangeli (email@example.com)
Sun, 30 Aug 1998 16:02:19 +0200 (CEST)
On Sun, 30 Aug 1998, Joerg Dorchain wrote:
>the CPU. The cpu start the OS's irq dispatcher. The dispatcher looks at the
>level of the irq (on m68k similiar to the diffrent irq numbers on intel)
>and calls a handler chain. This chain is a linked list of funtions that
>get called in order when the interrupt occurs.
That' s the same on i386. Look at the function handle_IRQ_event() in
arch/i386/kernel/irq.c. Before call handle_IRQ_event() the i386 port ack
and _mask_ the irq.
>chips designed for the m68k family, but it works.) On the other side,
>only the driver know it's hardware, it can acknowledge the intrrupt (i.e.
>tell the hardware that the irq is handled so it can stop signalling it.)
No. _In_Linux_ 2.1.119 is the arch specific irq code that has to know
everything about the irq and to ack the irq when it will happen and _then_
to recall the irq handler. The device driver has not to know how to ack an
irq to the irq controller.
>So the low-level driver has to handle the hardware specific part. That
>is, when it gets called, it _may_ be its interrupt, or maybe some others
>(on the amiga, the irq-level used for MFCIII expansion card is also used
>by most scsi-adapters). So first check if the interrupt came from the
>handled hardware, and if not, return as quick as pssible to let the next
>handler try its luck.
NoNo. I could have understood something. Are you doing a performance
optimization? You have many irq shared on the same "level" (you called it
so). You don' t want to run all the shared irqs. If so this way to
optimize things moving the ack to device drivers is very more ugly that
leaving the current parport_share code as now. You should resolve this
optimization at arch specific code.
Could you post or point code instead of only words? At least the code is
written in C and not in English and so I should understand it better ;-).
-- To unsubscribe, send mail to: firstname.lastname@example.org --
-- with the single word "unsubscribe" in the body of the message. --
This archive was generated by hypermail 2.0b3 on Wed 30 Dec 1998 - 10:18:09 EST