-#ifdef CONFIG_USE_IRQ
-int interrupt_init (void)
-{
- unsigned long cpsr;
-
- /*
- * setup up stacks if necessary
- */
- IRQ_STACK_START = gd->irq_sp - 4;
- IRQ_STACK_START_IN = gd->irq_sp + 8;
- FIQ_STACK_START = IRQ_STACK_START - CONFIG_STACKSIZE_IRQ;
-
-
- __asm__ __volatile__("mrs %0, cpsr\n"
- : "=r" (cpsr)
- :
- : "memory");
-
- __asm__ __volatile__("msr cpsr_c, %0\n"
- "mov sp, %1\n"
- :
- : "r" (IRQ_MODE | I_BIT | F_BIT | (cpsr & ~FIQ_MODE)),
- "r" (IRQ_STACK_START)
- : "memory");
-
- __asm__ __volatile__("msr cpsr_c, %0\n"
- "mov sp, %1\n"
- :
- : "r" (FIQ_MODE | I_BIT | F_BIT | (cpsr & ~IRQ_MODE)),
- "r" (FIQ_STACK_START)
- : "memory");
-
- __asm__ __volatile__("msr cpsr_c, %0"
- :
- : "r" (cpsr)
- : "memory");
-
- return arch_interrupt_init();
-}
-
-/* enable IRQ interrupts */
-void enable_interrupts (void)
-{
- unsigned long temp;
- __asm__ __volatile__("mrs %0, cpsr\n"
- "bic %0, %0, #0x80\n"
- "msr cpsr_c, %0"
- : "=r" (temp)
- :
- : "memory");
-}
-
-
-/*
- * disable IRQ/FIQ interrupts
- * returns true if interrupts had been enabled before we disabled them
- */
-int disable_interrupts (void)
-{
- unsigned long old,temp;
- __asm__ __volatile__("mrs %0, cpsr\n"
- "orr %1, %0, #0xc0\n"
- "msr cpsr_c, %1"
- : "=r" (old), "=r" (temp)
- :
- : "memory");
- return (old & 0x80) == 0;
-}
-#else