summaryrefslogtreecommitdiff
path: root/firmware/target/arm/as3525/system-as3525.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/as3525/system-as3525.c')
-rw-r--r--firmware/target/arm/as3525/system-as3525.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/firmware/target/arm/as3525/system-as3525.c b/firmware/target/arm/as3525/system-as3525.c
index af11d7d842..8aa2d02ab7 100644
--- a/firmware/target/arm/as3525/system-as3525.c
+++ b/firmware/target/arm/as3525/system-as3525.c
@@ -50,7 +50,9 @@
50#define default_interrupt(name) \ 50#define default_interrupt(name) \
51 extern __attribute__((weak,alias("UIRQ"))) void name (void) 51 extern __attribute__((weak,alias("UIRQ"))) void name (void)
52 52
53#if CONFIG_USBOTG != USBOTG_DESIGNWARE
53static void UIRQ (void) __attribute__((interrupt ("IRQ"))); 54static void UIRQ (void) __attribute__((interrupt ("IRQ")));
55#endif
54void irq_handler(void) __attribute__((naked, interrupt ("IRQ"))); 56void irq_handler(void) __attribute__((naked, interrupt ("IRQ")));
55void fiq_handler(void) __attribute__((interrupt ("FIQ"))); 57void fiq_handler(void) __attribute__((interrupt ("FIQ")));
56 58
@@ -105,6 +107,11 @@ static void UIRQ(void)
105 if(status == 0) 107 if(status == 0)
106 { 108 {
107 status = VIC_RAW_INTR; /* masked interrupts */ 109 status = VIC_RAW_INTR; /* masked interrupts */
110#if CONFIG_USBOTG == USBOTG_DESIGNWARE
111 /* spurious interrupts from USB are expected */
112 if (status & INTERRUPT_USB)
113 return;
114#endif
108 masked = true; 115 masked = true;
109 } 116 }
110 117