Lines Matching +full:interrupt +full:- +full:map
18 #include <linux/radix-tree.h>
26 * These interrupt vectors are prioritized with IRQ 4 having the highest
31 * feed into one of the 12 general interrupt vectors. The remaining 8 vectors
32 * can each route a single SoC interrupt directly.
41 /* This number is used when no interrupt has been assigned */
44 /* This type is the placeholder for a hardware interrupt number. It has to
50 /* Interrupt controller "host" data structure. This could be defined as a
52 * and virtual interrupt numbers for a given interrupt domain. The host
59 * we use an open firmware device-tree. We do have references to struct
61 * a given interrupt controller node, and of course as an argument to its
62 * counterpart host->ops->match() callback. However, those are treated as
63 * generic pointers by the core and the fact that it's actually a device-node
66 * by some sort of arch-specific void * "token" used to identify interrupt
76 * to setup the irq_desc when returning from map().
79 /* Match an interrupt controller device node to a host, returns
87 int (*map)(struct irq_host *h, unsigned int virq, irq_hw_number_t hw); member
92 /* Translate device-tree interrupt specifier from raw format coming
93 * from the firmware to a irq_hw_number_t (interrupt line number) and
98 * interrupt controller has for that line)
112 #define IRQ_HOST_MAP_LINEAR 2 /* linear map of interrupts */
135 * irq_alloc_host - Allocate a new irq_host data structure
136 * @of_node: optional device-tree node of the interrupt controller
138 * @revmap_arg: for IRQ_HOST_MAP_LINEAR linear only: size of the map
139 * @ops: map/unmap host callbacks
143 * IRQ_HOST_MAP_LEGACY, the map() callback will be called before this returns
145 * a legacy controller). For a IRQ_HOST_MAP_LINEAR, the map is allocated by
158 * irq_find_host - Locates a host for a given device node
159 * @node: device-tree node of the interrupt controller
165 * irq_set_default_host - Set a "default" host
170 * platforms that want to manipulate a few hard coded interrupt numbers that
171 * aren't properly represented in the device-tree.
177 * irq_set_virq_count - Set the maximum number of virt irqs
187 * irq_create_mapping - Map a hardware interrupt into linux virq space
188 * @host: host owning this hardware interrupt or NULL for default host
191 * Only one mapping per hardware interrupt is permitted. Returns a linux
201 * irq_dispose_mapping - Unmap an interrupt
202 * @virq: linux virq number of the interrupt to unmap
207 * irq_find_mapping - Find a linux virq from an hw irq number.
208 * @host: host owning this hardware interrupt
219 * irq_create_direct_mapping - Allocate a virq for direct mapping
223 * interrupt numbers they generate. In such a case it's simplest to use
224 * the linux virq as the hardware interrupt number.
229 * irq_radix_revmap_insert - Insert a hw irq to linux virq number mapping.
230 * @host: host owning this hardware interrupt
241 * irq_radix_revmap_lookup - Find a linux virq from a hw irq number.
242 * @host: host owning this hardware interrupt
252 * irq_linear_revmap - Find a linux virq from a hw irq number.
253 * @host: host owning this hardware interrupt
267 * irq_alloc_virt - Allocate virtual irq numbers
281 * irq_free_virt - Free virtual irq numbers
282 * @virq: virtual irq number of the first interrupt to free
286 * maps, this should be done previously by unmap'ing the interrupt. In fact,