From b1cffebf1029c87e1f1984d48463ee21093a6bc7 Mon Sep 17 00:00:00 2001 From: Rob Herring Date: Mon, 26 Nov 2012 15:05:48 -0600 Subject: ARM: GIC: remove direct use of gic_raise_softirq In preparation of moving gic code to drivers/irqchip, remove the direct platform dependencies on gic_raise_softirq. Move the setup of smp_cross_call into the gic code and use arch_send_wakeup_ipi_mask function to trigger wake-up IPIs. Signed-off-by: Rob Herring Cc: Russell King Cc: Kukjin Kim Cc: Sascha Hauer Cc: David Brown Cc: Daniel Walker Cc: Bryan Huntsman Acked-by: Tony Lindgren Acked-by: Santosh Shilimkar Cc: Paul Mundt Cc: Magnus Damm Acked-by: Viresh Kumar Cc: Shiraz Hashim Acked-by: Stephen Warren Cc: Srinidhi Kasagar Cc: Linus Walleij Acked-by: Olof Johansson --- arch/arm/mach-msm/platsmp.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'arch/arm/mach-msm') diff --git a/arch/arm/mach-msm/platsmp.c b/arch/arm/mach-msm/platsmp.c index 7ed69b69c87c..e27e57b12274 100644 --- a/arch/arm/mach-msm/platsmp.c +++ b/arch/arm/mach-msm/platsmp.c @@ -115,7 +115,7 @@ static int __cpuinit msm_boot_secondary(unsigned int cpu, struct task_struct *id * the boot monitor to read the system wide flags register, * and branch to the address found there. */ - gic_raise_softirq(cpumask_of(cpu), 0); + arch_send_wakeup_ipi_mask(cpumask_of(cpu)); timeout = jiffies + (1 * HZ); while (time_before(jiffies, timeout)) { @@ -153,8 +153,6 @@ static void __init msm_smp_init_cpus(void) for (i = 0; i < ncores; i++) set_cpu_possible(i, true); - - set_smp_cross_call(gic_raise_softirq); } static void __init msm_smp_prepare_cpus(unsigned int max_cpus) -- cgit v1.2.3 From 1d5cc604f42ff1acdec0407247b2f720135ba0c2 Mon Sep 17 00:00:00 2001 From: Rob Herring Date: Tue, 20 Nov 2012 19:52:32 -0600 Subject: ARM: remove mach .handle_irq for GIC users Now that the GIC initialization sets up the handle_arch_irq pointer, we can remove it for all machines and make it static. Signed-off-by: Rob Herring Cc: Russell King Cc: Anton Vorontsov Cc: Kyungmin Park Cc: Sascha Hauer Cc: David Brown Cc: Daniel Walker Cc: Bryan Huntsman Acked-by: Tony Lindgren Cc: Paul Mundt Cc: Magnus Damm Cc: Dinh Nguyen Cc: Shiraz Hashim Acked-by: Stephen Warren Cc: Srinidhi Kasagar Cc: Linus Walleij Acked-by: Viresh Kumar Acked-by: Kukjin Kim Acked-by: Shawn Guo Acked-by: Olof Johansson Acked-by: Arnd Bergmann --- arch/arm/common/gic.c | 2 +- arch/arm/include/asm/hardware/gic.h | 1 - arch/arm/kernel/smp_twd.c | 1 - arch/arm/mach-bcm/board_bcm.c | 1 - arch/arm/mach-cns3xxx/cns3420vb.c | 2 -- arch/arm/mach-exynos/mach-armlex4210.c | 2 -- arch/arm/mach-exynos/mach-exynos4-dt.c | 2 -- arch/arm/mach-exynos/mach-exynos5-dt.c | 2 -- arch/arm/mach-exynos/mach-nuri.c | 2 -- arch/arm/mach-exynos/mach-origen.c | 2 -- arch/arm/mach-exynos/mach-smdk4x12.c | 3 --- arch/arm/mach-exynos/mach-smdkv310.c | 3 --- arch/arm/mach-exynos/mach-universal_c210.c | 2 -- arch/arm/mach-exynos/mct.c | 1 - arch/arm/mach-highbank/highbank.c | 1 - arch/arm/mach-imx/common.h | 1 - arch/arm/mach-imx/mach-imx6q.c | 1 - arch/arm/mach-msm/board-dt-8660.c | 1 - arch/arm/mach-msm/board-dt-8960.c | 1 - arch/arm/mach-msm/timer.c | 1 - arch/arm/mach-omap2/board-4430sdp.c | 1 - arch/arm/mach-omap2/board-generic.c | 3 --- arch/arm/mach-omap2/board-omap4panda.c | 1 - arch/arm/mach-realview/core.c | 1 - arch/arm/mach-realview/realview_eb.c | 1 - arch/arm/mach-realview/realview_pb1176.c | 1 - arch/arm/mach-realview/realview_pb11mp.c | 1 - arch/arm/mach-realview/realview_pba8.c | 1 - arch/arm/mach-realview/realview_pbx.c | 1 - arch/arm/mach-shmobile/board-ag5evm.c | 1 - arch/arm/mach-shmobile/board-kota2.c | 1 - arch/arm/mach-shmobile/board-kzm9d.c | 2 -- arch/arm/mach-shmobile/board-kzm9g.c | 1 - arch/arm/mach-shmobile/board-marzen.c | 2 -- arch/arm/mach-shmobile/platsmp.c | 1 - arch/arm/mach-shmobile/setup-emev2.c | 1 - arch/arm/mach-socfpga/socfpga.c | 1 - arch/arm/mach-spear13xx/spear1310.c | 1 - arch/arm/mach-spear13xx/spear1340.c | 1 - arch/arm/mach-tegra/board-dt-tegra20.c | 3 --- arch/arm/mach-tegra/board-dt-tegra30.c | 2 -- arch/arm/mach-ux500/board-mop500.c | 5 ----- arch/arm/mach-ux500/cpu-db8500.c | 2 -- arch/arm/mach-vexpress/platsmp.c | 1 - arch/arm/mach-vexpress/v2m.c | 2 -- arch/arm/mach-zynq/common.c | 1 - 46 files changed, 1 insertion(+), 70 deletions(-) (limited to 'arch/arm/mach-msm') diff --git a/arch/arm/common/gic.c b/arch/arm/common/gic.c index 4b4ccf31e083..90eebfeae039 100644 --- a/arch/arm/common/gic.c +++ b/arch/arm/common/gic.c @@ -276,7 +276,7 @@ static int gic_set_wake(struct irq_data *d, unsigned int on) #define gic_set_wake NULL #endif -asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs) +static asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs) { u32 irqstat, irqnr; struct gic_chip_data *gic = &gic_data[0]; diff --git a/arch/arm/include/asm/hardware/gic.h b/arch/arm/include/asm/hardware/gic.h index cfd3a7eb453e..2a16e0305bd1 100644 --- a/arch/arm/include/asm/hardware/gic.h +++ b/arch/arm/include/asm/hardware/gic.h @@ -38,7 +38,6 @@ void gic_init_bases(unsigned int, int, void __iomem *, void __iomem *, u32 offset, struct device_node *); int gic_of_init(struct device_node *node, struct device_node *parent); void gic_secondary_init(unsigned int); -void gic_handle_irq(struct pt_regs *regs); void gic_cascade_irq(unsigned int gic_nr, unsigned int irq); static inline void gic_init(unsigned int nr, int start, diff --git a/arch/arm/kernel/smp_twd.c b/arch/arm/kernel/smp_twd.c index 49f335d301ba..dc9bb0146665 100644 --- a/arch/arm/kernel/smp_twd.c +++ b/arch/arm/kernel/smp_twd.c @@ -24,7 +24,6 @@ #include #include -#include /* set up by the platform code */ static void __iomem *twd_base; diff --git a/arch/arm/mach-bcm/board_bcm.c b/arch/arm/mach-bcm/board_bcm.c index 3a62f1b1cabc..6ad83d7f9517 100644 --- a/arch/arm/mach-bcm/board_bcm.c +++ b/arch/arm/mach-bcm/board_bcm.c @@ -53,5 +53,4 @@ DT_MACHINE_START(BCM11351_DT, "Broadcom Application Processor") .timer = &timer, .init_machine = board_init, .dt_compat = bcm11351_dt_compat, - .handle_irq = gic_handle_irq, MACHINE_END diff --git a/arch/arm/mach-cns3xxx/cns3420vb.c b/arch/arm/mach-cns3xxx/cns3420vb.c index ae305397003c..26f36d7efecd 100644 --- a/arch/arm/mach-cns3xxx/cns3420vb.c +++ b/arch/arm/mach-cns3xxx/cns3420vb.c @@ -28,7 +28,6 @@ #include #include #include -#include #include #include #include @@ -251,7 +250,6 @@ MACHINE_START(CNS3420VB, "Cavium Networks CNS3420 Validation Board") .map_io = cns3420_map_io, .init_irq = cns3xxx_init_irq, .timer = &cns3xxx_timer, - .handle_irq = gic_handle_irq, .init_machine = cns3420_init, .restart = cns3xxx_restart, MACHINE_END diff --git a/arch/arm/mach-exynos/mach-armlex4210.c b/arch/arm/mach-exynos/mach-armlex4210.c index b938f9fc1dd1..a11a36fc7bf5 100644 --- a/arch/arm/mach-exynos/mach-armlex4210.c +++ b/arch/arm/mach-exynos/mach-armlex4210.c @@ -16,7 +16,6 @@ #include #include -#include #include #include @@ -201,7 +200,6 @@ MACHINE_START(ARMLEX4210, "ARMLEX4210") .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = armlex4210_map_io, - .handle_irq = gic_handle_irq, .init_machine = armlex4210_machine_init, .init_late = exynos_init_late, .timer = &exynos4_timer, diff --git a/arch/arm/mach-exynos/mach-exynos4-dt.c b/arch/arm/mach-exynos/mach-exynos4-dt.c index 92757ff817ae..34c45b6c8b2c 100644 --- a/arch/arm/mach-exynos/mach-exynos4-dt.c +++ b/arch/arm/mach-exynos/mach-exynos4-dt.c @@ -15,7 +15,6 @@ #include #include -#include #include #include @@ -107,7 +106,6 @@ DT_MACHINE_START(EXYNOS4210_DT, "Samsung Exynos4 (Flattened Device Tree)") .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = exynos4_dt_map_io, - .handle_irq = gic_handle_irq, .init_machine = exynos4_dt_machine_init, .init_late = exynos_init_late, .timer = &exynos4_timer, diff --git a/arch/arm/mach-exynos/mach-exynos5-dt.c b/arch/arm/mach-exynos/mach-exynos5-dt.c index e99d3d8f2bcf..3a3bee463c46 100644 --- a/arch/arm/mach-exynos/mach-exynos5-dt.c +++ b/arch/arm/mach-exynos/mach-exynos5-dt.c @@ -16,7 +16,6 @@ #include #include -#include #include #include @@ -179,7 +178,6 @@ DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG EXYNOS5 (Flattened Device Tree)") .init_irq = exynos5_init_irq, .smp = smp_ops(exynos_smp_ops), .map_io = exynos5_dt_map_io, - .handle_irq = gic_handle_irq, .init_machine = exynos5_dt_machine_init, .init_late = exynos_init_late, .timer = &exynos4_timer, diff --git a/arch/arm/mach-exynos/mach-nuri.c b/arch/arm/mach-exynos/mach-nuri.c index 27d4ed8b116e..55f8183e1d6f 100644 --- a/arch/arm/mach-exynos/mach-nuri.c +++ b/arch/arm/mach-exynos/mach-nuri.c @@ -39,7 +39,6 @@ #include #include -#include #include #include @@ -1379,7 +1378,6 @@ MACHINE_START(NURI, "NURI") .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = nuri_map_io, - .handle_irq = gic_handle_irq, .init_machine = nuri_machine_init, .init_late = exynos_init_late, .timer = &exynos4_timer, diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c index 5e34b9c16196..45cda369923e 100644 --- a/arch/arm/mach-exynos/mach-origen.c +++ b/arch/arm/mach-exynos/mach-origen.c @@ -29,7 +29,6 @@ #include #include -#include #include #include