aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarry Song <barry.song@analog.com>2010-01-21 07:20:44 +0000
committerMike Frysinger <vapier@gentoo.org>2010-03-09 00:30:50 -0500
commit6388d14eb2dd3af655cee28ca2a1c56881e63e56 (patch)
tree271a0d335b09ee81c8f80b56fbae4b1e1d0b815e
parent60ffdb36547da2397d6cfefe9c752ebad16524f6 (diff)
Blackfin: implement ndelay()
Signed-off-by: Barry Song <barry.song@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-rw-r--r--arch/blackfin/include/asm/delay.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/arch/blackfin/include/asm/delay.h b/arch/blackfin/include/asm/delay.h
index c31f91cc1d5..171d8deb04a 100644
--- a/arch/blackfin/include/asm/delay.h
+++ b/arch/blackfin/include/asm/delay.h
@@ -30,10 +30,22 @@ __asm__ __volatile__ (
#define HZSCALE (268435456 / (1000000/HZ))
-static inline void udelay(unsigned long usecs)
+static inline unsigned long __to_delay(unsigned long scale)
{
extern unsigned long loops_per_jiffy;
- __delay((((usecs * HZSCALE) >> 11) * (loops_per_jiffy >> 11)) >> 6);
+ return (((scale * HZSCALE) >> 11) * (loops_per_jiffy >> 11)) >> 6;
+}
+
+static inline void udelay(unsigned long usecs)
+{
+ __delay(__to_delay(usecs));
}
+static inline void ndelay(unsigned long nsecs)
+{
+ __delay(__to_delay(1) * nsecs / 1000);
+}
+
+#define ndelay ndelay
+
#endif