Index: linux-2.6.18/include/asm-arm/arch-ixp4xx/timex.h =================================================================== --- linux-2.6.18.orig/include/asm-arm/arch-ixp4xx/timex.h +++ linux-2.6.18/include/asm-arm/arch-ixp4xx/timex.h @@ -13,3 +13,5 @@ #define FREQ 66666666 #define CLOCK_TICK_RATE (((FREQ / HZ & ~IXP4XX_OST_RELOAD_MASK) + 1) * HZ) +extern u64 ixp4xx_get_cycles(void); +#define mach_read_cycles() ixp4xx_get_cycles() Index: linux-2.6.18/include/asm-arm/timex.h =================================================================== --- linux-2.6.18.orig/include/asm-arm/timex.h +++ linux-2.6.18/include/asm-arm/timex.h @@ -18,10 +18,13 @@ typedef unsigned long cycles_t; #ifndef mach_read_cycles #define mach_read_cycles() (0) -#ifdef CONFIG_LATENCY_TIMING - #define mach_cycles_to_usecs(d) (d) - #define mach_usecs_to_cycles(d) (d) #endif + +#ifdef CONFIG_LATENCY_TIMING + #define mach_cycles_to_usecs(d) \ + (((d) * ((1000000LL << 32) / CLOCK_TICK_RATE)) >> 32) + #define mach_usecs_to_cycles(d) \ + (((d) * (((long long)CLOCK_TICK_RATE << 32) / 1000000)) >> 32) #endif static inline cycles_t get_cycles (void) Index: linux-2.6.18/include/asm-arm/arch-pxa/timex.h =================================================================== --- linux-2.6.18.orig/include/asm-arm/arch-pxa/timex.h +++ linux-2.6.18/include/asm-arm/arch-pxa/timex.h @@ -26,5 +26,3 @@ #endif #define mach_read_cycles() OSCR -#define mach_cycles_to_usecs(d) (((d) * ((1000000LL << 32) / CLOCK_TICK_RATE)) >> 32) -#define mach_usecs_to_cycles(d) (((d) * (((long long)CLOCK_TICK_RATE << 32) / 1000000)) >> 32)