Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* defines for inline arch setup functions */ |
| 2 | #include <asm/voyager.h> |
| 3 | |
David Howells | 7d12e78 | 2006-10-05 14:55:46 +0100 | [diff] [blame^] | 4 | static inline void do_timer_interrupt_hook(void) |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 5 | { |
Atsushi Nemoto | 3171a03 | 2006-09-29 02:00:32 -0700 | [diff] [blame] | 6 | do_timer(1); |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 7 | #ifndef CONFIG_SMP |
David Howells | 7d12e78 | 2006-10-05 14:55:46 +0100 | [diff] [blame^] | 8 | update_process_times(user_mode_vm(irq_regs)); |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 9 | #endif |
| 10 | |
David Howells | 7d12e78 | 2006-10-05 14:55:46 +0100 | [diff] [blame^] | 11 | voyager_timer_interrupt(); |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 12 | } |
| 13 | |
| 14 | static inline int do_timer_overflow(int count) |
| 15 | { |
| 16 | /* can't read the ISR, just assume 1 tick |
| 17 | overflow */ |
| 18 | if(count > LATCH || count < 0) { |
| 19 | printk(KERN_ERR "VOYAGER PROBLEM: count is %d, latch is %d\n", count, LATCH); |
| 20 | count = LATCH; |
| 21 | } |
| 22 | count -= LATCH; |
| 23 | |
| 24 | return count; |
| 25 | } |