diff options
author | Tony Lindgren <tony@atomide.com> | 2010-12-09 18:49:23 -0500 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2010-12-09 18:49:23 -0500 |
commit | 03a9e5126147c9f92aeba4b34f62b15b625087fb (patch) | |
tree | 6673d24a716ca01911b69f541b1c7bd56c0a827a /arch/arm/mach-omap1/include/mach | |
parent | cf7d7e5a1980d1116ee152d25dac382b112b9c17 (diff) |
omap1: Use asm_irq_flags for entry-macro.S
Initialize asm_irq_flags in omap_init_irq and use it in
get_irqnr_and_base to detect between omap7xx and omap15xx/16xx.
Note that both INT_1510_IH2_IRQ and INT_1510_IH2_IRQ are defined
as 0, so use INT_1510_IH2_IRQ for both of them.
Tested-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap1/include/mach')
-rw-r--r-- | arch/arm/mach-omap1/include/mach/entry-macro.S | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/arch/arm/mach-omap1/include/mach/entry-macro.S b/arch/arm/mach-omap1/include/mach/entry-macro.S index df9060edda28..c9be6d4d83e2 100644 --- a/arch/arm/mach-omap1/include/mach/entry-macro.S +++ b/arch/arm/mach-omap1/include/mach/entry-macro.S | |||
@@ -14,18 +14,17 @@ | |||
14 | #include <mach/irqs.h> | 14 | #include <mach/irqs.h> |
15 | #include <asm/hardware/gic.h> | 15 | #include <asm/hardware/gic.h> |
16 | 16 | ||
17 | #if (defined(CONFIG_ARCH_OMAP730)||defined(CONFIG_ARCH_OMAP850)) && \ | 17 | /* |
18 | (defined(CONFIG_ARCH_OMAP15XX) || defined(CONFIG_ARCH_OMAP16XX)) | 18 | * We use __glue to avoid errors with multiple definitions of |
19 | #error "FIXME: OMAP7XX doesn't support multiple-OMAP" | 19 | * .globl omap_irq_flags as it's included from entry-armv.S but not |
20 | #elif defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) | 20 | * from entry-common.S. |
21 | #define INT_IH2_IRQ INT_7XX_IH2_IRQ | 21 | */ |
22 | #elif defined(CONFIG_ARCH_OMAP15XX) | 22 | #ifdef __glue |
23 | #define INT_IH2_IRQ INT_1510_IH2_IRQ | 23 | .pushsection .data |
24 | #elif defined(CONFIG_ARCH_OMAP16XX) | 24 | .globl omap_irq_flags |
25 | #define INT_IH2_IRQ INT_1610_IH2_IRQ | 25 | omap_irq_flags: |
26 | #else | 26 | .word 0 |
27 | #warning "IH2 IRQ defaulted" | 27 | .popsection |
28 | #define INT_IH2_IRQ INT_1510_IH2_IRQ | ||
29 | #endif | 28 | #endif |
30 | 29 | ||
31 | .macro disable_fiq | 30 | .macro disable_fiq |
@@ -47,9 +46,11 @@ | |||
47 | beq 1510f | 46 | beq 1510f |
48 | 47 | ||
49 | ldr \irqnr, [\base, #IRQ_SIR_FIQ_REG_OFFSET] | 48 | ldr \irqnr, [\base, #IRQ_SIR_FIQ_REG_OFFSET] |
49 | ldr \tmp, =omap_irq_flags @ irq flags address | ||
50 | ldr \tmp, [\tmp, #0] @ irq flags value | ||
50 | cmp \irqnr, #0 | 51 | cmp \irqnr, #0 |
51 | ldreq \irqnr, [\base, #IRQ_SIR_IRQ_REG_OFFSET] | 52 | ldreq \irqnr, [\base, #IRQ_SIR_IRQ_REG_OFFSET] |
52 | cmpeq \irqnr, #INT_IH2_IRQ | 53 | cmpeq \irqnr, \tmp |
53 | ldreq \base, =OMAP1_IO_ADDRESS(OMAP_IH2_BASE) | 54 | ldreq \base, =OMAP1_IO_ADDRESS(OMAP_IH2_BASE) |
54 | ldreq \irqnr, [\base, #IRQ_SIR_IRQ_REG_OFFSET] | 55 | ldreq \irqnr, [\base, #IRQ_SIR_IRQ_REG_OFFSET] |
55 | addeqs \irqnr, \irqnr, #32 | 56 | addeqs \irqnr, \irqnr, #32 |