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-ip27 | |
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-ip27')
-rw-r--r-- | arch/mips/sgi-ip27/ip27-irq.c | 8 | ||||
-rw-r--r-- | arch/mips/sgi-ip27/ip27-timer.c | 5 |
2 files changed, 0 insertions, 13 deletions
diff --git a/arch/mips/sgi-ip27/ip27-irq.c b/arch/mips/sgi-ip27/ip27-irq.c index 5f8835b4e84a..319f8803ef6f 100644 --- a/arch/mips/sgi-ip27/ip27-irq.c +++ b/arch/mips/sgi-ip27/ip27-irq.c | |||
@@ -332,13 +332,6 @@ static inline void disable_bridge_irq(unsigned int irq) | |||
332 | intr_disconnect_level(cpu, swlevel); | 332 | intr_disconnect_level(cpu, swlevel); |
333 | } | 333 | } |
334 | 334 | ||
335 | static void end_bridge_irq(unsigned int irq) | ||
336 | { | ||
337 | if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)) && | ||
338 | irq_desc[irq].action) | ||
339 | enable_bridge_irq(irq); | ||
340 | } | ||
341 | |||
342 | static struct irq_chip bridge_irq_type = { | 335 | static struct irq_chip bridge_irq_type = { |
343 | .typename = "bridge", | 336 | .typename = "bridge", |
344 | .startup = startup_bridge_irq, | 337 | .startup = startup_bridge_irq, |
@@ -347,7 +340,6 @@ static struct irq_chip bridge_irq_type = { | |||
347 | .mask = disable_bridge_irq, | 340 | .mask = disable_bridge_irq, |
348 | .mask_ack = disable_bridge_irq, | 341 | .mask_ack = disable_bridge_irq, |
349 | .unmask = enable_bridge_irq, | 342 | .unmask = enable_bridge_irq, |
350 | .end = end_bridge_irq, | ||
351 | }; | 343 | }; |
352 | 344 | ||
353 | void __devinit register_bridge_irq(unsigned int irq) | 345 | void __devinit register_bridge_irq(unsigned int irq) |
diff --git a/arch/mips/sgi-ip27/ip27-timer.c b/arch/mips/sgi-ip27/ip27-timer.c index 7d361726bbfb..c20e9899b34b 100644 --- a/arch/mips/sgi-ip27/ip27-timer.c +++ b/arch/mips/sgi-ip27/ip27-timer.c | |||
@@ -180,10 +180,6 @@ static void disable_rt_irq(unsigned int irq) | |||
180 | { | 180 | { |
181 | } | 181 | } |
182 | 182 | ||
183 | static void end_rt_irq(unsigned int irq) | ||
184 | { | ||
185 | } | ||
186 | |||
187 | static struct irq_chip rt_irq_type = { | 183 | static struct irq_chip rt_irq_type = { |
188 | .typename = "SN HUB RT timer", | 184 | .typename = "SN HUB RT timer", |
189 | .ack = disable_rt_irq, | 185 | .ack = disable_rt_irq, |
@@ -191,7 +187,6 @@ static struct irq_chip rt_irq_type = { | |||
191 | .mask_ack = disable_rt_irq, | 187 | .mask_ack = disable_rt_irq, |
192 | .unmask = enable_rt_irq, | 188 | .unmask = enable_rt_irq, |
193 | .eoi = enable_rt_irq, | 189 | .eoi = enable_rt_irq, |
194 | .end = end_rt_irq, | ||
195 | }; | 190 | }; |
196 | 191 | ||
197 | static struct irqaction rt_irqaction = { | 192 | static struct irqaction rt_irqaction = { |