Commit f8060f54 authored by Olof Johansson's avatar Olof Johansson

Merge tag 'gic-vic-to-irqchip' of git://sources.calxeda.com/kernel/linux into next/cleanup

From Rob Herring:

Initial irqchip init infrastructure and GIC and VIC clean-ups

This creates irqchip initialization infrastructure from Thomas
Petazzoni. The VIC and GIC irqchip code is moved to drivers/irqchips
and adapted to use the new infrastructure. All DT enabled platforms
using GIC and VIC are converted over to use the new irqchip_init.

* tag 'gic-vic-to-irqchip' of git://sources.calxeda.com/kernel/linux:
  irqchip: Move ARM vic.h to include/linux/irqchip/arm-vic.h
  ARM: picoxcell: use common irqchip_init function
  ARM: spear: use common irqchip_init function
  irqchip: Move ARM VIC to drivers/irqchip
  ARM: samsung: remove unused tick.h
  ARM: remove unneeded vic.h includes
  ARM: remove mach .handle_irq for VIC users
  ARM: VIC: set handle_arch_irq in VIC initialization
  ARM: VIC: shrink down vic.h
  irqchip: Move ARM gic.h to include/linux/irqchip/arm-gic.h
  ARM: use common irqchip_init for GIC init
  irqchip: Move ARM GIC to drivers/irqchip
  ARM: remove mach .handle_irq for GIC users
  ARM: GIC: set handle_arch_irq in GIC initialization
  ARM: GIC: remove direct use of gic_raise_softirq
  ARM: GIC: remove assembly ifdefs from gic.h
  ARM: mach-ux500: use SGI0 to wake up the other core
  arm: add set_handle_irq() to register the parent IRQ controller handler function
  irqchip: add basic infrastructure
  irqchip: add to the directories part of the IRQ subsystem in MAINTAINERS

Fixed up massive merge conflicts with the timer cleanup due to adjacent changes:
Signed-off-by: default avatarOlof Johansson <olof@lixom.net>

Conflicts:
	arch/arm/mach-bcm/board_bcm.c
	arch/arm/mach-cns3xxx/cns3420vb.c
	arch/arm/mach-ep93xx/adssphere.c
	arch/arm/mach-ep93xx/edb93xx.c
	arch/arm/mach-ep93xx/gesbc9312.c
	arch/arm/mach-ep93xx/micro9.c
	arch/arm/mach-ep93xx/simone.c
	arch/arm/mach-ep93xx/snappercl15.c
	arch/arm/mach-ep93xx/ts72xx.c
	arch/arm/mach-ep93xx/vision_ep9307.c
	arch/arm/mach-highbank/highbank.c
	arch/arm/mach-imx/mach-imx6q.c
	arch/arm/mach-msm/board-dt-8960.c
	arch/arm/mach-netx/nxdb500.c
	arch/arm/mach-netx/nxdkn.c
	arch/arm/mach-netx/nxeb500hmi.c
	arch/arm/mach-nomadik/board-nhk8815.c
	arch/arm/mach-picoxcell/common.c
	arch/arm/mach-realview/realview_eb.c
	arch/arm/mach-realview/realview_pb1176.c
	arch/arm/mach-realview/realview_pb11mp.c
	arch/arm/mach-realview/realview_pba8.c
	arch/arm/mach-realview/realview_pbx.c
	arch/arm/mach-socfpga/socfpga.c
	arch/arm/mach-spear13xx/spear1310.c
	arch/arm/mach-spear13xx/spear1340.c
	arch/arm/mach-spear13xx/spear13xx.c
	arch/arm/mach-spear3xx/spear300.c
	arch/arm/mach-spear3xx/spear310.c
	arch/arm/mach-spear3xx/spear320.c
	arch/arm/mach-spear3xx/spear3xx.c
	arch/arm/mach-spear6xx/spear6xx.c
	arch/arm/mach-tegra/board-dt-tegra20.c
	arch/arm/mach-tegra/board-dt-tegra30.c
	arch/arm/mach-u300/core.c
	arch/arm/mach-ux500/board-mop500.c
	arch/arm/mach-ux500/cpu-db8500.c
	arch/arm/mach-versatile/versatile_ab.c
	arch/arm/mach-versatile/versatile_dt.c
	arch/arm/mach-versatile/versatile_pb.c
	arch/arm/mach-vexpress/v2m.c
	include/asm-generic/vmlinux.lds.h
parents 175dbc1e 9e47b8bf
...@@ -4209,6 +4209,7 @@ M: Thomas Gleixner <tglx@linutronix.de> ...@@ -4209,6 +4209,7 @@ M: Thomas Gleixner <tglx@linutronix.de>
S: Maintained S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core
F: kernel/irq/ F: kernel/irq/
F: drivers/irqchip/
IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY) IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY)
M: Benjamin Herrenschmidt <benh@kernel.crashing.org> M: Benjamin Herrenschmidt <benh@kernel.crashing.org>
......
config ARM_GIC
bool
select IRQ_DOMAIN
select MULTI_IRQ_HANDLER
config GIC_NON_BANKED
bool
config ARM_VIC
bool
select IRQ_DOMAIN
select MULTI_IRQ_HANDLER
config ARM_VIC_NR
int
default 4 if ARCH_S5PV210
default 3 if ARCH_S5PC100
default 2
depends on ARM_VIC
help
The maximum number of VICs available in the system, for
power management.
config ICST config ICST
bool bool
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
# Makefile for the linux kernel. # Makefile for the linux kernel.
# #
obj-$(CONFIG_ARM_GIC) += gic.o
obj-$(CONFIG_ARM_VIC) += vic.o
obj-$(CONFIG_ICST) += icst.o obj-$(CONFIG_ICST) += icst.o
obj-$(CONFIG_SA1111) += sa1111.o obj-$(CONFIG_SA1111) += sa1111.o
obj-$(CONFIG_PCI_HOST_VIA82C505) += via82c505.o obj-$(CONFIG_PCI_HOST_VIA82C505) += via82c505.o
......
...@@ -22,6 +22,7 @@ extern int show_fiq_list(struct seq_file *, int); ...@@ -22,6 +22,7 @@ extern int show_fiq_list(struct seq_file *, int);
#ifdef CONFIG_MULTI_IRQ_HANDLER #ifdef CONFIG_MULTI_IRQ_HANDLER
extern void (*handle_arch_irq)(struct pt_regs *); extern void (*handle_arch_irq)(struct pt_regs *);
extern void set_handle_irq(void (*handle_irq)(struct pt_regs *));
#endif #endif
/* /*
......
...@@ -117,6 +117,16 @@ void __init init_IRQ(void) ...@@ -117,6 +117,16 @@ void __init init_IRQ(void)
machine_desc->init_irq(); machine_desc->init_irq();
} }
#ifdef CONFIG_MULTI_IRQ_HANDLER
void __init set_handle_irq(void (*handle_irq)(struct pt_regs *))
{
if (handle_arch_irq)
return;
handle_arch_irq = handle_irq;
}
#endif
#ifdef CONFIG_SPARSE_IRQ #ifdef CONFIG_SPARSE_IRQ
int __init arch_probe_nr_irqs(void) int __init arch_probe_nr_irqs(void)
{ {
......
...@@ -416,6 +416,7 @@ static void (*smp_cross_call)(const struct cpumask *, unsigned int); ...@@ -416,6 +416,7 @@ static void (*smp_cross_call)(const struct cpumask *, unsigned int);
void __init set_smp_cross_call(void (*fn)(const struct cpumask *, unsigned int)) void __init set_smp_cross_call(void (*fn)(const struct cpumask *, unsigned int))
{ {
if (!smp_cross_call)
smp_cross_call = fn; smp_cross_call = fn;
} }
......
...@@ -24,7 +24,6 @@ ...@@ -24,7 +24,6 @@
#include <asm/smp_twd.h> #include <asm/smp_twd.h>
#include <asm/localtimer.h> #include <asm/localtimer.h>
#include <asm/hardware/gic.h>
/* set up by the platform code */ /* set up by the platform code */
static void __iomem *twd_base; static void __iomem *twd_base;
......
...@@ -11,30 +11,19 @@ ...@@ -11,30 +11,19 @@
* GNU General Public License for more details. * GNU General Public License for more details.
*/ */
#include <linux/of_irq.h>
#include <linux/of_platform.h> #include <linux/of_platform.h>
#include <linux/init.h> #include <linux/init.h>
#include <linux/device.h> #include <linux/device.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/irqchip.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/hardware/gic.h>
#include <asm/mach/time.h> #include <asm/mach/time.h>
static const struct of_device_id irq_match[] = {
{.compatible = "arm,cortex-a9-gic", .data = gic_of_init, },
{}
};
static void timer_init(void) static void timer_init(void)
{ {
} }
static void __init init_irq(void)
{
of_irq_init(irq_match);
}
static void __init board_init(void) static void __init board_init(void)
{ {
...@@ -45,9 +34,8 @@ static void __init board_init(void) ...@@ -45,9 +34,8 @@ static void __init board_init(void)
static const char * const bcm11351_dt_compat[] = { "bcm,bcm11351", NULL, }; static const char * const bcm11351_dt_compat[] = { "bcm,bcm11351", NULL, };
DT_MACHINE_START(BCM11351_DT, "Broadcom Application Processor") DT_MACHINE_START(BCM11351_DT, "Broadcom Application Processor")
.init_irq = init_irq, .init_irq = irqchip_init,
.init_time = timer_init, .init_time = timer_init,
.init_machine = board_init, .init_machine = board_init,
.dt_compat = bcm11351_dt_compat, .dt_compat = bcm11351_dt_compat,
.handle_irq = gic_handle_irq,
MACHINE_END MACHINE_END
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
#include <linux/usb/ohci_pdriver.h> #include <linux/usb/ohci_pdriver.h>
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/hardware/gic.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/mach/time.h> #include <asm/mach/time.h>
...@@ -251,7 +250,6 @@ MACHINE_START(CNS3420VB, "Cavium Networks CNS3420 Validation Board") ...@@ -251,7 +250,6 @@ MACHINE_START(CNS3420VB, "Cavium Networks CNS3420 Validation Board")
.map_io = cns3420_map_io, .map_io = cns3420_map_io,
.init_irq = cns3xxx_init_irq, .init_irq = cns3xxx_init_irq,
.init_time = cns3xxx_timer_init, .init_time = cns3xxx_timer_init,
.handle_irq = gic_handle_irq,
.init_machine = cns3420_init, .init_machine = cns3420_init,
.restart = cns3xxx_restart, .restart = cns3xxx_restart,
MACHINE_END MACHINE_END
...@@ -12,10 +12,10 @@ ...@@ -12,10 +12,10 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/clockchips.h> #include <linux/clockchips.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/irqchip/arm-gic.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/mach/time.h> #include <asm/mach/time.h>
#include <asm/mach/irq.h> #include <asm/mach/irq.h>
#include <asm/hardware/gic.h>
#include <asm/hardware/cache-l2x0.h> #include <asm/hardware/cache-l2x0.h>
#include <mach/cns3xxx.h> #include <mach/cns3xxx.h>
#include "core.h" #include "core.h"
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/hardware/vic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
...@@ -39,7 +38,6 @@ MACHINE_START(ADSSPHERE, "ADS Sphere board") ...@@ -39,7 +38,6 @@ MACHINE_START(ADSSPHERE, "ADS Sphere board")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.handle_irq = vic_handle_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
.init_machine = adssphere_init_machine, .init_machine = adssphere_init_machine,
.init_late = ep93xx_init_late, .init_late = ep93xx_init_late,
......
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
#include <linux/i2c-gpio.h> #include <linux/i2c-gpio.h>
#include <linux/spi/spi.h> #include <linux/spi/spi.h>
#include <linux/export.h> #include <linux/export.h>
#include <linux/irqchip/arm-vic.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <linux/platform_data/video-ep93xx.h> #include <linux/platform_data/video-ep93xx.h>
...@@ -44,8 +45,6 @@ ...@@ -44,8 +45,6 @@
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/mach/time.h> #include <asm/mach/time.h>
#include <asm/hardware/vic.h>
#include "soc.h" #include "soc.h"
/************************************************************************* /*************************************************************************
......
...@@ -39,7 +39,6 @@ ...@@ -39,7 +39,6 @@
#include <linux/platform_data/spi-ep93xx.h> #include <linux/platform_data/spi-ep93xx.h>
#include <mach/gpio-ep93xx.h> #include <mach/gpio-ep93xx.h>
#include <asm/hardware/vic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
...@@ -276,7 +275,6 @@ MACHINE_START(EDB9301, "Cirrus Logic EDB9301 Evaluation Board") ...@@ -276,7 +275,6 @@ MACHINE_START(EDB9301, "Cirrus Logic EDB9301 Evaluation Board")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.handle_irq = vic_handle_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
.init_machine = edb93xx_init_machine, .init_machine = edb93xx_init_machine,
.init_late = ep93xx_init_late, .init_late = ep93xx_init_late,
...@@ -290,7 +288,6 @@ MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board") ...@@ -290,7 +288,6 @@ MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.handle_irq = vic_handle_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
.init_machine = edb93xx_init_machine, .init_machine = edb93xx_init_machine,
.init_late = ep93xx_init_late, .init_late = ep93xx_init_late,
...@@ -304,7 +301,6 @@ MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board") ...@@ -304,7 +301,6 @@ MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.handle_irq = vic_handle_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
.init_machine = edb93xx_init_machine, .init_machine = edb93xx_init_machine,
.init_late = ep93xx_init_late, .init_late = ep93xx_init_late,
...@@ -318,7 +314,6 @@ MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board") ...@@ -318,7 +314,6 @@ MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.handle_irq = vic_handle_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
.init_machine = edb93xx_init_machine, .init_machine = edb93xx_init_machine,
.init_late = ep93xx_init_late, .init_late = ep93xx_init_late,
...@@ -332,7 +327,6 @@ MACHINE_START(EDB9307A, "Cirrus Logic EDB9307A Evaluation Board") ...@@ -332,7 +327,6 @@ MACHINE_START(EDB9307A, "Cirrus Logic EDB9307A Evaluation Board")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.handle_irq = vic_handle_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
.init_machine = edb93xx_init_machine, .init_machine = edb93xx_init_machine,
.init_late = ep93xx_init_late, .init_late = ep93xx_init_late,
...@@ -346,7 +340,6 @@ MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board") ...@@ -346,7 +340,6 @@ MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.handle_irq = vic_handle_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
.init_machine = edb93xx_init_machine, .init_machine = edb93xx_init_machine,
.init_late = ep93xx_init_late, .init_late = ep93xx_init_late,
...@@ -360,7 +353,6 @@ MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board") ...@@ -360,7 +353,6 @@ MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.handle_irq = vic_handle_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
.init_machine = edb93xx_init_machine, .init_machine = edb93xx_init_machine,
.init_late = ep93xx_init_late, .init_late = ep93xx_init_late,
...@@ -374,7 +366,6 @@ MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board") ...@@ -374,7 +366,6 @@ MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.handle_irq = vic_handle_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
.init_machine = edb93xx_init_machine, .init_machine = edb93xx_init_machine,
.init_late = ep93xx_init_late, .init_late = ep93xx_init_late,
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/hardware/vic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
...@@ -39,7 +38,6 @@ MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx") ...@@ -39,7 +38,6 @@ MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.handle_irq = vic_handle_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
.init_machine = gesbc9312_init_machine, .init_machine = gesbc9312_init_machine,
.init_late = ep93xx_init_late, .init_late = ep93xx_init_late,
......
...@@ -18,7 +18,6 @@ ...@@ -18,7 +18,6 @@
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/hardware/vic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
...@@ -82,7 +81,6 @@ MACHINE_START(MICRO9, "Contec Micro9-High") ...@@ -82,7 +81,6 @@ MACHINE_START(MICRO9, "Contec Micro9-High")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.handle_irq = vic_handle_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
.init_machine = micro9_init_machine, .init_machine = micro9_init_machine,
.init_late = ep93xx_init_late, .init_late = ep93xx_init_late,
...@@ -96,7 +94,6 @@ MACHINE_START(MICRO9M, "Contec Micro9-Mid") ...@@ -96,7 +94,6 @@ MACHINE_START(MICRO9M, "Contec Micro9-Mid")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.handle_irq = vic_handle_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
.init_machine = micro9_init_machine, .init_machine = micro9_init_machine,
.init_late = ep93xx_init_late, .init_late = ep93xx_init_late,
...@@ -110,7 +107,6 @@ MACHINE_START(MICRO9L, "Contec Micro9-Lite") ...@@ -110,7 +107,6 @@ MACHINE_START(MICRO9L, "Contec Micro9-Lite")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.handle_irq = vic_handle_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
.init_machine = micro9_init_machine, .init_machine = micro9_init_machine,
.init_late = ep93xx_init_late, .init_late = ep93xx_init_late,
...@@ -124,7 +120,6 @@ MACHINE_START(MICRO9S, "Contec Micro9-Slim") ...@@ -124,7 +120,6 @@ MACHINE_START(MICRO9S, "Contec Micro9-Slim")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.handle_irq = vic_handle_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
.init_machine = micro9_init_machine, .init_machine = micro9_init_machine,
.init_late = ep93xx_init_late, .init_late = ep93xx_init_late,
......
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
#include <linux/platform_data/video-ep93xx.h> #include <linux/platform_data/video-ep93xx.h>
#include <mach/gpio-ep93xx.h> #include <mach/gpio-ep93xx.h>
#include <asm/hardware/vic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
...@@ -83,7 +82,6 @@ MACHINE_START(SIM_ONE, "Simplemachines Sim.One Board") ...@@ -83,7 +82,6 @@ MACHINE_START(SIM_ONE, "Simplemachines Sim.One Board")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.handle_irq = vic_handle_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
.init_machine = simone_init_machine, .init_machine = simone_init_machine,
.init_late = ep93xx_init_late, .init_late = ep93xx_init_late,
......
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
#include <linux/platform_data/video-ep93xx.h> #include <linux/platform_data/video-ep93xx.h>
#include <mach/gpio-ep93xx.h> #include <mach/gpio-ep93xx.h>
#include <asm/hardware/vic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
...@@ -176,7 +175,6 @@ MACHINE_START(SNAPPER_CL15, "Bluewater Systems Snapper CL15") ...@@ -176,7 +175,6 @@ MACHINE_START(SNAPPER_CL15, "Bluewater Systems Snapper CL15")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = ep93xx_map_io, .map_io = ep93xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.handle_irq = vic_handle_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
.init_machine = snappercl15_init_machine, .init_machine = snappercl15_init_machine,
.init_late = ep93xx_init_late, .init_late = ep93xx_init_late,
......
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/hardware/vic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
...@@ -246,7 +245,6 @@ MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC") ...@@ -246,7 +245,6 @@ MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = ts72xx_map_io, .map_io = ts72xx_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.handle_irq = vic_handle_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
.init_machine = ts72xx_init_machine, .init_machine = ts72xx_init_machine,
.init_late = ep93xx_init_late, .init_late = ep93xx_init_late,
......
...@@ -34,7 +34,6 @@ ...@@ -34,7 +34,6 @@
#include <linux/platform_data/spi-ep93xx.h> #include <linux/platform_data/spi-ep93xx.h>
#include <mach/gpio-ep93xx.h> #include <mach/gpio-ep93xx.h>
#include <asm/hardware/vic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
...@@ -364,7 +363,6 @@ MACHINE_START(VISION_EP9307, "Vision Engraving Systems EP9307") ...@@ -364,7 +363,6 @@ MACHINE_START(VISION_EP9307, "Vision Engraving Systems EP9307")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = vision_map_io, .map_io = vision_map_io,
.init_irq = ep93xx_init_irq, .init_irq = ep93xx_init_irq,
.handle_irq = vic_handle_irq,
.init_time = ep93xx_timer_init, .init_time = ep93xx_timer_init,
.init_machine = vision_init_machine, .init_machine = vision_init_machine,
.init_late = ep93xx_init_late, .init_late = ep93xx_init_late,
......
...@@ -22,12 +22,13 @@ ...@@ -22,12 +22,13 @@
#include <linux/of_irq.h> #include <linux/of_irq.h>
#include <linux/export.h> #include <linux/export.h>
#include <linux/irqdomain.h> #include <linux/irqdomain.h>
#include <linux/irqchip.h>
#include <linux/of_address.h> #include <linux/of_address.h>
#include <linux/irqchip/arm-gic.h>
#include <asm/proc-fns.h> #include <asm/proc-fns.h>
#include <asm/exception.h> #include <asm/exception.h>
#include <asm/hardware/cache-l2x0.h> #include <asm/hardware/cache-l2x0.h>
#include <asm/hardware/gic.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/mach/irq.h> #include <asm/mach/irq.h>
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
...@@ -644,8 +645,6 @@ static int __init combiner_of_init(struct device_node *np, ...@@ -644,8 +645,6 @@ static int __init combiner_of_init(struct device_node *np,
} }
static const struct of_device_id exynos_dt_irq_match[] = { static const struct of_device_id exynos_dt_irq_match[] = {
{ .compatible = "arm,cortex-a9-gic", .data = gic_of_init, },
{ .compatible = "arm,cortex-a15-gic", .data = gic_of_init, },
{ .compatible = "samsung,exynos4210-combiner", { .compatible = "samsung,exynos4210-combiner",
.data = combiner_of_init, }, .data = combiner_of_init, },
{}, {},
...@@ -661,8 +660,10 @@ void __init exynos4_init_irq(void) ...@@ -661,8 +660,10 @@ void __init exynos4_init_irq(void)
if (!of_have_populated_dt()) if (!of_have_populated_dt())
gic_init_bases(0, IRQ_PPI(0), S5P_VA_GIC_DIST, S5P_VA_GIC_CPU, gic_bank_offset, NULL); gic_init_bases(0, IRQ_PPI(0), S5P_VA_GIC_DIST, S5P_VA_GIC_CPU, gic_bank_offset, NULL);
#ifdef CONFIG_OF #ifdef CONFIG_OF
else else {
irqchip_init();
of_irq_init(exynos_dt_irq_match); of_irq_init(exynos_dt_irq_match);
}
#endif #endif
if (!of_have_populated_dt()) if (!of_have_populated_dt())
...@@ -679,6 +680,7 @@ void __init exynos4_init_irq(void) ...@@ -679,6 +680,7 @@ void __init exynos4_init_irq(void)
void __init exynos5_init_irq(void) void __init exynos5_init_irq(void)
{ {
#ifdef CONFIG_OF #ifdef CONFIG_OF
irqchip_init();
of_irq_init(exynos_dt_irq_match); of_irq_init(exynos_dt_irq_match);
#endif #endif
/* /*
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
#ifndef __ASM_ARCH_REGS_IRQ_H #ifndef __ASM_ARCH_REGS_IRQ_H
#define __ASM_ARCH_REGS_IRQ_H __FILE__ #define __ASM_ARCH_REGS_IRQ_H __FILE__
#include <asm/hardware/gic.h> #include <linux/irqchip/arm-gic.h>
#include <mach/map.h> #include <mach/map.h>
#endif /* __ASM_ARCH_REGS_IRQ_H */ #endif /* __ASM_ARCH_REGS_IRQ_H */
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
#include <linux/smsc911x.h> #include <linux/smsc911x.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/hardware/gic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <plat/cpu.h> #include <plat/cpu.h>
...@@ -201,7 +200,6 @@ MACHINE_START(ARMLEX4210, "ARMLEX4210") ...@@ -201,7 +200,6 @@ MACHINE_START(ARMLEX4210, "ARMLEX4210")
.smp = smp_ops(exynos_smp_ops), .smp = smp_ops(exynos_smp_ops),
.init_irq = exynos4_init_irq, .init_irq = exynos4_init_irq,
.map_io = armlex4210_map_io, .map_io = armlex4210_map_io,
.handle_irq = gic_handle_irq,
.init_machine = armlex4210_machine_init, .init_machine = armlex4210_machine_init,
.init_late = exynos_init_late, .init_late = exynos_init_late,
.init_time = exynos4_timer_init, .init_time = exynos4_timer_init,
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/hardware/gic.h>
#include <mach/map.h> #include <mach/map.h>
#include <plat/cpu.h> #include <plat/cpu.h>
...@@ -107,7 +106,6 @@ DT_MACHINE_START(EXYNOS4210_DT, "Samsung Exynos4 (Flattened Device Tree)") ...@@ -107,7 +106,6 @@ DT_MACHINE_START(EXYNOS4210_DT, "Samsung Exynos4 (Flattened Device Tree)")
.smp = smp_ops(exynos_smp_ops), .smp = smp_ops(exynos_smp_ops),
.init_irq = exynos4_init_irq, .init_irq = exynos4_init_irq,
.map_io = exynos4_dt_map_io, .map_io = exynos4_dt_map_io,
.handle_irq = gic_handle_irq,
.init_machine = exynos4_dt_machine_init, .init_machine = exynos4_dt_machine_init,
.init_late = exynos_init_late, .init_late = exynos_init_late,
.init_time = exynos4_timer_init, .init_time = exynos4_timer_init,
......
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
#include <linux/io.h> #include <linux/io.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/hardware/gic.h>
#include <mach/map.h> #include <mach/map.h>
#include <mach/regs-pmu.h> #include <mach/regs-pmu.h>
...@@ -179,7 +178,6 @@ DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG EXYNOS5 (Flattened Device Tree)") ...@@ -179,7 +178,6 @@ DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG EXYNOS5 (Flattened Device Tree)")
.init_irq = exynos5_init_irq, .init_irq = exynos5_init_irq,
.smp = smp_ops(exynos_smp_ops), .smp = smp_ops(exynos_smp_ops),
.map_io = exynos5_dt_map_io, .map_io = exynos5_dt_map_io,
.handle_irq = gic_handle_irq,
.init_machine = exynos5_dt_machine_init, .init_machine = exynos5_dt_machine_init,
.init_late = exynos_init_late, .init_late = exynos_init_late,
.init_time = exynos4_timer_init, .init_time = exynos4_timer_init,
......
...@@ -39,7 +39,6 @@ ...@@ -39,7 +39,6 @@
#include <media/v4l2-mediabus.h> #include <media/v4l2-mediabus.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/hardware/gic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <plat/adc.h> #include <plat/adc.h>
...@@ -1379,7 +1378,6 @@ MACHINE_START(NURI, "NURI") ...@@ -1379,7 +1378,6 @@ MACHINE_START(NURI, "NURI")
.smp = smp_ops(exynos_smp_ops), .smp = smp_ops(exynos_smp_ops),
.init_irq = exynos4_init_irq, .init_irq = exynos4_init_irq,
.map_io = nuri_map_io, .map_io = nuri_map_io,
.handle_irq = gic_handle_irq,
.init_machine = nuri_machine_init, .init_machine = nuri_machine_init,
.init_late = exynos_init_late, .init_late = exynos_init_late,
.init_time = exynos4_timer_init, .init_time = exynos4_timer_init,
......
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
#include <linux/platform_data/usb-exynos.h> #include <linux/platform_data/usb-exynos.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/hardware/gic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <video/platform_lcd.h> #include <video/platform_lcd.h>
...@@ -814,7 +813,6 @@ MACHINE_START(ORIGEN, "ORIGEN") ...@@ -814,7 +813,6 @@ MACHINE_START(ORIGEN, "ORIGEN")
.smp = smp_ops(exynos_smp_ops), .smp = smp_ops(exynos_smp_ops),
.init_irq = exynos4_init_irq, .init_irq = exynos4_init_irq,
.map_io = origen_map_io, .map_io = origen_map_io,
.handle_irq = gic_handle_irq,
.init_machine = origen_machine_init, .init_machine = origen_machine_init,
.init_late = exynos_init_late, .init_late = exynos_init_late,
.init_time = exynos4_timer_init, .init_time = exynos4_timer_init,
......
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
#include <linux/platform_data/s3c-hsotg.h> #include <linux/platform_data/s3c-hsotg.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/hardware/gic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <video/samsung_fimd.h> #include <video/samsung_fimd.h>
...@@ -376,7 +375,6 @@ MACHINE_START(SMDK4212, "SMDK4212") ...@@ -376,7 +375,6 @@ MACHINE_START(SMDK4212, "SMDK4212")
.smp = smp_ops(exynos_smp_ops), .smp = smp_ops(exynos_smp_ops),
.init_irq = exynos4_init_irq, .init_irq = exynos4_init_irq,
.map_io = smdk4x12_map_io, .map_io = smdk4x12_map_io,
.handle_irq = gic_handle_irq,
.init_machine = smdk4x12_machine_init, .init_machine = smdk4x12_machine_init,
.init_time = exynos4_timer_init, .init_time = exynos4_timer_init,
.restart = exynos4_restart, .restart = exynos4_restart,
...@@ -390,7 +388,6 @@ MACHINE_START(SMDK4412, "SMDK4412") ...@@ -390,7 +388,6 @@ MACHINE_START(SMDK4412, "SMDK4412")
.smp = smp_ops(exynos_smp_ops), .smp = smp_ops(exynos_smp_ops),
.init_irq = exynos4_init_irq, .init_irq = exynos4_init_irq,
.map_io = smdk4x12_map_io, .map_io = smdk4x12_map_io,
.handle_irq = gic_handle_irq,
.init_machine = smdk4x12_machine_init, .init_machine = smdk4x12_machine_init,
.init_late = exynos_init_late, .init_late = exynos_init_late,
.init_time = exynos4_timer_init, .init_time = exynos4_timer_init,
......
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
#include <linux/platform_data/usb-exynos.h> #include <linux/platform_data/usb-exynos.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/hardware/gic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <video/platform_lcd.h> #include <video/platform_lcd.h>
...@@ -423,7 +422,6 @@ MACHINE_START(SMDKV310, "SMDKV310") ...@@ -423,7 +422,6 @@ MACHINE_START(SMDKV310, "SMDKV310")
.smp = smp_ops(exynos_smp_ops), .smp = smp_ops(exynos_smp_ops),
.init_irq = exynos4_init_irq, .init_irq = exynos4_init_irq,
.map_io = smdkv310_map_io, .map_io = smdkv310_map_io,
.handle_irq = gic_handle_irq,
.init_machine = smdkv310_machine_init, .init_machine = smdkv310_machine_init,
.init_time = exynos4_timer_init, .init_time = exynos4_timer_init,
.reserve = &smdkv310_reserve, .reserve = &smdkv310_reserve,
...@@ -436,7 +434,6 @@ MACHINE_START(SMDKC210, "SMDKC210") ...@@ -436,7 +434,6 @@ MACHINE_START(SMDKC210, "SMDKC210")
.smp = smp_ops(exynos_smp_ops), .smp = smp_ops(exynos_smp_ops),
.init_irq = exynos4_init_irq, .init_irq = exynos4_init_irq,
.map_io = smdkv310_map_io, .map_io = smdkv310_map_io,
.handle_irq = gic_handle_irq,
.init_machine = smdkv310_machine_init, .init_machine = smdkv310_machine_init,
.init_late = exynos_init_late, .init_late = exynos_init_late,
.init_time = exynos4_timer_init, .init_time = exynos4_timer_init,
......
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
#include <drm/exynos_drm.h> #include <drm/exynos_drm.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/hardware/gic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <video/samsung_fimd.h> #include <video/samsung_fimd.h>
...@@ -1151,7 +1150,6 @@ MACHINE_START(UNIVERSAL_C210, "UNIVERSAL_C210") ...@@ -1151,7 +1150,6 @@ MACHINE_START(UNIVERSAL_C210, "UNIVERSAL_C210")
.smp = smp_ops(exynos_smp_ops), .smp = smp_ops(exynos_smp_ops),
.init_irq = exynos4_init_irq, .init_irq = exynos4_init_irq,
.map_io = universal_map_io, .map_io = universal_map_io,
.handle_irq = gic_handle_irq,
.init_machine = universal_machine_init, .init_machine = universal_machine_init,
.init_late = exynos_init_late, .init_late = exynos_init_late,
.init_time = s5p_timer_init, .init_time = s5p_timer_init,
......
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
#include <linux/of.h> #include <linux/of.h>
#include <asm/arch_timer.h> #include <asm/arch_timer.h>
#include <asm/hardware/gic.h>
#include <asm/localtimer.h> #include <asm/localtimer.h>
#include <plat/cpu.h> #include <plat/cpu.h>
......
...@@ -20,9 +20,9 @@ ...@@ -20,9 +20,9 @@
#include <linux/jiffies.h> #include <linux/jiffies.h>
#include <linux/smp.h> #include <linux/smp.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/irqchip/arm-gic.h>
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
#include <asm/hardware/gic.h>
#include <asm/smp_plat.h> #include <asm/smp_plat.h>
#include <asm/smp_scu.h> #include <asm/smp_scu.h>
...@@ -149,7 +149,7 @@ static int __cpuinit exynos_boot_secondary(unsigned int cpu, struct task_struct ...@@ -149,7 +149,7 @@ static int __cpuinit exynos_boot_secondary(unsigned int cpu, struct task_struct
__raw_writel(virt_to_phys(exynos4_secondary_startup), __raw_writel(virt_to_phys(exynos4_secondary_startup),
cpu_boot_reg(phys_cpu)); cpu_boot_reg(phys_cpu));
gic_raise_softirq(cpumask_of(cpu), 0); arch_send_wakeup_ipi_mask(cpumask_of(cpu));
if (pen_release == -1) if (pen_release == -1)
break; break;
...@@ -190,8 +190,6 @@ static void __init exynos_smp_init_cpus(void) ...@@ -190,8 +190,6 @@ static void __init exynos_smp_init_cpus(void)
for (i = 0; i < ncores; i++) for (i = 0; i < ncores; i++)
set_cpu_possible(i, true); set_cpu_possible(i, true);
set_smp_cross_call(gic_raise_softirq);
} }
static void __init exynos_smp_prepare_cpus(unsigned int max_cpus) static void __init exynos_smp_prepare_cpus(unsigned int max_cpus)
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/irqchip.h>
#include <linux/irqdomain.h> #include <linux/irqdomain.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_irq.h> #include <linux/of_irq.h>
...@@ -32,7 +33,6 @@ ...@@ -32,7 +33,6 @@
#include <asm/smp_twd.h> #include <asm/smp_twd.h>
#include <asm/hardware/arm_timer.h> #include <asm/hardware/arm_timer.h>
#include <asm/hardware/timer-sp.h> #include <asm/hardware/timer-sp.h>
#include <asm/hardware/gic.h>
#include <asm/hardware/cache-l2x0.h> #include <asm/hardware/cache-l2x0.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
...@@ -66,12 +66,6 @@ void highbank_set_cpu_jump(int cpu, void *jump_addr) ...@@ -66,12 +66,6 @@ void highbank_set_cpu_jump(int cpu, void *jump_addr)
HB_JUMP_TABLE_PHYS(cpu) + 15); HB_JUMP_TABLE_PHYS(cpu) + 15);
} }
const static struct of_device_id irq_match[] = {
{ .compatible = "arm,cortex-a15-gic", .data = gic_of_init, },
{ .compatible = "arm,cortex-a9-gic", .data = gic_of_init, },
{}
};
#ifdef CONFIG_CACHE_L2X0 #ifdef CONFIG_CACHE_L2X0
static void highbank_l2x0_disable(void) static void highbank_l2x0_disable(void)
{ {
...@@ -82,7 +76,7 @@ static void highbank_l2x0_disable(void) ...@@ -82,7 +76,7 @@ static void highbank_l2x0_disable(void)
static void __init highbank_init_irq(void) static void __init highbank_init_irq(void)
{ {
of_irq_init(irq_match); irqchip_init();
if (of_find_compatible_node(NULL, NULL, "arm,cortex-a9")) if (of_find_compatible_node(NULL, NULL, "arm,cortex-a9"))
highbank_scu_map_io(); highbank_scu_map_io();
...@@ -206,7 +200,6 @@ DT_MACHINE_START(HIGHBANK, "Highbank") ...@@ -206,7 +200,6 @@ DT_MACHINE_START(HIGHBANK, "Highbank")
.map_io = debug_ll_io_init, .map_io = debug_ll_io_init,
.init_irq = highbank_init_irq, .init_irq = highbank_init_irq,
.init_time = highbank_timer_init, .init_time = highbank_timer_init,
.handle_irq = gic_handle_irq,
.init_machine = highbank_init, .init_machine = highbank_init,
.dt_compat = highbank_match, .dt_compat = highbank_match,
.restart = highbank_restart, .restart = highbank_restart,
......
...@@ -17,9 +17,9 @@ ...@@ -17,9 +17,9 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/smp.h> #include <linux/smp.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/irqchip/arm-gic.h>
#include <asm/smp_scu.h> #include <asm/smp_scu.h>
#include <asm/hardware/gic.h>
#include "core.h" #include "core.h"
...@@ -33,7 +33,7 @@ static void __cpuinit highbank_secondary_init(unsigned int cpu) ...@@ -33,7 +33,7 @@ static void __cpuinit highbank_secondary_init(unsigned int cpu)
static int __cpuinit highbank_boot_secondary(unsigned int cpu, struct task_struct *idle) static int __cpuinit highbank_boot_secondary(unsigned int cpu, struct task_struct *idle)
{ {
highbank_set_cpu_jump(cpu, secondary_startup); highbank_set_cpu_jump(cpu, secondary_startup);
gic_raise_softirq(cpumask_of(cpu), 0); arch_send_wakeup_ipi_mask(cpumask_of(cpu));
return 0; return 0;
} }
...@@ -56,8 +56,6 @@ static void __init highbank_smp_init_cpus(void) ...@@ -56,8 +56,6 @@ static void __init highbank_smp_init_cpus(void)
for (i = 0; i < ncores; i++) for (i = 0; i < ncores; i++)
set_cpu_possible(i, true); set_cpu_possible(i, true);
set_smp_cross_call(gic_raise_softirq);
} }
static void __init highbank_smp_prepare_cpus(unsigned int max_cpus) static void __init highbank_smp_prepare_cpus(unsigned int max_cpus)
......
...@@ -112,7 +112,6 @@ void tzic_handle_irq(struct pt_regs *); ...@@ -112,7 +112,6 @@ void tzic_handle_irq(struct pt_regs *);
#define imx50_handle_irq tzic_handle_irq #define imx50_handle_irq tzic_handle_irq
#define imx51_handle_irq tzic_handle_irq #define imx51_handle_irq tzic_handle_irq
#define imx53_handle_irq tzic_handle_irq #define imx53_handle_irq tzic_handle_irq
#define imx6q_handle_irq gic_handle_irq
extern void imx_enable_cpu(int cpu, bool enable); extern void imx_enable_cpu(int cpu, bool enable);
extern void imx_set_cpu_jump(int cpu, void *jump_addr); extern void imx_set_cpu_jump(int cpu, void *jump_addr);
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_address.h> #include <linux/of_address.h>
#include <linux/of_irq.h> #include <linux/of_irq.h>
#include <asm/hardware/gic.h> #include <linux/irqchip/arm-gic.h>
#define GPC_IMR1 0x008 #define GPC_IMR1 0x008
#define GPC_PGC_CPU_PDN 0x2a0 #define GPC_PGC_CPU_PDN 0x2a0
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/irqchip.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_address.h> #include <linux/of_address.h>
#include <linux/of_irq.h> #include <linux/of_irq.h>
...@@ -29,7 +30,6 @@ ...@@ -29,7 +30,6 @@
#include <asm/cpuidle.h> #include <asm/cpuidle.h>
#include <asm/smp_twd.h> #include <asm/smp_twd.h>
#include <asm/hardware/cache-l2x0.h> #include <asm/hardware/cache-l2x0.h>
#include <asm/hardware/gic.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/time.h> #include <asm/mach/time.h>
#include <asm/system_misc.h> #include <asm/system_misc.h>
...@@ -221,17 +221,12 @@ static void __init imx6q_map_io(void) ...@@ -221,17 +221,12 @@ static void __init imx6q_map_io(void)
imx6q_clock_map_io(); imx6q_clock_map_io();
} }
static const struct of_device_id imx6q_irq_match[] __initconst = {
{ .compatible = "arm,cortex-a9-gic", .data = gic_of_init, },
{ /* sentinel */ }
};
static void __init imx6q_init_irq(void) static void __init imx6q_init_irq(void)
{ {
l2x0_of_init(0, ~0UL); l2x0_of_init(0, ~0UL);
imx_src_init(); imx_src_init();
imx_gpc_init(); imx_gpc_init();
of_irq_init(imx6q_irq_match); irqchip_init();
} }
static void __init imx6q_timer_init(void) static void __init imx6q_timer_init(void)
...@@ -250,7 +245,6 @@ DT_MACHINE_START(IMX6Q, "Freescale i.MX6 Quad (Device Tree)") ...@@ -250,7 +245,6 @@ DT_MACHINE_START(IMX6Q, "Freescale i.MX6 Quad (Device Tree)")
.smp = smp_ops(imx_smp_ops), .smp = smp_ops(imx_smp_ops),
.map_io = imx6q_map_io, .map_io = imx6q_map_io,
.init_irq = imx6q_init_irq, .init_irq = imx6q_init_irq,
.handle_irq = imx6q_handle_irq,
.init_time = imx6q_timer_init, .init_time = imx6q_timer_init,
.init_machine = imx6q_init_machine, .init_machine = imx6q_init_machine,
.init_late = imx6q_init_late, .init_late = imx6q_init_late,
......
...@@ -12,9 +12,9 @@ ...@@ -12,9 +12,9 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/smp.h> #include <linux/smp.h>
#include <linux/irqchip/arm-gic.h>
#include <asm/page.h> #include <asm/page.h>
#include <asm/smp_scu.h> #include <asm/smp_scu.h>
#include <asm/hardware/gic.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include "common.h" #include "common.h"
...@@ -71,8 +71,6 @@ static void __init imx_smp_init_cpus(void) ...@@ -71,8 +71,6 @@ static void __init imx_smp_init_cpus(void)
for (i = 0; i < ncores; i++) for (i = 0; i < ncores; i++)
set_cpu_possible(i, true); set_cpu_possible(i, true);
set_smp_cross_call(gic_raise_softirq);
} }
void imx_smp_prepare(void) void imx_smp_prepare(void)
......
...@@ -11,26 +11,15 @@ ...@@ -11,26 +11,15 @@
*/ */
#include <linux/init.h> #include <linux/init.h>
#include <linux/irqchip.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_irq.h>
#include <linux/of_platform.h> #include <linux/of_platform.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/hardware/gic.h>
#include <mach/board.h> #include <mach/board.h>
#include "common.h" #include "common.h"
static const struct of_device_id msm_dt_gic_match[] __initconst = {
{ .compatible = "qcom,msm-8660-qgic", .data = gic_of_init },
{}
};
static void __init msm8x60_init_irq(void)
{
of_irq_init(msm_dt_gic_match);
}
static void __init msm8x60_init_late(void) static void __init msm8x60_init_late(void)
{ {
smd_debugfs_init(); smd_debugfs_init();
...@@ -55,8 +44,7 @@ static const char *msm8x60_fluid_match[] __initdata = { ...@@ -55,8 +44,7 @@ static const char *msm8x60_fluid_match[] __initdata = {
DT_MACHINE_START(MSM_DT, "Qualcomm MSM (Flattened Device Tree)") DT_MACHINE_START(MSM_DT, "Qualcomm MSM (Flattened Device Tree)")
.smp = smp_ops(msm_smp_ops), .smp = smp_ops(msm_smp_ops),
.map_io = msm_map_msm8x60_io, .map_io = msm_map_msm8x60_io,
.init_irq = msm8x60_init_irq, .init_irq = irqchip_init,
.handle_irq = gic_handle_irq,
.init_machine = msm8x60_dt_init, .init_machine = msm8x60_dt_init,
.init_late = msm8x60_init_late, .init_late = msm8x60_init_late,
.init_time = msm_dt_timer_init, .init_time = msm_dt_timer_init,
......
...@@ -11,24 +11,13 @@ ...@@ -11,24 +11,13 @@
*/ */
#include <linux/init.h> #include <linux/init.h>
#include <linux/of_irq.h> #include <linux/irqchip.h>
#include <linux/of_platform.h> #include <linux/of_platform.h>
#include <asm/hardware/gic.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include "common.h" #include "common.h"
static const struct of_device_id msm_dt_gic_match[] __initconst = {
{ .compatible = "qcom,msm-qgic2", .data = gic_of_init },
{ }
};
static void __init msm_dt_init_irq(void)
{
of_irq_init(msm_dt_gic_match);
}
static void __init msm_dt_init(void) static void __init msm_dt_init(void)
{ {
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
...@@ -42,9 +31,8 @@ static const char * const msm8960_dt_match[] __initconst = { ...@@ -42,9 +31,8 @@ static const char * const msm8960_dt_match[] __initconst = {
DT_MACHINE_START(MSM8960_DT, "Qualcomm MSM (Flattened Device Tree)") DT_MACHINE_START(MSM8960_DT, "Qualcomm MSM (Flattened Device Tree)")
.smp = smp_ops(msm_smp_ops), .smp = smp_ops(msm_smp_ops),
.map_io = msm_map_msm8960_io, .map_io = msm_map_msm8960_io,
.init_irq = msm_dt_init_irq, .init_irq = irqchip_init,
.init_time = msm_dt_timer_init, .init_time = msm_dt_timer_init,
.init_machine = msm_dt_init, .init_machine = msm_dt_init,
.dt_compat = msm8960_dt_match, .dt_compat = msm8960_dt_match,
.handle_irq = gic_handle_irq,
MACHINE_END MACHINE_END
...@@ -15,8 +15,8 @@ ...@@ -15,8 +15,8 @@
#include <linux/jiffies.h> #include <linux/jiffies.h>
#include <linux/smp.h> #include <linux/smp.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/irqchip/arm-gic.h>
#include <asm/hardware/gic.h>
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
#include <asm/cputype.h> #include <asm/cputype.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
...@@ -115,7 +115,7 @@ static int __cpuinit msm_boot_secondary(unsigned int cpu, struct task_struct *id ...@@ -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, * the boot monitor to read the system wide flags register,
* and branch to the address found there. * 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); timeout = jiffies + (1 * HZ);
while (time_before(jiffies, timeout)) { while (time_before(jiffies, timeout)) {
...@@ -153,8 +153,6 @@ static void __init msm_smp_init_cpus(void) ...@@ -153,8 +153,6 @@ static void __init msm_smp_init_cpus(void)
for (i = 0; i < ncores; i++) for (i = 0; i < ncores; i++)
set_cpu_possible(i, true); set_cpu_possible(i, true);
set_smp_cross_call(gic_raise_softirq);
} }
static void __init msm_smp_prepare_cpus(unsigned int max_cpus) static void __init msm_smp_prepare_cpus(unsigned int max_cpus)
......
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
#include <linux/of_irq.h> #include <linux/of_irq.h>
#include <asm/mach/time.h> #include <asm/mach/time.h>
#include <asm/hardware/gic.h>
#include <asm/localtimer.h> #include <asm/localtimer.h>
#include <asm/sched_clock.h> #include <asm/sched_clock.h>
......
...@@ -23,9 +23,9 @@ ...@@ -23,9 +23,9 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/irqchip/arm-vic.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/hardware/vic.h>
#include <mach/netx-regs.h> #include <mach/netx-regs.h>
#include <asm/mach/irq.h> #include <asm/mach/irq.h>
......
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/hardware/vic.h>
#include <mach/netx-regs.h> #include <mach/netx-regs.h>
#include <linux/platform_data/eth-netx.h> #include <linux/platform_data/eth-netx.h>
...@@ -204,7 +203,6 @@ MACHINE_START(NXDB500, "Hilscher nxdb500") ...@@ -204,7 +203,6 @@ MACHINE_START(NXDB500, "Hilscher nxdb500")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = netx_map_io, .map_io = netx_map_io,
.init_irq = netx_init_irq, .init_irq = netx_init_irq,
.handle_irq = vic_handle_irq,
.init_time = netx_timer_init, .init_time = netx_timer_init,
.init_machine = nxdb500_init, .init_machine = nxdb500_init,
.restart = netx_restart, .restart = netx_restart,
......
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/hardware/vic.h>
#include <mach/netx-regs.h> #include <mach/netx-regs.h>
#include <linux/platform_data/eth-netx.h> #include <linux/platform_data/eth-netx.h>
...@@ -97,7 +96,6 @@ MACHINE_START(NXDKN, "Hilscher nxdkn") ...@@ -97,7 +96,6 @@ MACHINE_START(NXDKN, "Hilscher nxdkn")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = netx_map_io, .map_io = netx_map_io,
.init_irq = netx_init_irq, .init_irq = netx_init_irq,
.handle_irq = vic_handle_irq,
.init_time = netx_timer_init, .init_time = netx_timer_init,
.init_machine = nxdkn_init, .init_machine = nxdkn_init,
.restart = netx_restart, .restart = netx_restart,
......
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/hardware/vic.h>
#include <mach/netx-regs.h> #include <mach/netx-regs.h>
#include <linux/platform_data/eth-netx.h> #include <linux/platform_data/eth-netx.h>
...@@ -181,7 +180,6 @@ MACHINE_START(NXEB500HMI, "Hilscher nxeb500hmi") ...@@ -181,7 +180,6 @@ MACHINE_START(NXEB500HMI, "Hilscher nxeb500hmi")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = netx_map_io, .map_io = netx_map_io,
.init_irq = netx_init_irq, .init_irq = netx_init_irq,
.handle_irq = vic_handle_irq,
.init_time = netx_timer_init, .init_time = netx_timer_init,
.init_machine = nxeb500hmi_init, .init_machine = nxeb500hmi_init,
.restart = netx_restart, .restart = netx_restart,
......
...@@ -27,7 +27,6 @@ ...@@ -27,7 +27,6 @@
#include <linux/pinctrl/machine.h> #include <linux/pinctrl/machine.h>
#include <linux/platform_data/pinctrl-nomadik.h> #include <linux/platform_data/pinctrl-nomadik.h>
#include <linux/platform_data/clocksource-nomadik-mtu.h> #include <linux/platform_data/clocksource-nomadik-mtu.h>
#include <asm/hardware/vic.h>
#include <asm/sizes.h> #include <asm/sizes.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
...@@ -348,7 +347,6 @@ MACHINE_START(NOMADIK, "NHK8815") ...@@ -348,7 +347,6 @@ MACHINE_START(NOMADIK, "NHK8815")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = cpu8815_map_io, .map_io = cpu8815_map_io,
.init_irq = cpu8815_init_irq, .init_irq = cpu8815_init_irq,
.handle_irq = vic_handle_irq,
.init_time = nomadik_timer_init, .init_time = nomadik_timer_init,
.init_machine = nhk8815_platform_init, .init_machine = nhk8815_platform_init,
.restart = cpu8815_restart, .restart = cpu8815_restart,
......
...@@ -25,13 +25,13 @@ ...@@ -25,13 +25,13 @@
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
#include <linux/irqchip/arm-vic.h>
#include <linux/platform_data/clk-nomadik.h> #include <linux/platform_data/clk-nomadik.h>
#include <linux/platform_data/pinctrl-nomadik.h> #include <linux/platform_data/pinctrl-nomadik.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/irqs.h> #include <mach/irqs.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/hardware/vic.h>
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
#include <asm/hardware/cache-l2x0.h> #include <asm/hardware/cache-l2x0.h>
......
...@@ -26,10 +26,10 @@ ...@@ -26,10 +26,10 @@
#include <linux/regulator/fixed.h> #include <linux/regulator/fixed.h>
#include <linux/leds.h> #include <linux/leds.h>
#include <linux/leds_pwm.h> #include <linux/leds_pwm.h>
#include <linux/irqchip/arm-gic.h>
#include <linux/platform_data/omap4-keypad.h> #include <linux/platform_data/omap4-keypad.h>
#include <linux/usb/musb.h> #include <linux/usb/musb.h>
#include <asm/hardware/gic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
...@@ -722,7 +722,6 @@ MACHINE_START(OMAP_4430SDP, "OMAP4430 4430SDP board") ...@@ -722,7 +722,6 @@ MACHINE_START(OMAP_4430SDP, "OMAP4430 4430SDP board")
.map_io = omap4_map_io, .map_io = omap4_map_io,
.init_early = omap4430_init_early, .init_early = omap4430_init_early,
.init_irq = gic_init_irq, .init_irq = gic_init_irq,
.handle_irq = gic_handle_irq,
.init_machine = omap_4430sdp_init, .init_machine = omap_4430sdp_init,
.init_late = omap4430_init_late, .init_late = omap4430_init_late,
.init_time = omap4_local_timer_init, .init_time = omap4_local_timer_init,
......
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
#include <linux/of_platform.h> #include <linux/of_platform.h>
#include <linux/irqdomain.h> #include <linux/irqdomain.h>
#include <asm/hardware/gic.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include "common.h" #include "common.h"
...@@ -156,7 +155,6 @@ DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)") ...@@ -156,7 +155,6 @@ DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)")
.map_io = omap4_map_io, .map_io = omap4_map_io,
.init_early = omap4430_init_early, .init_early = omap4430_init_early,
.init_irq = omap_gic_of_init, .init_irq = omap_gic_of_init,
.handle_irq = gic_handle_irq,
.init_machine = omap_generic_init, .init_machine = omap_generic_init,
.init_late = omap4430_init_late, .init_late = omap4430_init_late,
.init_time = omap4_local_timer_init, .init_time = omap4_local_timer_init,
...@@ -177,7 +175,6 @@ DT_MACHINE_START(OMAP5_DT, "Generic OMAP5 (Flattened Device Tree)") ...@@ -177,7 +175,6 @@ DT_MACHINE_START(OMAP5_DT, "Generic OMAP5 (Flattened Device Tree)")
.map_io = omap5_map_io, .map_io = omap5_map_io,
.init_early = omap5_init_early, .init_early = omap5_init_early,
.init_irq = omap_gic_of_init, .init_irq = omap_gic_of_init,
.handle_irq = gic_handle_irq,
.init_machine = omap_generic_init, .init_machine = omap_generic_init,
.init_time = omap5_realtime_timer_init, .init_time = omap5_realtime_timer_init,
.dt_compat = omap5_boards_compat, .dt_compat = omap5_boards_compat,
......
...@@ -31,9 +31,9 @@ ...@@ -31,9 +31,9 @@
#include <linux/ti_wilink_st.h> #include <linux/ti_wilink_st.h>
#include <linux/usb/musb.h> #include <linux/usb/musb.h>
#include <linux/wl12xx.h> #include <linux/wl12xx.h>
#include <linux/irqchip/arm-gic.h>
#include <linux/platform_data/omap-abe-twl6040.h> #include <linux/platform_data/omap-abe-twl6040.h>
#include <asm/hardware/gic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
...@@ -453,7 +453,6 @@ MACHINE_START(OMAP4_PANDA, "OMAP4 Panda board") ...@@ -453,7 +453,6 @@ MACHINE_START(OMAP4_PANDA, "OMAP4 Panda board")
.map_io = omap4_map_io, .map_io = omap4_map_io,
.init_early = omap4430_init_early, .init_early = omap4430_init_early,
.init_irq = gic_init_irq, .init_irq = gic_init_irq,
.handle_irq = gic_handle_irq,
.init_machine = omap4_panda_init, .init_machine = omap4_panda_init,
.init_late = omap4430_init_late, .init_late = omap4430_init_late,
.init_time = omap4_local_timer_init, .init_time = omap4_local_timer_init,
......
...@@ -19,9 +19,9 @@ ...@@ -19,9 +19,9 @@
#include <linux/device.h> #include <linux/device.h>
#include <linux/smp.h> #include <linux/smp.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/irqchip/arm-gic.h>
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
#include <asm/hardware/gic.h>
#include <asm/smp_scu.h> #include <asm/smp_scu.h>
#include "omap-secure.h" #include "omap-secure.h"
...@@ -157,7 +157,7 @@ static int __cpuinit omap4_boot_secondary(unsigned int cpu, struct task_struct * ...@@ -157,7 +157,7 @@ static int __cpuinit omap4_boot_secondary(unsigned int cpu, struct task_struct *
booted = true; booted = true;
} }
gic_raise_softirq(cpumask_of(cpu), 0); arch_send_wakeup_ipi_mask(cpumask_of(cpu));
/* /*
* Now the secondary core is starting up let it run its * Now the secondary core is starting up let it run its
...@@ -231,8 +231,6 @@ static void __init omap4_smp_init_cpus(void) ...@@ -231,8 +231,6 @@ static void __init omap4_smp_init_cpus(void)
for (i = 0; i < ncores; i++) for (i = 0; i < ncores; i++)
set_cpu_possible(i, true); set_cpu_possible(i, true);
set_smp_cross_call(gic_raise_softirq);
} }
static void __init omap4_smp_prepare_cpus(unsigned int max_cpus) static void __init omap4_smp_prepare_cpus(unsigned int max_cpus)
......
...@@ -24,8 +24,7 @@ ...@@ -24,8 +24,7 @@
#include <linux/cpu.h> #include <linux/cpu.h>
#include <linux/notifier.h> #include <linux/notifier.h>
#include <linux/cpu_pm.h> #include <linux/cpu_pm.h>
#include <linux/irqchip/arm-gic.h>
#include <asm/hardware/gic.h>
#include "omap-wakeupgen.h" #include "omap-wakeupgen.h"
#include "omap-secure.h" #include "omap-secure.h"
......
...@@ -15,13 +15,14 @@ ...@@ -15,13 +15,14 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/irqchip.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/memblock.h> #include <linux/memblock.h>
#include <linux/of_irq.h> #include <linux/of_irq.h>
#include <linux/of_platform.h> #include <linux/of_platform.h>
#include <linux/export.h> #include <linux/export.h>
#include <linux/irqchip/arm-gic.h>
#include <asm/hardware/gic.h>
#include <asm/hardware/cache-l2x0.h> #include <asm/hardware/cache-l2x0.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/memblock.h> #include <asm/memblock.h>
...@@ -255,16 +256,10 @@ static int __init omap4_sar_ram_init(void) ...@@ -255,16 +256,10 @@ static int __init omap4_sar_ram_init(void)
} }
early_initcall(omap4_sar_ram_init); early_initcall(omap4_sar_ram_init);
static struct of_device_id irq_match[] __initdata = {
{ .compatible = "arm,cortex-a9-gic", .data = gic_of_init, },
{ .compatible = "arm,cortex-a15-gic", .data = gic_of_init, },
{ }
};
void __init omap_gic_of_init(void) void __init omap_gic_of_init(void)
{ {
omap_wakeupgen_init(); omap_wakeupgen_init();
of_irq_init(irq_match); irqchip_init();
} }
#if defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE) #if defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE)
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
*/ */
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/irqchip.h>
#include <linux/irqdomain.h> #include <linux/irqdomain.h>
#include <linux/of.h> #include <linux/of.h>
#include <linux/of_address.h> #include <linux/of_address.h>
...@@ -17,7 +18,6 @@ ...@@ -17,7 +18,6 @@
#include <linux/dw_apb_timer.h> #include <linux/dw_apb_timer.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/hardware/vic.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include "common.h" #include "common.h"
...@@ -70,16 +70,6 @@ static const char *picoxcell_dt_match[] = { ...@@ -70,16 +70,6 @@ static const char *picoxcell_dt_match[] = {
NULL NULL
}; };
static const struct of_device_id vic_of_match[] __initconst = {
{ .compatible = "arm,pl192-vic", .data = vic_of_init, },
{ /* Sentinel */ }
};
static void __init picoxcell_init_irq(void)
{
of_irq_init(vic_of_match);
}
static void picoxcell_wdt_restart(char mode, const char *cmd) static void picoxcell_wdt_restart(char mode, const char *cmd)
{ {
/* /*
...@@ -97,8 +87,7 @@ static void picoxcell_wdt_restart(char mode, const char *cmd) ...@@ -97,8 +87,7 @@ static void picoxcell_wdt_restart(char mode, const char *cmd)
DT_MACHINE_START(PICOXCELL, "Picochip picoXcell") DT_MACHINE_START(PICOXCELL, "Picochip picoXcell")
.map_io = picoxcell_map_io, .map_io = picoxcell_map_io,
.nr_irqs = NR_IRQS_LEGACY, .nr_irqs = NR_IRQS_LEGACY,
.init_irq = picoxcell_init_irq, .init_irq = irqchip_init,
.handle_irq = vic_handle_irq,
.init_time = dw_apb_timer_init, .init_time = dw_apb_timer_init,
.init_machine = picoxcell_init_machine, .init_machine = picoxcell_init_machine,
.dt_compat = picoxcell_dt_match, .dt_compat = picoxcell_dt_match,
......
...@@ -42,7 +42,6 @@ ...@@ -42,7 +42,6 @@
#include <asm/mach/irq.h> #include <asm/mach/irq.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/hardware/gic.h>
#include <mach/platform.h> #include <mach/platform.h>
#include <mach/irqs.h> #include <mach/irqs.h>
......
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
#include <linux/io.h> #include <linux/io.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/hardware/gic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/smp_scu.h> #include <asm/smp_scu.h>
...@@ -59,8 +58,6 @@ static void __init realview_smp_init_cpus(void) ...@@ -59,8 +58,6 @@ static void __init realview_smp_init_cpus(void)
for (i = 0; i < ncores; i++) for (i = 0; i < ncores; i++)
set_cpu_possible(i, true); set_cpu_possible(i, true);
set_smp_cross_call(gic_raise_softirq);
} }
static void __init realview_smp_prepare_cpus(unsigned int max_cpus) static void __init realview_smp_prepare_cpus(unsigned int max_cpus)
......
...@@ -27,13 +27,13 @@ ...@@ -27,13 +27,13 @@
#include <linux/amba/mmci.h> #include <linux/amba/mmci.h>
#include <linux/amba/pl022.h> #include <linux/amba/pl022.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/irqchip/arm-gic.h>
#include <linux/platform_data/clk-realview.h> #include <linux/platform_data/clk-realview.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
#include <asm/hardware/gic.h>
#include <asm/hardware/cache-l2x0.h> #include <asm/hardware/cache-l2x0.h>
#include <asm/smp_twd.h> #include <asm/smp_twd.h>
...@@ -469,7 +469,6 @@ MACHINE_START(REALVIEW_EB, "ARM-RealView EB") ...@@ -469,7 +469,6 @@ MACHINE_START(REALVIEW_EB, "ARM-RealView EB")
.init_early = realview_init_early, .init_early = realview_init_early,
.init_irq = gic_init_irq, .init_irq = gic_init_irq,
.init_time = realview_eb_timer_init, .init_time = realview_eb_timer_init,
.handle_irq = gic_handle_irq,
.init_machine = realview_eb_init, .init_machine = realview_eb_init,
#ifdef CONFIG_ZONE_DMA #ifdef CONFIG_ZONE_DMA
.dma_zone_size = SZ_256M, .dma_zone_size = SZ_256M,
......
...@@ -29,13 +29,13 @@ ...@@ -29,13 +29,13 @@
#include <linux/mtd/physmap.h> #include <linux/mtd/physmap.h>
#include <linux/mtd/partitions.h> #include <linux/mtd/partitions.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/irqchip/arm-gic.h>
#include <linux/platform_data/clk-realview.h> #include <linux/platform_data/clk-realview.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
#include <asm/hardware/gic.h>
#include <asm/hardware/cache-l2x0.h> #include <asm/hardware/cache-l2x0.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
...@@ -381,7 +381,6 @@ MACHINE_START(REALVIEW_PB1176, "ARM-RealView PB1176") ...@@ -381,7 +381,6 @@ MACHINE_START(REALVIEW_PB1176, "ARM-RealView PB1176")
.init_early = realview_init_early, .init_early = realview_init_early,
.init_irq = gic_init_irq, .init_irq = gic_init_irq,
.init_time = realview_pb1176_timer_init, .init_time = realview_pb1176_timer_init,
.handle_irq = gic_handle_irq,
.init_machine = realview_pb1176_init, .init_machine = realview_pb1176_init,
#ifdef CONFIG_ZONE_DMA #ifdef CONFIG_ZONE_DMA
.dma_zone_size = SZ_256M, .dma_zone_size = SZ_256M,
......
...@@ -27,13 +27,13 @@ ...@@ -27,13 +27,13 @@
#include <linux/amba/mmci.h> #include <linux/amba/mmci.h>
#include <linux/amba/pl022.h> #include <linux/amba/pl022.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/irqchip/arm-gic.h>
#include <linux/platform_data/clk-realview.h> #include <linux/platform_data/clk-realview.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
#include <asm/hardware/gic.h>
#include <asm/hardware/cache-l2x0.h> #include <asm/hardware/cache-l2x0.h>
#include <asm/smp_twd.h> #include <asm/smp_twd.h>
...@@ -364,7 +364,6 @@ MACHINE_START(REALVIEW_PB11MP, "ARM-RealView PB11MPCore") ...@@ -364,7 +364,6 @@ MACHINE_START(REALVIEW_PB11MP, "ARM-RealView PB11MPCore")
.init_early = realview_init_early, .init_early = realview_init_early,
.init_irq = gic_init_irq, .init_irq = gic_init_irq,
.init_time = realview_pb11mp_timer_init, .init_time = realview_pb11mp_timer_init,
.handle_irq = gic_handle_irq,
.init_machine = realview_pb11mp_init, .init_machine = realview_pb11mp_init,
#ifdef CONFIG_ZONE_DMA #ifdef CONFIG_ZONE_DMA
.dma_zone_size = SZ_256M, .dma_zone_size = SZ_256M,
......
...@@ -27,12 +27,12 @@ ...@@ -27,12 +27,12 @@
#include <linux/amba/mmci.h> #include <linux/amba/mmci.h>
#include <linux/amba/pl022.h> #include <linux/amba/pl022.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/irqchip/arm-gic.h>
#include <linux/platform_data/clk-realview.h> #include <linux/platform_data/clk-realview.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
#include <asm/hardware/gic.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
...@@ -305,7 +305,6 @@ MACHINE_START(REALVIEW_PBA8, "ARM-RealView PB-A8") ...@@ -305,7 +305,6 @@ MACHINE_START(REALVIEW_PBA8, "ARM-RealView PB-A8")
.init_early = realview_init_early, .init_early = realview_init_early,
.init_irq = gic_init_irq, .init_irq = gic_init_irq,
.init_time = realview_pba8_timer_init, .init_time = realview_pba8_timer_init,
.handle_irq = gic_handle_irq,
.init_machine = realview_pba8_init, .init_machine = realview_pba8_init,
#ifdef CONFIG_ZONE_DMA #ifdef CONFIG_ZONE_DMA
.dma_zone_size = SZ_256M, .dma_zone_size = SZ_256M,
......
...@@ -26,13 +26,13 @@ ...@@ -26,13 +26,13 @@
#include <linux/amba/mmci.h> #include <linux/amba/mmci.h>
#include <linux/amba/pl022.h> #include <linux/amba/pl022.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/irqchip/arm-gic.h>
#include <linux/platform_data/clk-realview.h> #include <linux/platform_data/clk-realview.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/smp_twd.h> #include <asm/smp_twd.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
#include <asm/hardware/gic.h>
#include <asm/hardware/cache-l2x0.h> #include <asm/hardware/cache-l2x0.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
...@@ -401,7 +401,6 @@ MACHINE_START(REALVIEW_PBX, "ARM-RealView PBX") ...@@ -401,7 +401,6 @@ MACHINE_START(REALVIEW_PBX, "ARM-RealView PBX")
.init_early = realview_init_early, .init_early = realview_init_early,
.init_irq = gic_init_irq, .init_irq = gic_init_irq,
.init_time = realview_pbx_timer_init, .init_time = realview_pbx_timer_init,
.handle_irq = gic_handle_irq,
.init_machine = realview_pbx_init, .init_machine = realview_pbx_init,
#ifdef CONFIG_ZONE_DMA #ifdef CONFIG_ZONE_DMA
.dma_zone_size = SZ_256M, .dma_zone_size = SZ_256M,
......
...@@ -25,10 +25,10 @@ ...@@ -25,10 +25,10 @@
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/irqchip/arm-vic.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/hardware/vic.h>
#include <asm/system_misc.h> #include <asm/system_misc.h>
#include <mach/map.h> #include <mach/map.h>
......
...@@ -15,6 +15,5 @@ ...@@ -15,6 +15,5 @@
#ifndef __ASM_ARCH_REGS_IRQ_H #ifndef __ASM_ARCH_REGS_IRQ_H
#define __ASM_ARCH_REGS_IRQ_H __FILE__ #define __ASM_ARCH_REGS_IRQ_H __FILE__
#include <asm/hardware/vic.h>
#endif /* __ASM_ARCH_6400_REGS_IRQ_H */ #endif /* __ASM_ARCH_6400_REGS_IRQ_H */
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
#ifndef __ASM_ARCH_TICK_H #ifndef __ASM_ARCH_TICK_H
#define __ASM_ARCH_TICK_H __FILE__ #define __ASM_ARCH_TICK_H __FILE__
#include <linux/irqchip/arm-vic.h>
/* note, the timer interrutps turn up in 2 places, the vic and then /* note, the timer interrutps turn up in 2 places, the vic and then
* the timer block. We take the VIC as the base at the moment. * the timer block. We take the VIC as the base at the moment.
*/ */
......
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
#include <video/platform_lcd.h> #include <video/platform_lcd.h>
#include <video/samsung_fimd.h> #include <video/samsung_fimd.h>
#include <asm/hardware/vic.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/mach/irq.h> #include <asm/mach/irq.h>
...@@ -230,7 +229,6 @@ MACHINE_START(ANW6410, "A&W6410") ...@@ -230,7 +229,6 @@ MACHINE_START(ANW6410, "A&W6410")
.atag_offset = 0x100, .atag_offset = 0x100,
.init_irq = s3c6410_init_irq, .init_irq = s3c6410_init_irq,
.handle_irq = vic_handle_irq,
.map_io = anw6410_map_io, .map_io = anw6410_map_io,
.init_machine = anw6410_machine_init, .init_machine = anw6410_machine_init,
.init_late = s3c64xx_init_late, .init_late = s3c64xx_init_late,
......
...@@ -42,7 +42,6 @@ ...@@ -42,7 +42,6 @@
#include <sound/wm1250-ev1.h> #include <sound/wm1250-ev1.h>
#include <asm/hardware/vic.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
...@@ -867,7 +866,6 @@ MACHINE_START(WLF_CRAGG_6410, "Wolfson Cragganmore 6410") ...@@ -867,7 +866,6 @@ MACHINE_START(WLF_CRAGG_6410, "Wolfson Cragganmore 6410")
/* Maintainer: Mark Brown <broonie@opensource.wolfsonmicro.com> */ /* Maintainer: Mark Brown <broonie@opensource.wolfsonmicro.com> */
.atag_offset = 0x100, .atag_offset = 0x100,
.init_irq = s3c6410_init_irq, .init_irq = s3c6410_init_irq,
.handle_irq = vic_handle_irq,
.map_io = crag6410_map_io, .map_io = crag6410_map_io,
.init_machine = crag6410_machine_init, .init_machine = crag6410_machine_init,
.init_late = s3c64xx_init_late, .init_late = s3c64xx_init_late,
......
...@@ -30,7 +30,6 @@ ...@@ -30,7 +30,6 @@
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/map.h> #include <mach/map.h>
#include <asm/hardware/vic.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
...@@ -273,7 +272,6 @@ MACHINE_START(HMT, "Airgoo-HMT") ...@@ -273,7 +272,6 @@ MACHINE_START(HMT, "Airgoo-HMT")
/* Maintainer: Peter Korsgaard <jacmet@sunsite.dk> */ /* Maintainer: Peter Korsgaard <jacmet@sunsite.dk> */
.atag_offset = 0x100, .atag_offset = 0x100,
.init_irq = s3c6410_init_irq, .init_irq = s3c6410_init_irq,
.handle_irq = vic_handle_irq,
.map_io = hmt_map_io, .map_io = hmt_map_io,
.init_machine = hmt_machine_init, .init_machine = hmt_machine_init,
.init_late = s3c64xx_init_late, .init_late = s3c64xx_init_late,
......
...@@ -24,7 +24,6 @@ ...@@ -24,7 +24,6 @@
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/types.h> #include <linux/types.h>
#include <asm/hardware/vic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
...@@ -352,7 +351,6 @@ MACHINE_START(MINI6410, "MINI6410") ...@@ -352,7 +351,6 @@ MACHINE_START(MINI6410, "MINI6410")
/* Maintainer: Darius Augulis <augulis.darius@gmail.com> */ /* Maintainer: Darius Augulis <augulis.darius@gmail.com> */
.atag_offset = 0x100, .atag_offset = 0x100,
.init_irq = s3c6410_init_irq, .init_irq = s3c6410_init_irq,
.handle_irq = vic_handle_irq,
.map_io = mini6410_map_io, .map_io = mini6410_map_io,
.init_machine = mini6410_machine_init, .init_machine = mini6410_machine_init,
.init_late = s3c64xx_init_late, .init_late = s3c64xx_init_late,
......
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
#include <video/platform_lcd.h> #include <video/platform_lcd.h>
#include <video/samsung_fimd.h> #include <video/samsung_fimd.h>
#include <asm/hardware/vic.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/mach/irq.h> #include <asm/mach/irq.h>
...@@ -101,7 +100,6 @@ MACHINE_START(NCP, "NCP") ...@@ -101,7 +100,6 @@ MACHINE_START(NCP, "NCP")
/* Maintainer: Samsung Electronics */ /* Maintainer: Samsung Electronics */
.atag_offset = 0x100, .atag_offset = 0x100,
.init_irq = s3c6410_init_irq, .init_irq = s3c6410_init_irq,
.handle_irq = vic_handle_irq,
.map_io = ncp_map_io, .map_io = ncp_map_io,
.init_machine = ncp_machine_init, .init_machine = ncp_machine_init,
.init_late = s3c64xx_init_late, .init_late = s3c64xx_init_late,
......
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/types.h> #include <linux/types.h>
#include <asm/hardware/vic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
...@@ -331,7 +330,6 @@ MACHINE_START(REAL6410, "REAL6410") ...@@ -331,7 +330,6 @@ MACHINE_START(REAL6410, "REAL6410")
.atag_offset = 0x100, .atag_offset = 0x100,
.init_irq = s3c6410_init_irq, .init_irq = s3c6410_init_irq,
.handle_irq = vic_handle_irq,
.map_io = real6410_map_io, .map_io = real6410_map_io,
.init_machine = real6410_machine_init, .init_machine = real6410_machine_init,
.init_late = s3c64xx_init_late, .init_late = s3c64xx_init_late,
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include <linux/leds.h> #include <linux/leds.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <asm/hardware/vic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
...@@ -153,7 +152,6 @@ MACHINE_START(SMARTQ5, "SmartQ 5") ...@@ -153,7 +152,6 @@ MACHINE_START(SMARTQ5, "SmartQ 5")
/* Maintainer: Maurus Cuelenaere <mcuelenaere AT gmail DOT com> */ /* Maintainer: Maurus Cuelenaere <mcuelenaere AT gmail DOT com> */
.atag_offset = 0x100, .atag_offset = 0x100,
.init_irq = s3c6410_init_irq, .init_irq = s3c6410_init_irq,
.handle_irq = vic_handle_irq,
.map_io = smartq_map_io, .map_io = smartq_map_io,
.init_machine = smartq5_machine_init, .init_machine = smartq5_machine_init,
.init_late = s3c64xx_init_late, .init_late = s3c64xx_init_late,
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include <linux/leds.h> #include <linux/leds.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <asm/hardware/vic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
...@@ -169,7 +168,6 @@ MACHINE_START(SMARTQ7, "SmartQ 7") ...@@ -169,7 +168,6 @@ MACHINE_START(SMARTQ7, "SmartQ 7")
/* Maintainer: Maurus Cuelenaere <mcuelenaere AT gmail DOT com> */ /* Maintainer: Maurus Cuelenaere <mcuelenaere AT gmail DOT com> */
.atag_offset = 0x100, .atag_offset = 0x100,
.init_irq = s3c6410_init_irq, .init_irq = s3c6410_init_irq,
.handle_irq = vic_handle_irq,
.map_io = smartq_map_io, .map_io = smartq_map_io,
.init_machine = smartq7_machine_init, .init_machine = smartq7_machine_init,
.init_late = s3c64xx_init_late, .init_late = s3c64xx_init_late,
......
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/hardware/vic.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/mach/irq.h> #include <asm/mach/irq.h>
...@@ -90,7 +89,6 @@ MACHINE_START(SMDK6400, "SMDK6400") ...@@ -90,7 +89,6 @@ MACHINE_START(SMDK6400, "SMDK6400")
.atag_offset = 0x100, .atag_offset = 0x100,
.init_irq = s3c6400_init_irq, .init_irq = s3c6400_init_irq,
.handle_irq = vic_handle_irq,
.map_io = smdk6400_map_io, .map_io = smdk6400_map_io,
.init_machine = smdk6400_machine_init, .init_machine = smdk6400_machine_init,
.init_late = s3c64xx_init_late, .init_late = s3c64xx_init_late,
......
...@@ -45,7 +45,6 @@ ...@@ -45,7 +45,6 @@
#include <video/platform_lcd.h> #include <video/platform_lcd.h>
#include <video/samsung_fimd.h> #include <video/samsung_fimd.h>
#include <asm/hardware/vic.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/mach/irq.h> #include <asm/mach/irq.h>
...@@ -700,7 +699,6 @@ MACHINE_START(SMDK6410, "SMDK6410") ...@@ -700,7 +699,6 @@ MACHINE_START(SMDK6410, "SMDK6410")
.atag_offset = 0x100, .atag_offset = 0x100,
.init_irq = s3c6410_init_irq, .init_irq = s3c6410_init_irq,
.handle_irq = vic_handle_irq,
.map_io = smdk6410_map_io, .map_io = smdk6410_map_io,
.init_machine = smdk6410_machine_init, .init_machine = smdk6410_machine_init,
.init_late = s3c64xx_init_late, .init_late = s3c64xx_init_late,
......
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
#ifndef __ASM_ARCH_REGS_IRQ_H #ifndef __ASM_ARCH_REGS_IRQ_H
#define __ASM_ARCH_REGS_IRQ_H __FILE__ #define __ASM_ARCH_REGS_IRQ_H __FILE__
#include <asm/hardware/vic.h>
#include <mach/map.h> #include <mach/map.h>
#endif /* __ASM_ARCH_REGS_IRQ_H */ #endif /* __ASM_ARCH_REGS_IRQ_H */
/* linux/arch/arm/mach-s5p64x0/include/mach/tick.h
*
* Copyright (c) 2009-2010 Samsung Electronics Co., Ltd.
* http://www.samsung.com
*
* Copyright 2008 Openmoko, Inc.
* Copyright 2008 Simtec Electronics
* http://armlinux.simtec.co.uk/
* Ben Dooks <ben@simtec.co.uk>
*
* S5P64X0 - Timer tick support definitions
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __ASM_ARCH_TICK_H
#define __ASM_ARCH_TICK_H __FILE__
static inline u32 s3c24xx_ostimer_pending(void)
{
u32 pend = __raw_readl(VA_VIC0 + VIC_RAW_STATUS);
return pend & (1 << (IRQ_TIMER4_VIC - S5P_IRQ_VIC0(0)));
}
#define TICK_MAX (0xffffffff)
#endif /* __ASM_ARCH_TICK_H */
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
#include <video/platform_lcd.h> #include <video/platform_lcd.h>
#include <video/samsung_fimd.h> #include <video/samsung_fimd.h>
#include <asm/hardware/vic.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/irq.h> #include <asm/irq.h>
...@@ -272,7 +271,6 @@ MACHINE_START(SMDK6440, "SMDK6440") ...@@ -272,7 +271,6 @@ MACHINE_START(SMDK6440, "SMDK6440")
.atag_offset = 0x100, .atag_offset = 0x100,
.init_irq = s5p6440_init_irq, .init_irq = s5p6440_init_irq,
.handle_irq = vic_handle_irq,
.map_io = smdk6440_map_io, .map_io = smdk6440_map_io,
.init_machine = smdk6440_machine_init, .init_machine = smdk6440_machine_init,
.init_time = s5p_timer_init, .init_time = s5p_timer_init,
......
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
#include <video/platform_lcd.h> #include <video/platform_lcd.h>
#include <video/samsung_fimd.h> #include <video/samsung_fimd.h>
#include <asm/hardware/vic.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/irq.h> #include <asm/irq.h>
...@@ -291,7 +290,6 @@ MACHINE_START(SMDK6450, "SMDK6450") ...@@ -291,7 +290,6 @@ MACHINE_START(SMDK6450, "SMDK6450")
.atag_offset = 0x100, .atag_offset = 0x100,
.init_irq = s5p6450_init_irq, .init_irq = s5p6450_init_irq,
.handle_irq = vic_handle_irq,
.map_io = smdk6450_map_io, .map_io = smdk6450_map_io,
.init_machine = smdk6450_machine_init, .init_machine = smdk6450_machine_init,
.init_time = s5p_timer_init, .init_time = s5p_timer_init,
......
...@@ -14,6 +14,5 @@ ...@@ -14,6 +14,5 @@
#define __ASM_ARCH_REGS_IRQ_H __FILE__ #define __ASM_ARCH_REGS_IRQ_H __FILE__
#include <mach/map.h> #include <mach/map.h>
#include <asm/hardware/vic.h>
#endif /* __ASM_ARCH_REGS_IRQ_H */ #endif /* __ASM_ARCH_REGS_IRQ_H */
...@@ -15,6 +15,8 @@ ...@@ -15,6 +15,8 @@
#ifndef __ASM_ARCH_TICK_H #ifndef __ASM_ARCH_TICK_H
#define __ASM_ARCH_TICK_H __FILE__ #define __ASM_ARCH_TICK_H __FILE__
#include <linux/irqchip/arm-vic.h>
/* note, the timer interrutps turn up in 2 places, the vic and then /* note, the timer interrutps turn up in 2 places, the vic and then
* the timer block. We take the VIC as the base at the moment. * the timer block. We take the VIC as the base at the moment.
*/ */
......
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
#include <linux/input.h> #include <linux/input.h>
#include <linux/pwm_backlight.h> #include <linux/pwm_backlight.h>
#include <asm/hardware/vic.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
...@@ -254,7 +253,6 @@ MACHINE_START(SMDKC100, "SMDKC100") ...@@ -254,7 +253,6 @@ MACHINE_START(SMDKC100, "SMDKC100")
/* Maintainer: Byungho Min <bhmin@samsung.com> */ /* Maintainer: Byungho Min <bhmin@samsung.com> */
.atag_offset = 0x100, .atag_offset = 0x100,
.init_irq = s5pc100_init_irq, .init_irq = s5pc100_init_irq,
.handle_irq = vic_handle_irq,
.map_io = smdkc100_map_io, .map_io = smdkc100_map_io,
.init_machine = smdkc100_machine_init, .init_machine = smdkc100_machine_init,
.init_time = s3c24xx_timer_init, .init_time = s3c24xx_timer_init,
......
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
#ifndef __ASM_ARCH_REGS_IRQ_H #ifndef __ASM_ARCH_REGS_IRQ_H
#define __ASM_ARCH_REGS_IRQ_H __FILE__ #define __ASM_ARCH_REGS_IRQ_H __FILE__
#include <asm/hardware/vic.h>
#include <mach/map.h> #include <mach/map.h>
#endif /* __ASM_ARCH_REGS_IRQ_H */ #endif /* __ASM_ARCH_REGS_IRQ_H */
/* linux/arch/arm/mach-s5pv210/include/mach/tick.h
*
* Copyright (c) 2009 Samsung Electronics Co., Ltd.
* http://www.samsung.com/
*
* Based on arch/arm/mach-s3c6400/include/mach/tick.h
*
* S5PV210 - Timer tick support definitions
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __ASM_ARCH_TICK_H
#define __ASM_ARCH_TICK_H __FILE__
static inline u32 s3c24xx_ostimer_pending(void)
{
u32 pend = __raw_readl(VA_VIC0 + VIC_RAW_STATUS);
return pend & (1 << (IRQ_TIMER4_VIC - S5P_IRQ_VIC0(0)));
}
#define TICK_MAX (0xffffffff)
#endif /* __ASM_ARCH_TICK_H */
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
#include <linux/input.h> #include <linux/input.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <asm/hardware/vic.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/setup.h> #include <asm/setup.h>
...@@ -685,7 +684,6 @@ MACHINE_START(AQUILA, "Aquila") ...@@ -685,7 +684,6 @@ MACHINE_START(AQUILA, "Aquila")
Kyungmin Park <kyungmin.park@samsung.com> */ Kyungmin Park <kyungmin.park@samsung.com> */
.atag_offset = 0x100, .atag_offset = 0x100,
.init_irq = s5pv210_init_irq, .init_irq = s5pv210_init_irq,
.handle_irq = vic_handle_irq,
.map_io = aquila_map_io, .map_io = aquila_map_io,
.init_machine = aquila_machine_init, .init_machine = aquila_machine_init,
.init_time = s5p_timer_init, .init_time = s5p_timer_init,
......
...@@ -29,7 +29,6 @@ ...@@ -29,7 +29,6 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/platform_data/s3c-hsotg.h> #include <linux/platform_data/s3c-hsotg.h>
#include <asm/hardware/vic.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/setup.h> #include <asm/setup.h>
...@@ -972,7 +971,6 @@ MACHINE_START(GONI, "GONI") ...@@ -972,7 +971,6 @@ MACHINE_START(GONI, "GONI")
/* Maintainers: Kyungmin Park <kyungmin.park@samsung.com> */ /* Maintainers: Kyungmin Park <kyungmin.park@samsung.com> */
.atag_offset = 0x100, .atag_offset = 0x100,
.init_irq = s5pv210_init_irq, .init_irq = s5pv210_init_irq,
.handle_irq = vic_handle_irq,
.map_io = goni_map_io, .map_io = goni_map_io,
.init_machine = goni_machine_init, .init_machine = goni_machine_init,
.init_time = s5p_timer_init, .init_time = s5p_timer_init,
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/device.h> #include <linux/device.h>
#include <asm/hardware/vic.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/setup.h> #include <asm/setup.h>
...@@ -152,7 +151,6 @@ MACHINE_START(SMDKC110, "SMDKC110") ...@@ -152,7 +151,6 @@ MACHINE_START(SMDKC110, "SMDKC110")
/* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */
.atag_offset = 0x100, .atag_offset = 0x100,
.init_irq = s5pv210_init_irq, .init_irq = s5pv210_init_irq,
.handle_irq = vic_handle_irq,
.map_io = smdkc110_map_io, .map_io = smdkc110_map_io,
.init_machine = smdkc110_machine_init, .init_machine = smdkc110_machine_init,
.init_time = s5p_timer_init, .init_time = s5p_timer_init,
......
...@@ -21,7 +21,6 @@ ...@@ -21,7 +21,6 @@
#include <linux/pwm_backlight.h> #include <linux/pwm_backlight.h>
#include <linux/platform_data/s3c-hsotg.h> #include <linux/platform_data/s3c-hsotg.h>
#include <asm/hardware/vic.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/setup.h> #include <asm/setup.h>
...@@ -328,7 +327,6 @@ MACHINE_START(SMDKV210, "SMDKV210") ...@@ -328,7 +327,6 @@ MACHINE_START(SMDKV210, "SMDKV210")
/* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */
.atag_offset = 0x100, .atag_offset = 0x100,
.init_irq = s5pv210_init_irq, .init_irq = s5pv210_init_irq,
.handle_irq = vic_handle_irq,
.map_io = smdkv210_map_io, .map_io = smdkv210_map_io,
.init_machine = smdkv210_machine_init, .init_machine = smdkv210_machine_init,
.init_time = s5p_timer_init, .init_time = s5p_timer_init,
......
...@@ -14,7 +14,6 @@ ...@@ -14,7 +14,6 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <asm/hardware/vic.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/setup.h> #include <asm/setup.h>
...@@ -129,7 +128,6 @@ MACHINE_START(TORBRECK, "TORBRECK") ...@@ -129,7 +128,6 @@ MACHINE_START(TORBRECK, "TORBRECK")
/* Maintainer: Hyunchul Ko <ghcstop@gmail.com> */ /* Maintainer: Hyunchul Ko <ghcstop@gmail.com> */
.atag_offset = 0x100, .atag_offset = 0x100,
.init_irq = s5pv210_init_irq, .init_irq = s5pv210_init_irq,
.handle_irq = vic_handle_irq,
.map_io = torbreck_map_io, .map_io = torbreck_map_io,
.init_machine = torbreck_machine_init, .init_machine = torbreck_machine_init,
.init_time = s5p_timer_init, .init_time = s5p_timer_init,
......
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
#include <linux/mmc/sh_mobile_sdhi.h> #include <linux/mmc/sh_mobile_sdhi.h>
#include <linux/mfd/tmio.h> #include <linux/mfd/tmio.h>
#include <linux/sh_clk.h> #include <linux/sh_clk.h>
#include <linux/irqchip/arm-gic.h>
#include <video/sh_mobile_lcdc.h> #include <video/sh_mobile_lcdc.h>
#include <video/sh_mipi_dsi.h> #include <video/sh_mipi_dsi.h>
#include <sound/sh_fsi.h> #include <sound/sh_fsi.h>
...@@ -49,7 +50,6 @@ ...@@ -49,7 +50,6 @@
#include <mach/common.h> #include <mach/common.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/hardware/gic.h>
#include <asm/hardware/cache-l2x0.h> #include <asm/hardware/cache-l2x0.h>
#include <asm/traps.h> #include <asm/traps.h>
...@@ -668,7 +668,6 @@ MACHINE_START(AG5EVM, "ag5evm") ...@@ -668,7 +668,6 @@ MACHINE_START(AG5EVM, "ag5evm")
.init_early = sh73a0_add_early_devices, .init_early = sh73a0_add_early_devices,
.nr_irqs = NR_IRQS_LEGACY, .nr_irqs = NR_IRQS_LEGACY,
.init_irq = sh73a0_init_irq, .init_irq = sh73a0_init_irq,
.handle_irq = gic_handle_irq,
.init_machine = ag5evm_init, .init_machine = ag5evm_init,
.init_late = shmobile_init_late, .init_late = shmobile_init_late,
.init_time = sh73a0_earlytimer_init, .init_time = sh73a0_earlytimer_init,
......
...@@ -35,6 +35,7 @@ ...@@ -35,6 +35,7 @@
#include <linux/input/sh_keysc.h> #include <linux/input/sh_keysc.h>
#include <linux/gpio_keys.h> #include <linux/gpio_keys.h>
#include <linux/leds.h> #include <linux/leds.h>
#include <linux/irqchip/arm-gic.h>
#include <linux/platform_data/leds-renesas-tpu.h> #include <linux/platform_data/leds-renesas-tpu.h>
#include <linux/mmc/host.h> #include <linux/mmc/host.h>
#include <linux/mmc/sh_mmcif.h> #include <linux/mmc/sh_mmcif.h>
...@@ -47,7 +48,6 @@ ...@@ -47,7 +48,6 @@
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/time.h> #include <asm/mach/time.h>
#include <asm/hardware/gic.h>
#include <asm/hardware/cache-l2x0.h> #include <asm/hardware/cache-l2x0.h>
#include <asm/traps.h> #include <asm/traps.h>
...@@ -550,7 +550,6 @@ MACHINE_START(KOTA2, "kota2") ...@@ -550,7 +550,6 @@ MACHINE_START(KOTA2, "kota2")
.init_early = sh73a0_add_early_devices, .init_early = sh73a0_add_early_devices,
.nr_irqs = NR_IRQS_LEGACY, .nr_irqs = NR_IRQS_LEGACY,
.init_irq = sh73a0_init_irq, .init_irq = sh73a0_init_irq,
.handle_irq = gic_handle_irq,
.init_machine = kota2_init, .init_machine = kota2_init,
.init_late = shmobile_init_late, .init_late = shmobile_init_late,
.init_time = sh73a0_earlytimer_init, .init_time = sh73a0_earlytimer_init,
......
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
#include <mach/emev2.h> #include <mach/emev2.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/hardware/gic.h>
/* Dummy supplies, where voltage doesn't matter */ /* Dummy supplies, where voltage doesn't matter */
static struct regulator_consumer_supply dummy_supplies[] = { static struct regulator_consumer_supply dummy_supplies[] = {
...@@ -89,7 +88,6 @@ DT_MACHINE_START(KZM9D_DT, "kzm9d") ...@@ -89,7 +88,6 @@ DT_MACHINE_START(KZM9D_DT, "kzm9d")
.init_early = emev2_add_early_devices, .init_early = emev2_add_early_devices,
.nr_irqs = NR_IRQS_LEGACY, .nr_irqs = NR_IRQS_LEGACY,
.init_irq = emev2_init_irq, .init_irq = emev2_init_irq,
.handle_irq = gic_handle_irq,
.init_machine = kzm9d_add_standard_devices, .init_machine = kzm9d_add_standard_devices,
.init_late = shmobile_init_late, .init_late = shmobile_init_late,
.init_time = shmobile_timer_init, .init_time = shmobile_timer_init,
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/i2c/pcf857x.h> #include <linux/i2c/pcf857x.h>
#include <linux/input.h> #include <linux/input.h>
#include <linux/irqchip/arm-gic.h>
#include <linux/mmc/host.h> #include <linux/mmc/host.h>
#include <linux/mmc/sh_mmcif.h> #include <linux/mmc/sh_mmcif.h>
#include <linux/mmc/sh_mobile_sdhi.h> #include <linux/mmc/sh_mobile_sdhi.h>
...@@ -42,7 +43,6 @@ ...@@ -42,7 +43,6 @@
#include <mach/sh73a0.h> #include <mach/sh73a0.h>
#include <mach/common.h> #include <mach/common.h>
#include <asm/hardware/cache-l2x0.h> #include <asm/hardware/cache-l2x0.h>
#include <asm/hardware/gic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <video/sh_mobile_lcdc.h> #include <video/sh_mobile_lcdc.h>
...@@ -792,7 +792,6 @@ DT_MACHINE_START(KZM9G_DT, "kzm9g") ...@@ -792,7 +792,6 @@ DT_MACHINE_START(KZM9G_DT, "kzm9g")
.init_early = sh73a0_add_early_devices, .init_early = sh73a0_add_early_devices,
.nr_irqs = NR_IRQS_LEGACY, .nr_irqs = NR_IRQS_LEGACY,
.init_irq = sh73a0_init_irq, .init_irq = sh73a0_init_irq,
.handle_irq = gic_handle_irq,
.init_machine = kzm_init, .init_machine = kzm_init,
.init_late = shmobile_init_late, .init_late = shmobile_init_late,
.init_time = sh73a0_earlytimer_init, .init_time = sh73a0_earlytimer_init,
......
...@@ -44,7 +44,6 @@ ...@@ -44,7 +44,6 @@
#include <mach/irqs.h> #include <mach/irqs.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/hardware/gic.h>
#include <asm/traps.h> #include <asm/traps.h>
/* Fixed 3.3V regulator to be used by SDHI0 */ /* Fixed 3.3V regulator to be used by SDHI0 */
...@@ -382,7 +381,6 @@ MACHINE_START(MARZEN, "marzen") ...@@ -382,7 +381,6 @@ MACHINE_START(MARZEN, "marzen")
.init_early = r8a7779_add_early_devices, .init_early = r8a7779_add_early_devices,
.nr_irqs = NR_IRQS_LEGACY, .nr_irqs = NR_IRQS_LEGACY,
.init_irq = r8a7779_init_irq, .init_irq = r8a7779_init_irq,
.handle_irq = gic_handle_irq,
.init_machine = marzen_init, .init_machine = marzen_init,
.init_late = marzen_init_late, .init_late = marzen_init_late,
.init_time = r8a7779_earlytimer_init, .init_time = r8a7779_earlytimer_init,
......
...@@ -22,10 +22,10 @@ ...@@ -22,10 +22,10 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/irqchip/arm-gic.h>
#include <mach/common.h> #include <mach/common.h>
#include <mach/intc.h> #include <mach/intc.h>
#include <mach/r8a7779.h> #include <mach/r8a7779.h>
#include <asm/hardware/gic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
......
...@@ -23,10 +23,10 @@ ...@@ -23,10 +23,10 @@
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/sh_intc.h> #include <linux/sh_intc.h>
#include <linux/irqchip/arm-gic.h>
#include <mach/intc.h> #include <mach/intc.h>
#include <mach/irqs.h> #include <mach/irqs.h>
#include <mach/sh73a0.h> #include <mach/sh73a0.h>
#include <asm/hardware/gic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
*/ */
#include <linux/init.h> #include <linux/init.h>
#include <linux/smp.h> #include <linux/smp.h>
#include <asm/hardware/gic.h>
void __init shmobile_smp_init_cpus(unsigned int ncores) void __init shmobile_smp_init_cpus(unsigned int ncores)
{ {
...@@ -26,6 +25,4 @@ void __init shmobile_smp_init_cpus(unsigned int ncores) ...@@ -26,6 +25,4 @@ void __init shmobile_smp_init_cpus(unsigned int ncores)
for (i = 0; i < ncores; i++) for (i = 0; i < ncores; i++)
set_cpu_possible(i, true); set_cpu_possible(i, true);
set_smp_cross_call(gic_raise_softirq);
} }
...@@ -20,13 +20,14 @@ ...@@ -20,13 +20,14 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/irqchip.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/platform_data/gpio-em.h> #include <linux/platform_data/gpio-em.h>
#include <linux/of_platform.h> #include <linux/of_platform.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/input.h> #include <linux/input.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/of_irq.h> #include <linux/irqchip/arm-gic.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/common.h> #include <mach/common.h>
#include <mach/emev2.h> #include <mach/emev2.h>
...@@ -35,7 +36,6 @@ ...@@ -35,7 +36,6 @@
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/mach/time.h> #include <asm/mach/time.h>
#include <asm/hardware/gic.h>
static struct map_desc emev2_io_desc[] __initdata = { static struct map_desc emev2_io_desc[] __initdata = {
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
...@@ -445,27 +445,16 @@ void __init emev2_add_standard_devices_dt(void) ...@@ -445,27 +445,16 @@ void __init emev2_add_standard_devices_dt(void)
emev2_auxdata_lookup, NULL); emev2_auxdata_lookup, NULL);
} }
static const struct of_device_id emev2_dt_irq_match[] = {
{ .compatible = "arm,cortex-a9-gic", .data = gic_of_init, },
{},
};
static const char *emev2_boards_compat_dt[] __initdata = { static const char *emev2_boards_compat_dt[] __initdata = {
"renesas,emev2", "renesas,emev2",
NULL, NULL,
}; };
void __init emev2_init_irq_dt(void)
{
of_irq_init(emev2_dt_irq_match);
}
DT_MACHINE_START(EMEV2_DT, "Generic Emma Mobile EV2 (Flattened Device Tree)") DT_MACHINE_START(EMEV2_DT, "Generic Emma Mobile EV2 (Flattened Device Tree)")
.smp = smp_ops(emev2_smp_ops), .smp = smp_ops(emev2_smp_ops),
.init_early = emev2_init_delay, .init_early = emev2_init_delay,
.nr_irqs = NR_IRQS_LEGACY, .nr_irqs = NR_IRQS_LEGACY,
.init_irq = emev2_init_irq_dt, .init_irq = irqchip_init,
.handle_irq = gic_handle_irq,
.init_machine = emev2_add_standard_devices_dt, .init_machine = emev2_add_standard_devices_dt,
.init_time = shmobile_timer_init, .init_time = shmobile_timer_init,
.dt_compat = emev2_boards_compat_dt, .dt_compat = emev2_boards_compat_dt,
......
...@@ -23,11 +23,11 @@ ...@@ -23,11 +23,11 @@
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/irqchip/arm-gic.h>
#include <mach/common.h> #include <mach/common.h>
#include <mach/emev2.h> #include <mach/emev2.h>
#include <asm/smp_plat.h> #include <asm/smp_plat.h>
#include <asm/smp_scu.h> #include <asm/smp_scu.h>
#include <asm/hardware/gic.h>
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
#define EMEV2_SCU_BASE 0x1e000000 #define EMEV2_SCU_BASE 0x1e000000
...@@ -100,7 +100,7 @@ static int __cpuinit emev2_boot_secondary(unsigned int cpu, struct task_struct * ...@@ -100,7 +100,7 @@ static int __cpuinit emev2_boot_secondary(unsigned int cpu, struct task_struct *
/* Tell ROM loader about our vector (in headsmp.S) */ /* Tell ROM loader about our vector (in headsmp.S) */
emev2_set_boot_vector(__pa(shmobile_secondary_vector)); emev2_set_boot_vector(__pa(shmobile_secondary_vector));
gic_raise_softirq(cpumask_of(cpu), 0); arch_send_wakeup_ipi_mask(cpumask_of(cpu));
return 0; return 0;
} }
......
...@@ -23,12 +23,12 @@ ...@@ -23,12 +23,12 @@
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/irqchip/arm-gic.h>
#include <mach/common.h> #include <mach/common.h>
#include <mach/r8a7779.h> #include <mach/r8a7779.h>
#include <asm/smp_plat.h> #include <asm/smp_plat.h>
#include <asm/smp_scu.h> #include <asm/smp_scu.h>
#include <asm/smp_twd.h> #include <asm/smp_twd.h>
#include <asm/hardware/gic.h>
#define AVECR IOMEM(0xfe700040) #define AVECR IOMEM(0xfe700040)
......
...@@ -23,12 +23,12 @@ ...@@ -23,12 +23,12 @@
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/irqchip/arm-gic.h>
#include <mach/common.h> #include <mach/common.h>
#include <asm/smp_plat.h> #include <asm/smp_plat.h>
#include <mach/sh73a0.h> #include <mach/sh73a0.h>
#include <asm/smp_scu.h> #include <asm/smp_scu.h>
#include <asm/smp_twd.h> #include <asm/smp_twd.h>
#include <asm/hardware/gic.h>
#define WUPCR IOMEM(0xe6151010) #define WUPCR IOMEM(0xe6151010)
#define SRESCR IOMEM(0xe6151018) #define SRESCR IOMEM(0xe6151018)
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment