diff options
Diffstat (limited to 'arch/arm/mach-msm')
| -rw-r--r-- | arch/arm/mach-msm/board-dt-8660.c | 16 | ||||
| -rw-r--r-- | arch/arm/mach-msm/board-dt-8960.c | 16 | ||||
| -rw-r--r-- | arch/arm/mach-msm/platsmp.c | 6 | ||||
| -rw-r--r-- | arch/arm/mach-msm/timer.c | 7 |
4 files changed, 7 insertions, 38 deletions
diff --git a/arch/arm/mach-msm/board-dt-8660.c b/arch/arm/mach-msm/board-dt-8660.c index 27c41eabfd12..7dcfc5300bbd 100644 --- a/arch/arm/mach-msm/board-dt-8660.c +++ b/arch/arm/mach-msm/board-dt-8660.c | |||
| @@ -11,26 +11,15 @@ | |||
| 11 | */ | 11 | */ |
| 12 | 12 | ||
| 13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
| 14 | #include <linux/irqchip.h> | ||
| 14 | #include <linux/of.h> | 15 | #include <linux/of.h> |
| 15 | #include <linux/of_irq.h> | ||
| 16 | #include <linux/of_platform.h> | 16 | #include <linux/of_platform.h> |
| 17 | 17 | ||
| 18 | #include <asm/mach/arch.h> | 18 | #include <asm/mach/arch.h> |
| 19 | #include <asm/hardware/gic.h> | ||
| 20 | 19 | ||
| 21 | #include <mach/board.h> | 20 | #include <mach/board.h> |
| 22 | #include "common.h" | 21 | #include "common.h" |
| 23 | 22 | ||
| 24 | static const struct of_device_id msm_dt_gic_match[] __initconst = { | ||
| 25 | { .compatible = "qcom,msm-8660-qgic", .data = gic_of_init }, | ||
| 26 | {} | ||
| 27 | }; | ||
| 28 | |||
| 29 | static void __init msm8x60_init_irq(void) | ||
| 30 | { | ||
| 31 | of_irq_init(msm_dt_gic_match); | ||
| 32 | } | ||
| 33 | |||
| 34 | static void __init msm8x60_init_late(void) | 23 | static void __init msm8x60_init_late(void) |
| 35 | { | 24 | { |
| 36 | smd_debugfs_init(); | 25 | smd_debugfs_init(); |
| @@ -55,8 +44,7 @@ static const char *msm8x60_fluid_match[] __initdata = { | |||
| 55 | DT_MACHINE_START(MSM_DT, "Qualcomm MSM (Flattened Device Tree)") | 44 | DT_MACHINE_START(MSM_DT, "Qualcomm MSM (Flattened Device Tree)") |
| 56 | .smp = smp_ops(msm_smp_ops), | 45 | .smp = smp_ops(msm_smp_ops), |
| 57 | .map_io = msm_map_msm8x60_io, | 46 | .map_io = msm_map_msm8x60_io, |
| 58 | .init_irq = msm8x60_init_irq, | 47 | .init_irq = irqchip_init, |
| 59 | .handle_irq = gic_handle_irq, | ||
| 60 | .init_machine = msm8x60_dt_init, | 48 | .init_machine = msm8x60_dt_init, |
| 61 | .init_late = msm8x60_init_late, | 49 | .init_late = msm8x60_init_late, |
| 62 | .init_time = msm_dt_timer_init, | 50 | .init_time = msm_dt_timer_init, |
diff --git a/arch/arm/mach-msm/board-dt-8960.c b/arch/arm/mach-msm/board-dt-8960.c index 3226d5276962..73019363ffa4 100644 --- a/arch/arm/mach-msm/board-dt-8960.c +++ b/arch/arm/mach-msm/board-dt-8960.c | |||
| @@ -11,24 +11,13 @@ | |||
| 11 | */ | 11 | */ |
| 12 | 12 | ||
| 13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
| 14 | #include <linux/of_irq.h> | 14 | #include <linux/irqchip.h> |
| 15 | #include <linux/of_platform.h> | 15 | #include <linux/of_platform.h> |
| 16 | 16 | ||
| 17 | #include <asm/hardware/gic.h> | ||
| 18 | #include <asm/mach/arch.h> | 17 | #include <asm/mach/arch.h> |
| 19 | 18 | ||
| 20 | #include "common.h" | 19 | #include "common.h" |
| 21 | 20 | ||
| 22 | static const struct of_device_id msm_dt_gic_match[] __initconst = { | ||
| 23 | { .compatible = "qcom,msm-qgic2", .data = gic_of_init }, | ||
| 24 | { } | ||
| 25 | }; | ||
| 26 | |||
| 27 | static void __init msm_dt_init_irq(void) | ||
| 28 | { | ||
| 29 | of_irq_init(msm_dt_gic_match); | ||
| 30 | } | ||
| 31 | |||
| 32 | static void __init msm_dt_init(void) | 21 | static void __init msm_dt_init(void) |
| 33 | { | 22 | { |
| 34 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); | 23 | of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); |
| @@ -42,9 +31,8 @@ static const char * const msm8960_dt_match[] __initconst = { | |||
| 42 | DT_MACHINE_START(MSM8960_DT, "Qualcomm MSM (Flattened Device Tree)") | 31 | DT_MACHINE_START(MSM8960_DT, "Qualcomm MSM (Flattened Device Tree)") |
| 43 | .smp = smp_ops(msm_smp_ops), | 32 | .smp = smp_ops(msm_smp_ops), |
| 44 | .map_io = msm_map_msm8960_io, | 33 | .map_io = msm_map_msm8960_io, |
| 45 | .init_irq = msm_dt_init_irq, | 34 | .init_irq = irqchip_init, |
| 46 | .init_time = msm_dt_timer_init, | 35 | .init_time = msm_dt_timer_init, |
| 47 | .init_machine = msm_dt_init, | 36 | .init_machine = msm_dt_init, |
| 48 | .dt_compat = msm8960_dt_match, | 37 | .dt_compat = msm8960_dt_match, |
| 49 | .handle_irq = gic_handle_irq, | ||
| 50 | MACHINE_END | 38 | MACHINE_END |
diff --git a/arch/arm/mach-msm/platsmp.c b/arch/arm/mach-msm/platsmp.c index 7ed69b69c87c..42932865416a 100644 --- a/arch/arm/mach-msm/platsmp.c +++ b/arch/arm/mach-msm/platsmp.c | |||
| @@ -15,8 +15,8 @@ | |||
| 15 | #include <linux/jiffies.h> | 15 | #include <linux/jiffies.h> |
| 16 | #include <linux/smp.h> | 16 | #include <linux/smp.h> |
| 17 | #include <linux/io.h> | 17 | #include <linux/io.h> |
| 18 | #include <linux/irqchip/arm-gic.h> | ||
| 18 | 19 | ||
| 19 | #include <asm/hardware/gic.h> | ||
| 20 | #include <asm/cacheflush.h> | 20 | #include <asm/cacheflush.h> |
| 21 | #include <asm/cputype.h> | 21 | #include <asm/cputype.h> |
| 22 | #include <asm/mach-types.h> | 22 | #include <asm/mach-types.h> |
| @@ -115,7 +115,7 @@ static int __cpuinit msm_boot_secondary(unsigned int cpu, struct task_struct *id | |||
| 115 | * the boot monitor to read the system wide flags register, | 115 | * the boot monitor to read the system wide flags register, |
| 116 | * and branch to the address found there. | 116 | * and branch to the address found there. |
| 117 | */ | 117 | */ |
| 118 | gic_raise_softirq(cpumask_of(cpu), 0); | 118 | arch_send_wakeup_ipi_mask(cpumask_of(cpu)); |
| 119 | 119 | ||
| 120 | timeout = jiffies + (1 * HZ); | 120 | timeout = jiffies + (1 * HZ); |
| 121 | while (time_before(jiffies, timeout)) { | 121 | while (time_before(jiffies, timeout)) { |
| @@ -153,8 +153,6 @@ static void __init msm_smp_init_cpus(void) | |||
| 153 | 153 | ||
| 154 | for (i = 0; i < ncores; i++) | 154 | for (i = 0; i < ncores; i++) |
| 155 | set_cpu_possible(i, true); | 155 | set_cpu_possible(i, true); |
| 156 | |||
| 157 | set_smp_cross_call(gic_raise_softirq); | ||
| 158 | } | 156 | } |
| 159 | 157 | ||
| 160 | static void __init msm_smp_prepare_cpus(unsigned int max_cpus) | 158 | static void __init msm_smp_prepare_cpus(unsigned int max_cpus) |
diff --git a/arch/arm/mach-msm/timer.c b/arch/arm/mach-msm/timer.c index 2fb5f3eec50f..2969027f02fa 100644 --- a/arch/arm/mach-msm/timer.c +++ b/arch/arm/mach-msm/timer.c | |||
| @@ -25,7 +25,6 @@ | |||
| 25 | #include <linux/of_irq.h> | 25 | #include <linux/of_irq.h> |
| 26 | 26 | ||
| 27 | #include <asm/mach/time.h> | 27 | #include <asm/mach/time.h> |
| 28 | #include <asm/hardware/gic.h> | ||
| 29 | #include <asm/localtimer.h> | 28 | #include <asm/localtimer.h> |
| 30 | #include <asm/sched_clock.h> | 29 | #include <asm/sched_clock.h> |
| 31 | 30 | ||
| @@ -144,13 +143,9 @@ static int __cpuinit msm_local_timer_setup(struct clock_event_device *evt) | |||
| 144 | evt->rating = msm_clockevent.rating; | 143 | evt->rating = msm_clockevent.rating; |
| 145 | evt->set_mode = msm_timer_set_mode; | 144 | evt->set_mode = msm_timer_set_mode; |
| 146 | evt->set_next_event = msm_timer_set_next_event; | 145 | evt->set_next_event = msm_timer_set_next_event; |
| 147 | evt->shift = msm_clockevent.shift; | ||
| 148 | evt->mult = div_sc(GPT_HZ, NSEC_PER_SEC, evt->shift); | ||
| 149 | evt->max_delta_ns = clockevent_delta2ns(0xf0000000, evt); | ||
| 150 | evt->min_delta_ns = clockevent_delta2ns(4, evt); | ||
| 151 | 146 | ||
| 152 | *__this_cpu_ptr(msm_evt.percpu_evt) = evt; | 147 | *__this_cpu_ptr(msm_evt.percpu_evt) = evt; |
| 153 | clockevents_register_device(evt); | 148 | clockevents_config_and_register(evt, GPT_HZ, 4, 0xf0000000); |
| 154 | enable_percpu_irq(evt->irq, IRQ_TYPE_EDGE_RISING); | 149 | enable_percpu_irq(evt->irq, IRQ_TYPE_EDGE_RISING); |
| 155 | return 0; | 150 | return 0; |
| 156 | } | 151 | } |
