Blackfin: implement ndelay()

Signed-off-by: Barry Song <barry.song@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
Barry Song 2010-01-21 07:20:44 +00:00 committed by Mike Frysinger
parent 60ffdb3654
commit 6388d14eb2
1 changed files with 14 additions and 2 deletions

View File

@ -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