diff options
author | Barry Song <barry.song@analog.com> | 2010-01-21 02:20:44 -0500 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2010-03-09 00:30:50 -0500 |
commit | 6388d14eb2dd3af655cee28ca2a1c56881e63e56 (patch) | |
tree | 271a0d335b09ee81c8f80b56fbae4b1e1d0b815e /arch/blackfin/include/asm/delay.h | |
parent | 60ffdb36547da2397d6cfefe9c752ebad16524f6 (diff) |
Blackfin: implement ndelay()
Signed-off-by: Barry Song <barry.song@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin/include/asm/delay.h')
-rw-r--r-- | arch/blackfin/include/asm/delay.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/arch/blackfin/include/asm/delay.h b/arch/blackfin/include/asm/delay.h index c31f91cc1d5d..171d8deb04a5 100644 --- a/arch/blackfin/include/asm/delay.h +++ b/arch/blackfin/include/asm/delay.h | |||
@@ -30,10 +30,22 @@ __asm__ __volatile__ ( | |||
30 | 30 | ||
31 | #define HZSCALE (268435456 / (1000000/HZ)) | 31 | #define HZSCALE (268435456 / (1000000/HZ)) |
32 | 32 | ||
33 | static inline void udelay(unsigned long usecs) | 33 | static inline unsigned long __to_delay(unsigned long scale) |
34 | { | 34 | { |
35 | extern unsigned long loops_per_jiffy; | 35 | extern unsigned long loops_per_jiffy; |
36 | __delay((((usecs * HZSCALE) >> 11) * (loops_per_jiffy >> 11)) >> 6); | 36 | return (((scale * HZSCALE) >> 11) * (loops_per_jiffy >> 11)) >> 6; |
37 | } | ||
38 | |||
39 | static inline void udelay(unsigned long usecs) | ||
40 | { | ||
41 | __delay(__to_delay(usecs)); | ||
37 | } | 42 | } |
38 | 43 | ||
44 | static inline void ndelay(unsigned long nsecs) | ||
45 | { | ||
46 | __delay(__to_delay(1) * nsecs / 1000); | ||
47 | } | ||
48 | |||
49 | #define ndelay ndelay | ||
50 | |||
39 | #endif | 51 | #endif |