git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
arch
/
mips
/
mips-boards
/
sim
/
sim_time.c
diff --git
a/arch/mips/mips-boards/sim/sim_time.c
b/arch/mips/mips-boards/sim/sim_time.c
index
18b968c
..
30711d0
100644
(file)
--- a/
arch/mips/mips-boards/sim/sim_time.c
+++ b/
arch/mips/mips-boards/sim/sim_time.c
@@
-1,42
+1,31
@@
#include <linux/types.h>
#include <linux/types.h>
-#include <linux/config.h>
#include <linux/init.h>
#include <linux/kernel_stat.h>
#include <linux/sched.h>
#include <linux/spinlock.h>
#include <linux/init.h>
#include <linux/kernel_stat.h>
#include <linux/sched.h>
#include <linux/spinlock.h>
-
-#include <asm/mipsregs.h>
-#include <asm/ptrace.h>
-#include <asm/hardirq.h>
-#include <asm/div64.h>
-#include <asm/cpu.h>
-#include <asm/time.h>
-
#include <linux/interrupt.h>
#include <linux/mc146818rtc.h>
#include <linux/timex.h>
#include <linux/interrupt.h>
#include <linux/mc146818rtc.h>
#include <linux/timex.h>
+
#include <asm/mipsregs.h>
#include <asm/ptrace.h>
#include <asm/hardirq.h>
#include <asm/mipsregs.h>
#include <asm/ptrace.h>
#include <asm/hardirq.h>
-#include <asm/irq.h>
#include <asm/div64.h>
#include <asm/cpu.h>
#include <asm/time.h>
#include <asm/div64.h>
#include <asm/cpu.h>
#include <asm/time.h>
+#include <asm/irq.h>
#include <asm/mc146818-time.h>
#include <asm/msc01_ic.h>
#include <asm/mc146818-time.h>
#include <asm/msc01_ic.h>
+#include <asm/smp.h>
#include <asm/mips-boards/generic.h>
#include <asm/mips-boards/prom.h>
#include <asm/mips-boards/simint.h>
#include <asm/mips-boards/generic.h>
#include <asm/mips-boards/prom.h>
#include <asm/mips-boards/simint.h>
-#include <asm/mc146818-time.h>
-#include <asm/smp.h>
unsigned long cpu_khz;
unsigned long cpu_khz;
-extern asmlinkage void ll_local_timer_interrupt(int irq, struct pt_regs *regs);
-
-irqreturn_t sim_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+irqreturn_t sim_timer_interrupt(int irq, void *dev_id)
{
#ifdef CONFIG_SMP
int cpu = smp_processor_id();
{
#ifdef CONFIG_SMP
int cpu = smp_processor_id();
@@
-47,7
+36,7
@@
irqreturn_t sim_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
*/
#ifndef CONFIG_MIPS_MT_SMTC
if (cpu == 0) {
*/
#ifndef CONFIG_MIPS_MT_SMTC
if (cpu == 0) {
- timer_interrupt(irq, dev_id
, regs
);
+ timer_interrupt(irq, dev_id);
}
else {
/* Everyone else needs to reset the timer int here as
}
else {
/* Everyone else needs to reset the timer int here as
@@
-87,7
+76,7
@@
irqreturn_t sim_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
irq_enable_hazard();
evpe(vpflags);
irq_enable_hazard();
evpe(vpflags);
- if(cpu_data[cpu].vpe_id == 0) timer_interrupt(irq, dev_id
, regs
);
+ if(cpu_data[cpu].vpe_id == 0) timer_interrupt(irq, dev_id);
else write_c0_compare (read_c0_count() + ( mips_hpt_frequency/HZ));
smtc_timer_broadcast(cpu_data[cpu].vpe_id);
else write_c0_compare (read_c0_count() + ( mips_hpt_frequency/HZ));
smtc_timer_broadcast(cpu_data[cpu].vpe_id);
@@
-96,17
+85,17
@@
irqreturn_t sim_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
/*
* every CPU should do profiling and process accounting
*/
/*
* every CPU should do profiling and process accounting
*/
- local_timer_interrupt (irq, dev_id
, regs
);
+ local_timer_interrupt (irq, dev_id);
return IRQ_HANDLED;
#else
return IRQ_HANDLED;
#else
- return timer_interrupt (irq, dev_id
, regs
);
+ return timer_interrupt (irq, dev_id);
#endif
}
/*
#endif
}
/*
- * Estimate CPU frequency. Sets mips_
counter
_frequency as a side-effect
+ * Estimate CPU frequency. Sets mips_
hpt
_frequency as a side-effect
*/
static unsigned int __init estimate_cpu_frequency(void)
{
*/
static unsigned int __init estimate_cpu_frequency(void)
{
@@
-180,13
+169,13
@@
void __init sim_time_init(void)
static int mips_cpu_timer_irq;
static int mips_cpu_timer_irq;
-static void mips_timer_dispatch
(struct pt_regs *regs
)
+static void mips_timer_dispatch
(void
)
{
{
- do_IRQ
(mips_cpu_timer_irq, regs
);
+ do_IRQ
(mips_cpu_timer_irq
);
}
}
-void __init
sim
_timer_setup(struct irqaction *irq)
+void __init
plat
_timer_setup(struct irqaction *irq)
{
if (cpu_has_veic) {
set_vi_handler(MSC01E_INT_CPUCTR, mips_timer_dispatch);
{
if (cpu_has_veic) {
set_vi_handler(MSC01E_INT_CPUCTR, mips_timer_dispatch);
@@
-207,7
+196,8
@@
void __init sim_timer_setup(struct irqaction *irq)
on seperate cpu's the first one tries to handle the second interrupt.
The effect is that the int remains disabled on the second cpu.
Mark the interrupt with IRQ_PER_CPU to avoid any confusion */
on seperate cpu's the first one tries to handle the second interrupt.
The effect is that the int remains disabled on the second cpu.
Mark the interrupt with IRQ_PER_CPU to avoid any confusion */
- irq_desc[mips_cpu_timer_irq].status |= IRQ_PER_CPU;
+ irq_desc[mips_cpu_timer_irq].flags |= IRQ_PER_CPU;
+ set_irq_handler(mips_cpu_timer_irq, handle_percpu_irq);
#endif
/* to generate the first timer interrupt */
#endif
/* to generate the first timer interrupt */