Thank you to anyone who has already donated - your generous donations helped make three months of treatment possible.

My brother Nate continues to fight stage IV Hodgkin's lymphoma. He's just 31, with a wife and baby girl. They have no active income (since he's been unable to return to work), no insurance, and cannot afford the treatment he needs. Nate and his family need your help. Please consider a donation, every dollar helps. Thanks.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
commit af010a02e3eb5f6041cf1dd74f11eacbced07ba0
Author: Rafaël Carré <rafael.carre@gmail.com>
Date:   Wed May 19 10:23:31 2010 +0200

    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

diff --git a/firmware/target/arm/as3525/system-as3525.c b/firmware/target/arm/as3525/system-as3525.c
index ae7c71d..0bb8c4c 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)