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)