aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/cevt-sb1250.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/kernel/cevt-sb1250.c')
-rw-r--r--arch/mips/kernel/cevt-sb1250.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/mips/kernel/cevt-sb1250.c b/arch/mips/kernel/cevt-sb1250.c
index e2029d0fc39b..63ac3ad462bc 100644
--- a/arch/mips/kernel/cevt-sb1250.c
+++ b/arch/mips/kernel/cevt-sb1250.c
@@ -73,6 +73,7 @@ static int sibyte_next_event(unsigned long delta, struct clock_event_device *cd)
73 cfg = IOADDR(A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_CFG)); 73 cfg = IOADDR(A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_CFG));
74 init = IOADDR(A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_INIT)); 74 init = IOADDR(A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_INIT));
75 75
76 __raw_writeq(0, cfg);
76 __raw_writeq(delta - 1, init); 77 __raw_writeq(delta - 1, init);
77 __raw_writeq(M_SCD_TIMER_ENABLE, cfg); 78 __raw_writeq(M_SCD_TIMER_ENABLE, cfg);
78 79
@@ -121,7 +122,7 @@ void __cpuinit sb1250_clockevent_init(void)
121 CLOCK_EVT_FEAT_ONESHOT; 122 CLOCK_EVT_FEAT_ONESHOT;
122 clockevent_set_clock(cd, V_SCD_TIMER_FREQ); 123 clockevent_set_clock(cd, V_SCD_TIMER_FREQ);
123 cd->max_delta_ns = clockevent_delta2ns(0x7fffff, cd); 124 cd->max_delta_ns = clockevent_delta2ns(0x7fffff, cd);
124 cd->min_delta_ns = clockevent_delta2ns(1, cd); 125 cd->min_delta_ns = clockevent_delta2ns(2, cd);
125 cd->rating = 200; 126 cd->rating = 200;
126 cd->irq = irq; 127 cd->irq = irq;
127 cd->cpumask = cpumask_of_cpu(cpu); 128 cd->cpumask = cpumask_of_cpu(cpu);
@@ -142,7 +143,10 @@ void __cpuinit sb1250_clockevent_init(void)
142 143
143 action->handler = sibyte_counter_handler; 144 action->handler = sibyte_counter_handler;
144 action->flags = IRQF_DISABLED | IRQF_PERCPU; 145 action->flags = IRQF_DISABLED | IRQF_PERCPU;
146 action->mask = cpumask_of_cpu(cpu);
145 action->name = name; 147 action->name = name;
146 action->dev_id = cd; 148 action->dev_id = cd;
149
150 irq_set_affinity(irq, cpumask_of_cpu(cpu));
147 setup_irq(irq, action); 151 setup_irq(irq, action);
148} 152}