[PATCH] arch/score/include/asm/io.h: Add generic io map functions when MMU enabled

From: Chen Gang
Date: Wed Jun 18 2014 - 01:07:22 EST


score did not implement some io map functions when MMU enabled, so need
add generic io map functions, just like some other architectures have
done (e.g. sparc64, s390, and mn10300), or will cause compiling issue.

The related error (allmodconfig under score):

CC drivers/clocksource/sh_cmt.o
drivers/clocksource/sh_cmt.c: In function 'sh_cmt_map_memory':
drivers/clocksource/sh_cmt.c:932:2: error: implicit declaration of function 'ioremap_nocache' [-Werror=implicit-function-declaration]
cmt->mapbase = ioremap_nocache(mem->start, resource_size(mem));
^
drivers/clocksource/sh_cmt.c:932:15: warning: assignment makes pointer from integer without a cast
cmt->mapbase = ioremap_nocache(mem->start, resource_size(mem));
^
drivers/clocksource/sh_cmt.c: In function 'sh_cmt_map_memory_legacy':
drivers/clocksource/sh_cmt.c:953:18: warning: assignment makes pointer from integer without a cast
cmt->mapbase_ch = ioremap_nocache(res->start, resource_size(res));
^
drivers/clocksource/sh_cmt.c:963:15: warning: assignment makes pointer from integer without a cast
cmt->mapbase = ioremap_nocache(res2 ? res2->start :
^
drivers/clocksource/sh_cmt.c:968:3: error: implicit declaration of function 'iounmap' [-Werror=implicit-function-declaration]
iounmap(cmt->mapbase_ch);
^
cc1: some warnings being treated as errors
make[2]: *** [drivers/clocksource/sh_cmt.o] Error 1
make[1]: *** [drivers/clocksource] Error 2
make: *** [drivers] Error 2

Signed-off-by: Chen Gang <gang.chen.5i5j@xxxxxxxxx>
---
arch/score/include/asm/io.h | 16 ++++++++++++++++
1 file changed, 16 insertions(+)

diff --git a/arch/score/include/asm/io.h b/arch/score/include/asm/io.h
index 574c8827..d67aeea 100644
--- a/arch/score/include/asm/io.h
+++ b/arch/score/include/asm/io.h
@@ -3,6 +3,22 @@

#include <asm-generic/io.h>

+#ifdef CONFIG_MMU
+static inline void __iomem *ioremap(phys_addr_t offset, unsigned long size)
+{
+ return (void __iomem *) (unsigned long)offset;
+}
+
+#define __ioremap(offset, size, flags) ioremap(offset, size)
+
+#define ioremap_nocache ioremap
+#define ioremap_wc ioremap_nocache
+
+static inline void iounmap(void __iomem *addr)
+{
+}
+#endif
+
#define virt_to_bus virt_to_phys
#define bus_to_virt phys_to_virt
#endif /* _ASM_SCORE_IO_H */
--
1.9.2.459.g68773ac
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/