1/* linux/arch/arm/mach-s5pv210/include/mach/entry-macro.S 2 * 3 * Copyright (c) 2010 Samsung Electronics Co., Ltd. 4 * http://www.samsung.com/ 5 * 6 * Low-level IRQ helper macros for the Samsung S5PV210 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License version 2 as 10 * published by the Free Software Foundation. 11*/ 12 13#include <asm/hardware/vic.h> 14#include <mach/map.h> 15#include <plat/irqs.h> 16 17 .macro disable_fiq 18 .endm 19 20 .macro get_irqnr_preamble, base, tmp 21 ldr \base, =VA_VIC0 22 .endm 23 24 .macro arch_ret_to_user, tmp1, tmp2 25 .endm 26 27 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp 28 29 @ check the vic0 30 mov \irqnr, # S5P_IRQ_OFFSET + 31 31 ldr \irqstat, [ \base, # VIC_IRQ_STATUS ] 32 teq \irqstat, #0 33 34 @ otherwise try vic1 35 addeq \tmp, \base, #(VA_VIC1 - VA_VIC0) 36 addeq \irqnr, \irqnr, #32 37 ldreq \irqstat, [ \tmp, # VIC_IRQ_STATUS ] 38 teqeq \irqstat, #0 39 40 @ otherwise try vic2 41 addeq \tmp, \base, #(VA_VIC2 - VA_VIC0) 42 addeq \irqnr, \irqnr, #32 43 ldreq \irqstat, [ \tmp, # VIC_IRQ_STATUS ] 44 teqeq \irqstat, #0 45 46 @ otherwise try vic3 47 addeq \tmp, \base, #(VA_VIC3 - VA_VIC0) 48 addeq \irqnr, \irqnr, #32 49 ldreq \irqstat, [ \tmp, # VIC_IRQ_STATUS ] 50 teqeq \irqstat, #0 51 52 clzne \irqstat, \irqstat 53 subne \irqnr, \irqnr, \irqstat 54 .endm 55