From: Thomas Schlichter Well, your patch was the correct direction, but it did not completely reac the target... :-( The 'monotonic_base' variable in the PMTMR stores its value in microseconds. So the 'base' value has to be convertet to nanoseconds, too... arch/i386/kernel/timers/timer_pm.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN arch/i386/kernel/timers/timer_pm.c~timer_pm-monotonic-clock-fix arch/i386/kernel/timers/timer_pm.c --- 25/arch/i386/kernel/timers/timer_pm.c~timer_pm-monotonic-clock-fix 2003-11-19 00:43:30.000000000 -0800 +++ 25-akpm/arch/i386/kernel/timers/timer_pm.c 2003-11-19 00:43:30.000000000 -0800 @@ -150,7 +150,7 @@ static unsigned long long monotonic_cloc /* convert to nanoseconds */ ret = ((this_offset - last_offset) & ACPI_PM_MASK); - ret = base + (cyc2us(ret)*1000); + ret = (base + cyc2us(ret)) * NSEC_PER_USEC; return ret; } _