diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2010-05-03 07:48:00 +0000 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2010-05-03 07:48:00 +0000 |
commit | b3f1eb8bbafdac59f2f532adaae97debbcf48a9b (patch) | |
tree | 512da535bd61496651d33936b12d916a6769799b /firmware/target/arm/imx31 | |
parent | bc90a616c3f1425c75289a9f1d4d9f1170af33a2 (diff) |
Gigabeat S: Those odd calls to irq_handler can still happen rarely after executing WFI. With no explanation forthcoming after trying many things, hide head in sand and ignore them and the IRQ will get vectored to the correct handler anyway. Have vector tables execute an immediate return and remove irq_handler from compilation altogether.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25792 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/imx31')
-rw-r--r-- | firmware/target/arm/imx31/avic-imx31.c | 2 | ||||
-rw-r--r-- | firmware/target/arm/imx31/crt0.S | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/firmware/target/arm/imx31/avic-imx31.c b/firmware/target/arm/imx31/avic-imx31.c index c8bf419bcd..51ba14d0b3 100644 --- a/firmware/target/arm/imx31/avic-imx31.c +++ b/firmware/target/arm/imx31/avic-imx31.c @@ -66,6 +66,7 @@ void UIE_VECTOR(void) offset >= 0 ? avic_int_names[offset] : "<Unknown>"); } +#if 0 /* We use the AVIC */ void __attribute__((interrupt("IRQ"))) irq_handler(void) { @@ -85,6 +86,7 @@ void __attribute__((interrupt("IRQ"))) irq_handler(void) panicf("Unhandled IRQ %d in irq_handler: %s", offset, offset >= 0 ? avic_int_names[offset] : "<Unknown>"); } +#endif /* 0 */ /* Accoring to section 9.3.5 of the UM, the AVIC doesn't accelerate * fast interrupts and they must be dispatched */ diff --git a/firmware/target/arm/imx31/crt0.S b/firmware/target/arm/imx31/crt0.S index 0841cb9276..3a0a0041d4 100644 --- a/firmware/target/arm/imx31/crt0.S +++ b/firmware/target/arm/imx31/crt0.S @@ -32,7 +32,7 @@ start: b prefetch_abort_handler b data_abort_handler b reserved_handler - b irq_handler + subs pc, lr, #4 @ b irq_handler b fiq_handler .balign 0x40, 0x6B @@ -322,7 +322,7 @@ remap_end: ldr pc, [pc, #24] ldr pc, [pc, #24] ldr pc, [pc, #24] - ldr pc, [pc, #24] + subs pc, lr, #4 @ ldr pc, [pc, #24] ldr pc, [pc, #24] .word newstart .word undef_instr_handler @@ -330,7 +330,7 @@ remap_end: .word prefetch_abort_handler .word data_abort_handler .word reserved_handler - .word irq_handler + .word 0 @ irq_handler .word fiq_handler #endif /* BOOTLOADER */ |