📄 entry-macro.s
字号:
/* * include/asm-arm/arch-omap/entry-macro.S * * Low-level IRQ helper macros for OMAP-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. */#if defined(CONFIG_ARCH_OMAP1)#if defined(CONFIG_ARCH_OMAP730) && \ (defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX))#error "FIXME: OMAP730 doesn't support multiple-OMAP"#elif defined(CONFIG_ARCH_OMAP730)#define INT_IH2_IRQ INT_730_IH2_IRQ#elif defined(CONFIG_ARCH_OMAP15XX)#define INT_IH2_IRQ INT_1510_IH2_IRQ#elif defined(CONFIG_ARCH_OMAP16XX)#define INT_IH2_IRQ INT_1610_IH2_IRQ#else#warning "IH2 IRQ defaulted"#define INT_IH2_IRQ INT_1510_IH2_IRQ#endif .macro disable_fiq .endm .macro get_irqnr_and_base, irqnr, irqstat, base, tmp ldr \base, =IO_ADDRESS(OMAP_IH1_BASE) ldr \irqnr, [\base, #IRQ_ITR_REG_OFFSET] ldr \tmp, [\base, #IRQ_MIR_REG_OFFSET] mov \irqstat, #0xffffffff bic \tmp, \irqstat, \tmp tst \irqnr, \tmp beq 1510f ldr \irqnr, [\base, #IRQ_SIR_FIQ_REG_OFFSET] cmp \irqnr, #0 ldreq \irqnr, [\base, #IRQ_SIR_IRQ_REG_OFFSET] cmpeq \irqnr, #INT_IH2_IRQ ldreq \base, =IO_ADDRESS(OMAP_IH2_BASE) ldreq \irqnr, [\base, #IRQ_SIR_IRQ_REG_OFFSET] addeqs \irqnr, \irqnr, #321510: .endm#elif defined(CONFIG_ARCH_OMAP24XX)#include <asm/arch/omap24xx.h> .macro disable_fiq .endm .macro get_irqnr_and_base, irqnr, irqstat, base, tmp ldr \base, =VA_IC_BASE ldr \irqnr, [\base, #0x98] /* IRQ pending reg 1 */ cmp \irqnr, #0x0 bne 2222f ldr \irqnr, [\base, #0xb8] /* IRQ pending reg 2 */ cmp \irqnr, #0x0 bne 2222f ldr \irqnr, [\base, #0xd8] /* IRQ pending reg 3 */ cmp \irqnr, #0x02222: ldrne \irqnr, [\base, #IRQ_SIR_IRQ] .endm .macro irq_prio_table .endm#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -