Path: blob/master/arch/arm/mach-integrator/include/mach/entry-macro.S
15162 views
/*1* arch/arm/mach-integrator/include/mach/entry-macro.S2*3* Low-level IRQ helper macros for Integrator platforms4*5* This file is licensed under the terms of the GNU General Public6* License version 2. This program is licensed "as is" without any7* warranty of any kind, whether express or implied.8*/9#include <mach/hardware.h>10#include <mach/platform.h>11#include <mach/irqs.h>1213.macro disable_fiq14.endm1516.macro get_irqnr_preamble, base, tmp17.endm1819.macro arch_ret_to_user, tmp1, tmp220.endm2122.macro get_irqnr_and_base, irqnr, irqstat, base, tmp23/* FIXME: should not be using soo many LDRs here */24ldr \base, =IO_ADDRESS(INTEGRATOR_IC_BASE)25mov \irqnr, #IRQ_PIC_START26ldr \irqstat, [\base, #IRQ_STATUS] @ get masked status27ldr \base, =IO_ADDRESS(INTEGRATOR_HDR_BASE)28teq \irqstat, #029ldreq \irqstat, [\base, #(INTEGRATOR_HDR_IC_OFFSET+IRQ_STATUS)]30moveq \irqnr, #IRQ_CIC_START31321001: tst \irqstat, #1533bne 1002f34add \irqnr, \irqnr, #435movs \irqstat, \irqstat, lsr #436bne 1001b371002: tst \irqstat, #138bne 1003f39add \irqnr, \irqnr, #140movs \irqstat, \irqstat, lsr #141bne 1002b421003: /* EQ will be set if no irqs pending */43.endm44454647