aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorGrant Likely <grant.likely@linaro.org>2013-06-06 07:10:24 -0400
committerGrant Likely <grant.likely@linaro.org>2013-06-10 06:52:09 -0400
commit9bbf877d3b6b8c5991000296f40a3f0fe66fa89b (patch)
tree0bad73ca231bbdff6b989482a3c8c375c631c90f /include/linux
parent5e1cda5b8ae93f5f02e8c5a30390ac9b4d2c20e6 (diff)
irqdomain: Replace LEGACY mapping with LINEAR
The LEGACY mapping unnecessarily complicates the irqdomain code and can easily be implemented with a linear mapping. By ripping it out and replacing it with the LINEAR mapping the object size of irqdomain.c shrinks by about 330 bytes (ARMv7) which offsets the additional allocation required by the linear map. It also makes it possible for current LEGACY map users to pre-allocate irq_descs for a subset of the hwirqs and dynamically allocate the rest as needed. Signed-off-by: Grant Likely <grant.likely@linaro.org> Cc: Paul Mundt <lethal@linux-sh.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Rob Herring <rob.herring@calxeda.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/irqdomain.h7
1 files changed, 0 insertions, 7 deletions
diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h
index ba2c708adcff..6f062416e5bf 100644
--- a/include/linux/irqdomain.h
+++ b/include/linux/irqdomain.h
@@ -95,11 +95,6 @@ struct irq_domain {
95 union { 95 union {
96 struct { 96 struct {
97 unsigned int size; 97 unsigned int size;
98 unsigned int first_irq;
99 irq_hw_number_t first_hwirq;
100 } legacy;
101 struct {
102 unsigned int size;
103 unsigned int *revmap; 98 unsigned int *revmap;
104 } linear; 99 } linear;
105 struct { 100 struct {
@@ -117,8 +112,6 @@ struct irq_domain {
117 struct irq_domain_chip_generic *gc; 112 struct irq_domain_chip_generic *gc;
118}; 113};
119 114
120#define IRQ_DOMAIN_MAP_LEGACY 0 /* driver allocated fixed range of irqs.
121 * ie. legacy 8259, gets irqs 1..15 */
122#define IRQ_DOMAIN_MAP_NOMAP 1 /* no fast reverse mapping */ 115#define IRQ_DOMAIN_MAP_NOMAP 1 /* no fast reverse mapping */
123#define IRQ_DOMAIN_MAP_LINEAR 2 /* linear map of interrupts */ 116#define IRQ_DOMAIN_MAP_LINEAR 2 /* linear map of interrupts */
124#define IRQ_DOMAIN_MAP_TREE 3 /* radix tree */ 117#define IRQ_DOMAIN_MAP_TREE 3 /* radix tree */