diff options
Diffstat (limited to 'Documentation/core-api/irq/concepts.rst')
| -rw-r--r-- | Documentation/core-api/irq/concepts.rst | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Documentation/core-api/irq/concepts.rst b/Documentation/core-api/irq/concepts.rst new file mode 100644 index 000000000000..7c4564f3cbdf --- /dev/null +++ b/Documentation/core-api/irq/concepts.rst @@ -0,0 +1,25 @@ +=============== +What is an IRQ? +=============== + +An IRQ is an interrupt request from a device. Currently, they can come +in over a pin, or over a packet. Several devices may be connected to +the same pin thus sharing an IRQ. Such as on legacy PCI bus: All devices +typically share 4 lanes/pins. Note that each device can request an +interrupt on each of the lanes. + +An IRQ number is a kernel identifier used to talk about a hardware +interrupt source. Typically, this is an index into the global irq_desc +array or sparse_irqs tree. But except for what linux/interrupt.h +implements, the details are architecture specific. + +An IRQ number is an enumeration of the possible interrupt sources on a +machine. Typically, what is enumerated is the number of input pins on +all of the interrupt controllers in the system. In the case of ISA, +what is enumerated are the 8 input pins on each of the two i8259 +interrupt controllers. + +Architectures can assign additional meaning to the IRQ numbers, and +are encouraged to in the case where there is any manual configuration +of the hardware involved. The ISA IRQs are a classic example of +assigning this kind of additional meaning. |
