[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
@@ -6,6 +6,7 @@ config CASIO_E55
|
||||
select ISA
|
||||
select SYS_SUPPORTS_32BIT_KERNEL
|
||||
select SYS_SUPPORTS_LITTLE_ENDIAN
|
||||
select GENERIC_HARDIRQS_NO__DO_IRQ
|
||||
|
||||
config IBM_WORKPAD
|
||||
bool "Support for IBM WorkPad z50"
|
||||
@@ -15,6 +16,7 @@ config IBM_WORKPAD
|
||||
select ISA
|
||||
select SYS_SUPPORTS_32BIT_KERNEL
|
||||
select SYS_SUPPORTS_LITTLE_ENDIAN
|
||||
select GENERIC_HARDIRQS_NO__DO_IRQ
|
||||
|
||||
config NEC_CMBVR4133
|
||||
bool "Support for NEC CMB-VR4133"
|
||||
@@ -39,6 +41,7 @@ config TANBAC_TB022X
|
||||
select IRQ_CPU
|
||||
select SYS_SUPPORTS_32BIT_KERNEL
|
||||
select SYS_SUPPORTS_LITTLE_ENDIAN
|
||||
select GENERIC_HARDIRQS_NO__DO_IRQ
|
||||
help
|
||||
The TANBAC VR4131 multichip module(TB0225) and
|
||||
the TANBAC VR4131DIMM(TB0229) are MIPS-based platforms
|
||||
@@ -71,6 +74,7 @@ config VICTOR_MPC30X
|
||||
select IRQ_CPU
|
||||
select SYS_SUPPORTS_32BIT_KERNEL
|
||||
select SYS_SUPPORTS_LITTLE_ENDIAN
|
||||
select GENERIC_HARDIRQS_NO__DO_IRQ
|
||||
|
||||
config ZAO_CAPCELLA
|
||||
bool "Support for ZAO Networks Capcella"
|
||||
@@ -80,6 +84,7 @@ config ZAO_CAPCELLA
|
||||
select IRQ_CPU
|
||||
select SYS_SUPPORTS_32BIT_KERNEL
|
||||
select SYS_SUPPORTS_LITTLE_ENDIAN
|
||||
select GENERIC_HARDIRQS_NO__DO_IRQ
|
||||
|
||||
config PCI_VR41XX
|
||||
bool "Add PCI control unit support of NEC VR4100 series"
|
||||
|
@@ -427,19 +427,12 @@ static void enable_sysint1_irq(unsigned int irq)
|
||||
icu1_set(MSYSINT1REG, 1 << SYSINT1_IRQ_TO_PIN(irq));
|
||||
}
|
||||
|
||||
static void end_sysint1_irq(unsigned int irq)
|
||||
{
|
||||
if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS)))
|
||||
icu1_set(MSYSINT1REG, 1 << SYSINT1_IRQ_TO_PIN(irq));
|
||||
}
|
||||
|
||||
static struct irq_chip sysint1_irq_type = {
|
||||
.typename = "SYSINT1",
|
||||
.ack = disable_sysint1_irq,
|
||||
.mask = disable_sysint1_irq,
|
||||
.mask_ack = disable_sysint1_irq,
|
||||
.unmask = enable_sysint1_irq,
|
||||
.end = end_sysint1_irq,
|
||||
};
|
||||
|
||||
static void disable_sysint2_irq(unsigned int irq)
|
||||
@@ -452,19 +445,12 @@ static void enable_sysint2_irq(unsigned int irq)
|
||||
icu2_set(MSYSINT2REG, 1 << SYSINT2_IRQ_TO_PIN(irq));
|
||||
}
|
||||
|
||||
static void end_sysint2_irq(unsigned int irq)
|
||||
{
|
||||
if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS)))
|
||||
icu2_set(MSYSINT2REG, 1 << SYSINT2_IRQ_TO_PIN(irq));
|
||||
}
|
||||
|
||||
static struct irq_chip sysint2_irq_type = {
|
||||
.typename = "SYSINT2",
|
||||
.ack = disable_sysint2_irq,
|
||||
.mask = disable_sysint2_irq,
|
||||
.mask_ack = disable_sysint2_irq,
|
||||
.unmask = enable_sysint2_irq,
|
||||
.end = end_sysint2_irq,
|
||||
};
|
||||
|
||||
static inline int set_sysint1_assign(unsigned int irq, unsigned char assign)
|
||||
|
Reference in New Issue
Block a user