aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/smtc.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/kernel/smtc.c')
-rw-r--r--arch/mips/kernel/smtc.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/arch/mips/kernel/smtc.c b/arch/mips/kernel/smtc.c
index 5f5af7d4c890..c16bb6d6c25c 100644
--- a/arch/mips/kernel/smtc.c
+++ b/arch/mips/kernel/smtc.c
@@ -20,6 +20,7 @@
20#include <linux/clockchips.h> 20#include <linux/clockchips.h>
21#include <linux/kernel.h> 21#include <linux/kernel.h>
22#include <linux/sched.h> 22#include <linux/sched.h>
23#include <linux/smp.h>
23#include <linux/cpumask.h> 24#include <linux/cpumask.h>
24#include <linux/interrupt.h> 25#include <linux/interrupt.h>
25#include <linux/kernel_stat.h> 26#include <linux/kernel_stat.h>
@@ -464,11 +465,8 @@ void smtc_prepare_cpus(int cpus)
464 smtc_configure_tlb(); 465 smtc_configure_tlb();
465 466
466 for (tc = 0, vpe = 0 ; (vpe < nvpe) && (tc < ntc) ; vpe++) { 467 for (tc = 0, vpe = 0 ; (vpe < nvpe) && (tc < ntc) ; vpe++) {
467 /* 468 if (tcpervpe[vpe] == 0)
468 * Set the MVP bits. 469 continue;
469 */
470 settc(tc);
471 write_vpe_c0_vpeconf0(read_vpe_c0_vpeconf0() | VPECONF0_MVP);
472 if (vpe != 0) 470 if (vpe != 0)
473 printk(", "); 471 printk(", ");
474 printk("VPE %d: TC", vpe); 472 printk("VPE %d: TC", vpe);
@@ -487,6 +485,12 @@ void smtc_prepare_cpus(int cpus)
487 } 485 }
488 if (vpe != 0) { 486 if (vpe != 0) {
489 /* 487 /*
488 * Allow this VPE to control others.
489 */
490 write_vpe_c0_vpeconf0(read_vpe_c0_vpeconf0() |
491 VPECONF0_MVP);
492
493 /*
490 * Clear any stale software interrupts from VPE's Cause 494 * Clear any stale software interrupts from VPE's Cause
491 */ 495 */
492 write_vpe_c0_cause(0); 496 write_vpe_c0_cause(0);
@@ -924,6 +928,7 @@ void ipi_decode(struct smtc_ipi *pipi)
924 int irq = MIPS_CPU_IRQ_BASE + 1; 928 int irq = MIPS_CPU_IRQ_BASE + 1;
925 929
926 smtc_ipi_nq(&freeIPIq, pipi); 930 smtc_ipi_nq(&freeIPIq, pipi);
931
927 switch (type_copy) { 932 switch (type_copy) {
928 case SMTC_CLOCK_TICK: 933 case SMTC_CLOCK_TICK:
929 irq_enter(); 934 irq_enter();