aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShane McDonald <mcdonald.shane@gmail.com>2009-07-12 10:42:06 -0600
committerRalf Baechle <ralf@linux-mips.org>2009-08-03 17:52:43 +0100
commit0ca71737fee65521ede964afbd2d5484976ed0ed (patch)
tree09a2fba7fc9ad63e90f647e1b434ee3bccd44560
parent6577890fd68c2671850214663dd9ae97feacbc47 (diff)
downloadkernel_samsung_tuna-0ca71737fee65521ede964afbd2d5484976ed0ed.zip
kernel_samsung_tuna-0ca71737fee65521ede964afbd2d5484976ed0ed.tar.gz
kernel_samsung_tuna-0ca71737fee65521ede964afbd2d5484976ed0ed.tar.bz2
MIPS: Simplify and correct interrupt handling for MSP4200
The current interrupt handling code for the MSP4200 always masks an interrupt before acknowledging it. This is not required, as that will be handled by the level interrupt handler. This change simplifies the MSP4200 code to remove the masking in the ack routine, and makes sure that the minimum required operation is performed for masking and acking, rather than always both masking and acking the interrupt. Signed-off-by: Shane McDonald <mcdonald.shane@gmail.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
-rw-r--r--arch/mips/pmc-sierra/msp71xx/msp_irq_slp.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_irq_slp.c b/arch/mips/pmc-sierra/msp71xx/msp_irq_slp.c
index 66f6f85..61f3902 100644
--- a/arch/mips/pmc-sierra/msp71xx/msp_irq_slp.c
+++ b/arch/mips/pmc-sierra/msp71xx/msp_irq_slp.c
@@ -45,13 +45,6 @@ static inline void mask_msp_slp_irq(unsigned int irq)
*/
static inline void ack_msp_slp_irq(unsigned int irq)
{
- mask_msp_slp_irq(irq);
-
- /*
- * only really necessary for 18, 16-14 and sometimes 3:0 (since
- * these can be edge sensitive) but it doesn't hurt for the others.
- */
-
/* check for PER interrupt range */
if (irq < MSP_PER_INTBASE)
*SLP_INT_STS_REG = (1 << (irq - MSP_SLP_INTBASE));
@@ -62,8 +55,7 @@ static inline void ack_msp_slp_irq(unsigned int irq)
static struct irq_chip msp_slp_irq_controller = {
.name = "MSP_SLP",
.ack = ack_msp_slp_irq,
- .mask = ack_msp_slp_irq,
- .mask_ack = ack_msp_slp_irq,
+ .mask = mask_msp_slp_irq,
.unmask = unmask_msp_slp_irq,
};