rockbox/firmware/target/arm/as3525
Michael Sevakis 307cb04948 AS3525v1/2: Enable nested handling of interrupts
Mostly for the sake of reducing latency for audio servicing where other service
routines can take a long time to complete, leading to occasional drops of a
few samples, especially in recording, where they are fairly frequent.

One mystery that remains is GPIOA IRQ being interrupted causes strange
undefined instruction exceptions, most easily produced on my Fuze V2 with a
scrollwheel. Making GPIOA the top ISR for now, thus not interruptible, cures it.

SVC mode is used during the actual calls. Hopefully the SVC stack size is
sufficient. Prologue and epilogue code only uses the IRQ stack and is large
enough.

Any routine code that should not be interrupted should disable IRQ itself from
here on in.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31642 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 22:29:25 +00:00
..
sansa-c200v2 ascodec-target.h: remove 2012-01-08 01:43:16 +00:00
sansa-clip button-target.h : move prototypes to button.h 2012-01-08 00:07:19 +00:00
sansa-clipplus ascodec-target.h: remove 2012-01-08 01:43:16 +00:00
sansa-clipv2 ascodec-target.h: remove 2012-01-08 01:43:16 +00:00
sansa-clipzip ascodec-target.h: remove 2012-01-08 01:43:16 +00:00
sansa-e200v2 button-target.h : move prototypes to button.h 2012-01-08 00:07:19 +00:00
sansa-fuze button-target.h : move prototypes to button.h 2012-01-08 00:07:19 +00:00
sansa-fuzev2 AS3525v1/2: Enable nested handling of interrupts 2012-01-08 22:29:25 +00:00
sansa-m200v4 button-target.h : move prototypes to button.h 2012-01-08 00:07:19 +00:00
adc-target.h adc-target.h: cleanup 2012-01-08 00:39:29 +00:00
app.lds Get the linker files that slipped through in r31337. 2011-12-17 02:00:59 +00:00
ascodec-as3525.c ascodec-target.h: remove 2012-01-08 01:43:16 +00:00
audio-as3525.c AS3525v1/v2: 2011-12-08 19:20:00 +00:00
backlight-e200v2-fuze.c ascodec-target.h: remove 2012-01-08 01:43:16 +00:00
boot.lds Get the linker files that slipped through in r31337. 2011-12-17 02:00:59 +00:00
button-clip.c button-target.h : move prototypes to button.h 2012-01-08 00:07:19 +00:00
button-e200v2-fuze.c Remove duplicate #include "button.h" 2012-01-08 12:57:02 +00:00
clock-target.h revert r28834 because it causes problems with uSD 2010-12-29 16:07:15 +00:00
dbop-as3525.c DBOP noise on C200v2 goes away if we precharge long enough. 2010-06-27 02:50:24 +00:00
dbop-as3525.h Sansa AMS: Time has shown that switching between 16 and 32bit mode costs much time (due to the micro delay needed), so do 32bit transfers unconditionally for lcd updates at the cost of updating slightly larger rectangles (gives upto 15% speed up, nearly at maximum now). 2010-01-07 22:21:41 +00:00
debug-as3525.c ascodec-target.h: remove 2012-01-08 01:43:16 +00:00
debug-target.h as3525: move debug-target.h content to .c 2012-01-04 06:34:56 +00:00
dma-pl081.c Deal with a complication when transferring recording method from PP5024: since the FIFO POP is always read until empty, keep track of sample parity instead of always saving the first one in the FIFO upon entering the ISR or else the first of a duplicate that is also the last in the FIFO would get duplicated. Also, give top priority to audio interrupts in all cases. 2011-12-12 20:12:22 +00:00
dma-target.h AS3525: Implement a true audio pause and full-resolution audio tick. Take care of a few atomic hotspots. 2011-01-19 09:15:23 +00:00
fmradio-i2c-as3525.c AS3525v1/2: Enable nested handling of interrupts 2012-01-08 22:29:25 +00:00
i2s-as3525.c Fix Clip firmware building by adding missing symbols 2008-11-10 11:04:43 +00:00
kernel-as3525.c fix previous commit 2012-01-08 00:18:43 +00:00
lcd-as-e200v2-fuze-fuzev2.S FS#11335 by me: make ARM assembly functions thumb-friendly 2010-06-11 04:41:36 +00:00
lcd-clip.h lcd-clip.h: mentions clipv2 2010-07-22 17:17:31 +00:00
lcd-fuze.c Fuze*/e200v2: remove unused lcd_set_contrast() 2010-07-14 06:48:36 +00:00
lcd-fuze.h Fuzev1/v2 : lcd_set_flip() 2010-05-29 13:43:18 +00:00
lcd-ssd1303.c Sansa clip+: fix display brightness for players with newer OLED controller type (and reorganise the variant detection a bit in the process) 2010-07-22 15:31:24 +00:00
memory-init.S Initial framework for the Sandisk Sansa Clip Zip 2011-08-27 16:21:19 +00:00
pcm-as3525.c Commit to certain names for cache coherency APIs and discard the aliases. 2011-12-17 07:27:24 +00:00
power-as3525.c ascodec-target.h: remove 2012-01-08 01:43:16 +00:00
powermgmt-target.h powermgmt-target.h: move prototypes to powermgmt.h 2012-01-07 22:32:52 +00:00
scrollwheel-as3525.c Fix FS#12351: The poweroff timer was not reset on scroll wheel activity for e200 and simulator. Thanks to Nick Peskett. 2011-10-28 17:23:40 +00:00
sd-as3525.c AS3525v1/2: Enable nested handling of interrupts 2012-01-08 22:29:25 +00:00
sd-as3525v2.c AS3525v1/2: Enable nested handling of interrupts 2012-01-08 22:29:25 +00:00
system-as3525.c AS3525v1/2: Enable nested handling of interrupts 2012-01-08 22:29:25 +00:00
system-target.h firewire/usb_remove/insert_int: move to system-target.h 2011-12-31 18:44:12 +00:00
timer-as3525.c AMS SoC's: Some register bit changes need interrupt protection: timer API and CGU_PERI. 2010-07-02 06:00:00 +00:00
tuner-as3525v2.c typo 2011-12-15 19:42:21 +00:00
usb-as3525.c Reorganise USB initialisation to not depend on a specific enumeration sequence, by Bartosz Fabianowski, with minor tweaks by Michael Sevakis (FS#12497) 2012-01-04 21:55:09 +00:00
usb-drv-as3525.c usb-target.h: remove 2011-12-31 18:44:55 +00:00
usb-drv-as3525.h Merge functionality of wakeups and semaphores-- fewer APIs and object types. semaphore_wait takes a timeout now so codecs and plugins have to be made incompatible. Don't make semaphores for targets not using them. 2011-03-02 08:49:38 +00:00