summaryrefslogtreecommitdiffstats
path: root/arch/microblaze/include/asm/unaligned.h
diff options
context:
space:
mode:
authorMichal Simek2010-09-28 08:04:14 +0200
committerMichal Simek2010-10-21 07:51:59 +0200
commit02b08045a0306c38131c6d7155c4034a775d40b1 (patch)
treee146f1811ec3c93ff4877a895e42b71a91932d2b /arch/microblaze/include/asm/unaligned.h
parentmicroblaze: KGDB little endian support (diff)
downloadkernel-qcow2-linux-02b08045a0306c38131c6d7155c4034a775d40b1.tar.gz
kernel-qcow2-linux-02b08045a0306c38131c6d7155c4034a775d40b1.tar.xz
kernel-qcow2-linux-02b08045a0306c38131c6d7155c4034a775d40b1.zip
microblaze: Add support for little-endian Microblaze
Microblaze little-endian toolchain exports __MICROBLAZEEL__ which is used in the kernel to identify little/big endian. The most of the changes are in loading values from DTB which is always big endian. Little endian platforms are based on new AXI bus which has impact to early uartlite initialization. Signed-off-by: Michal Simek <monstr@monstr.eu>
Diffstat (limited to 'arch/microblaze/include/asm/unaligned.h')
-rw-r--r--arch/microblaze/include/asm/unaligned.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/arch/microblaze/include/asm/unaligned.h b/arch/microblaze/include/asm/unaligned.h
index 3658d91ac0fb..2b97cbe500e9 100644
--- a/arch/microblaze/include/asm/unaligned.h
+++ b/arch/microblaze/include/asm/unaligned.h
@@ -12,12 +12,18 @@
# ifdef __KERNEL__
-# include <linux/unaligned/be_struct.h>
+# include <linux/unaligned/be_byteshift.h>
# include <linux/unaligned/le_byteshift.h>
# include <linux/unaligned/generic.h>
-# define get_unaligned __get_unaligned_be
-# define put_unaligned __put_unaligned_be
+
+# ifdef __MICROBLAZEEL__
+# define get_unaligned __get_unaligned_le
+# define put_unaligned __put_unaligned_le
+# else
+# define get_unaligned __get_unaligned_be
+# define put_unaligned __put_unaligned_be
+# endif
# endif /* __KERNEL__ */
#endif /* _ASM_MICROBLAZE_UNALIGNED_H */