diff options
Diffstat (limited to 'arch/arm/mach-msm')
-rw-r--r-- | arch/arm/mach-msm/board-msm8960.c | 13 | ||||
-rw-r--r-- | arch/arm/mach-msm/board-msm8x60.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-msm/platsmp.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-msm/timer.c | 4 |
4 files changed, 2 insertions, 26 deletions
diff --git a/arch/arm/mach-msm/board-msm8960.c b/arch/arm/mach-msm/board-msm8960.c index 65f4a1daa2e5..bdafe791fd0b 100644 --- a/arch/arm/mach-msm/board-msm8960.c +++ b/arch/arm/mach-msm/board-msm8960.c | |||
@@ -55,24 +55,11 @@ static void __init msm8960_map_io(void) | |||
55 | 55 | ||
56 | static void __init msm8960_init_irq(void) | 56 | static void __init msm8960_init_irq(void) |
57 | { | 57 | { |
58 | unsigned int i; | ||
59 | gic_init(0, GIC_PPI_START, MSM_QGIC_DIST_BASE, | 58 | gic_init(0, GIC_PPI_START, MSM_QGIC_DIST_BASE, |
60 | (void *)MSM_QGIC_CPU_BASE); | 59 | (void *)MSM_QGIC_CPU_BASE); |
61 | 60 | ||
62 | /* Edge trigger PPIs except AVS_SVICINT and AVS_SVICINTSWDONE */ | ||
63 | writel(0xFFFFD7FF, MSM_QGIC_DIST_BASE + GIC_DIST_CONFIG + 4); | ||
64 | |||
65 | if (machine_is_msm8960_rumi3()) | 61 | if (machine_is_msm8960_rumi3()) |
66 | writel(0x0000FFFF, MSM_QGIC_DIST_BASE + GIC_DIST_ENABLE_SET); | 62 | writel(0x0000FFFF, MSM_QGIC_DIST_BASE + GIC_DIST_ENABLE_SET); |
67 | |||
68 | /* FIXME: Not installing AVS_SVICINT and AVS_SVICINTSWDONE yet | ||
69 | * as they are configured as level, which does not play nice with | ||
70 | * handle_percpu_irq. | ||
71 | */ | ||
72 | for (i = GIC_PPI_START; i < GIC_SPI_START; i++) { | ||
73 | if (i != AVS_SVICINT && i != AVS_SVICINTSWDONE) | ||
74 | irq_set_handler(i, handle_percpu_irq); | ||
75 | } | ||
76 | } | 63 | } |
77 | 64 | ||
78 | static struct platform_device *sim_devices[] __initdata = { | 65 | static struct platform_device *sim_devices[] __initdata = { |
diff --git a/arch/arm/mach-msm/board-msm8x60.c b/arch/arm/mach-msm/board-msm8x60.c index 13ca9bb5a4d6..9df5c8357495 100644 --- a/arch/arm/mach-msm/board-msm8x60.c +++ b/arch/arm/mach-msm/board-msm8x60.c | |||
@@ -67,9 +67,6 @@ static void __init msm8x60_init_irq(void) | |||
67 | of_irq_init(msm_dt_gic_match); | 67 | of_irq_init(msm_dt_gic_match); |
68 | #endif | 68 | #endif |
69 | 69 | ||
70 | /* Edge trigger PPIs except AVS_SVICINT and AVS_SVICINTSWDONE */ | ||
71 | writel(0xFFFFD7FF, MSM_QGIC_DIST_BASE + GIC_DIST_CONFIG + 4); | ||
72 | |||
73 | /* RUMI does not adhere to GIC spec by enabling STIs by default. | 70 | /* RUMI does not adhere to GIC spec by enabling STIs by default. |
74 | * Enable/clear is supposed to be RO for STIs, but is RW on RUMI. | 71 | * Enable/clear is supposed to be RO for STIs, but is RW on RUMI. |
75 | */ | 72 | */ |
diff --git a/arch/arm/mach-msm/platsmp.c b/arch/arm/mach-msm/platsmp.c index db0117ec55f4..b119f9947dfe 100644 --- a/arch/arm/mach-msm/platsmp.c +++ b/arch/arm/mach-msm/platsmp.c | |||
@@ -22,17 +22,12 @@ | |||
22 | #include <asm/mach-types.h> | 22 | #include <asm/mach-types.h> |
23 | #include <asm/smp_plat.h> | 23 | #include <asm/smp_plat.h> |
24 | 24 | ||
25 | #include <mach/msm_iomap.h> | ||
26 | |||
27 | #include "scm-boot.h" | 25 | #include "scm-boot.h" |
28 | 26 | ||
29 | #define VDD_SC1_ARRAY_CLAMP_GFS_CTL 0x15A0 | 27 | #define VDD_SC1_ARRAY_CLAMP_GFS_CTL 0x15A0 |
30 | #define SCSS_CPU1CORE_RESET 0xD80 | 28 | #define SCSS_CPU1CORE_RESET 0xD80 |
31 | #define SCSS_DBG_STATUS_CORE_PWRDUP 0xE64 | 29 | #define SCSS_DBG_STATUS_CORE_PWRDUP 0xE64 |
32 | 30 | ||
33 | /* Mask for edge trigger PPIs except AVS_SVICINT and AVS_SVICINTSWDONE */ | ||
34 | #define GIC_PPI_EDGE_MASK 0xFFFFD7FF | ||
35 | |||
36 | extern void msm_secondary_startup(void); | 31 | extern void msm_secondary_startup(void); |
37 | /* | 32 | /* |
38 | * control for which core is the next to come out of the secondary | 33 | * control for which core is the next to come out of the secondary |
@@ -50,9 +45,6 @@ static inline int get_core_count(void) | |||
50 | 45 | ||
51 | void __cpuinit platform_secondary_init(unsigned int cpu) | 46 | void __cpuinit platform_secondary_init(unsigned int cpu) |
52 | { | 47 | { |
53 | /* Configure edge-triggered PPIs */ | ||
54 | writel(GIC_PPI_EDGE_MASK, MSM_QGIC_DIST_BASE + GIC_DIST_CONFIG + 4); | ||
55 | |||
56 | /* | 48 | /* |
57 | * if any interrupts are already enabled for the primary | 49 | * if any interrupts are already enabled for the primary |
58 | * core (e.g. timer irq), then they will not have been enabled | 50 | * core (e.g. timer irq), then they will not have been enabled |
diff --git a/arch/arm/mach-msm/timer.c b/arch/arm/mach-msm/timer.c index 812808254936..36bbc60b699f 100644 --- a/arch/arm/mach-msm/timer.c +++ b/arch/arm/mach-msm/timer.c | |||
@@ -151,7 +151,7 @@ static int __cpuinit msm_local_timer_setup(struct clock_event_device *evt) | |||
151 | 151 | ||
152 | *__this_cpu_ptr(msm_evt.percpu_evt) = evt; | 152 | *__this_cpu_ptr(msm_evt.percpu_evt) = evt; |
153 | clockevents_register_device(evt); | 153 | clockevents_register_device(evt); |
154 | enable_percpu_irq(evt->irq, 0); | 154 | enable_percpu_irq(evt->irq, IRQ_TYPE_EDGE_RISING); |
155 | return 0; | 155 | return 0; |
156 | } | 156 | } |
157 | 157 | ||
@@ -219,7 +219,7 @@ static void __init msm_timer_init(void) | |||
219 | res = request_percpu_irq(ce->irq, msm_timer_interrupt, | 219 | res = request_percpu_irq(ce->irq, msm_timer_interrupt, |
220 | ce->name, msm_evt.percpu_evt); | 220 | ce->name, msm_evt.percpu_evt); |
221 | if (!res) { | 221 | if (!res) { |
222 | enable_percpu_irq(ce->irq, 0); | 222 | enable_percpu_irq(ce->irq, IRQ_TYPE_EDGE_RISING); |
223 | #ifdef CONFIG_LOCAL_TIMERS | 223 | #ifdef CONFIG_LOCAL_TIMERS |
224 | local_timer_register(&msm_local_timer_ops); | 224 | local_timer_register(&msm_local_timer_ops); |
225 | #endif | 225 | #endif |