11===============================================
2- The irq_domain interrupt number mapping library
2+ The irq_domain Interrupt Number Mapping Library
33===============================================
44
55The current design of the Linux kernel uses a single large number
66space where each separate IRQ source is assigned a different number.
77This is simple when there is only one interrupt controller, but in
8- systems with multiple interrupt controllers the kernel must ensure
8+ systems with multiple interrupt controllers, the kernel must ensure
99that each one gets assigned non-overlapping allocations of Linux
1010IRQ numbers.
1111
1212The number of interrupt controllers registered as unique irqchips
13- show a rising tendency: for example subdrivers of different kinds
13+ shows a rising tendency. For example, subdrivers of different kinds
1414such as GPIO controllers avoid reimplementing identical callback
1515mechanisms as the IRQ core system by modelling their interrupt
16- handlers as irqchips, i .e. in effect cascading interrupt controllers.
16+ handlers as irqchips. I .e. in effect cascading interrupt controllers.
1717
1818Here the interrupt number loose all kind of correspondence to
1919hardware interrupt numbers: whereas in the past, IRQ numbers could
2020be chosen so they matched the hardware IRQ line into the root
2121interrupt controller (i.e. the component actually fireing the
2222interrupt line to the CPU) nowadays this number is just a number.
2323
24- For this reason we need a mechanism to separate controller-local
25- interrupt numbers, called hardware irq's , from Linux IRQ numbers.
24+ For this reason, we need a mechanism to separate controller-local
25+ interrupt numbers, called hardware IRQs , from Linux IRQ numbers.
2626
2727The irq_alloc_desc*() and irq_free_desc*() APIs provide allocation of
2828irq numbers, but they don't provide any support for reverse mapping of
2929the controller-local IRQ (hwirq) number into the Linux IRQ number
3030space.
3131
32- The irq_domain library adds mapping between hwirq and IRQ numbers on
32+ The irq_domain library adds a mapping between hwirq and IRQ numbers on
3333top of the irq_alloc_desc*() API. An irq_domain to manage mapping is
3434preferred over interrupt controller drivers open coding their own
3535reverse mapping scheme.
@@ -38,7 +38,7 @@ irq_domain also implements translation from an abstract irq_fwspec
3838structure to hwirq numbers (Device Tree and ACPI GSI so far), and can
3939be easily extended to support other IRQ topology data sources.
4040
41- irq_domain usage
41+ irq_domain Usage
4242================
4343
4444An interrupt controller driver creates and registers an irq_domain by
@@ -76,7 +76,7 @@ If the driver has the Linux IRQ number or the irq_data pointer, and
7676needs to know the associated hwirq number (such as in the irq_chip
7777callbacks) then it can be directly obtained from irq_data->hwirq.
7878
79- Types of irq_domain mappings
79+ Types of irq_domain Mappings
8080============================
8181
8282There are several mechanisms available for reverse mapping from hwirq
@@ -101,7 +101,7 @@ map are fixed time lookup for IRQ numbers, and irq_descs are only
101101allocated for in-use IRQs. The disadvantage is that the table must be
102102as large as the largest possible hwirq number.
103103
104- The majority of drivers should use the linear map.
104+ The majority of drivers should use the Linear map.
105105
106106Tree
107107----
@@ -189,7 +189,7 @@ that the driver using the simple domain call irq_create_mapping()
189189before any irq_find_mapping() since the latter will actually work
190190for the static IRQ assignment case.
191191
192- Hierarchy IRQ domain
192+ Hierarchy IRQ Domain
193193--------------------
194194
195195On some architectures, there may be multiple interrupt controllers
0 commit comments