Commit f1ecc698 authored by Jonas Bonn's avatar Jonas Bonn

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: default avatarJonas Bonn <jonas@southpole.se>
Cc: liqin.chen@sunplusct.com
Cc: gxt@mprc.pku.edu.cn
Acked-by: default avatarMike Frysinger <vapier@gentoo.org>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
parent a4e05276
...@@ -307,7 +307,11 @@ static inline void *phys_to_virt(unsigned long address) ...@@ -307,7 +307,11 @@ static inline void *phys_to_virt(unsigned long address)
/* /*
* Change "struct page" to physical address. * Change "struct page" to physical address.
*
* This implementation is for the no-MMU case only... if you have an MMU
* you'll need to provide your own definitions.
*/ */
#ifndef CONFIG_MMU
static inline void __iomem *ioremap(phys_addr_t offset, unsigned long size) static inline void __iomem *ioremap(phys_addr_t offset, unsigned long size)
{ {
return (void __iomem*) (unsigned long)offset; return (void __iomem*) (unsigned long)offset;
...@@ -326,6 +330,7 @@ static inline void __iomem *ioremap(phys_addr_t offset, unsigned long size) ...@@ -326,6 +330,7 @@ static inline void __iomem *ioremap(phys_addr_t offset, unsigned long size)
static inline void iounmap(void *addr) static inline void iounmap(void *addr)
{ {
} }
#endif /* CONFIG_MMU */
#ifndef CONFIG_GENERIC_IOMAP #ifndef CONFIG_GENERIC_IOMAP
static inline void __iomem *ioport_map(unsigned long port, unsigned int nr) static inline void __iomem *ioport_map(unsigned long port, unsigned int nr)
...@@ -342,7 +347,7 @@ extern void ioport_unmap(void __iomem *p); ...@@ -342,7 +347,7 @@ extern void ioport_unmap(void __iomem *p);
#endif /* CONFIG_GENERIC_IOMAP */ #endif /* CONFIG_GENERIC_IOMAP */
#define xlate_dev_kmem_ptr(p) p #define xlate_dev_kmem_ptr(p) p
#define xlate_dev_mem_ptr(p) ((void *) (p)) #define xlate_dev_mem_ptr(p) __va(p)
#ifndef virt_to_bus #ifndef virt_to_bus
static inline unsigned long virt_to_bus(volatile void *address) static inline unsigned long virt_to_bus(volatile void *address)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment