Lines Matching +full:interrupt +full:- +full:controller
14 #include <linux/radix-tree.h>
26 /* This number is used when no interrupt has been assigned */
30 * no interrupt happened _and_ ignore it (don't count it as bad). Some
33 #define NO_IRQ_IGNORE ((unsigned int)-1)
38 /* Number of irqs reserved for the legacy controller */
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
51 * irq domain controller. That is, it handles the mapping between hardware
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
78 /* Match an interrupt controller device node to a host, returns
91 /* Translate device-tree interrupt specifier from raw format coming
92 * from the firmware to a irq_hw_number_t (interrupt line number) and
97 * interrupt controller has for that line)
134 * irq_alloc_host - Allocate a new irq_host data structure
135 * @of_node: optional device-tree node of the interrupt controller
144 * a legacy controller). For a IRQ_HOST_MAP_LINEAR, the map is allocated by
157 * irq_find_host - Locates a host for a given device node
158 * @node: device-tree node of the interrupt controller
164 * irq_set_default_host - Set a "default" host
169 * platforms that want to manipulate a few hard coded interrupt numbers that
170 * aren't properly represented in the device-tree.
176 * irq_set_virq_count - Set the maximum number of virt irqs
180 * the virtual irq number in the controller to avoid the reverse mapping
186 * irq_create_mapping - Map a hardware interrupt into linux virq space
187 * @host: host owning this hardware interrupt or NULL for default host
190 * Only one mapping per hardware interrupt is permitted. Returns a linux
200 * irq_dispose_mapping - Unmap an interrupt
201 * @virq: linux virq number of the interrupt to unmap
206 * irq_find_mapping - Find a linux virq from an hw irq number.
207 * @host: host owning this hardware interrupt
211 * irq controller implementation directly calls the appropriate low level
218 * irq_create_direct_mapping - Allocate a virq for direct mapping
222 * interrupt numbers they generate. In such a case it's simplest to use
223 * the linux virq as the hardware interrupt number.
228 * irq_radix_revmap_insert - Insert a hw irq to linux virq number mapping.
229 * @host: host owning this hardware interrupt
240 * irq_radix_revmap_lookup - Find a linux virq from a hw irq number.
241 * @host: host owning this hardware interrupt
244 * This is a fast path, for use by irq controller code that uses radix tree
251 * irq_linear_revmap - Find a linux virq from a hw irq number.
252 * @host: host owning this hardware interrupt
255 * This is a fast path, for use by irq controller code that uses linear
266 * irq_alloc_virt - Allocate virtual irq numbers
280 * irq_free_virt - Free virtual irq numbers
281 * @virq: virtual irq number of the first interrupt to free
285 * maps, this should be done previously by unmap'ing the interrupt. In fact,
292 * irq_early_init - Init irq remapping subsystem
310 * Per-cpu stacks for handling critical, debug and machine check
322 * Per-cpu stacks for handling hard and soft interrupts.