From 5bb4306f33f423fef4f513495e7622224a795ea1 Mon Sep 17 00:00:00 2001 From: funman Date: Wed, 19 May 2010 12:11:54 +0000 Subject: [PATCH] as3525: reorder vectored interrupts The list is ordered by priority, put the DMA and SD interrupts at the top This seems to fix the random freezes on heavy storage operation like building database or pictureflow cache The recently added audio interrupt had a priority higher than SD slot on as3525v1, give it a lower priority git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26160 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/as3525/system-as3525.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/firmware/target/arm/as3525/system-as3525.c b/firmware/target/arm/as3525/system-as3525.c index ae7c71d93..0bb8c4ce9 100644 --- a/firmware/target/arm/as3525/system-as3525.c +++ b/firmware/target/arm/as3525/system-as3525.c @@ -108,22 +108,24 @@ struct vec_int_src /* Vectored interrupts (16 available) */ struct vec_int_src vec_int_srcs[] = { - { INT_SRC_TIMER1, INT_TIMER1 }, - { INT_SRC_TIMER2, INT_TIMER2 }, + /* Highest priority at the top of the list */ { INT_SRC_DMAC, INT_DMAC }, { INT_SRC_NAND, INT_NAND }, - { INT_SRC_I2C_AUDIO, INT_I2C_AUDIO }, - { INT_SRC_AUDIO, INT_AUDIO }, - { INT_SRC_USB, INT_USB, }, #if (defined HAVE_MULTIDRIVE && CONFIG_CPU == AS3525) { INT_SRC_MCI0, INT_MCI0 }, #endif -#ifdef HAVE_HOTSWAP - { INT_SRC_GPIOA, INT_GPIOA, }, -#endif + { INT_SRC_USB, INT_USB, }, #ifdef HAVE_RECORDING { INT_SRC_I2SIN, INT_I2SIN, }, #endif + { INT_SRC_TIMER1, INT_TIMER1 }, + { INT_SRC_TIMER2, INT_TIMER2 }, + { INT_SRC_I2C_AUDIO, INT_I2C_AUDIO }, + { INT_SRC_AUDIO, INT_AUDIO }, +#ifdef HAVE_HOTSWAP + { INT_SRC_GPIOA, INT_GPIOA, }, +#endif + /* Lowest priority at the end of the list */ }; static void setup_vic(void) -- 2.11.4.GIT