aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-10-10 13:51:55 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2015-10-10 13:51:55 -0400
commitbbecce8d764807701f2ff56b440cd5f787b0c844 (patch)
tree7696b17db15a18fcd74ee4e710fe67f1ce2115a5
parent1d8a12d1de9d9d025d66c1b2a580a293cc5050e5 (diff)
parentda11f98fd018319f65af9c10174ccc829207d937 (diff)
Merge git://git.linux-mips.org/pub/scm/ralf/upstream-linus
Pull MIPS fixes from Ralf Baechle: - MIPS didn't define the new ioremap_uc. Defined it as an alias for ioremap_uncached. - Replace workaround for MIPS16 build issue with a correct one. * git://git.linux-mips.org/pub/scm/ralf/upstream-linus: MIPS: Define ioremap_uc MIPS: UAPI: Ignore __arch_swab{16,32,64} when using MIPS16 Revert "MIPS: UAPI: Fix unrecognized opcode WSBH/DSBH/DSHD when using MIPS16."
-rw-r--r--arch/mips/include/asm/io.h1
-rw-r--r--arch/mips/include/uapi/asm/swab.h19
2 files changed, 8 insertions, 12 deletions
diff --git a/arch/mips/include/asm/io.h b/arch/mips/include/asm/io.h
index 9e777cd42b67..d10fd80dbb7e 100644
--- a/arch/mips/include/asm/io.h
+++ b/arch/mips/include/asm/io.h
@@ -256,6 +256,7 @@ static inline void __iomem * __ioremap_mode(phys_addr_t offset, unsigned long si
256 */ 256 */
257#define ioremap_nocache(offset, size) \ 257#define ioremap_nocache(offset, size) \
258 __ioremap_mode((offset), (size), _CACHE_UNCACHED) 258 __ioremap_mode((offset), (size), _CACHE_UNCACHED)
259#define ioremap_uc ioremap_nocache
259 260
260/* 261/*
261 * ioremap_cachable - map bus memory into CPU space 262 * ioremap_cachable - map bus memory into CPU space
diff --git a/arch/mips/include/uapi/asm/swab.h b/arch/mips/include/uapi/asm/swab.h
index c4ddc4f0d2dc..23cd9b118c9e 100644
--- a/arch/mips/include/uapi/asm/swab.h
+++ b/arch/mips/include/uapi/asm/swab.h
@@ -13,16 +13,15 @@
13 13
14#define __SWAB_64_THRU_32__ 14#define __SWAB_64_THRU_32__
15 15
16#if (defined(__mips_isa_rev) && (__mips_isa_rev >= 2)) || \ 16#if !defined(__mips16) && \
17 defined(_MIPS_ARCH_LOONGSON3A) 17 ((defined(__mips_isa_rev) && (__mips_isa_rev >= 2)) || \
18 defined(_MIPS_ARCH_LOONGSON3A))
18 19
19static inline __attribute__((nomips16)) __attribute_const__ 20static inline __attribute_const__ __u16 __arch_swab16(__u16 x)
20 __u16 __arch_swab16(__u16 x)
21{ 21{
22 __asm__( 22 __asm__(
23 " .set push \n" 23 " .set push \n"
24 " .set arch=mips32r2 \n" 24 " .set arch=mips32r2 \n"
25 " .set nomips16 \n"
26 " wsbh %0, %1 \n" 25 " wsbh %0, %1 \n"
27 " .set pop \n" 26 " .set pop \n"
28 : "=r" (x) 27 : "=r" (x)
@@ -32,13 +31,11 @@ static inline __attribute__((nomips16)) __attribute_const__
32} 31}
33#define __arch_swab16 __arch_swab16 32#define __arch_swab16 __arch_swab16
34 33
35static inline __attribute__((nomips16)) __attribute_const__ 34static inline __attribute_const__ __u32 __arch_swab32(__u32 x)
36 __u32 __arch_swab32(__u32 x)
37{ 35{
38 __asm__( 36 __asm__(
39 " .set push \n" 37 " .set push \n"
40 " .set arch=mips32r2 \n" 38 " .set arch=mips32r2 \n"
41 " .set nomips16 \n"
42 " wsbh %0, %1 \n" 39 " wsbh %0, %1 \n"
43 " rotr %0, %0, 16 \n" 40 " rotr %0, %0, 16 \n"
44 " .set pop \n" 41 " .set pop \n"
@@ -54,13 +51,11 @@ static inline __attribute__((nomips16)) __attribute_const__
54 * 64-bit kernel on r2 CPUs. 51 * 64-bit kernel on r2 CPUs.
55 */ 52 */
56#ifdef __mips64 53#ifdef __mips64
57static inline __attribute__((nomips16)) __attribute_const__ 54static inline __attribute_const__ __u64 __arch_swab64(__u64 x)
58 __u64 __arch_swab64(__u64 x)
59{ 55{
60 __asm__( 56 __asm__(
61 " .set push \n" 57 " .set push \n"
62 " .set arch=mips64r2 \n" 58 " .set arch=mips64r2 \n"
63 " .set nomips16 \n"
64 " dsbh %0, %1 \n" 59 " dsbh %0, %1 \n"
65 " dshd %0, %0 \n" 60 " dshd %0, %0 \n"
66 " .set pop \n" 61 " .set pop \n"
@@ -71,5 +66,5 @@ static inline __attribute__((nomips16)) __attribute_const__
71} 66}
72#define __arch_swab64 __arch_swab64 67#define __arch_swab64 __arch_swab64
73#endif /* __mips64 */ 68#endif /* __mips64 */
74#endif /* MIPS R2 or newer or Loongson 3A */ 69#endif /* (not __mips16) and (MIPS R2 or newer or Loongson 3A) */
75#endif /* _ASM_SWAB_H */ 70#endif /* _ASM_SWAB_H */