diff options
author | Rafaël Carré <rafael.carre@gmail.com> | 2010-05-19 12:11:54 +0000 |
---|---|---|
committer | Rafaël Carré <rafael.carre@gmail.com> | 2010-05-19 12:11:54 +0000 |
commit | 6f2afd36bc3ad1dfe6a747060e4575caa186c010 (patch) | |
tree | 3a774d0f8094d1c1a9d8b2190d6a73bbc5d96aa9 | |
parent | a53785911aeb37864eef81d3ec422645a04e4b0d (diff) | |
download | rockbox-6f2afd36bc3ad1dfe6a747060e4575caa186c010.tar.gz rockbox-6f2afd36bc3ad1dfe6a747060e4575caa186c010.zip |
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
-rw-r--r-- | firmware/target/arm/as3525/system-as3525.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/firmware/target/arm/as3525/system-as3525.c b/firmware/target/arm/as3525/system-as3525.c index ae7c71d939..0bb8c4ce95 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 | |||
108 | /* Vectored interrupts (16 available) */ | 108 | /* Vectored interrupts (16 available) */ |
109 | struct vec_int_src vec_int_srcs[] = | 109 | struct vec_int_src vec_int_srcs[] = |
110 | { | 110 | { |
111 | { INT_SRC_TIMER1, INT_TIMER1 }, | 111 | /* Highest priority at the top of the list */ |
112 | { INT_SRC_TIMER2, INT_TIMER2 }, | ||
113 | { INT_SRC_DMAC, INT_DMAC }, | 112 | { INT_SRC_DMAC, INT_DMAC }, |
114 | { INT_SRC_NAND, INT_NAND }, | 113 | { INT_SRC_NAND, INT_NAND }, |
115 | { INT_SRC_I2C_AUDIO, INT_I2C_AUDIO }, | ||
116 | { INT_SRC_AUDIO, INT_AUDIO }, | ||
117 | { INT_SRC_USB, INT_USB, }, | ||
118 | #if (defined HAVE_MULTIDRIVE && CONFIG_CPU == AS3525) | 114 | #if (defined HAVE_MULTIDRIVE && CONFIG_CPU == AS3525) |
119 | { INT_SRC_MCI0, INT_MCI0 }, | 115 | { INT_SRC_MCI0, INT_MCI0 }, |
120 | #endif | 116 | #endif |
121 | #ifdef HAVE_HOTSWAP | 117 | { INT_SRC_USB, INT_USB, }, |
122 | { INT_SRC_GPIOA, INT_GPIOA, }, | ||
123 | #endif | ||
124 | #ifdef HAVE_RECORDING | 118 | #ifdef HAVE_RECORDING |
125 | { INT_SRC_I2SIN, INT_I2SIN, }, | 119 | { INT_SRC_I2SIN, INT_I2SIN, }, |
126 | #endif | 120 | #endif |
121 | { INT_SRC_TIMER1, INT_TIMER1 }, | ||
122 | { INT_SRC_TIMER2, INT_TIMER2 }, | ||
123 | { INT_SRC_I2C_AUDIO, INT_I2C_AUDIO }, | ||
124 | { INT_SRC_AUDIO, INT_AUDIO }, | ||
125 | #ifdef HAVE_HOTSWAP | ||
126 | { INT_SRC_GPIOA, INT_GPIOA, }, | ||
127 | #endif | ||
128 | /* Lowest priority at the end of the list */ | ||
127 | }; | 129 | }; |
128 | 130 | ||
129 | static void setup_vic(void) | 131 | static void setup_vic(void) |