diff options
| author | Franck Bui-Huu <fbuihuu@gmail.com> | 2006-12-01 18:22:27 +0100 | 
|---|---|---|
| committer | Ralf Baechle <ralf@linux-mips.org> | 2006-12-06 20:16:08 +0000 | 
| commit | e77c232cfc6e1250b2916a7c69225d6634d05a49 (patch) | |
| tree | a5a193c3d6d7f8c8a9eb35d970dd47fa867e5e24 /arch/mips/kernel | |
| parent | 1ccd1c1c35a6cb21da32479931d4fa6d47320095 (diff) | |
| download | olio-linux-3.10-e77c232cfc6e1250b2916a7c69225d6634d05a49.tar.xz olio-linux-3.10-e77c232cfc6e1250b2916a7c69225d6634d05a49.zip  | |
[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/kernel')
| -rw-r--r-- | arch/mips/kernel/irq-mv6434x.c | 10 | ||||
| -rw-r--r-- | arch/mips/kernel/irq-rm7000.c | 7 | ||||
| -rw-r--r-- | arch/mips/kernel/irq-rm9000.c | 8 | ||||
| -rw-r--r-- | arch/mips/kernel/irq_cpu.c | 10 | 
4 files changed, 0 insertions, 35 deletions
diff --git a/arch/mips/kernel/irq-mv6434x.c b/arch/mips/kernel/irq-mv6434x.c index 6cfb31cafde..efbd219845b 100644 --- a/arch/mips/kernel/irq-mv6434x.c +++ b/arch/mips/kernel/irq-mv6434x.c @@ -67,15 +67,6 @@ static inline void unmask_mv64340_irq(unsigned int irq)  }  /* - * End IRQ processing - */ -static void end_mv64340_irq(unsigned int irq) -{ -	if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS))) -		unmask_mv64340_irq(irq); -} - -/*   * Interrupt handler for interrupts coming from the Marvell chip.   * It could be built in ethernet ports etc...   */ @@ -106,7 +97,6 @@ struct irq_chip mv64340_irq_type = {  	.mask = mask_mv64340_irq,  	.mask_ack = mask_mv64340_irq,  	.unmask = unmask_mv64340_irq, -	.end = end_mv64340_irq,  };  void __init mv64340_irq_init(unsigned int base) diff --git a/arch/mips/kernel/irq-rm7000.c b/arch/mips/kernel/irq-rm7000.c index ddcc2a5f8a0..123324ba8c1 100644 --- a/arch/mips/kernel/irq-rm7000.c +++ b/arch/mips/kernel/irq-rm7000.c @@ -29,19 +29,12 @@ static inline void mask_rm7k_irq(unsigned int irq)  	clear_c0_intcontrol(0x100 << (irq - irq_base));  } -static void rm7k_cpu_irq_end(unsigned int irq) -{ -	if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS))) -		unmask_rm7k_irq(irq); -} -  static struct irq_chip rm7k_irq_controller = {  	.typename = "RM7000",  	.ack = mask_rm7k_irq,  	.mask = mask_rm7k_irq,  	.mask_ack = mask_rm7k_irq,  	.unmask = unmask_rm7k_irq, -	.end = rm7k_cpu_irq_end,  };  void __init rm7k_cpu_irq_init(int base) diff --git a/arch/mips/kernel/irq-rm9000.c b/arch/mips/kernel/irq-rm9000.c index ba6440c88ab..0e6f4c5349d 100644 --- a/arch/mips/kernel/irq-rm9000.c +++ b/arch/mips/kernel/irq-rm9000.c @@ -80,19 +80,12 @@ static void rm9k_perfcounter_irq_shutdown(unsigned int irq)  	on_each_cpu(local_rm9k_perfcounter_irq_shutdown, (void *) irq, 0, 1);  } -static void rm9k_cpu_irq_end(unsigned int irq) -{ -	if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS))) -		unmask_rm9k_irq(irq); -} -  static struct irq_chip rm9k_irq_controller = {  	.typename = "RM9000",  	.ack = mask_rm9k_irq,  	.mask = mask_rm9k_irq,  	.mask_ack = mask_rm9k_irq,  	.unmask = unmask_rm9k_irq, -	.end = rm9k_cpu_irq_end,  };  static struct irq_chip rm9k_perfcounter_irq = { @@ -103,7 +96,6 @@ static struct irq_chip rm9k_perfcounter_irq = {  	.mask = mask_rm9k_irq,  	.mask_ack = mask_rm9k_irq,  	.unmask = unmask_rm9k_irq, -	.end = rm9k_cpu_irq_end,  };  unsigned int rm9000_perfcount_irq; diff --git a/arch/mips/kernel/irq_cpu.c b/arch/mips/kernel/irq_cpu.c index be5ac23d381..fcc86b96ccf 100644 --- a/arch/mips/kernel/irq_cpu.c +++ b/arch/mips/kernel/irq_cpu.c @@ -50,12 +50,6 @@ static inline void mask_mips_irq(unsigned int irq)  	irq_disable_hazard();  } -static void mips_cpu_irq_end(unsigned int irq) -{ -	if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS))) -		unmask_mips_irq(irq); -} -  static struct irq_chip mips_cpu_irq_controller = {  	.typename	= "MIPS",  	.ack		= mask_mips_irq, @@ -63,7 +57,6 @@ static struct irq_chip mips_cpu_irq_controller = {  	.mask_ack	= mask_mips_irq,  	.unmask		= unmask_mips_irq,  	.eoi		= unmask_mips_irq, -	.end		= mips_cpu_irq_end,  };  /* @@ -96,8 +89,6 @@ static void mips_mt_cpu_irq_ack(unsigned int irq)  	mask_mips_mt_irq(irq);  } -#define mips_mt_cpu_irq_end mips_cpu_irq_end -  static struct irq_chip mips_mt_cpu_irq_controller = {  	.typename	= "MIPS",  	.startup	= mips_mt_cpu_irq_startup, @@ -106,7 +97,6 @@ static struct irq_chip mips_mt_cpu_irq_controller = {  	.mask_ack	= mips_mt_cpu_irq_ack,  	.unmask		= unmask_mips_mt_irq,  	.eoi		= unmask_mips_mt_irq, -	.end		= mips_mt_cpu_irq_end,  };  void __init mips_cpu_irq_init(int irq_base)  |