diff options
author | Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> | 2007-12-09 12:22:04 (GMT) |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2007-12-14 17:34:29 (GMT) |
commit | 18ca38d26f65c849af109eb911295c7dde71ce3b (patch) | |
tree | 7d743a2827c8facd4b69e55f4add2443fc0534a5 | |
parent | da8cadb31b82c9d41fc593c8deab6aa20b162d6b (diff) | |
download | linux-18ca38d26f65c849af109eb911295c7dde71ce3b.tar.xz |
[MIPS] time: Set up Cobalt's mips_hpt_frequency
Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
-rw-r--r-- | arch/mips/cobalt/time.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/arch/mips/cobalt/time.c b/arch/mips/cobalt/time.c index fa819fc..4a570e7 100644 --- a/arch/mips/cobalt/time.c +++ b/arch/mips/cobalt/time.c @@ -27,9 +27,28 @@ void __init plat_time_init(void) { + u32 start, end; + int i = HZ / 10; + setup_pit_timer(); gt641xx_set_base_clock(GT641XX_BASE_CLOCK); - mips_timer_state = gt641xx_timer0_state; + /* + * MIPS counter frequency is measured during a 100msec interval + * using GT64111 timer0. + */ + while (!gt641xx_timer0_state()) + ; + + start = read_c0_count(); + + while (i--) + while (!gt641xx_timer0_state()) + ; + + end = read_c0_count(); + + mips_hpt_frequency = (end - start) * 10; + printk(KERN_INFO "MIPS counter frequency %dHz\n", mips_hpt_frequency); } |