blob: 79adf83e2c3df7ceac93c0941a51c1a4a7fee05f [file] [log] [blame]
* arch/arm/mach-ixp4xx/include/mach/entry-macro.S
* Low-level IRQ helper macros for IXP4xx-based platforms
* This file is licensed under the terms of the GNU General Public
* License version 2. This program is licensed "as is" without any
* warranty of any kind, whether express or implied.
#include <mach/hardware.h>
.macro get_irqnr_preamble, base, tmp
.macro get_irqnr_and_base, irqnr, irqstat, base, tmp
ldr \irqstat, [\irqstat] @ get interrupts
cmp \irqstat, #0
beq 1001f @ upper IRQ?
clz \irqnr, \irqstat
mov \base, #31
sub \irqnr, \base, \irqnr
b 1002f @ lower IRQ being
@ handled
* IXP465/IXP435 has an upper IRQ status register
#if defined(CONFIG_CPU_IXP46X) || defined(CONFIG_CPU_IXP43X)
ldr \irqstat, [\irqstat] @ get upper interrupts
mov \irqnr, #63
clz \irqstat, \irqstat
cmp \irqstat, #32
subne \irqnr, \irqnr, \irqstat