From 22453a6f70866c2a126dfbc2eb4b1dcc9f048c6e Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 12 Nov 2011 17:49:00 +0000 Subject: [PATCH] Prep for 6.11 release git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4090 42af7a65-404d-4744-a932-0658087f49c3 --- arch/mips/src/mips32/up_swint0.c | 4 ++++ arch/mips/src/pic32mx/pic32mx-irq.c | 15 +++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/arch/mips/src/mips32/up_swint0.c b/arch/mips/src/mips32/up_swint0.c index df1a63e350e..f302ad92f4e 100644 --- a/arch/mips/src/mips32/up_swint0.c +++ b/arch/mips/src/mips32/up_swint0.c @@ -359,5 +359,9 @@ int up_swint0(int irq, FAR void *context) } #endif + /* Clear the pending software interrupt 0 */ + + up_clrpend_irq(PIC32MX_IRQSRC_CS0); + return OK; } diff --git a/arch/mips/src/pic32mx/pic32mx-irq.c b/arch/mips/src/pic32mx/pic32mx-irq.c index ae2b8ce07e2..96b4bc08bf0 100644 --- a/arch/mips/src/pic32mx/pic32mx-irq.c +++ b/arch/mips/src/pic32mx/pic32mx-irq.c @@ -314,7 +314,7 @@ bool up_pending_irq(int irq) ifsaddr = PIC32MX_INT_IFS0; iecaddr = PIC32MX_INT_IEC0; - bitno -= PIC32MX_IRQSRC0_FIRST; + bitno = irq - PIC32MX_IRQSRC0_FIRST; } else if (irq <= PIC32MX_IRQSRC1_LAST) { @@ -322,7 +322,7 @@ bool up_pending_irq(int irq) ifsaddr = PIC32MX_INT_IFS1; iecaddr = PIC32MX_INT_IEC1; - bitno -= PIC32MX_IRQSRC1_FIRST; + bitno = irq - PIC32MX_IRQSRC1_FIRST; } #ifdef PIC32MX_IRQSRC2_FIRST else if (irq <= PIC32MX_IRQSRC2_LAST) @@ -331,7 +331,7 @@ bool up_pending_irq(int irq) ifsaddr = PIC32MX_INT_IFS2; iecaddr = PIC32MX_INT_IEC2; - bitno -= PIC32MX_IRQSRC2_FIRST; + bitno = irq - PIC32MX_IRQSRC2_FIRST; } #endif else @@ -365,8 +365,7 @@ void up_clrpend_irq(int irq) uint32_t regaddr; int bitno; - /* Disable the interrupt by clearing the associated bit in the IEC and then - * acknowledge the interrupt by clearing the associated bit in the IFS + /* Acknowledge the interrupt by clearing the associated bit in the IFS * register. It is necessary to do this BEFORE lowering the interrupt * priority level otherwise recursive interrupts would occur. */ @@ -379,14 +378,14 @@ void up_clrpend_irq(int irq) /* Use IFS0 */ regaddr = PIC32MX_INT_IFS0CLR; - bitno -= PIC32MX_IRQSRC0_FIRST; + bitno = irq - PIC32MX_IRQSRC0_FIRST; } else if (irq <= PIC32MX_IRQSRC1_LAST) { /* Use IFS1 */ regaddr = PIC32MX_INT_IFS1CLR; - bitno -= PIC32MX_IRQSRC1_FIRST; + bitno = irq - PIC32MX_IRQSRC1_FIRST; } #ifdef PIC32MX_IRQSRC2_FIRST else if (irq <= PIC32MX_IRQSRC2_LAST) @@ -394,7 +393,7 @@ void up_clrpend_irq(int irq) /* Use IFS2 */ regaddr = PIC32MX_INT_IFS2CLR; - bitno -= PIC32MX_IRQSRC2_FIRST; + bitno = irq - PIC32MX_IRQSRC2_FIRST; } #endif else