mirror of https://gitee.com/openkylin/linux.git
arch: rely on asm-generic/io.h for default ioremap_* definitions
Various architectures that use asm-generic/io.h still defined their own default versions of ioremap_nocache, ioremap_wt and ioremap_wc that point back to plain ioremap directly or indirectly. Remove these definitions and rely on asm-generic/io.h instead. For this to work the backup ioremap_* defintions needs to be changed to purely cpp macros instea of inlines to cover for architectures like openrisc that only define ioremap after including <asm-generic/io.h>. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Palmer Dabbelt <palmer@dabbelt.com>
This commit is contained in:
parent
97c9801a15
commit
d092a87073
|
@ -34,10 +34,6 @@ static inline void ioport_unmap(void __iomem *addr)
|
|||
|
||||
extern void iounmap(const void __iomem *addr);
|
||||
|
||||
#define ioremap_nocache(phy, sz) ioremap(phy, sz)
|
||||
#define ioremap_wc(phy, sz) ioremap(phy, sz)
|
||||
#define ioremap_wt(phy, sz) ioremap(phy, sz)
|
||||
|
||||
/*
|
||||
* io{read,write}{16,32}be() macros
|
||||
*/
|
||||
|
|
|
@ -392,7 +392,6 @@ static inline void memcpy_toio(volatile void __iomem *to, const void *from,
|
|||
*/
|
||||
void __iomem *ioremap(resource_size_t res_cookie, size_t size);
|
||||
#define ioremap ioremap
|
||||
#define ioremap_nocache ioremap
|
||||
|
||||
/*
|
||||
* Do not use ioremap_cache for mapping memory. Use memremap instead.
|
||||
|
|
|
@ -167,9 +167,7 @@ extern void iounmap(volatile void __iomem *addr);
|
|||
extern void __iomem *ioremap_cache(phys_addr_t phys_addr, size_t size);
|
||||
|
||||
#define ioremap(addr, size) __ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
|
||||
#define ioremap_nocache(addr, size) __ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
|
||||
#define ioremap_wc(addr, size) __ioremap((addr), (size), __pgprot(PROT_NORMAL_NC))
|
||||
#define ioremap_wt(addr, size) __ioremap((addr), (size), __pgprot(PROT_DEVICE_nGnRE))
|
||||
|
||||
/*
|
||||
* PCI configuration space mapping function.
|
||||
|
|
|
@ -42,7 +42,6 @@ extern void iounmap(void *addr);
|
|||
|
||||
#define ioremap(addr, size) __ioremap((addr), (size), pgprot_noncached(PAGE_KERNEL))
|
||||
#define ioremap_wc(addr, size) __ioremap((addr), (size), pgprot_writecombine(PAGE_KERNEL))
|
||||
#define ioremap_nocache(addr, size) ioremap((addr), (size))
|
||||
#define ioremap_cache ioremap_cache
|
||||
|
||||
#include <asm-generic/io.h>
|
||||
|
|
|
@ -263,7 +263,6 @@ static inline void __iomem * ioremap_cache (unsigned long phys_addr, unsigned lo
|
|||
return ioremap(phys_addr, size);
|
||||
}
|
||||
#define ioremap ioremap
|
||||
#define ioremap_nocache ioremap
|
||||
#define ioremap_cache ioremap_cache
|
||||
#define ioremap_uc ioremap_uc
|
||||
#define iounmap iounmap
|
||||
|
|
|
@ -39,9 +39,6 @@ extern resource_size_t isa_mem_base;
|
|||
extern void iounmap(volatile void __iomem *addr);
|
||||
|
||||
extern void __iomem *ioremap(phys_addr_t address, unsigned long size);
|
||||
#define ioremap_nocache(addr, size) ioremap((addr), (size))
|
||||
#define ioremap_wc(addr, size) ioremap((addr), (size))
|
||||
#define ioremap_wt(addr, size) ioremap((addr), (size))
|
||||
|
||||
#endif /* CONFIG_MMU */
|
||||
|
||||
|
|
|
@ -33,10 +33,6 @@ static inline void iounmap(void __iomem *addr)
|
|||
__iounmap(addr);
|
||||
}
|
||||
|
||||
#define ioremap_nocache ioremap
|
||||
#define ioremap_wc ioremap
|
||||
#define ioremap_wt ioremap
|
||||
|
||||
/* Pages to physical address... */
|
||||
#define page_to_phys(page) virt_to_phys(page_to_virt(page))
|
||||
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
#define PIO_OFFSET 0
|
||||
#define PIO_MASK 0
|
||||
|
||||
#define ioremap_nocache ioremap
|
||||
#include <asm-generic/io.h>
|
||||
#include <asm/pgtable.h>
|
||||
|
||||
|
|
|
@ -16,16 +16,6 @@
|
|||
#include <asm/pgtable.h>
|
||||
|
||||
extern void __iomem *ioremap(phys_addr_t offset, unsigned long size);
|
||||
|
||||
/*
|
||||
* The RISC-V ISA doesn't yet specify how to query or modify PMAs, so we can't
|
||||
* change the properties of memory regions. This should be fixed by the
|
||||
* upcoming platform spec.
|
||||
*/
|
||||
#define ioremap_nocache(addr, size) ioremap((addr), (size))
|
||||
#define ioremap_wc(addr, size) ioremap((addr), (size))
|
||||
#define ioremap_wt(addr, size) ioremap((addr), (size))
|
||||
|
||||
extern void iounmap(volatile void __iomem *addr);
|
||||
|
||||
/* Generic IO read/write. These perform native-endian accesses. */
|
||||
|
|
|
@ -26,10 +26,6 @@ void unxlate_dev_mem_ptr(phys_addr_t phys, void *addr);
|
|||
|
||||
#define IO_SPACE_LIMIT 0
|
||||
|
||||
#define ioremap_nocache(addr, size) ioremap(addr, size)
|
||||
#define ioremap_wc ioremap_nocache
|
||||
#define ioremap_wt ioremap_nocache
|
||||
|
||||
void __iomem *ioremap(unsigned long offset, unsigned long size);
|
||||
void iounmap(volatile void __iomem *addr);
|
||||
|
||||
|
|
|
@ -205,7 +205,6 @@ extern void __iomem *ioremap_encrypted(resource_size_t phys_addr, unsigned long
|
|||
*/
|
||||
void __iomem *ioremap(resource_size_t offset, unsigned long size);
|
||||
#define ioremap ioremap
|
||||
#define ioremap_nocache ioremap
|
||||
|
||||
extern void iounmap(volatile void __iomem *addr);
|
||||
#define iounmap iounmap
|
||||
|
|
|
@ -52,10 +52,6 @@ static inline void __iomem *ioremap_cache(unsigned long offset,
|
|||
}
|
||||
#define ioremap_cache ioremap_cache
|
||||
|
||||
#define ioremap_nocache ioremap
|
||||
#define ioremap_wc ioremap
|
||||
#define ioremap_wt ioremap
|
||||
|
||||
static inline void iounmap(volatile void __iomem *addr)
|
||||
{
|
||||
unsigned long va = (unsigned long) addr;
|
||||
|
|
|
@ -949,27 +949,15 @@ static inline void iounmap(void __iomem *addr)
|
|||
#endif /* CONFIG_MMU */
|
||||
|
||||
#ifndef ioremap_nocache
|
||||
#define ioremap_nocache ioremap_nocache
|
||||
static inline void __iomem *ioremap_nocache(phys_addr_t offset, size_t size)
|
||||
{
|
||||
return ioremap(offset, size);
|
||||
}
|
||||
#define ioremap_nocache ioremap
|
||||
#endif
|
||||
|
||||
#ifndef ioremap_wc
|
||||
#define ioremap_wc ioremap_wc
|
||||
static inline void __iomem *ioremap_wc(phys_addr_t offset, size_t size)
|
||||
{
|
||||
return ioremap_nocache(offset, size);
|
||||
}
|
||||
#define ioremap_wc ioremap
|
||||
#endif
|
||||
|
||||
#ifndef ioremap_wt
|
||||
#define ioremap_wt ioremap_wt
|
||||
static inline void __iomem *ioremap_wt(phys_addr_t offset, size_t size)
|
||||
{
|
||||
return ioremap_nocache(offset, size);
|
||||
}
|
||||
#define ioremap_wt ioremap
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue