aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/au1000/common/time.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/au1000/common/time.c')
-rw-r--r--arch/mips/au1000/common/time.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/arch/mips/au1000/common/time.c b/arch/mips/au1000/common/time.c
index 0a067f3113a5..1989d56139c8 100644
--- a/arch/mips/au1000/common/time.c
+++ b/arch/mips/au1000/common/time.c
@@ -62,7 +62,7 @@ static unsigned int timerhi = 0, timerlo = 0;
62#error "unsupported HZ value! Must be in [100,1000]" 62#error "unsupported HZ value! Must be in [100,1000]"
63#endif 63#endif
64#define MATCH20_INC (328*100/HZ) /* magic number 328 is for HZ=100... */ 64#define MATCH20_INC (328*100/HZ) /* magic number 328 is for HZ=100... */
65extern void startup_match20_interrupt(irqreturn_t (*handler)(int, void *, struct pt_regs *)); 65extern void startup_match20_interrupt(irqreturn_t (*handler)(int, void *));
66static unsigned long last_pc0, last_match20; 66static unsigned long last_pc0, last_match20;
67#endif 67#endif
68 68
@@ -79,7 +79,8 @@ static inline void ack_r4ktimer(unsigned long newval)
79 * is provably more robust. 79 * is provably more robust.
80 */ 80 */
81unsigned long wtimer; 81unsigned long wtimer;
82void mips_timer_interrupt(struct pt_regs *regs) 82
83void mips_timer_interrupt(void)
83{ 84{
84 int irq = 63; 85 int irq = 63;
85 unsigned long count; 86 unsigned long count;
@@ -98,7 +99,7 @@ void mips_timer_interrupt(struct pt_regs *regs)
98 kstat_this_cpu.irqs[irq]++; 99 kstat_this_cpu.irqs[irq]++;
99 do_timer(1); 100 do_timer(1);
100#ifndef CONFIG_SMP 101#ifndef CONFIG_SMP
101 update_process_times(user_mode(regs)); 102 update_process_times(user_mode(get_irq_regs()));
102#endif 103#endif
103 r4k_cur += r4k_offset; 104 r4k_cur += r4k_offset;
104 ack_r4ktimer(r4k_cur); 105 ack_r4ktimer(r4k_cur);
@@ -115,7 +116,7 @@ null:
115} 116}
116 117
117#ifdef CONFIG_PM 118#ifdef CONFIG_PM
118irqreturn_t counter0_irq(int irq, void *dev_id, struct pt_regs *regs) 119irqreturn_t counter0_irq(int irq, void *dev_id)
119{ 120{
120 unsigned long pc0; 121 unsigned long pc0;
121 int time_elapsed; 122 int time_elapsed;
@@ -139,7 +140,7 @@ irqreturn_t counter0_irq(int irq, void *dev_id, struct pt_regs *regs)
139 while (time_elapsed > 0) { 140 while (time_elapsed > 0) {
140 do_timer(1); 141 do_timer(1);
141#ifndef CONFIG_SMP 142#ifndef CONFIG_SMP
142 update_process_times(user_mode(regs)); 143 update_process_times(user_mode(get_irq_regs()));
143#endif 144#endif
144 time_elapsed -= MATCH20_INC; 145 time_elapsed -= MATCH20_INC;
145 last_match20 += MATCH20_INC; 146 last_match20 += MATCH20_INC;
@@ -158,7 +159,7 @@ irqreturn_t counter0_irq(int irq, void *dev_id, struct pt_regs *regs)
158 jiffie_drift -= 999; 159 jiffie_drift -= 999;
159 do_timer(1); /* increment jiffies by one */ 160 do_timer(1); /* increment jiffies by one */
160#ifndef CONFIG_SMP 161#ifndef CONFIG_SMP
161 update_process_times(user_mode(regs)); 162 update_process_times(user_mode(get_irq_regs()));
162#endif 163#endif
163 } 164 }
164 165