diff options
-rw-r--r-- | arch/arm/include/asm/io.h | 9 | ||||
-rw-r--r-- | arch/arm/kernel/armksyms.c | 6 | ||||
-rw-r--r-- | arch/arm/lib/memcpy.S | 2 | ||||
-rw-r--r-- | arch/arm/lib/memset.S | 2 |
4 files changed, 16 insertions, 3 deletions
diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h index a5ed237c87d9..485982084fe9 100644 --- a/arch/arm/include/asm/io.h +++ b/arch/arm/include/asm/io.h | |||
@@ -316,21 +316,24 @@ extern void _memset_io(volatile void __iomem *, int, size_t); | |||
316 | static inline void memset_io(volatile void __iomem *dst, unsigned c, | 316 | static inline void memset_io(volatile void __iomem *dst, unsigned c, |
317 | size_t count) | 317 | size_t count) |
318 | { | 318 | { |
319 | memset((void __force *)dst, c, count); | 319 | extern void mmioset(void *, unsigned int, size_t); |
320 | mmioset((void __force *)dst, c, count); | ||
320 | } | 321 | } |
321 | #define memset_io(dst,c,count) memset_io(dst,c,count) | 322 | #define memset_io(dst,c,count) memset_io(dst,c,count) |
322 | 323 | ||
323 | static inline void memcpy_fromio(void *to, const volatile void __iomem *from, | 324 | static inline void memcpy_fromio(void *to, const volatile void __iomem *from, |
324 | size_t count) | 325 | size_t count) |
325 | { | 326 | { |
326 | memcpy(to, (const void __force *)from, count); | 327 | extern void mmiocpy(void *, const void *, size_t); |
328 | mmiocpy(to, (const void __force *)from, count); | ||
327 | } | 329 | } |
328 | #define memcpy_fromio(to,from,count) memcpy_fromio(to,from,count) | 330 | #define memcpy_fromio(to,from,count) memcpy_fromio(to,from,count) |
329 | 331 | ||
330 | static inline void memcpy_toio(volatile void __iomem *to, const void *from, | 332 | static inline void memcpy_toio(volatile void __iomem *to, const void *from, |
331 | size_t count) | 333 | size_t count) |
332 | { | 334 | { |
333 | memcpy((void __force *)to, from, count); | 335 | extern void mmiocpy(void *, const void *, size_t); |
336 | mmiocpy((void __force *)to, from, count); | ||
334 | } | 337 | } |
335 | #define memcpy_toio(to,from,count) memcpy_toio(to,from,count) | 338 | #define memcpy_toio(to,from,count) memcpy_toio(to,from,count) |
336 | 339 | ||
diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c index a88671cfe1ff..5e5a51a99e68 100644 --- a/arch/arm/kernel/armksyms.c +++ b/arch/arm/kernel/armksyms.c | |||
@@ -50,6 +50,9 @@ extern void __aeabi_ulcmp(void); | |||
50 | 50 | ||
51 | extern void fpundefinstr(void); | 51 | extern void fpundefinstr(void); |
52 | 52 | ||
53 | void mmioset(void *, unsigned int, size_t); | ||
54 | void mmiocpy(void *, const void *, size_t); | ||
55 | |||
53 | /* platform dependent support */ | 56 | /* platform dependent support */ |
54 | EXPORT_SYMBOL(arm_delay_ops); | 57 | EXPORT_SYMBOL(arm_delay_ops); |
55 | 58 | ||
@@ -88,6 +91,9 @@ EXPORT_SYMBOL(memmove); | |||
88 | EXPORT_SYMBOL(memchr); | 91 | EXPORT_SYMBOL(memchr); |
89 | EXPORT_SYMBOL(__memzero); | 92 | EXPORT_SYMBOL(__memzero); |
90 | 93 | ||
94 | EXPORT_SYMBOL(mmioset); | ||
95 | EXPORT_SYMBOL(mmiocpy); | ||
96 | |||
91 | #ifdef CONFIG_MMU | 97 | #ifdef CONFIG_MMU |
92 | EXPORT_SYMBOL(copy_page); | 98 | EXPORT_SYMBOL(copy_page); |
93 | 99 | ||
diff --git a/arch/arm/lib/memcpy.S b/arch/arm/lib/memcpy.S index 7797e81e40e0..64111bd4440b 100644 --- a/arch/arm/lib/memcpy.S +++ b/arch/arm/lib/memcpy.S | |||
@@ -61,8 +61,10 @@ | |||
61 | 61 | ||
62 | /* Prototype: void *memcpy(void *dest, const void *src, size_t n); */ | 62 | /* Prototype: void *memcpy(void *dest, const void *src, size_t n); */ |
63 | 63 | ||
64 | ENTRY(mmiocpy) | ||
64 | ENTRY(memcpy) | 65 | ENTRY(memcpy) |
65 | 66 | ||
66 | #include "copy_template.S" | 67 | #include "copy_template.S" |
67 | 68 | ||
68 | ENDPROC(memcpy) | 69 | ENDPROC(memcpy) |
70 | ENDPROC(mmiocpy) | ||
diff --git a/arch/arm/lib/memset.S b/arch/arm/lib/memset.S index a4ee97b5a2bf..3c65e3bd790f 100644 --- a/arch/arm/lib/memset.S +++ b/arch/arm/lib/memset.S | |||
@@ -16,6 +16,7 @@ | |||
16 | .text | 16 | .text |
17 | .align 5 | 17 | .align 5 |
18 | 18 | ||
19 | ENTRY(mmioset) | ||
19 | ENTRY(memset) | 20 | ENTRY(memset) |
20 | UNWIND( .fnstart ) | 21 | UNWIND( .fnstart ) |
21 | ands r3, r0, #3 @ 1 unaligned? | 22 | ands r3, r0, #3 @ 1 unaligned? |
@@ -133,3 +134,4 @@ UNWIND( .fnstart ) | |||
133 | b 1b | 134 | b 1b |
134 | UNWIND( .fnend ) | 135 | UNWIND( .fnend ) |
135 | ENDPROC(memset) | 136 | ENDPROC(memset) |
137 | ENDPROC(mmioset) | ||