Re: ISRs in shared IRQ

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



El Wed, Apr 11, 2007 at 04:15:16PM +0530 Sikandar Khan ha dit:

>    Hi All,
> 
>    Plese help me in understanding the below text
> 
>    Regardless of the kind of circuit that caused the interrupt, all I/O
>    interrupt handlers perform the same four basic actions:
> 
>     1. Save the IRQ value and the register's contents on the Kernel Mode
>        stack.
> 
>     2. Send an acknowledgment to the PIC that is servicing the IRQ line, thus
>        allowing it to issue further interrupts.
> 
>     3. "Execute the interrupt service routines (ISRs) associated with all the
>        devices that share the IRQ."
> 
>     4. Terminate by jumping to the ret_from_intr( ) address.
> 
>    What does the point 3 mean ?
> 
>    The kernel can recognise which isr to run based on the device id .Does the
>    kernel run all the ISRs associated with the shared IRQs and based on the
>    device id run only the one matching it . Can any one explain this in more
>    detail ?

the kernel doesn't know the device id of the device that generated the
interrupt. it invokes all ISRs that share the line, passing the their
respective device id and it's the device drivers responsability to
figure out whether its associated device generated the interrupt or
not.

for more information have a look at the thread "how the interrupt
handler(ISR) knows the source of interrupt ?" opened the 27/03/07 on
this list.

-- 
Matthias Kaehlcke
Linux Application Developer
Barcelona

              You can't separate peace from freedom because no
               one can be at peace unless he has his freedom
                              (Malcolm X)
                                                                 .''`.
    using free software / Debian GNU/Linux | http://debian.org  : :'  :
                                                                `. `'`
gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4                  `-

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux