[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>
This commit is contained in:

committed by
Ralf Baechle

parent
1ccd1c1c35
commit
e77c232cfc
@@ -51,19 +51,12 @@ static void disable_local0_irq(unsigned int irq)
|
||||
sgint->imask0 &= ~(1 << (irq - SGINT_LOCAL0));
|
||||
}
|
||||
|
||||
static void end_local0_irq (unsigned int irq)
|
||||
{
|
||||
if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
|
||||
enable_local0_irq(irq);
|
||||
}
|
||||
|
||||
static struct irq_chip ip22_local0_irq_type = {
|
||||
.typename = "IP22 local 0",
|
||||
.ack = disable_local0_irq,
|
||||
.mask = disable_local0_irq,
|
||||
.mask_ack = disable_local0_irq,
|
||||
.unmask = enable_local0_irq,
|
||||
.end = end_local0_irq,
|
||||
};
|
||||
|
||||
static void enable_local1_irq(unsigned int irq)
|
||||
@@ -79,19 +72,12 @@ void disable_local1_irq(unsigned int irq)
|
||||
sgint->imask1 &= ~(1 << (irq - SGINT_LOCAL1));
|
||||
}
|
||||
|
||||
static void end_local1_irq (unsigned int irq)
|
||||
{
|
||||
if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
|
||||
enable_local1_irq(irq);
|
||||
}
|
||||
|
||||
static struct irq_chip ip22_local1_irq_type = {
|
||||
.typename = "IP22 local 1",
|
||||
.ack = disable_local1_irq,
|
||||
.mask = disable_local1_irq,
|
||||
.mask_ack = disable_local1_irq,
|
||||
.unmask = enable_local1_irq,
|
||||
.end = end_local1_irq,
|
||||
};
|
||||
|
||||
static void enable_local2_irq(unsigned int irq)
|
||||
@@ -107,19 +93,12 @@ void disable_local2_irq(unsigned int irq)
|
||||
sgint->imask0 &= ~(1 << (SGI_MAP_0_IRQ - SGINT_LOCAL0));
|
||||
}
|
||||
|
||||
static void end_local2_irq (unsigned int irq)
|
||||
{
|
||||
if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
|
||||
enable_local2_irq(irq);
|
||||
}
|
||||
|
||||
static struct irq_chip ip22_local2_irq_type = {
|
||||
.typename = "IP22 local 2",
|
||||
.ack = disable_local2_irq,
|
||||
.mask = disable_local2_irq,
|
||||
.mask_ack = disable_local2_irq,
|
||||
.unmask = enable_local2_irq,
|
||||
.end = end_local2_irq,
|
||||
};
|
||||
|
||||
static void enable_local3_irq(unsigned int irq)
|
||||
@@ -135,19 +114,12 @@ void disable_local3_irq(unsigned int irq)
|
||||
sgint->imask1 &= ~(1 << (SGI_MAP_1_IRQ - SGINT_LOCAL1));
|
||||
}
|
||||
|
||||
static void end_local3_irq (unsigned int irq)
|
||||
{
|
||||
if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
|
||||
enable_local3_irq(irq);
|
||||
}
|
||||
|
||||
static struct irq_chip ip22_local3_irq_type = {
|
||||
.typename = "IP22 local 3",
|
||||
.ack = disable_local3_irq,
|
||||
.mask = disable_local3_irq,
|
||||
.mask_ack = disable_local3_irq,
|
||||
.unmask = enable_local3_irq,
|
||||
.end = end_local3_irq,
|
||||
};
|
||||
|
||||
static void indy_local0_irqdispatch(void)
|
||||
|
Reference in New Issue
Block a user