ns9xxx: Use get_irqnr_preamble to initialize base register
authorUwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
Tue, 16 Oct 2007 06:03:00 +0000 (08:03 +0200)
committerUwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
Mon, 31 Mar 2008 06:17:01 +0000 (08:17 +0200)
This patch optimizes the irq handling a bit.  Now the base register is only
computed once if more than one irq is pending.

Signed-off-by: Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
include/asm-arm/arch-ns9xxx/entry-macro.S

index 86aec87303e46c2d2b1be533348d6d745f050731..5c706dd2379c8035805a80e0e562e86412d77fc9 100644 (file)
 #include <asm/arch-ns9xxx/regs-sys.h>
 
                .macro  get_irqnr_preamble, base, tmp
+               ldr     \base, =SYS_ISRADDR
                .endm
 
                .macro  arch_ret_to_user, tmp1, tmp2
                .endm
 
                .macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
-               ldr     \base, =SYS_ISRADDR
                ldr     \irqstat, [\base, #(SYS_ISA - SYS_ISRADDR)]
                cmp     \irqstat, #0
                ldrne   \irqnr, [\base]