Index: linux-2.6.22.19/arch/arm/Makefile =================================================================== --- linux-2.6.22.19.orig/arch/arm/Makefile 2008-07-18 18:04:40.000000000 +0100 +++ linux-2.6.22.19/arch/arm/Makefile 2008-07-18 18:07:38.000000000 +0100 @@ -47,7 +47,7 @@ # Note that GCC does not numerically define an architecture version # macro, but instead defines a whole series of macros which makes # testing for a specific architecture or later rather impossible. -arch-$(CONFIG_CPU_32v7) :=-D__LINUX_ARM_ARCH__=7 $(call cc-option,-march=armv7a,-march=armv5t -Wa$(comma)-march=armv7a) +arch-$(CONFIG_CPU_32v7) :=-D__LINUX_ARM_ARCH__=7 $(call cc-option,-march=armv7-a,-march=armv5t -Wa$(comma)-march=armv7-a) arch-$(CONFIG_CPU_32v6) :=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6) # Only override the compiler option if ARMv6. The ARMv6K extensions are # always available in ARMv7 Index: linux-2.6.22.19/drivers/video/omap/omap_disp_out.c =================================================================== --- linux-2.6.22.19.orig/drivers/video/omap/omap_disp_out.c 2008-07-18 18:53:28.000000000 +0100 +++ linux-2.6.22.19/drivers/video/omap/omap_disp_out.c 2008-07-18 18:53:33.000000000 +0100 @@ -80,7 +80,7 @@ #ifdef CONFIG_FB_OMAP_LCD_VGA #define H4_LCD_XRES 480 #define H4_LCD_YRES 640 -#define H4_LCD_PIXCLOCK_MAX 41700 /* in pico seconds */ +#define H4_LCD_PIXCLOCK_MAX 46295 /* in pico seconds */ #define H4_LCD_PIXCLOCK_MIN 38000 /* in pico seconds */ #else #ifdef CONFIG_OMAP3430_ES2 Index: linux-2.6.22.19/include/asm-arm/processor.h =================================================================== --- linux-2.6.22.19.orig/include/asm-arm/processor.h 2008-07-18 18:33:36.000000000 +0100 +++ linux-2.6.22.19/include/asm-arm/processor.h 2008-07-18 18:38:05.000000000 +0100 @@ -103,14 +103,16 @@ #if __LINUX_ARM_ARCH__ >= 5 #define ARCH_HAS_PREFETCH -static inline void prefetch(const void *ptr) +#define prefetch(ptr) __builtin_prefetch(ptr) + +/*static inline void prefetch(const void *ptr) { __asm__ __volatile__( - "pld\t%0" + "pld\ta%0" : - : "o" (*(char *)ptr) + : "p" (ptr) : "cc"); -} +}*/ #define ARCH_HAS_PREFETCHW #define prefetchw(ptr) prefetch(ptr) Index: linux-2.6.22.19/include/linux/time.h =================================================================== --- linux-2.6.22.19.orig/include/linux/time.h 2008-07-18 18:31:02.000000000 +0100 +++ linux-2.6.22.19/include/linux/time.h 2008-07-18 18:31:36.000000000 +0100 @@ -171,6 +171,10 @@ { ns += a->tv_nsec; while(unlikely(ns >= NSEC_PER_SEC)) { + /* The following asm() prevents the compiler from + * optimising this loop into a modulo operation. */ + asm("" : "+r"(ns)); + ns -= NSEC_PER_SEC; a->tv_sec++; }