summaryrefslogtreecommitdiff
path: root/firmware/target/arm/as3525/system-as3525.c
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2010-05-24 14:32:38 +0000
committerRafaël Carré <rafael.carre@gmail.com>2010-05-24 14:32:38 +0000
commit8d1ec38a1d8721330798dbfc55be456ecd964bdf (patch)
treebd2e60a6421cf8f3ed24d093374a617ebf0b14ed /firmware/target/arm/as3525/system-as3525.c
parent9c13b6e7c68776f930867c038fb3ad006a4ea8ab (diff)
downloadrockbox-8d1ec38a1d8721330798dbfc55be456ecd964bdf.tar.gz
rockbox-8d1ec38a1d8721330798dbfc55be456ecd964bdf.zip
as3525: show unmasked interrupts on unhandled IRQ
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26250 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/as3525/system-as3525.c')
-rw-r--r--firmware/target/arm/as3525/system-as3525.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/firmware/target/arm/as3525/system-as3525.c b/firmware/target/arm/as3525/system-as3525.c
index 44e210a3cc..80804d41da 100644
--- a/firmware/target/arm/as3525/system-as3525.c
+++ b/firmware/target/arm/as3525/system-as3525.c
@@ -88,7 +88,13 @@ static const char * const irqname[] =
88static void UIRQ(void) 88static void UIRQ(void)
89{ 89{
90 unsigned int irq_no = 0; 90 unsigned int irq_no = 0;
91 bool masked = false;
91 int status = VIC_IRQ_STATUS; 92 int status = VIC_IRQ_STATUS;
93 if(status == 0)
94 {
95 status = VIC_RAW_INTR; /* masked interrupts */
96 masked = true;
97 }
92 98
93 if(status == 0) 99 if(status == 0)
94 panicf("Unhandled IRQ (source unknown!)"); 100 panicf("Unhandled IRQ (source unknown!)");
@@ -96,7 +102,8 @@ static void UIRQ(void)
96 while((status >>= 1)) 102 while((status >>= 1))
97 irq_no++; 103 irq_no++;
98 104
99 panicf("Unhandled IRQ %02X: %s", irq_no, irqname[irq_no]); 105 panicf("Unhandled %smasked IRQ %02X: %s (status 0x%8X)",
106 masked ? "" : "no", irq_no, irqname[irq_no], status);
100} 107}
101 108
102struct vec_int_src 109struct vec_int_src