aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-shmobile/entry-gic.S8
-rw-r--r--arch/arm/mach-shmobile/include/mach/smp.h6
-rw-r--r--arch/arm/mach-shmobile/intc-sh73a0.c4
-rw-r--r--arch/arm/mach-shmobile/smp-sh73a0.c2
4 files changed, 9 insertions, 11 deletions
diff --git a/arch/arm/mach-shmobile/entry-gic.S b/arch/arm/mach-shmobile/entry-gic.S
index 6e4fa4715199..e20239b08c83 100644
--- a/arch/arm/mach-shmobile/entry-gic.S
+++ b/arch/arm/mach-shmobile/entry-gic.S
@@ -2,19 +2,17 @@
2 * ARM Interrupt demux handler using GIC 2 * ARM Interrupt demux handler using GIC
3 * 3 *
4 * Copyright (C) 2010 Magnus Damm 4 * Copyright (C) 2010 Magnus Damm
5 * Copyright (C) 2010 Renesas Solutions Corp. 5 * Copyright (C) 2011 Paul Mundt
6 * Copyright (C) 2010 - 2011 Renesas Solutions Corp.
6 * 7 *
7 * This file is licensed under the terms of the GNU General Public 8 * This file is licensed under the terms of the GNU General Public
8 * License version 2. This program is licensed "as is" without any 9 * License version 2. This program is licensed "as is" without any
9 * warranty of any kind, whether express or implied. 10 * warranty of any kind, whether express or implied.
10 */ 11 */
11 12
13#include <asm/assembler.h>
12#include <asm/entry-macro-multi.S> 14#include <asm/entry-macro-multi.S>
13#include <asm/hardware/gic.h> 15#include <asm/hardware/gic.h>
14#include <asm/hardware/entry-macro-gic.S> 16#include <asm/hardware/entry-macro-gic.S>
15 17
16 .macro get_irqnr_preamble, base, tmp
17 ldr \base, =(0xf0000100)
18 .endm
19
20 arch_irq_handler shmobile_handle_irq_gic 18 arch_irq_handler shmobile_handle_irq_gic
diff --git a/arch/arm/mach-shmobile/include/mach/smp.h b/arch/arm/mach-shmobile/include/mach/smp.h
index f4a35ff82c67..50db94e927ad 100644
--- a/arch/arm/mach-shmobile/include/mach/smp.h
+++ b/arch/arm/mach-shmobile/include/mach/smp.h
@@ -2,15 +2,15 @@
2#define __MACH_SMP_H 2#define __MACH_SMP_H
3 3
4#include <asm/hardware/gic.h> 4#include <asm/hardware/gic.h>
5#include <asm/smp_mpidr.h>
6 5
7/* 6/*
8 * We use IRQ1 as the IPI 7 * We use IRQ1 as the IPI
9 */ 8 */
10static inline void smp_cross_call(const struct cpumask *mask) 9static inline void smp_cross_call(const struct cpumask *mask, int ipi)
11{ 10{
12#if defined(CONFIG_ARM_GIC) 11#if defined(CONFIG_ARM_GIC)
13 gic_raise_softirq(mask, 1); 12 gic_raise_softirq(mask, ipi);
14#endif 13#endif
15} 14}
15
16#endif 16#endif
diff --git a/arch/arm/mach-shmobile/intc-sh73a0.c b/arch/arm/mach-shmobile/intc-sh73a0.c
index 5af2be07c2b8..322d8d57cbcf 100644
--- a/arch/arm/mach-shmobile/intc-sh73a0.c
+++ b/arch/arm/mach-shmobile/intc-sh73a0.c
@@ -252,10 +252,10 @@ static irqreturn_t sh73a0_intcs_demux(int irq, void *dev_id)
252 252
253void __init sh73a0_init_irq(void) 253void __init sh73a0_init_irq(void)
254{ 254{
255 void __iomem *gic_base = __io(0xf0001000);
255 void __iomem *intevtsa = ioremap_nocache(0xffd20100, PAGE_SIZE); 256 void __iomem *intevtsa = ioremap_nocache(0xffd20100, PAGE_SIZE);
256 257
257 gic_dist_init(0, __io(0xf0001000), 29); 258 gic_init(0, 29, gic_base, gic_base);
258 gic_cpu_init(0, __io(0xf0000100));
259 259
260 register_intc_controller(&intcs_desc); 260 register_intc_controller(&intcs_desc);
261 261
diff --git a/arch/arm/mach-shmobile/smp-sh73a0.c b/arch/arm/mach-shmobile/smp-sh73a0.c
index 4e71fd416cd5..a156d2108df1 100644
--- a/arch/arm/mach-shmobile/smp-sh73a0.c
+++ b/arch/arm/mach-shmobile/smp-sh73a0.c
@@ -64,7 +64,7 @@ unsigned int __init sh73a0_get_core_count(void)
64 64
65void __cpuinit sh73a0_secondary_init(unsigned int cpu) 65void __cpuinit sh73a0_secondary_init(unsigned int cpu)
66{ 66{
67 gic_cpu_init(0, __io(0xf0000100)); 67 gic_secondary_init(0);
68} 68}
69 69
70int __cpuinit sh73a0_boot_secondary(unsigned int cpu) 70int __cpuinit sh73a0_boot_secondary(unsigned int cpu)