mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-21 14:11:20 +00:00
asm-generic: adapt delay.h to common implementation
Several architectures are using a common delay.h implementation that appears to have originated with the x86 architecture. This common implementation is a bit fuller than the current asm-generic version and has some compile-time checks that should be interesting for all architectures. This patch takes the common delay.h version and replaces the rather trivial asm-generic version with it. As no architecture was actually using asm-generic/delay.h, this change is rather innocuous; it will, however, allow us to switch at least four architectures over to using the asm-generic version. Signed-off-by: Jonas Bonn <jonas@southpole.se> Acked-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
parent
b0af8dfdd6
commit
30ab2b034f
1 changed files with 15 additions and 1 deletions
|
@ -1,9 +1,23 @@
|
||||||
#ifndef __ASM_GENERIC_DELAY_H
|
#ifndef __ASM_GENERIC_DELAY_H
|
||||||
#define __ASM_GENERIC_DELAY_H
|
#define __ASM_GENERIC_DELAY_H
|
||||||
|
|
||||||
|
/* Undefined functions to get compile-time errors */
|
||||||
|
extern void __bad_udelay(void);
|
||||||
|
extern void __bad_ndelay(void);
|
||||||
|
|
||||||
extern void __udelay(unsigned long usecs);
|
extern void __udelay(unsigned long usecs);
|
||||||
|
extern void __ndelay(unsigned long nsecs);
|
||||||
|
extern void __const_udelay(unsigned long xloops);
|
||||||
extern void __delay(unsigned long loops);
|
extern void __delay(unsigned long loops);
|
||||||
|
|
||||||
#define udelay(n) __udelay(n)
|
/* 0x10c7 is 2**32 / 1000000 (rounded up) */
|
||||||
|
#define udelay(n) (__builtin_constant_p(n) ? \
|
||||||
|
((n) > 20000 ? __bad_udelay() : __const_udelay((n) * 0x10c7ul)) : \
|
||||||
|
__udelay(n))
|
||||||
|
|
||||||
|
/* 0x5 is 2**32 / 1000000000 (rounded up) */
|
||||||
|
#define ndelay(n) (__builtin_constant_p(n) ? \
|
||||||
|
((n) > 20000 ? __bad_ndelay() : __const_udelay((n) * 5ul)) : \
|
||||||
|
__ndelay(n))
|
||||||
|
|
||||||
#endif /* __ASM_GENERIC_DELAY_H */
|
#endif /* __ASM_GENERIC_DELAY_H */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue