diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2015-11-23 03:26:04 -0500 |
---|---|---|
committer | Marc Zyngier <marc.zyngier@arm.com> | 2015-12-16 10:29:44 -0500 |
commit | c466595c416c04036e1ba36ecdc5fe9072c76228 (patch) | |
tree | 3fad0898ec4c3fe0087189a7f257d07926e370e5 | |
parent | 72f57f2f430f9d262fe3c8dd957f57cbdc1f5f97 (diff) |
irqdomain: Make irq_domain_alloc_irqs_recursive available
We are soon going to need the MSI layer to call into the domain
allocators. Instead of open coding this, make the standard
irq_domain_alloc_irqs_recursive function available to the MSI
layer.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
-rw-r--r-- | include/linux/irqdomain.h | 3 | ||||
-rw-r--r-- | kernel/irq/irqdomain.c | 6 |
2 files changed, 6 insertions, 3 deletions
diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h index d5e5c5bef28c..cf96c6a326f7 100644 --- a/include/linux/irqdomain.h +++ b/include/linux/irqdomain.h | |||
@@ -367,6 +367,9 @@ static inline int irq_domain_alloc_irqs(struct irq_domain *domain, | |||
367 | return __irq_domain_alloc_irqs(domain, -1, nr_irqs, node, arg, false); | 367 | return __irq_domain_alloc_irqs(domain, -1, nr_irqs, node, arg, false); |
368 | } | 368 | } |
369 | 369 | ||
370 | extern int irq_domain_alloc_irqs_recursive(struct irq_domain *domain, | ||
371 | unsigned int irq_base, | ||
372 | unsigned int nr_irqs, void *arg); | ||
370 | extern int irq_domain_set_hwirq_and_chip(struct irq_domain *domain, | 373 | extern int irq_domain_set_hwirq_and_chip(struct irq_domain *domain, |
371 | unsigned int virq, | 374 | unsigned int virq, |
372 | irq_hw_number_t hwirq, | 375 | irq_hw_number_t hwirq, |
diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c index 22aa9612ef7c..1c9973e1b316 100644 --- a/kernel/irq/irqdomain.c +++ b/kernel/irq/irqdomain.c | |||
@@ -1125,9 +1125,9 @@ static void irq_domain_free_irqs_recursive(struct irq_domain *domain, | |||
1125 | } | 1125 | } |
1126 | } | 1126 | } |
1127 | 1127 | ||
1128 | static int irq_domain_alloc_irqs_recursive(struct irq_domain *domain, | 1128 | int irq_domain_alloc_irqs_recursive(struct irq_domain *domain, |
1129 | unsigned int irq_base, | 1129 | unsigned int irq_base, |
1130 | unsigned int nr_irqs, void *arg) | 1130 | unsigned int nr_irqs, void *arg) |
1131 | { | 1131 | { |
1132 | int ret = 0; | 1132 | int ret = 0; |
1133 | struct irq_domain *parent = domain->parent; | 1133 | struct irq_domain *parent = domain->parent; |