sh: Tidy up lib64 udelay impl.
authorPaul Mundt <lethal@linux-sh.org>
Tue, 20 Nov 2007 05:49:36 +0000 (14:49 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Mon, 28 Jan 2008 04:18:49 +0000 (13:18 +0900)
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/lib64/udelay.c
include/asm-sh/delay.h

index 327653914007b808e1f753b12aa0598a2441aba0..4c71a7428e604913871b6bc6021e325bc9b2abf4 100644 (file)
@@ -13,8 +13,6 @@
 #include <linux/sched.h>
 #include <asm/param.h>
 
-extern unsigned long loops_per_jiffy;
-
 /*
  * Use only for very small delays (< 1 msec).
  *
@@ -49,11 +47,10 @@ void __ndelay(unsigned long long nsecs, unsigned long lpj)
 
 void udelay(unsigned long usecs)
 {
-       __udelay(usecs, loops_per_jiffy);
+       __udelay(usecs, cpu_data[raw_smp_processor_id()].loops_per_jiffy);
 }
 
 void ndelay(unsigned long nsecs)
 {
-       __ndelay(nsecs, loops_per_jiffy);
+       __ndelay(nsecs, cpu_data[raw_smp_processor_id()].loops_per_jiffy);
 }
-
index db599b2a5a9c9883d68bc3fc05884c75ed320d62..031db84f2aa150255348ae123778fe84776519bf 100644 (file)
@@ -6,7 +6,7 @@
  *
  * Delay routines calling functions in arch/sh/lib/delay.c
  */
+
 extern void __bad_udelay(void);
 extern void __bad_ndelay(void);
 
@@ -15,13 +15,17 @@ extern void __ndelay(unsigned long nsecs);
 extern void __const_udelay(unsigned long usecs);
 extern void __delay(unsigned long loops);
 
+#ifdef CONFIG_SUPERH32
 #define udelay(n) (__builtin_constant_p(n) ? \
        ((n) > 20000 ? __bad_udelay() : __const_udelay((n) * 0x10c6ul)) : \
        __udelay(n))
 
-
 #define ndelay(n) (__builtin_constant_p(n) ? \
        ((n) > 20000 ? __bad_ndelay() : __const_udelay((n) * 5ul)) : \
        __ndelay(n))
+#else
+extern void udelay(unsigned long usecs);
+extern void ndelay(unsigned long nsecs);
+#endif
 
 #endif /* __ASM_SH_DELAY_H */