diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2011-10-29 02:29:13 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2011-10-29 02:29:13 +0000 |
commit | e876ab20bae53a5e217f00c5b0dfb35554e6ac4f (patch) | |
tree | 753d77710cf12624daec90d398d4672d1a0ac1d6 /nuttx/arch/mips/src | |
parent | 4d79d5b9bf070303f8646104a936414865e3b55f (diff) | |
download | px4-nuttx-e876ab20bae53a5e217f00c5b0dfb35554e6ac4f.tar.gz px4-nuttx-e876ab20bae53a5e217f00c5b0dfb35554e6ac4f.tar.bz2 px4-nuttx-e876ab20bae53a5e217f00c5b0dfb35554e6ac4f.zip |
Fix some MIPS software interrupt enabling issues
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4067 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/mips/src')
-rw-r--r-- | nuttx/arch/mips/src/mips32/up_irq.c | 2 | ||||
-rw-r--r-- | nuttx/arch/mips/src/pic32mx/pic32mx-irq.c | 7 |
2 files changed, 6 insertions, 3 deletions
diff --git a/nuttx/arch/mips/src/mips32/up_irq.c b/nuttx/arch/mips/src/mips32/up_irq.c index b29c9853f..80ab7f78a 100644 --- a/nuttx/arch/mips/src/mips32/up_irq.c +++ b/nuttx/arch/mips/src/mips32/up_irq.c @@ -83,7 +83,7 @@ irqstate_t irqsave(void) status &= ~CP0_STATUS_IM_MASK; /* Clear all interrupt mask bits */ status |= CP0_STATUS_IM_SWINTS; /* Keep S/W interrupts enabled */ cp0_putstatus(status); /* Disable interrupts */ - return ret; /* Return status before interrtupts disabled */ + return ret; /* Return status before interrupts disabled */ } /**************************************************************************** diff --git a/nuttx/arch/mips/src/pic32mx/pic32mx-irq.c b/nuttx/arch/mips/src/pic32mx/pic32mx-irq.c index 87e545853..1681673fa 100644 --- a/nuttx/arch/mips/src/pic32mx/pic32mx-irq.c +++ b/nuttx/arch/mips/src/pic32mx/pic32mx-irq.c @@ -136,16 +136,19 @@ void up_irqinitialize(void) /* And finally, enable interrupts */ -#ifndef CONFIG_SUPPRESS_INTERRUPTS - /* Interrupts are enabled by setting the IE bit in the CP0 status register */ regval = 0; asm volatile("ei %0" : "=r"(regval)); +#ifndef CONFIG_SUPPRESS_INTERRUPTS /* Then enable all interrupt levels */ irqrestore(CP0_STATUS_IM_ALL); +#else + /* Enable only software interrupts */ + + irqrestore(CP0_STATUS_IM_SWINTS); #endif } |