提交 2be09cb9 编写于 作者: G Grant Likely

of: remove special case definition of of_read_ulong()

Special case of of_read_ulong() was defined for PPC32 to toss away
all but the last 32 bits when a large number value was read, and the
'normal' version for ppc64 just #defined of_read_ulong to of_read_number
which causes compiler warnings on MicroBlaze and other 32 bit
architectures because it returns a u64 instead of a ulong.

This patch fixes the problem by defining a common implementation of
of_read_ulong() that works everywhere.
Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
Reviewed-by: NWolfram Sang <w.sang@pengutronix.de>
Tested-by: NMichal Simek <monstr@monstr.eu>
上级 02af11b0
...@@ -113,14 +113,11 @@ static inline u64 of_read_number(const u32 *cell, int size) ...@@ -113,14 +113,11 @@ static inline u64 of_read_number(const u32 *cell, int size)
} }
/* Like of_read_number, but we want an unsigned long result */ /* Like of_read_number, but we want an unsigned long result */
#ifdef CONFIG_PPC32
static inline unsigned long of_read_ulong(const u32 *cell, int size) static inline unsigned long of_read_ulong(const u32 *cell, int size)
{ {
return cell[size-1]; /* toss away upper bits if unsigned long is smaller than u64 */
return of_read_number(cell, size);
} }
#else
#define of_read_ulong(cell, size) of_read_number(cell, size)
#endif
#include <asm/prom.h> #include <asm/prom.h>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册