Re: Interrupt sharing

From: Jeff Garzik (jgarzik@mandrakesoft.mandrakesoft.com)
Date: Mon Sep 25 2000 - 08:30:51 EST


On Mon, 25 Sep 2000, Mahadev K Cholachagudda wrote:

> Hello to all,
>
> I have one doubt and is as below.
>
>
> Suppose say the two drivers driver1 and driver2 will install the ISR for a
> particular interrupt, say UART0.
> After some time the interrupt is generated. At this moment, which driver's
> ISR is going to execute ?.
>
> If driver1 ISR is get executed, will the driver2's ISR is going to execute
> ?. If say driver2's ISR is going to execute, Is the data that interrupt
> generated is going to be emulated to the driver2's ISR.

When an interrupt is delivered, the kernel calls ALL interrupt handlers
registered for that interrupt. That means all drivers capable of
sharing interrupts should, ideally, have code in their interrupt handler
to exit ASAP if no work is necessary.

        status = RTL_R16(IntrStatus);
        /* exit ASAP if no interrupt conditions (0), or
         * if the hardware was unplugged (0xFFFF)
         */
        if ((status == 0) || (status == 0xFFFF))
                return;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Sep 30 2000 - 21:00:14 EST