diff options
author | Franck Bui-Huu <fbuihuu@gmail.com> | 2006-12-01 12:22:27 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2006-12-06 15:16:08 -0500 |
commit | e77c232cfc6e1250b2916a7c69225d6634d05a49 (patch) | |
tree | a5a193c3d6d7f8c8a9eb35d970dd47fa867e5e24 /arch/mips/sgi-ip22/ip22-int.c | |
parent | 1ccd1c1c35a6cb21da32479931d4fa6d47320095 (diff) |
[MIPS] Compile __do_IRQ() when really needed
__do_IRQ() is needed only by irq handlers that can't use
default handlers defined in kernel/irq/chip.c.
For others platforms there's no need to compile this function
since it won't be used. For those platforms this patch defines
GENERIC_HARDIRQS_NO__DO_IRQ symbol which is used exactly for
this purpose.
Futhermore for platforms which do not use __do_IRQ(), end()
method which is part of the 'irq_chip' structure is not used.
This patch simply removes this method in this case.
Signed-off-by: Franck Bui-Huu <fbuihuu@gmail.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/sgi-ip22/ip22-int.c')
-rw-r--r-- | arch/mips/sgi-ip22/ip22-int.c | 28 |
1 files changed, 0 insertions, 28 deletions
diff --git a/arch/mips/sgi-ip22/ip22-int.c b/arch/mips/sgi-ip22/ip22-int.c index c7b13805315..c44f8be0644 100644 --- a/arch/mips/sgi-ip22/ip22-int.c +++ b/arch/mips/sgi-ip22/ip22-int.c | |||
@@ -51,19 +51,12 @@ static void disable_local0_irq(unsigned int irq) | |||
51 | sgint->imask0 &= ~(1 << (irq - SGINT_LOCAL0)); | 51 | sgint->imask0 &= ~(1 << (irq - SGINT_LOCAL0)); |
52 | } | 52 | } |
53 | 53 | ||
54 | static void end_local0_irq (unsigned int irq) | ||
55 | { | ||
56 | if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS))) | ||
57 | enable_local0_irq(irq); | ||
58 | } | ||
59 | |||
60 | static struct irq_chip ip22_local0_irq_type = { | 54 | static struct irq_chip ip22_local0_irq_type = { |
61 | .typename = "IP22 local 0", | 55 | .typename = "IP22 local 0", |
62 | .ack = disable_local0_irq, | 56 | .ack = disable_local0_irq, |
63 | .mask = disable_local0_irq, | 57 | .mask = disable_local0_irq, |
64 | .mask_ack = disable_local0_irq, | 58 | .mask_ack = disable_local0_irq, |
65 | .unmask = enable_local0_irq, | 59 | .unmask = enable_local0_irq, |
66 | .end = end_local0_irq, | ||
67 | }; | 60 | }; |
68 | 61 | ||
69 | static void enable_local1_irq(unsigned int irq) | 62 | static void enable_local1_irq(unsigned int irq) |
@@ -79,19 +72,12 @@ void disable_local1_irq(unsigned int irq) | |||
79 | sgint->imask1 &= ~(1 << (irq - SGINT_LOCAL1)); | 72 | sgint->imask1 &= ~(1 << (irq - SGINT_LOCAL1)); |
80 | } | 73 | } |
81 | 74 | ||
82 | static void end_local1_irq (unsigned int irq) | ||
83 | { | ||
84 | if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS))) | ||
85 | enable_local1_irq(irq); | ||
86 | } | ||
87 | |||
88 | static struct irq_chip ip22_local1_irq_type = { | 75 | static struct irq_chip ip22_local1_irq_type = { |
89 | .typename = "IP22 local 1", | 76 | .typename = "IP22 local 1", |
90 | .ack = disable_local1_irq, | 77 | .ack = disable_local1_irq, |
91 | .mask = disable_local1_irq, | 78 | .mask = disable_local1_irq, |
92 | .mask_ack = disable_local1_irq, | 79 | .mask_ack = disable_local1_irq, |
93 | .unmask = enable_local1_irq, | 80 | .unmask = enable_local1_irq, |
94 | .end = end_local1_irq, | ||
95 | }; | 81 | }; |
96 | 82 | ||
97 | static void enable_local2_irq(unsigned int irq) | 83 | static void enable_local2_irq(unsigned int irq) |
@@ -107,19 +93,12 @@ void disable_local2_irq(unsigned int irq) | |||
107 | sgint->imask0 &= ~(1 << (SGI_MAP_0_IRQ - SGINT_LOCAL0)); | 93 | sgint->imask0 &= ~(1 << (SGI_MAP_0_IRQ - SGINT_LOCAL0)); |
108 | } | 94 | } |
109 | 95 | ||
110 | static void end_local2_irq (unsigned int irq) | ||
111 | { | ||
112 | if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS))) | ||
113 | enable_local2_irq(irq); | ||
114 | } | ||
115 | |||
116 | static struct irq_chip ip22_local2_irq_type = { | 96 | static struct irq_chip ip22_local2_irq_type = { |
117 | .typename = "IP22 local 2", | 97 | .typename = "IP22 local 2", |
118 | .ack = disable_local2_irq, | 98 | .ack = disable_local2_irq, |
119 | .mask = disable_local2_irq, | 99 | .mask = disable_local2_irq, |
120 | .mask_ack = disable_local2_irq, | 100 | .mask_ack = disable_local2_irq, |
121 | .unmask = enable_local2_irq, | 101 | .unmask = enable_local2_irq, |
122 | .end = end_local2_irq, | ||
123 | }; | 102 | }; |
124 | 103 | ||
125 | static void enable_local3_irq(unsigned int irq) | 104 | static void enable_local3_irq(unsigned int irq) |
@@ -135,19 +114,12 @@ void disable_local3_irq(unsigned int irq) | |||
135 | sgint->imask1 &= ~(1 << (SGI_MAP_1_IRQ - SGINT_LOCAL1)); | 114 | sgint->imask1 &= ~(1 << (SGI_MAP_1_IRQ - SGINT_LOCAL1)); |
136 | } | 115 | } |
137 | 116 | ||
138 | static void end_local3_irq (unsigned int irq) | ||
139 | { | ||
140 | if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS))) | ||
141 | enable_local3_irq(irq); | ||
142 | } | ||
143 | |||
144 | static struct irq_chip ip22_local3_irq_type = { | 117 | static struct irq_chip ip22_local3_irq_type = { |
145 | .typename = "IP22 local 3", | 118 | .typename = "IP22 local 3", |
146 | .ack = disable_local3_irq, | 119 | .ack = disable_local3_irq, |
147 | .mask = disable_local3_irq, | 120 | .mask = disable_local3_irq, |
148 | .mask_ack = disable_local3_irq, | 121 | .mask_ack = disable_local3_irq, |
149 | .unmask = enable_local3_irq, | 122 | .unmask = enable_local3_irq, |
150 | .end = end_local3_irq, | ||
151 | }; | 123 | }; |
152 | 124 | ||
153 | static void indy_local0_irqdispatch(void) | 125 | static void indy_local0_irqdispatch(void) |