diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-11-28 10:57:12 -0800 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-11-28 10:57:12 -0800 | 
| commit | a308a7102215a582fc474375648965bc5692894b (patch) | |
| tree | 9a9106cf186cf70751234fb2d371fb64a9a938a4 /arch/hexagon | |
| parent | 05bd375b6bdede3748023e130990c9b6214fd46a (diff) | |
| parent | eafee59440623e06b0ce4a0e49f814a8cf31d8ca (diff) | |
| download | linux-a308a7102215a582fc474375648965bc5692894b.tar.bz2 | |
Merge tag 'ioremap-5.5' of git://git.infradead.org/users/hch/ioremap
Pull generic ioremap support from Christoph Hellwig:
 "This adds the remaining bits for an entirely generic ioremap and
  iounmap to lib/ioremap.c. To facilitate that, it cleans up the giant
  mess of weird ioremap variants we had with no users outside the arch
  code.
  For now just the three newest ports use the code, but there is more
  than a handful others that can be converted without too much work.
  Summary:
   - clean up various obsolete ioremap and iounmap variants
   - add a new generic ioremap implementation and switch csky, nds32 and
     riscv over to it"
* tag 'ioremap-5.5' of git://git.infradead.org/users/hch/ioremap: (21 commits)
  nds32: use generic ioremap
  csky: use generic ioremap
  csky: remove ioremap_cache
  riscv: use the generic ioremap code
  lib: provide a simple generic ioremap implementation
  sh: remove __iounmap
  nios2: remove __iounmap
  hexagon: remove __iounmap
  m68k: rename __iounmap and mark it static
  arch: rely on asm-generic/io.h for default ioremap_* definitions
  asm-generic: don't provide ioremap for CONFIG_MMU
  asm-generic: ioremap_uc should behave the same with and without MMU
  xtensa: clean up ioremap
  x86: Clean up ioremap()
  parisc: remove __ioremap
  nios2: remove __ioremap
  alpha: remove the unused __ioremap wrapper
  hexagon: clean up ioremap
  ia64: rename ioremap_nocache to ioremap_uc
  unicore32: remove ioremap_cached
  ...
Diffstat (limited to 'arch/hexagon')
| -rw-r--r-- | arch/hexagon/include/asm/io.h | 18 | ||||
| -rw-r--r-- | arch/hexagon/kernel/hexagon_ksyms.c | 4 | ||||
| -rw-r--r-- | arch/hexagon/mm/ioremap.c | 4 | 
3 files changed, 7 insertions, 19 deletions
| diff --git a/arch/hexagon/include/asm/io.h b/arch/hexagon/include/asm/io.h index ba1a444d55b3..539e3efcf39c 100644 --- a/arch/hexagon/include/asm/io.h +++ b/arch/hexagon/include/asm/io.h @@ -27,7 +27,7 @@  extern int remap_area_pages(unsigned long start, unsigned long phys_addr,  				unsigned long end, unsigned long flags); -extern void __iounmap(const volatile void __iomem *addr); +extern void iounmap(const volatile void __iomem *addr);  /* Defined in lib/io.c, needed for smc91x driver. */  extern void __raw_readsw(const void __iomem *addr, void *data, int wordlen); @@ -171,21 +171,9 @@ static inline void writel(u32 data, volatile void __iomem *addr)  #define writew_relaxed __raw_writew  #define writel_relaxed __raw_writel -/* - * Need an mtype somewhere in here, for cache type deals? - * This is probably too long for an inline. - */ -void __iomem *ioremap_nocache(unsigned long phys_addr, unsigned long size); +void __iomem *ioremap(unsigned long phys_addr, unsigned long size); +#define ioremap_nocache ioremap -static inline void __iomem *ioremap(unsigned long phys_addr, unsigned long size) -{ -	return ioremap_nocache(phys_addr, size); -} - -static inline void iounmap(volatile void __iomem *addr) -{ -	__iounmap(addr); -}  #define __raw_writel writel diff --git a/arch/hexagon/kernel/hexagon_ksyms.c b/arch/hexagon/kernel/hexagon_ksyms.c index cf8974beb500..6fb1aaab1c29 100644 --- a/arch/hexagon/kernel/hexagon_ksyms.c +++ b/arch/hexagon/kernel/hexagon_ksyms.c @@ -14,13 +14,13 @@  EXPORT_SYMBOL(__clear_user_hexagon);  EXPORT_SYMBOL(raw_copy_from_user);  EXPORT_SYMBOL(raw_copy_to_user); -EXPORT_SYMBOL(__iounmap); +EXPORT_SYMBOL(iounmap);  EXPORT_SYMBOL(__strnlen_user);  EXPORT_SYMBOL(__vmgetie);  EXPORT_SYMBOL(__vmsetie);  EXPORT_SYMBOL(__vmyield);  EXPORT_SYMBOL(empty_zero_page); -EXPORT_SYMBOL(ioremap_nocache); +EXPORT_SYMBOL(ioremap);  EXPORT_SYMBOL(memcpy);  EXPORT_SYMBOL(memset); diff --git a/arch/hexagon/mm/ioremap.c b/arch/hexagon/mm/ioremap.c index 77d8e1e69e9b..255c5b1ee1a7 100644 --- a/arch/hexagon/mm/ioremap.c +++ b/arch/hexagon/mm/ioremap.c @@ -9,7 +9,7 @@  #include <linux/vmalloc.h>  #include <linux/mm.h> -void __iomem *ioremap_nocache(unsigned long phys_addr, unsigned long size) +void __iomem *ioremap(unsigned long phys_addr, unsigned long size)  {  	unsigned long last_addr, addr;  	unsigned long offset = phys_addr & ~PAGE_MASK; @@ -38,7 +38,7 @@ void __iomem *ioremap_nocache(unsigned long phys_addr, unsigned long size)  	return (void __iomem *) (offset + addr);  } -void __iounmap(const volatile void __iomem *addr) +void iounmap(const volatile void __iomem *addr)  {  	vunmap((void *) ((unsigned long) addr & PAGE_MASK));  } |