summaryrefslogtreecommitdiff
path: root/firmware/target/arm/imx233/icoll-imx233.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/imx233/icoll-imx233.c')
-rw-r--r--firmware/target/arm/imx233/icoll-imx233.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/firmware/target/arm/imx233/icoll-imx233.c b/firmware/target/arm/imx233/icoll-imx233.c
index e42e0f3291..e23af602db 100644
--- a/firmware/target/arm/imx233/icoll-imx233.c
+++ b/firmware/target/arm/imx233/icoll-imx233.c
@@ -146,6 +146,7 @@ struct imx233_icoll_irq_info_t imx233_icoll_get_irq_info(int src)
146 146
147static void do_irq_stat(void) 147static void do_irq_stat(void)
148{ 148{
149 imx233_keep_alive();
149 static unsigned counter = 0; 150 static unsigned counter = 0;
150 if(counter++ >= HZ) 151 if(counter++ >= HZ)
151 { 152 {
@@ -180,6 +181,8 @@ void irq_handler(void)
180 asm volatile( 181 asm volatile(
181 "sub lr, lr, #4 \n" /* Create return address */ 182 "sub lr, lr, #4 \n" /* Create return address */
182 "stmfd sp!, { r0-r5, r12, lr } \n" /* Save what gets clobbered */ 183 "stmfd sp!, { r0-r5, r12, lr } \n" /* Save what gets clobbered */
184 "ldr r5, =0x8001c290 \n" /* Save pointer to instruction */
185 "str lr, [r5] \n" /* in HW_DIGCTL_SCRATCH0 */
183 "ldr r4, =0x80000000 \n" /* Read HW_ICOLL_VECTOR */ 186 "ldr r4, =0x80000000 \n" /* Read HW_ICOLL_VECTOR */
184 "ldr r0, [r4] \n" /* and notify as side-effect */ 187 "ldr r0, [r4] \n" /* and notify as side-effect */
185 "mrs lr, spsr \n" /* Save SPSR_irq */ 188 "mrs lr, spsr \n" /* Save SPSR_irq */