]> git.hungrycats.org Git - linux/commitdiff
[ALPHA] Implement ndelay.
authorRichard Henderson <rth@kanga.twiddle.net>
Wed, 19 Feb 2003 03:25:21 +0000 (19:25 -0800)
committerRichard Henderson <rth@kanga.twiddle.net>
Wed, 19 Feb 2003 03:25:21 +0000 (19:25 -0800)
arch/alpha/kernel/alpha_ksyms.c
arch/alpha/lib/udelay.c
include/asm-alpha/delay.h

index ec9ed49c79feeba1e05615501ca5009c371ec7e5..ee3db0c214baf57401f164c2babc2d40aca80f89 100644 (file)
@@ -119,10 +119,6 @@ EXPORT_SYMBOL(__constant_c_memset);
 EXPORT_SYMBOL(copy_page);
 EXPORT_SYMBOL(clear_page);
 
-EXPORT_SYMBOL(__delay);
-EXPORT_SYMBOL(__udelay);
-EXPORT_SYMBOL(udelay);
-
 EXPORT_SYMBOL(__direct_map_base);
 EXPORT_SYMBOL(__direct_map_size);
 
index 14c9b88e1d265393c105cbf3a7d35c327bcdcace..1c879bbce419309eed5865a9882a1baa7dd7b380 100644 (file)
@@ -1,15 +1,16 @@
-#include <linux/config.h>
-#include <linux/sched.h> /* for udelay's use of smp_processor_id */
-#include <asm/param.h>
-#include <asm/smp.h>
-#include <linux/delay.h>
-
 /*
  * Copyright (C) 1993, 2000 Linus Torvalds
  *
  * Delay routines, using a pre-computed "loops_per_jiffy" value.
  */
 
+#include <linux/config.h>
+#include <linux/module.h>
+#include <linux/sched.h> /* for udelay's use of smp_processor_id */
+#include <asm/param.h>
+#include <asm/smp.h>
+#include <linux/delay.h>
+
 /*
  * Use only for very small delays (< 1 msec). 
  *
@@ -18,7 +19,8 @@
  * a 1GHz box, that's about 2 seconds.
  */
 
-void __delay(int loops)
+void
+__delay(int loops)
 {
        int tmp;
        __asm__ __volatile__(
@@ -30,18 +32,24 @@ void __delay(int loops)
                : "=&r" (tmp), "=r" (loops) : "1"(loops));
 }
 
-void __udelay(unsigned long usecs, unsigned long lpj)
+#ifdef CONFIG_SMP
+#define LPJ     cpu_data[smp_processor_id()].loops_per_jiffy
+#else
+#define LPJ     loops_per_jiffy
+#endif
+
+void
+udelay(unsigned long usecs)
 {
-       usecs *= (((unsigned long)HZ << 32) / 1000000) * lpj;
+       usecs *= (((unsigned long)HZ << 32) / 1000000) * LPJ;
        __delay((long)usecs >> 32);
 }
+EXPORT_SYMBOL(udelay);
 
-void udelay(unsigned long usecs)
+void
+ndelay(unsigned long nsecs)
 {
-#ifdef CONFIG_SMP
-       __udelay(usecs, cpu_data[smp_processor_id()].loops_per_jiffy);
-#else
-       __udelay(usecs, loops_per_jiffy);
-#endif
+       nsecs *= (((unsigned long)HZ << 32) / 1000000000) * LPJ;
+       __delay((long)nsecs >> 32);
 }
-
+EXPORT_SYMBOL(ndelay);
index 86077c4e03ab93b3182cca7d415fd6be79383da9..2aa3f410f7e65309e0163a7014e51042cb36fad5 100644 (file)
@@ -2,7 +2,9 @@
 #define __ALPHA_DELAY_H
 
 extern void __delay(int loops);
-extern void __udelay(unsigned long usecs, unsigned long lpj);
 extern void udelay(unsigned long usecs);
 
+extern void ndelay(unsigned long nsecs);
+#define ndelay ndelay
+
 #endif /* defined(__ALPHA_DELAY_H) */