Commit fded1829 authored by Christoph Hellwig's avatar Christoph Hellwig

ia64: rename ioremap_nocache to ioremap_uc

On ia64 ioremap_nocache fails if attributes don't match.  Not other
architectures does this, and we plan to get rid of ioremap_nocache.
So get rid of the special semantics and define ioremap_nocache in
terms of ioremap as no portable driver could rely on the behavior
anyway.

However x86 implements ioremap_uc in a similar way as the ia64
version of ioremap_nocache, in that it ignores the firmware tables.
Switch ia64 to override ioremap_uc instead.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarArnd Bergmann <arnd@arndb.de>
parent 315e5211
...@@ -256,16 +256,16 @@ static inline void outsl(unsigned long port, const void *src, ...@@ -256,16 +256,16 @@ static inline void outsl(unsigned long port, const void *src,
# ifdef __KERNEL__ # ifdef __KERNEL__
extern void __iomem * ioremap(unsigned long offset, unsigned long size); extern void __iomem * ioremap(unsigned long offset, unsigned long size);
extern void __iomem * ioremap_nocache (unsigned long offset, unsigned long size); extern void __iomem * ioremap_uc(unsigned long offset, unsigned long size);
extern void iounmap (volatile void __iomem *addr); extern void iounmap (volatile void __iomem *addr);
static inline void __iomem * ioremap_cache (unsigned long phys_addr, unsigned long size) static inline void __iomem * ioremap_cache (unsigned long phys_addr, unsigned long size)
{ {
return ioremap(phys_addr, size); return ioremap(phys_addr, size);
} }
#define ioremap ioremap #define ioremap ioremap
#define ioremap_nocache ioremap_nocache #define ioremap_nocache ioremap
#define ioremap_cache ioremap_cache #define ioremap_cache ioremap_cache
#define ioremap_uc ioremap_nocache #define ioremap_uc ioremap_uc
#define iounmap iounmap #define iounmap iounmap
/* /*
......
...@@ -99,14 +99,14 @@ ioremap (unsigned long phys_addr, unsigned long size) ...@@ -99,14 +99,14 @@ ioremap (unsigned long phys_addr, unsigned long size)
EXPORT_SYMBOL(ioremap); EXPORT_SYMBOL(ioremap);
void __iomem * void __iomem *
ioremap_nocache (unsigned long phys_addr, unsigned long size) ioremap_uc(unsigned long phys_addr, unsigned long size)
{ {
if (kern_mem_attribute(phys_addr, size) & EFI_MEMORY_WB) if (kern_mem_attribute(phys_addr, size) & EFI_MEMORY_WB)
return NULL; return NULL;
return __ioremap_uc(phys_addr); return __ioremap_uc(phys_addr);
} }
EXPORT_SYMBOL(ioremap_nocache); EXPORT_SYMBOL(ioremap_uc);
void void
early_iounmap (volatile void __iomem *addr, unsigned long size) early_iounmap (volatile void __iomem *addr, unsigned long size)
......
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