diff options
| author | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-12-05 03:51:38 -0500 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-12-14 14:21:47 -0500 |
| commit | 7627dc802a98aebebc6a34e5b6558ea4717c968c (patch) | |
| tree | f1308e351f6f003a52b5939b7eece82f14a12c62 | |
| parent | bef8f9ee32511a28f1c9a7d3b8c51cdac030b564 (diff) | |
ARM: GIC: private a standard get_irqnr_preamble assembler macro
Provide a standard get_irqnr_preamble assembler macro for platforms
to use, which retrieves the base address of the GIC CPU interface
from gic_cpu_base_addr. Allow platforms to override this by defining
HAVE_GET_IRQNR_PREAMBLE.
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Tested-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| -rw-r--r-- | arch/arm/include/asm/hardware/entry-macro-gic.S | 7 | ||||
| -rw-r--r-- | arch/arm/mach-cns3xxx/include/mach/entry-macro.S | 5 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/include/mach/entry-macro.S | 1 | ||||
| -rw-r--r-- | arch/arm/mach-realview/include/mach/entry-macro.S | 5 | ||||
| -rw-r--r-- | arch/arm/mach-tegra/include/mach/entry-macro.S | 2 | ||||
| -rw-r--r-- | arch/arm/mach-ux500/include/mach/entry-macro.S | 1 | ||||
| -rw-r--r-- | arch/arm/mach-vexpress/include/mach/entry-macro.S | 5 |
7 files changed, 10 insertions, 16 deletions
diff --git a/arch/arm/include/asm/hardware/entry-macro-gic.S b/arch/arm/include/asm/hardware/entry-macro-gic.S index 05587f125a1..c115b82fe80 100644 --- a/arch/arm/include/asm/hardware/entry-macro-gic.S +++ b/arch/arm/include/asm/hardware/entry-macro-gic.S | |||
| @@ -10,6 +10,13 @@ | |||
| 10 | 10 | ||
| 11 | #include <asm/hardware/gic.h> | 11 | #include <asm/hardware/gic.h> |
| 12 | 12 | ||
| 13 | #ifndef HAVE_GET_IRQNR_PREAMBLE | ||
| 14 | .macro get_irqnr_preamble, base, tmp | ||
| 15 | ldr \base, =gic_cpu_base_addr | ||
| 16 | ldr \base, [\base] | ||
| 17 | .endm | ||
| 18 | #endif | ||
| 19 | |||
| 13 | /* | 20 | /* |
| 14 | * The interrupt numbering scheme is defined in the | 21 | * The interrupt numbering scheme is defined in the |
| 15 | * interrupt controller spec. To wit: | 22 | * interrupt controller spec. To wit: |
diff --git a/arch/arm/mach-cns3xxx/include/mach/entry-macro.S b/arch/arm/mach-cns3xxx/include/mach/entry-macro.S index e793c337672..6bd83ed90af 100644 --- a/arch/arm/mach-cns3xxx/include/mach/entry-macro.S +++ b/arch/arm/mach-cns3xxx/include/mach/entry-macro.S | |||
| @@ -14,10 +14,5 @@ | |||
| 14 | .macro disable_fiq | 14 | .macro disable_fiq |
| 15 | .endm | 15 | .endm |
| 16 | 16 | ||
| 17 | .macro get_irqnr_preamble, base, tmp | ||
| 18 | ldr \base, =gic_cpu_base_addr | ||
| 19 | ldr \base, [\base] | ||
| 20 | .endm | ||
| 21 | |||
| 22 | .macro arch_ret_to_user, tmp1, tmp2 | 17 | .macro arch_ret_to_user, tmp1, tmp2 |
| 23 | .endm | 18 | .endm |
diff --git a/arch/arm/mach-omap2/include/mach/entry-macro.S b/arch/arm/mach-omap2/include/mach/entry-macro.S index 2e358df3fe1..d54c4f89a8b 100644 --- a/arch/arm/mach-omap2/include/mach/entry-macro.S +++ b/arch/arm/mach-omap2/include/mach/entry-macro.S | |||
| @@ -170,6 +170,7 @@ omap_irq_base: .word 0 | |||
| 170 | 170 | ||
| 171 | 171 | ||
| 172 | #ifdef CONFIG_ARCH_OMAP4 | 172 | #ifdef CONFIG_ARCH_OMAP4 |
| 173 | #define HAVE_GET_IRQNR_PREAMBLE | ||
| 173 | #include <asm/hardware/entry-macro-gic.S> | 174 | #include <asm/hardware/entry-macro-gic.S> |
| 174 | 175 | ||
| 175 | .macro get_irqnr_preamble, base, tmp | 176 | .macro get_irqnr_preamble, base, tmp |
diff --git a/arch/arm/mach-realview/include/mach/entry-macro.S b/arch/arm/mach-realview/include/mach/entry-macro.S index 4417b103961..4071164aeba 100644 --- a/arch/arm/mach-realview/include/mach/entry-macro.S +++ b/arch/arm/mach-realview/include/mach/entry-macro.S | |||
| @@ -13,11 +13,6 @@ | |||
| 13 | .macro disable_fiq | 13 | .macro disable_fiq |
| 14 | .endm | 14 | .endm |
| 15 | 15 | ||
| 16 | .macro get_irqnr_preamble, base, tmp | ||
| 17 | ldr \base, =gic_cpu_base_addr | ||
| 18 | ldr \base, [\base] | ||
| 19 | .endm | ||
| 20 | |||
| 21 | .macro arch_ret_to_user, tmp1, tmp2 | 16 | .macro arch_ret_to_user, tmp1, tmp2 |
| 22 | .endm | 17 | .endm |
| 23 | 18 | ||
diff --git a/arch/arm/mach-tegra/include/mach/entry-macro.S b/arch/arm/mach-tegra/include/mach/entry-macro.S index dc092491518..dd165c53889 100644 --- a/arch/arm/mach-tegra/include/mach/entry-macro.S +++ b/arch/arm/mach-tegra/include/mach/entry-macro.S | |||
| @@ -16,7 +16,7 @@ | |||
| 16 | #include <mach/io.h> | 16 | #include <mach/io.h> |
| 17 | 17 | ||
| 18 | #if defined(CONFIG_ARM_GIC) | 18 | #if defined(CONFIG_ARM_GIC) |
| 19 | 19 | #define HAVE_GET_IRQNR_PREAMBLE | |
| 20 | #include <asm/hardware/entry-macro-gic.S> | 20 | #include <asm/hardware/entry-macro-gic.S> |
| 21 | 21 | ||
| 22 | /* Uses the GIC interrupt controller built into the cpu */ | 22 | /* Uses the GIC interrupt controller built into the cpu */ |
diff --git a/arch/arm/mach-ux500/include/mach/entry-macro.S b/arch/arm/mach-ux500/include/mach/entry-macro.S index 3cc3cdf5518..a37f585a3ec 100644 --- a/arch/arm/mach-ux500/include/mach/entry-macro.S +++ b/arch/arm/mach-ux500/include/mach/entry-macro.S | |||
| @@ -11,6 +11,7 @@ | |||
| 11 | * warranty of any kind, whether express or implied. | 11 | * warranty of any kind, whether express or implied. |
| 12 | */ | 12 | */ |
| 13 | #include <mach/hardware.h> | 13 | #include <mach/hardware.h> |
| 14 | #define HAVE_GET_IRQNR_PREAMBLE | ||
| 14 | #include <asm/hardware/entry-macro-gic.S> | 15 | #include <asm/hardware/entry-macro-gic.S> |
| 15 | 16 | ||
| 16 | .macro disable_fiq | 17 | .macro disable_fiq |
diff --git a/arch/arm/mach-vexpress/include/mach/entry-macro.S b/arch/arm/mach-vexpress/include/mach/entry-macro.S index 19d5ac8ba07..73c11297509 100644 --- a/arch/arm/mach-vexpress/include/mach/entry-macro.S +++ b/arch/arm/mach-vexpress/include/mach/entry-macro.S | |||
| @@ -3,10 +3,5 @@ | |||
| 3 | .macro disable_fiq | 3 | .macro disable_fiq |
| 4 | .endm | 4 | .endm |
| 5 | 5 | ||
| 6 | .macro get_irqnr_preamble, base, tmp | ||
| 7 | ldr \base, =gic_cpu_base_addr | ||
| 8 | ldr \base, [\base] | ||
| 9 | .endm | ||
| 10 | |||
| 11 | .macro arch_ret_to_user, tmp1, tmp2 | 6 | .macro arch_ret_to_user, tmp1, tmp2 |
| 12 | .endm | 7 | .endm |
