Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ad1d4358 authored by Michal Simek's avatar Michal Simek
Browse files

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: a87e553f)

Signed-off-by: default avatarMichal Simek <michal.simek@xilinx.com>
parent 163e4074
Loading
Loading
Loading
Loading
+22 −6
Original line number Diff line number Diff line
@@ -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))