aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-generic/io.h
diff options
context:
space:
mode:
authorJonas Bonn <jonas@southpole.se>2011-07-02 11:17:35 -0400
committerJonas Bonn <jonas@southpole.se>2011-07-22 12:46:25 -0400
commitf1ecc69838a2d7c8a3e1909f637d4083c071777d (patch)
tree7f052a7faa1fd92b25659beaa748bb665af45c56 /include/asm-generic/io.h
parenta4e05276a10198a1540dd1a0001f759c10ce1cf1 (diff)
asm-generic: add MMU variants of io.h functions
Some of the implementations, in particular the ioremap variants, in asm-generic/io.h are for systems without an MMU. In order to be able to use the generic header file for systems with an MMU, this patch wraps these implementations in checks for CONFIG_MMU. Tested on OpenRISC. Signed-off-by: Jonas Bonn <jonas@southpole.se> Cc: liqin.chen@sunplusct.com Cc: gxt@mprc.pku.edu.cn Acked-by: Mike Frysinger <vapier@gentoo.org> Acked-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'include/asm-generic/io.h')
-rw-r--r--include/asm-generic/io.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h
index e0ffa3ddb02a..a1caf2d25d82 100644
--- a/include/asm-generic/io.h
+++ b/include/asm-generic/io.h
@@ -307,7 +307,11 @@ static inline void *phys_to_virt(unsigned long address)
307 307
308/* 308/*
309 * Change "struct page" to physical address. 309 * Change "struct page" to physical address.
310 *
311 * This implementation is for the no-MMU case only... if you have an MMU
312 * you'll need to provide your own definitions.
310 */ 313 */
314#ifndef CONFIG_MMU
311static inline void __iomem *ioremap(phys_addr_t offset, unsigned long size) 315static inline void __iomem *ioremap(phys_addr_t offset, unsigned long size)
312{ 316{
313 return (void __iomem*) (unsigned long)offset; 317 return (void __iomem*) (unsigned long)offset;
@@ -326,6 +330,7 @@ static inline void __iomem *ioremap(phys_addr_t offset, unsigned long size)
326static inline void iounmap(void *addr) 330static inline void iounmap(void *addr)
327{ 331{
328} 332}
333#endif /* CONFIG_MMU */
329 334
330#ifndef CONFIG_GENERIC_IOMAP 335#ifndef CONFIG_GENERIC_IOMAP
331static inline void __iomem *ioport_map(unsigned long port, unsigned int nr) 336static inline void __iomem *ioport_map(unsigned long port, unsigned int nr)
@@ -342,7 +347,7 @@ extern void ioport_unmap(void __iomem *p);
342#endif /* CONFIG_GENERIC_IOMAP */ 347#endif /* CONFIG_GENERIC_IOMAP */
343 348
344#define xlate_dev_kmem_ptr(p) p 349#define xlate_dev_kmem_ptr(p) p
345#define xlate_dev_mem_ptr(p) ((void *) (p)) 350#define xlate_dev_mem_ptr(p) __va(p)
346 351
347#ifndef virt_to_bus 352#ifndef virt_to_bus
348static inline unsigned long virt_to_bus(volatile void *address) 353static inline unsigned long virt_to_bus(volatile void *address)