Lines Matching refs:and

25 The irq_alloc_desc*() and irq_free_desc*() APIs provide allocation of
30 The irq_domain library adds mapping between hwirq and IRQ numbers on
36 specifiers to hwirq numbers, and can be easily extended to support
40 An interrupt controller driver creates and registers an irq_domain by
47 between hwirq and IRQ numbers. Mappings are added to the irq_domain
48 by calling irq_create_mapping() which accepts the irq_domain and a
51 the hwirq, and call the .map() callback so the driver can perform any
61 If the driver has the Linux IRQ number or the irq_data pointer, and
67 to Linux irq, and each mechanism uses a different allocation function.
76 the hwirq, and the IRQ number is stored in the table.
79 fixed and a relatively small number (~ < 256). The advantages of this
80 map are fixed time lookup for IRQ numbers, and irq_descs are only
90 IRQs. When an hwirq is mapped, an irq_desc is allocated and the
107 IRQ number and call the .map() callback so that driver can program the
122 case the Linux IRQ numbers cannot be dynamically assigned and the legacy
126 been allocated for the controller and that the IRQ number can be
127 calculated by adding a fixed offset to the hwirq number, and
129 controller to manage IRQ allocations and it requires an irq_desc to be
139 system and will otherwise use a linear domain mapping. The semantics
141 descriptors will be allocated on-the-fly for it, and if no range is
146 is supporting both dynamic and static IRQ assignments.
149 used and no descriptor gets allocated it is very important to make sure
166 To support such a hardware topology and make software architecture match
168 interrupt controller and those irq_domains are organized into hierarchy.
170 child and the irq_domain near to CPU is parent. So a hierarchy structure
181 1) irq_domain_alloc_irqs(): allocate IRQ descriptors and interrupt
183 2) irq_domain_free_irqs(): free IRQ descriptors and interrupt controller
195 is used to store irq_domain pointer and hardware irq number.
199 With support of hierarchy irq_domain and hierarchy irq_data ready, an
200 irq_domain structure is built for each interrupt controller, and an
208 with the hardware managed by itself and may ask for services from its
214 1) Implement irq_domain_ops.alloc and irq_domain_ops.free
215 2) Optionally implement irq_domain_ops.activate and
219 4) No need to implement irq_domain_ops.map and irq_domain_ops.unmap,