On Wed, 25 Oct 2006 17:45:04 +0900 (JST), Atsushi Nemoto <anemo@xxxxxxxxxxxxx> wrote: > > 2. Timekeeping is broken. The clock in /proc/driver/rtc seems correct, but > > the system clock advances at about 1/16 of real time. > > Is this problem still happen if you disabled CONFIG_OPROFILE ? I think I found the problem at last. static struct clocksource clocksource_mips = { .name = "MIPS", .rating = 250, .read = read_mips_hpt, .shift = 24, .is_continuous = 1, }; This shift value is too large for ip27 HPT (1.25MHz). temp = (u64) NSEC_PER_SEC << clocksource_mips.shift; do_div(temp, mips_hpt_frequency); clocksource_mips.mult = (unsigned)temp; If mips_hpt_frequency is less than 0x1000000 (16777216), temp would be larger than possible 32bit value. I'll cook a patch later but until then you can use lesser shift value, for example, 20. --- Atsushi Nemoto