diff options
| -rw-r--r-- | arch/avr32/include/asm/byteorder.h | 22 | ||||
| -rw-r--r-- | arch/avr32/mach-at32ap/include/mach/io.h | 3 |
2 files changed, 15 insertions, 10 deletions
diff --git a/arch/avr32/include/asm/byteorder.h b/arch/avr32/include/asm/byteorder.h index d77b48ba7338..8e3af02076dd 100644 --- a/arch/avr32/include/asm/byteorder.h +++ b/arch/avr32/include/asm/byteorder.h | |||
| @@ -7,6 +7,9 @@ | |||
| 7 | #include <asm/types.h> | 7 | #include <asm/types.h> |
| 8 | #include <linux/compiler.h> | 8 | #include <linux/compiler.h> |
| 9 | 9 | ||
| 10 | #define __BIG_ENDIAN | ||
| 11 | #define __SWAB_64_THRU_32__ | ||
| 12 | |||
| 10 | #ifdef __CHECKER__ | 13 | #ifdef __CHECKER__ |
| 11 | extern unsigned long __builtin_bswap_32(unsigned long x); | 14 | extern unsigned long __builtin_bswap_32(unsigned long x); |
| 12 | extern unsigned short __builtin_bswap_16(unsigned short x); | 15 | extern unsigned short __builtin_bswap_16(unsigned short x); |
| @@ -17,15 +20,18 @@ extern unsigned short __builtin_bswap_16(unsigned short x); | |||
| 17 | * the result. | 20 | * the result. |
| 18 | */ | 21 | */ |
| 19 | #if !(__GNUC__ == 4 && __GNUC_MINOR__ < 2) | 22 | #if !(__GNUC__ == 4 && __GNUC_MINOR__ < 2) |
| 20 | #define __arch__swab32(x) __builtin_bswap_32(x) | 23 | static inline __attribute_const__ __u16 __arch_swab16(__u16 val) |
| 21 | #define __arch__swab16(x) __builtin_bswap_16(x) | 24 | { |
| 22 | #endif | 25 | return __builtin_bswap_16(val); |
| 26 | } | ||
| 27 | #define __arch_swab16 __arch_swab16 | ||
| 23 | 28 | ||
| 24 | #if !defined(__STRICT_ANSI__) || defined(__KERNEL__) | 29 | static inline __attribute_const__ __u32 __arch_swab32(__u32 val) |
| 25 | # define __BYTEORDER_HAS_U64__ | 30 | { |
| 26 | # define __SWAB_64_THRU_32__ | 31 | return __builtin_bswap_32(val); |
| 32 | } | ||
| 33 | #define __arch_swab32 __arch_swab32 | ||
| 27 | #endif | 34 | #endif |
| 28 | 35 | ||
| 29 | #include <linux/byteorder/big_endian.h> | 36 | #include <linux/byteorder.h> |
| 30 | |||
| 31 | #endif /* __ASM_AVR32_BYTEORDER_H */ | 37 | #endif /* __ASM_AVR32_BYTEORDER_H */ |
diff --git a/arch/avr32/mach-at32ap/include/mach/io.h b/arch/avr32/mach-at32ap/include/mach/io.h index 4ec6abc68ea3..22ea79b74052 100644 --- a/arch/avr32/mach-at32ap/include/mach/io.h +++ b/arch/avr32/mach-at32ap/include/mach/io.h | |||
| @@ -1,8 +1,7 @@ | |||
| 1 | #ifndef __ASM_AVR32_ARCH_AT32AP_IO_H | 1 | #ifndef __ASM_AVR32_ARCH_AT32AP_IO_H |
| 2 | #define __ASM_AVR32_ARCH_AT32AP_IO_H | 2 | #define __ASM_AVR32_ARCH_AT32AP_IO_H |
| 3 | 3 | ||
| 4 | /* For "bizarre" halfword swapping */ | 4 | #include <linux/swab.h> |
| 5 | #include <linux/byteorder/swabb.h> | ||
| 6 | 5 | ||
| 7 | #if defined(CONFIG_AP700X_32_BIT_SMC) | 6 | #if defined(CONFIG_AP700X_32_BIT_SMC) |
| 8 | # define __swizzle_addr_b(addr) (addr ^ 3UL) | 7 | # define __swizzle_addr_b(addr) (addr ^ 3UL) |
