Lines Matching +full:no +full:- +full:map
9 that each one gets assigned non-overlapping allocations of Linux
24 For this reason, we need a mechanism to separate controller-local
29 the controller-local IRQ (hwirq) number into the Linux IRQ number
38 irq_fwspec to hwirq numbers (Device Tree, non-DT firmware node, ACPI
72 it with the hwirq, and calls the :c:member:`irq_domain_ops.map()`
79 - irq_resolve_mapping() returns a pointer to the irq_desc structure
80 for a given domain and hwirq number, and NULL if there was no
82 - irq_find_mapping() returns a Linux IRQ number for a given domain and
83 hwirq number, and 0 if there was no mapping
84 - generic_handle_domain_irq() handles an interrupt described by a
88 compatible with a RCU read-side critical section.
104 Which reverse map type should be used depends on the use case. Each
105 of the reverse map types are described below:
108 ------
114 The linear reverse map maintains a fixed size table indexed by the
118 The Linear map is a good choice when the maximum number of hwirqs is
120 map are fixed time lookup for IRQ numbers, and irq_descs are only
121 allocated for in-use IRQs. The disadvantage is that the table must be
124 The majority of drivers should use the Linear map.
127 ----
133 The irq_domain maintains a radix tree map from hwirq numbers to Linux
137 The tree map is a good choice if the hwirq number can be very large
144 No Map
145 ------
151 The No Map mapping is to be used when the hwirq number is
153 Linux IRQ number into the hardware itself so that no mapping is
155 IRQ number and call the .map() callback so that driver can program the
163 ------
179 exist to ease the support of ancient platforms. No new users should be
183 The legacy map assumes a contiguous range of IRQ numbers has already
186 visa-versa. The disadvantage is that it requires the interrupt
190 The legacy map should only be used if fixed IRQ mappings must be
191 supported. For example, ISA controllers would use the legacy map for
192 mapping Linux IRQs 0-15 so that existing ISA drivers get the correct IRQ
199 will be allocated on-the-fly for it, and if no range is specified it
200 will fall through to irq_domain_create_linear() which means *no* irq
207 used and no descriptor gets allocated it is very important to make sure
213 --------------------
219 Device --> IOAPIC -> Interrupt remapping Controller -> Local APIC -> CPU
277 4) There is no need to implement irq_domain_ops.map() and
280 Note the hierarchy irq_domain is in no way x86-specific, and is
308 .. kernel-doc:: include/linux/irqdomain.h
310 .. kernel-doc:: kernel/irq/irqdomain.c
319 .. kernel-doc:: kernel/irq/irqdomain.c