summaryrefslogtreecommitdiffstats
path: root/include/linux/irqdomain.h
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2012-05-19 15:11:41 +0900
committerGrant Likely <grant.likely@secretlab.ca>2012-05-19 12:32:35 -0600
commit58ee99ada293b5ed971a023304fcfbc1a0ccdb1c (patch)
tree29faab64364615dda0cb373ee7dbd483ff89ce9c /include/linux/irqdomain.h
parent36be50515fe2aef61533b516fa2576a2c7fe7664 (diff)
irqdomain: Support removal of IRQ domains.
Now that IRQ domains are being used by modules it's necessary to support removing them, too. This adds a new irq_domain_remove() routine for doing the bulk of the heavy lifting. It's left as an exercise to the caller to ensure all mappings have been appropriatey disposed of before attempting to remove the domain. Signed-off-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Diffstat (limited to 'include/linux/irqdomain.h')
-rw-r--r--include/linux/irqdomain.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h
index c65740d76e6..a796dbf80b6 100644
--- a/include/linux/irqdomain.h
+++ b/include/linux/irqdomain.h
@@ -141,10 +141,12 @@ static inline struct irq_domain *irq_domain_add_legacy_isa(
return irq_domain_add_legacy(of_node, NUM_ISA_INTERRUPTS, 0, 0, ops,
host_data);
}
+
+extern void irq_domain_remove(struct irq_domain *host);
+
extern struct irq_domain *irq_find_host(struct device_node *node);
extern void irq_set_default_host(struct irq_domain *host);
-
extern unsigned int irq_create_mapping(struct irq_domain *host,
irq_hw_number_t hwirq);
extern void irq_dispose_mapping(unsigned int virq);