浏览代码

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>
Shane McDonald 16 年之前
父节点
当前提交
0ca71737fe
共有 1 个文件被更改,包括 1 次插入9 次删除
  1. 1 9
      arch/mips/pmc-sierra/msp71xx/msp_irq_slp.c

+ 1 - 9
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)
 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 */
 	/* check for PER interrupt range */
 	if (irq < MSP_PER_INTBASE)
 	if (irq < MSP_PER_INTBASE)
 		*SLP_INT_STS_REG = (1 << (irq - MSP_SLP_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 = {
 static struct irq_chip msp_slp_irq_controller = {
 	.name = "MSP_SLP",
 	.name = "MSP_SLP",
 	.ack = ack_msp_slp_irq,
 	.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,
 	.unmask = unmask_msp_slp_irq,
 };
 };