[ARM] Add ARCH_PROVIDES_UDELAY config option
authorColin Cross <ccross@android.com>
Sun, 25 Apr 2010 07:29:07 +0000 (00:29 -0700)
committerColin Cross <ccross@android.com>
Wed, 6 Oct 2010 23:26:54 +0000 (16:26 -0700)
Change-Id: Ife690c9d055fc0f17a52d2b29048af5062a664a6
Signed-off-by: Colin Cross <ccross@android.com>
arch/arm/Kconfig
arch/arm/include/asm/delay.h
arch/arm/lib/Makefile

index 6d122de8869339f68976da7ff48083ffb7cf7e89..00e5955014ab1d738aa5caba1057b1a85257a03a 100644 (file)
@@ -187,6 +187,9 @@ config ARM_L1_CACHE_SHIFT_6
        help
          Setting ARM L1 cache line size to 64 Bytes.
 
+config ARCH_PROVIDES_UDELAY
+  bool
+
 config VECTORS_BASE
        hex
        default 0xffff0000 if MMU || CPU_HIGH_VECTOR
index b2deda1815496d83ab3dde5c9eb2c4f5194c7b1e..57f1fa0e983b7c919a06a87dc93e75ec74284e39 100644 (file)
@@ -8,6 +8,9 @@
 
 #include <asm/param.h> /* HZ */
 
+#ifdef CONFIG_ARCH_PROVIDES_UDELAY
+#include <mach/delay.h>
+#else
 extern void __delay(int loops);
 
 /*
@@ -40,5 +43,6 @@ extern void __const_udelay(unsigned long);
                        __const_udelay((n) * ((2199023U*HZ)>>11))) :    \
          __udelay(n))
 
+#endif /* defined(ARCH_PROVIDES_UDELAY) */
 #endif /* defined(_ARM_DELAY_H) */
 
index 59ff42ddf0aed656f3def2c44859f0eec414b1d3..68b10b684e837e793345a42001a675edf062eb8c 100644 (file)
@@ -6,7 +6,7 @@
 
 lib-y          := backtrace.o changebit.o csumipv6.o csumpartial.o   \
                   csumpartialcopy.o csumpartialcopyuser.o clearbit.o \
-                  delay.o findbit.o memchr.o memcpy.o                \
+                  findbit.o memchr.o memcpy.o                        \
                   memmove.o memset.o memzero.o setbit.o              \
                   strncpy_from_user.o strnlen_user.o                 \
                   strchr.o strrchr.o                                 \
@@ -17,6 +17,10 @@ lib-y                := backtrace.o changebit.o csumipv6.o csumpartial.o   \
 
 mmu-y  := clear_user.o copy_page.o getuser.o putuser.o
 
+ifneq ($(CONFIG_ARCH_PROVIDES_UDELAY),y)
+  lib-y += delay.o
+endif
+
 # the code in uaccess.S is not preemption safe and
 # probably faster on ARMv3 only
 ifeq ($(CONFIG_PREEMPT),y)