]> err.no Git - linux-2.6/commitdiff
[ARM] 4688/1: at91: speed-up irq processing
authorMarc Pignat <marc.pignat@hevs.ch>
Mon, 3 Dec 2007 11:58:24 +0000 (12:58 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 26 Jan 2008 15:00:30 +0000 (15:00 +0000)
Save N instructions on every interrupt processing (where N is the
number of interrupts processed in any one IRQ exception).

Signed-off-by: Marc Pignat <marc.pignat@hevs.ch>
Acked-by: Andrew Victor <andrew@sanpeople.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
include/asm-arm/arch-at91/entry-macro.S

index cc1d850a0788012574c2c44310245789a8b1fbb5..1005eee6219b410da4f384b5879c40e011abb50e 100644 (file)
        .endm
 
        .macro  get_irqnr_preamble, base, tmp
+       ldr     \base, =(AT91_VA_BASE_SYS + AT91_AIC)           @ base virtual address of AIC peripheral
        .endm
 
        .macro  arch_ret_to_user, tmp1, tmp2
        .endm
 
        .macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
-       ldr     \base, =(AT91_VA_BASE_SYS + AT91_AIC)           @ base virtual address of AIC peripheral
        ldr     \irqnr, [\base, #(AT91_AIC_IVR - AT91_AIC)]     @ read IRQ vector register: de-asserts nIRQ to processor (and clears interrupt)
        ldr     \irqstat, [\base, #(AT91_AIC_ISR - AT91_AIC)]   @ read interrupt source number
        teq     \irqstat, #0                                    @ ISR is 0 when no current interrupt, or spurious interrupt