Mauro Carvalho Chehab | e7225dc | 2017-05-14 15:40:07 -0300 | [diff] [blame] | 1 | =============== |
Eric W. Biederman | f702d70 | 2006-06-29 02:25:02 -0700 | [diff] [blame] | 2 | What is an IRQ? |
Mauro Carvalho Chehab | e7225dc | 2017-05-14 15:40:07 -0300 | [diff] [blame] | 3 | =============== |
Eric W. Biederman | f702d70 | 2006-06-29 02:25:02 -0700 | [diff] [blame] | 4 | |
| 5 | An IRQ is an interrupt request from a device. |
| 6 | Currently they can come in over a pin, or over a packet. |
| 7 | Several devices may be connected to the same pin thus |
| 8 | sharing an IRQ. |
| 9 | |
| 10 | An IRQ number is a kernel identifier used to talk about a hardware |
| 11 | interrupt source. Typically this is an index into the global irq_desc |
| 12 | array, but except for what linux/interrupt.h implements the details |
| 13 | are architecture specific. |
| 14 | |
| 15 | An IRQ number is an enumeration of the possible interrupt sources on a |
| 16 | machine. Typically what is enumerated is the number of input pins on |
| 17 | all of the interrupt controller in the system. In the case of ISA |
| 18 | what is enumerated are the 16 input pins on the two i8259 interrupt |
| 19 | controllers. |
| 20 | |
| 21 | Architectures can assign additional meaning to the IRQ numbers, and |
| 22 | are encouraged to in the case where there is any manual configuration |
| 23 | of the hardware involved. The ISA IRQs are a classic example of |
| 24 | assigning this kind of additional meaning. |