diff options
Diffstat (limited to 'firmware/target/mips/ingenic_jz47xx/system-jz4740.c')
-rw-r--r-- | firmware/target/mips/ingenic_jz47xx/system-jz4740.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/firmware/target/mips/ingenic_jz47xx/system-jz4740.c b/firmware/target/mips/ingenic_jz47xx/system-jz4740.c index bde8e1df6a..f733582d70 100644 --- a/firmware/target/mips/ingenic_jz47xx/system-jz4740.c +++ b/firmware/target/mips/ingenic_jz47xx/system-jz4740.c | |||
@@ -27,7 +27,6 @@ | |||
27 | #include "system-target.h" | 27 | #include "system-target.h" |
28 | #include <string.h> | 28 | #include <string.h> |
29 | #include "kernel.h" | 29 | #include "kernel.h" |
30 | #include "system.h" | ||
31 | 30 | ||
32 | #define NUM_DMA 6 | 31 | #define NUM_DMA 6 |
33 | #define NUM_GPIO 128 | 32 | #define NUM_GPIO 128 |
@@ -323,15 +322,26 @@ static int get_irq_number(void) | |||
323 | return irq; | 322 | return irq; |
324 | } | 323 | } |
325 | 324 | ||
325 | static bool intr_mode = false; | ||
326 | |||
327 | bool in_interrupt_mode(void) | ||
328 | { | ||
329 | return intr_mode; | ||
330 | } | ||
331 | |||
326 | void intr_handler(void) | 332 | void intr_handler(void) |
327 | { | 333 | { |
328 | irq = get_irq_number(); /* irq is defined static at UIRQ() */ | 334 | int irq = get_irq_number(); |
329 | if(UNLIKELY(irq < 0)) | 335 | if(irq < 0) |
330 | return; | 336 | return; |
331 | 337 | ||
332 | ack_irq(irq); | 338 | ack_irq(irq); |
333 | if(LIKELY(irq > 0)) | 339 | if(irq > 0) |
340 | { | ||
341 | intr_mode = true; | ||
334 | irqvector[irq-1](); | 342 | irqvector[irq-1](); |
343 | intr_mode = false; | ||
344 | } | ||
335 | } | 345 | } |
336 | 346 | ||
337 | #define EXC(x,y) if(_cause == (x)) return (y); | 347 | #define EXC(x,y) if(_cause == (x)) return (y); |
@@ -368,6 +378,7 @@ void exception_handler(void* stack_ptr, unsigned int cause, unsigned int epc) | |||
368 | 378 | ||
369 | static const int FR2n[] = {1, 2, 3, 4, 6, 8, 12, 16, 24, 32}; | 379 | static const int FR2n[] = {1, 2, 3, 4, 6, 8, 12, 16, 24, 32}; |
370 | static unsigned int iclk; | 380 | static unsigned int iclk; |
381 | |||
371 | static void detect_clock(void) | 382 | static void detect_clock(void) |
372 | { | 383 | { |
373 | unsigned int cfcr, pllout; | 384 | unsigned int cfcr, pllout; |