aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/boot/of.h
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2015-02-11 12:55:44 +0800
committerMichael Ellerman <mpe@ellerman.id.au>2015-03-16 18:58:31 +1100
commit6c87b2202f5414be3acae9df2e1833e8b46c5688 (patch)
tree66b618a24bac394d129577d24ecfd423b467ebba /arch/powerpc/boot/of.h
parentpowerpc/boot/fdt: Use unsigned long for pointer casts (diff)
downloadlinux-dev-6c87b2202f5414be3acae9df2e1833e8b46c5688.tar.xz
linux-dev-6c87b2202f5414be3acae9df2e1833e8b46c5688.zip
powerpc/boot/fdt: Add little-endian support to libfdt wrappers
For epapr-style boot, we may be little-endian. This change implements the proper conversion for fdt*_to_cpu and cpu_to_fdt*. We also need the full cpu_to_* and *_to_cpu macros for this. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/boot/of.h')
-rw-r--r--arch/powerpc/boot/of.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/powerpc/boot/of.h b/arch/powerpc/boot/of.h
index c8c1750aba0c..5603320dce07 100644
--- a/arch/powerpc/boot/of.h
+++ b/arch/powerpc/boot/of.h
@@ -24,11 +24,19 @@ void of_console_init(void);
typedef u32 __be32;
#ifdef __LITTLE_ENDIAN__
+#define cpu_to_be16(x) swab16(x)
+#define be16_to_cpu(x) swab16(x)
#define cpu_to_be32(x) swab32(x)
#define be32_to_cpu(x) swab32(x)
+#define cpu_to_be64(x) swab64(x)
+#define be64_to_cpu(x) swab64(x)
#else
+#define cpu_to_be16(x) (x)
+#define be16_to_cpu(x) (x)
#define cpu_to_be32(x) (x)
#define be32_to_cpu(x) (x)
+#define cpu_to_be64(x) (x)
+#define be64_to_cpu(x) (x)
#endif
#define PROM_ERROR (-1u)