mirror of https://gitee.com/openkylin/linux.git
microblaze: delay.h fix udelay and ndelay for 8 bit args
Based on:
"asm-generic: delay.h fix udelay and ndelay for 8 bit args"
(sha1: a87e553fab
)
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
This commit is contained in:
parent
163e40743f
commit
ad1d4358e0
|
@ -61,13 +61,29 @@ extern inline void __udelay(unsigned int x)
|
|||
extern void __bad_udelay(void); /* deliberately undefined */
|
||||
extern void __bad_ndelay(void); /* deliberately undefined */
|
||||
|
||||
#define udelay(n) (__builtin_constant_p(n) ? \
|
||||
((n) > __MAX_UDELAY ? __bad_udelay() : __udelay((n) * (19 * HZ))) : \
|
||||
__udelay((n) * (19 * HZ)))
|
||||
#define udelay(n) \
|
||||
({ \
|
||||
if (__builtin_constant_p(n)) { \
|
||||
if ((n) / __MAX_UDELAY >= 1) \
|
||||
__bad_udelay(); \
|
||||
else \
|
||||
__udelay((n) * (19 * HZ)); \
|
||||
} else { \
|
||||
__udelay((n) * (19 * HZ)); \
|
||||
} \
|
||||
})
|
||||
|
||||
#define ndelay(n) (__builtin_constant_p(n) ? \
|
||||
((n) > __MAX_NDELAY ? __bad_ndelay() : __udelay((n) * HZ)) : \
|
||||
__udelay((n) * HZ))
|
||||
#define ndelay(n) \
|
||||
({ \
|
||||
if (__builtin_constant_p(n)) { \
|
||||
if ((n) / __MAX_NDELAY >= 1) \
|
||||
__bad_ndelay(); \
|
||||
else \
|
||||
__udelay((n) * HZ); \
|
||||
} else { \
|
||||
__udelay((n) * HZ); \
|
||||
} \
|
||||
})
|
||||
|
||||
#define muldiv(a, b, c) (((a)*(b))/(c))
|
||||
|
||||
|
|
Loading…
Reference in New Issue