#include <linux/init.h>
#include <linux/kernel.h>
-#include <linux/of_irq.h>
+#include <linux/irqchip.h>
#include <asm/sizes.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
-#include <asm/hardware/gic.h>
#include <linux/of.h>
#include <linux/of_platform.h>
#include "common.h"
#endif
#ifdef CONFIG_ARCH_MARCO
-static const struct of_device_id marco_irq_match[] __initconst = {
- { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, },
- { /* sentinel */ }
-};
-
-static void __init marco_init_irq(void)
-{
- of_irq_init(marco_irq_match);
-}
-
static const char *marco_dt_match[] __initdata = {
"sirf,marco",
NULL
/* Maintainer: Barry Song <baohua.song@csr.com> */
.smp = smp_ops(sirfsoc_smp_ops),
.map_io = sirfsoc_map_io,
- .init_irq = marco_init_irq,
+ .init_irq = irqchip_init,
.init_time = sirfsoc_marco_timer_init,
- .handle_irq = gic_handle_irq,
.init_machine = sirfsoc_mach_init,
.init_late = sirfsoc_init_late,
.dt_compat = marco_dt_match,
#include <linux/delay.h>
#include <linux/of.h>
#include <linux/of_address.h>
+#include <linux/irqchip/arm-gic.h>
#include <asm/page.h>
#include <asm/mach/map.h>
#include <asm/smp_plat.h>
#include <asm/smp_scu.h>
#include <asm/cacheflush.h>
#include <asm/cputype.h>
-#include <asm/hardware/gic.h>
#include <mach/map.h>
#include "common.h"
return pen_release != -1 ? -ENOSYS : 0;
}
-static void __init sirfsoc_smp_init_cpus(void)
-{
- set_smp_cross_call(gic_raise_softirq);
-}
-
static void __init sirfsoc_smp_prepare_cpus(unsigned int max_cpus)
{
scu_enable(scu_base);
}
struct smp_operations sirfsoc_smp_ops __initdata = {
- .smp_init_cpus = sirfsoc_smp_init_cpus,
.smp_prepare_cpus = sirfsoc_smp_prepare_cpus,
.smp_secondary_init = sirfsoc_secondary_init,
.smp_boot_secondary = sirfsoc_boot_secondary,