Fix logic in STM32 SPI driver that leaves interrupts disabled; back out earlier change to irqsave()

git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@5158 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
patacongo
2012-09-15 18:09:50 +00:00
parent 3364b55f86
commit fd63baf0fa
3 changed files with 75 additions and 46 deletions
+12
View File
@@ -3349,3 +3349,15 @@
* configs/*/nxwm/defconfig and sched/task_exithook.c: Fixes for
bugs that crept in during recent changes. (Submitted by Max
Holtzberg).
* arch/arm/include/armv7-m/irq.h: Fix a critical bug in irqsave().
It looks like sometimes the compile will re-order some instructions
inapproapriately. This end result is that interrupts will get
stuff off.
* drivers/mtd/w25.c: Beginning of a driver for the Windbond SPI
FLASH family (W25x16, W25x32, and W25x64). The initial check-in
is basically just the SST25 driver with some name changes.
* arch/arm/include/armv7-m/irq.h and arch/arm/src/stm32/stm32_spi.c:
Back out the last change in irq.h. It is (most likely) fine the
way it was. The really interrupt related problem was in stm32_spi.c:
When SPI3 is not enabled, then the irqrestore() falls in the
else clause.