aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Zyngier <marc.zyngier@arm.com>2011-09-06 08:27:10 -0400
committerMarc Zyngier <marc.zyngier@arm.com>2011-11-15 13:14:02 -0500
commit08d33b27f7063ba2b4a29f9e3a2dcb65f30dec0b (patch)
treee338de68f8b56238b91d9979857be253310f0200
parentab65be268adaae59da5b1306b425a7859f955669 (diff)
ARM: GIC: Make MULTI_IRQ_HANDLER mandatory
Now that MULTI_IRQ_HANDLER is selected by all the in-tree GIC users, make it mandatory and remove the unused macros. Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
-rw-r--r--arch/arm/Kconfig6
-rw-r--r--arch/arm/common/Kconfig1
-rw-r--r--arch/arm/common/gic.c4
-rw-r--r--arch/arm/include/asm/hardware/entry-macro-gic.S60
-rw-r--r--arch/arm/include/asm/hardware/gic.h1
-rw-r--r--arch/arm/mach-msm/Kconfig2
-rw-r--r--arch/arm/mach-omap2/Kconfig1
-rw-r--r--arch/arm/mach-tegra/Kconfig1
-rw-r--r--arch/arm/mach-ux500/Kconfig1
-rw-r--r--arch/arm/plat-omap/Kconfig1
10 files changed, 2 insertions, 76 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index d99ee9ba2324..44789eff983f 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -278,7 +278,6 @@ config ARCH_REALVIEW
278 select ARM_TIMER_SP804 278 select ARM_TIMER_SP804
279 select GPIO_PL061 if GPIOLIB 279 select GPIO_PL061 if GPIOLIB
280 select NEED_MACH_MEMORY_H 280 select NEED_MACH_MEMORY_H
281 select MULTI_IRQ_HANDLER
282 help 281 help
283 This enables support for ARM Ltd RealView boards. 282 This enables support for ARM Ltd RealView boards.
284 283
@@ -311,7 +310,6 @@ config ARCH_VEXPRESS
311 select ICST 310 select ICST
312 select PLAT_VERSATILE 311 select PLAT_VERSATILE
313 select PLAT_VERSATILE_CLCD 312 select PLAT_VERSATILE_CLCD
314 select MULTI_IRQ_HANDLER
315 help 313 help
316 This enables support for the ARM Ltd Versatile Express boards. 314 This enables support for the ARM Ltd Versatile Express boards.
317 315
@@ -347,7 +345,6 @@ config ARCH_HIGHBANK
347 select GENERIC_CLOCKEVENTS 345 select GENERIC_CLOCKEVENTS
348 select HAVE_ARM_SCU 346 select HAVE_ARM_SCU
349 select USE_OF 347 select USE_OF
350 select MULTI_IRQ_HANDLER
351 help 348 help
352 Support for the Calxeda Highbank SoC based boards. 349 Support for the Calxeda Highbank SoC based boards.
353 350
@@ -366,7 +363,6 @@ config ARCH_CNS3XXX
366 select ARM_GIC 363 select ARM_GIC
367 select MIGHT_HAVE_PCI 364 select MIGHT_HAVE_PCI
368 select PCI_DOMAINS if PCI 365 select PCI_DOMAINS if PCI
369 select MULTI_IRQ_HANDLER
370 help 366 help
371 Support for Cavium Networks CNS3XXX platform. 367 Support for Cavium Networks CNS3XXX platform.
372 368
@@ -855,7 +851,6 @@ config ARCH_EXYNOS
855 select HAVE_S3C2410_I2C if I2C 851 select HAVE_S3C2410_I2C if I2C
856 select HAVE_S3C2410_WATCHDOG if WATCHDOG 852 select HAVE_S3C2410_WATCHDOG if WATCHDOG
857 select NEED_MACH_MEMORY_H 853 select NEED_MACH_MEMORY_H
858 select MULTI_IRQ_HANDLER
859 help 854 help
860 Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5) 855 Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
861 856
@@ -979,7 +974,6 @@ config ARCH_ZYNQ
979 select ARM_AMBA 974 select ARM_AMBA
980 select ICST 975 select ICST
981 select USE_OF 976 select USE_OF
982 select MULTI_IRQ_HANDLER
983 help 977 help
984 Support for Xilinx Zynq ARM Cortex A9 Platform 978 Support for Xilinx Zynq ARM Cortex A9 Platform
985endchoice 979endchoice
diff --git a/arch/arm/common/Kconfig b/arch/arm/common/Kconfig
index a3beda1213da..a11cee523cd4 100644
--- a/arch/arm/common/Kconfig
+++ b/arch/arm/common/Kconfig
@@ -1,5 +1,6 @@
1config ARM_GIC 1config ARM_GIC
2 select IRQ_DOMAIN 2 select IRQ_DOMAIN
3 select MULTI_IRQ_HANDLER
3 bool 4 bool
4 5
5config GIC_NON_BANKED 6config GIC_NON_BANKED
diff --git a/arch/arm/common/gic.c b/arch/arm/common/gic.c
index 3c78b7c60691..a1feb6b4f9f5 100644
--- a/arch/arm/common/gic.c
+++ b/arch/arm/common/gic.c
@@ -71,9 +71,6 @@ struct gic_chip_data {
71 71
72static DEFINE_RAW_SPINLOCK(irq_controller_lock); 72static DEFINE_RAW_SPINLOCK(irq_controller_lock);
73 73
74/* Address of GIC 0 CPU interface */
75void __iomem *gic_cpu_base_addr __read_mostly;
76
77/* 74/*
78 * Supported arch specific GIC irq extension. 75 * Supported arch specific GIC irq extension.
79 * Default make them NULL. 76 * Default make them NULL.
@@ -700,7 +697,6 @@ void __init gic_init_bases(unsigned int gic_nr, int irq_start,
700 * For secondary GICs, skip over PPIs, too. 697 * For secondary GICs, skip over PPIs, too.
701 */ 698 */
702 if (gic_nr == 0) { 699 if (gic_nr == 0) {
703 gic_cpu_base_addr = cpu_base;
704 domain->hwirq_base = 16; 700 domain->hwirq_base = 16;
705 if (irq_start > 0) 701 if (irq_start > 0)
706 irq_start = (irq_start & ~31) + 16; 702 irq_start = (irq_start & ~31) + 16;
diff --git a/arch/arm/include/asm/hardware/entry-macro-gic.S b/arch/arm/include/asm/hardware/entry-macro-gic.S
deleted file mode 100644
index 74ebc803904d..000000000000
--- a/arch/arm/include/asm/hardware/entry-macro-gic.S
+++ /dev/null
@@ -1,60 +0,0 @@
1/*
2 * arch/arm/include/asm/hardware/entry-macro-gic.S
3 *
4 * Low-level IRQ helper macros for GIC
5 *
6 * This file is licensed under the terms of the GNU General Public
7 * License version 2. This program is licensed "as is" without any
8 * warranty of any kind, whether express or implied.
9 */
10
11#include <asm/hardware/gic.h>
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
20/*
21 * The interrupt numbering scheme is defined in the
22 * interrupt controller spec. To wit:
23 *
24 * Interrupts 0-15 are IPI
25 * 16-31 are local. We allow 30 to be used for the watchdog.
26 * 32-1020 are global
27 * 1021-1022 are reserved
28 * 1023 is "spurious" (no interrupt)
29 *
30 * A simple read from the controller will tell us the number of the highest
31 * priority enabled interrupt. We then just need to check whether it is in the
32 * valid range for an IRQ (30-1020 inclusive).
33 */
34
35 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
36
37 ldr \irqstat, [\base, #GIC_CPU_INTACK]
38 /* bits 12-10 = src CPU, 9-0 = int # */
39
40 ldr \tmp, =1021
41 bic \irqnr, \irqstat, #0x1c00
42 cmp \irqnr, #15
43 cmpcc \irqnr, \irqnr
44 cmpne \irqnr, \tmp
45 cmpcs \irqnr, \irqnr
46 .endm
47
48/* We assume that irqstat (the raw value of the IRQ acknowledge
49 * register) is preserved from the macro above.
50 * If there is an IPI, we immediately signal end of interrupt on the
51 * controller, since this requires the original irqstat value which
52 * we won't easily be able to recreate later.
53 */
54
55 .macro test_for_ipi, irqnr, irqstat, base, tmp
56 bic \irqnr, \irqstat, #0x1c00
57 cmp \irqnr, #16
58 strcc \irqstat, [\base, #GIC_CPU_EOI]
59 cmpcs \irqnr, \irqnr
60 .endm
diff --git a/arch/arm/include/asm/hardware/gic.h b/arch/arm/include/asm/hardware/gic.h
index ecf7c02fa16c..4bdfe0018696 100644
--- a/arch/arm/include/asm/hardware/gic.h
+++ b/arch/arm/include/asm/hardware/gic.h
@@ -36,7 +36,6 @@
36#include <linux/irqdomain.h> 36#include <linux/irqdomain.h>
37struct device_node; 37struct device_node;
38 38
39extern void __iomem *gic_cpu_base_addr;
40extern struct irq_chip gic_arch_extn; 39extern struct irq_chip gic_arch_extn;
41 40
42void gic_init_bases(unsigned int, int, void __iomem *, void __iomem *, 41void gic_init_bases(unsigned int, int, void __iomem *, void __iomem *,
diff --git a/arch/arm/mach-msm/Kconfig b/arch/arm/mach-msm/Kconfig
index ba36b74881c6..ebde97f5d5f0 100644
--- a/arch/arm/mach-msm/Kconfig
+++ b/arch/arm/mach-msm/Kconfig
@@ -50,7 +50,6 @@ config ARCH_MSM8X60
50 select GPIO_MSM_V2 50 select GPIO_MSM_V2
51 select MSM_GPIOMUX 51 select MSM_GPIOMUX
52 select MSM_SCM if SMP 52 select MSM_SCM if SMP
53 select MULTI_IRQ_HANDLER
54 53
55config ARCH_MSM8960 54config ARCH_MSM8960
56 bool "MSM8960" 55 bool "MSM8960"
@@ -61,7 +60,6 @@ config ARCH_MSM8960
61 select MSM_V2_TLMM 60 select MSM_V2_TLMM
62 select MSM_GPIOMUX 61 select MSM_GPIOMUX
63 select MSM_SCM if SMP 62 select MSM_SCM if SMP
64 select MULTI_IRQ_HANDLER
65 63
66endchoice 64endchoice
67 65
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 9a6d81873426..22f7c97a2728 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -37,6 +37,7 @@ config ARCH_OMAP3
37 select ARCH_HAS_OPP 37 select ARCH_HAS_OPP
38 select PM_OPP if PM 38 select PM_OPP if PM
39 select ARM_CPU_SUSPEND if PM 39 select ARM_CPU_SUSPEND if PM
40 select MULTI_IRQ_HANDLER
40 41
41config ARCH_OMAP4 42config ARCH_OMAP4
42 bool "TI OMAP4" 43 bool "TI OMAP4"
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
index a6faa5033507..91aff7cb8284 100644
--- a/arch/arm/mach-tegra/Kconfig
+++ b/arch/arm/mach-tegra/Kconfig
@@ -13,7 +13,6 @@ config ARCH_TEGRA_2x_SOC
13 select USB_ARCH_HAS_EHCI if USB_SUPPORT 13 select USB_ARCH_HAS_EHCI if USB_SUPPORT
14 select USB_ULPI if USB_SUPPORT 14 select USB_ULPI if USB_SUPPORT
15 select USB_ULPI_VIEWPORT if USB_SUPPORT 15 select USB_ULPI_VIEWPORT if USB_SUPPORT
16 select MULTI_IRQ_HANDLER
17 help 16 help
18 Support for NVIDIA Tegra AP20 and T20 processors, based on the 17 Support for NVIDIA Tegra AP20 and T20 processors, based on the
19 ARM CortexA9MP CPU and the ARM PL310 L2 cache controller 18 ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig
index bb2b52b03904..a3e0c8692f0d 100644
--- a/arch/arm/mach-ux500/Kconfig
+++ b/arch/arm/mach-ux500/Kconfig
@@ -7,7 +7,6 @@ config UX500_SOC_COMMON
7 select HAS_MTU 7 select HAS_MTU
8 select ARM_ERRATA_753970 8 select ARM_ERRATA_753970
9 select ARM_ERRATA_754322 9 select ARM_ERRATA_754322
10 select MULTI_IRQ_HANDLER
11 10
12menu "Ux500 SoC" 11menu "Ux500 SoC"
13 12
diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig
index 4a1cc5891682..aa59f4247dc5 100644
--- a/arch/arm/plat-omap/Kconfig
+++ b/arch/arm/plat-omap/Kconfig
@@ -24,7 +24,6 @@ config ARCH_OMAP2PLUS
24 select CLKDEV_LOOKUP 24 select CLKDEV_LOOKUP
25 select GENERIC_IRQ_CHIP 25 select GENERIC_IRQ_CHIP
26 select OMAP_DM_TIMER 26 select OMAP_DM_TIMER
27 select MULTI_IRQ_HANDLER
28 help 27 help
29 "Systems based on OMAP2, OMAP3 or OMAP4" 28 "Systems based on OMAP2, OMAP3 or OMAP4"
30 29