diff options
Diffstat (limited to 'arch/mips/mti-malta')
-rw-r--r-- | arch/mips/mti-malta/malta-int.c | 6 | ||||
-rw-r--r-- | arch/mips/mti-malta/malta-time.c | 13 |
2 files changed, 6 insertions, 13 deletions
diff --git a/arch/mips/mti-malta/malta-int.c b/arch/mips/mti-malta/malta-int.c index 3b3bc1d9ebf9..c6b35482505d 100644 --- a/arch/mips/mti-malta/malta-int.c +++ b/arch/mips/mti-malta/malta-int.c | |||
@@ -273,11 +273,7 @@ asmlinkage void plat_irq_dispatch(void) | |||
273 | 273 | ||
274 | irq = irq_ffs(pending); | 274 | irq = irq_ffs(pending); |
275 | 275 | ||
276 | /* HACK: GIC doesn't properly dispatch local interrupts yet */ | 276 | do_IRQ(MIPS_CPU_IRQ_BASE + irq); |
277 | if (gic_present && irq == MIPSCPU_INT_GIC && gic_compare_int()) | ||
278 | do_IRQ(MIPS_GIC_IRQ_BASE); | ||
279 | else | ||
280 | do_IRQ(MIPS_CPU_IRQ_BASE + irq); | ||
281 | } | 277 | } |
282 | 278 | ||
283 | #ifdef CONFIG_MIPS_MT_SMP | 279 | #ifdef CONFIG_MIPS_MT_SMP |
diff --git a/arch/mips/mti-malta/malta-time.c b/arch/mips/mti-malta/malta-time.c index 17cfc8a379a6..f6ca8ea4d992 100644 --- a/arch/mips/mti-malta/malta-time.c +++ b/arch/mips/mti-malta/malta-time.c | |||
@@ -126,9 +126,9 @@ int get_c0_perfcount_int(void) | |||
126 | if (cpu_has_veic) { | 126 | if (cpu_has_veic) { |
127 | set_vi_handler(MSC01E_INT_PERFCTR, mips_perf_dispatch); | 127 | set_vi_handler(MSC01E_INT_PERFCTR, mips_perf_dispatch); |
128 | mips_cpu_perf_irq = MSC01E_INT_BASE + MSC01E_INT_PERFCTR; | 128 | mips_cpu_perf_irq = MSC01E_INT_BASE + MSC01E_INT_PERFCTR; |
129 | } else if (gic_present) { | ||
130 | mips_cpu_perf_irq = gic_get_c0_perfcount_int(); | ||
129 | } else if (cp0_perfcount_irq >= 0) { | 131 | } else if (cp0_perfcount_irq >= 0) { |
130 | if (cpu_has_vint) | ||
131 | set_vi_handler(cp0_perfcount_irq, mips_perf_dispatch); | ||
132 | mips_cpu_perf_irq = MIPS_CPU_IRQ_BASE + cp0_perfcount_irq; | 132 | mips_cpu_perf_irq = MIPS_CPU_IRQ_BASE + cp0_perfcount_irq; |
133 | } else { | 133 | } else { |
134 | mips_cpu_perf_irq = -1; | 134 | mips_cpu_perf_irq = -1; |
@@ -139,15 +139,12 @@ int get_c0_perfcount_int(void) | |||
139 | 139 | ||
140 | unsigned int get_c0_compare_int(void) | 140 | unsigned int get_c0_compare_int(void) |
141 | { | 141 | { |
142 | #ifdef MSC01E_INT_BASE | ||
143 | if (cpu_has_veic) { | 142 | if (cpu_has_veic) { |
144 | set_vi_handler(MSC01E_INT_CPUCTR, mips_timer_dispatch); | 143 | set_vi_handler(MSC01E_INT_CPUCTR, mips_timer_dispatch); |
145 | mips_cpu_timer_irq = MSC01E_INT_BASE + MSC01E_INT_CPUCTR; | 144 | mips_cpu_timer_irq = MSC01E_INT_BASE + MSC01E_INT_CPUCTR; |
146 | } else | 145 | } else if (gic_present) { |
147 | #endif | 146 | mips_cpu_timer_irq = gic_get_c0_compare_int(); |
148 | { | 147 | } else { |
149 | if (cpu_has_vint) | ||
150 | set_vi_handler(cp0_compare_irq, mips_timer_dispatch); | ||
151 | mips_cpu_timer_irq = MIPS_CPU_IRQ_BASE + cp0_compare_irq; | 148 | mips_cpu_timer_irq = MIPS_CPU_IRQ_BASE + cp0_compare_irq; |
152 | } | 149 | } |
153 | 150 | ||