[GIT PULL] generic ioremap for 5.5

From: Christoph Hellwig
Date: Mon Nov 25 2019 - 14:28:01 EST


Hi Linus,

this pull requests add the remaining bits for an entirely generic ioremap
and iounmap to lib/ioremap.c, and to facilitate that 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.

There are two conflicts with the riscv tree - one is a trivial makefile
context one with the nommu support, and the other is the split of the
riscv <asm/io.h> which means that the removals in this pull request need
to be applied to the new location that they were moved to in the riscv
tree.

The following changes since commit 31f4f5b495a62c9a8b15b1c3581acd5efeb9af8c:

Linux 5.4-rc7 (2019-11-10 16:17:15 -0800)

are available in the Git repository at:

git://git.infradead.org/users/hch/ioremap.git tags/ioremap-5.5

for you to fetch changes up to eafee59440623e06b0ce4a0e49f814a8cf31d8ca:

nds32: use generic ioremap (2019-11-12 11:37:58 +0100)

----------------------------------------------------------------
generic ioremap support

- clean up various obsolete ioremap and iounmap variants
- add a new generic ioremap implementation and switch csky, nds32 and
riscv over to it

----------------------------------------------------------------
Christoph Hellwig (21):
arm: remove ioremap_cached
unicore32: remove ioremap_cached
ia64: rename ioremap_nocache to ioremap_uc
hexagon: clean up ioremap
alpha: remove the unused __ioremap wrapper
nios2: remove __ioremap
parisc: remove __ioremap
x86: Clean up ioremap()
xtensa: clean up ioremap
asm-generic: ioremap_uc should behave the same with and without MMU
asm-generic: don't provide ioremap for CONFIG_MMU
arch: rely on asm-generic/io.h for default ioremap_* definitions
m68k: rename __iounmap and mark it static
hexagon: remove __iounmap
nios2: remove __iounmap
sh: remove __iounmap
lib: provide a simple generic ioremap implementation
riscv: use the generic ioremap code
csky: remove ioremap_cache
csky: use generic ioremap
nds32: use generic ioremap

arch/alpha/include/asm/io.h | 6 ---
arch/arc/include/asm/io.h | 4 --
arch/arm/include/asm/io.h | 7 ---
arch/arm/mm/ioremap.c | 4 --
arch/arm/mm/mmu.c | 2 +-
arch/arm/mm/nommu.c | 4 --
arch/arm64/include/asm/io.h | 2 -
arch/csky/Kconfig | 1 +
arch/csky/include/asm/io.h | 11 ++--
arch/csky/include/asm/pgtable.h | 4 ++
arch/csky/mm/ioremap.c | 52 -------------------
arch/hexagon/include/asm/io.h | 18 ++-----
arch/hexagon/kernel/hexagon_ksyms.c | 4 +-
arch/hexagon/mm/ioremap.c | 4 +-
arch/ia64/include/asm/io.h | 5 +-
arch/ia64/mm/ioremap.c | 4 +-
arch/m68k/include/asm/kmap.h | 1 -
arch/m68k/mm/kmap.c | 100 ++++++++++++++++++------------------
arch/microblaze/include/asm/io.h | 3 --
arch/nds32/Kconfig | 1 +
arch/nds32/include/asm/io.h | 3 +-
arch/nds32/include/asm/pgtable.h | 4 +-
arch/nds32/mm/Makefile | 3 +-
arch/nds32/mm/ioremap.c | 62 ----------------------
arch/nios2/include/asm/io.h | 25 +--------
arch/nios2/mm/ioremap.c | 23 +++------
arch/openrisc/include/asm/io.h | 1 -
arch/parisc/include/asm/io.h | 11 +---
arch/parisc/mm/ioremap.c | 10 ++--
arch/riscv/Kconfig | 1 +
arch/riscv/include/asm/io.h | 13 -----
arch/riscv/include/asm/pgtable.h | 6 +++
arch/riscv/mm/Makefile | 1 -
arch/riscv/mm/ioremap.c | 84 ------------------------------
arch/s390/include/asm/io.h | 4 --
arch/sh/include/asm/io.h | 9 +---
arch/sh/mm/ioremap.c | 4 +-
arch/sparc/include/asm/io_32.h | 1 +
arch/unicore32/include/asm/io.h | 4 +-
arch/unicore32/mm/ioremap.c | 8 ---
arch/x86/include/asm/io.h | 7 +--
arch/x86/mm/ioremap.c | 8 +--
arch/x86/mm/pageattr.c | 4 +-
arch/xtensa/include/asm/io.h | 12 +----
include/asm-generic/io.h | 89 +++++++++++++-------------------
lib/Kconfig | 3 ++
lib/ioremap.c | 39 ++++++++++++++
47 files changed, 189 insertions(+), 487 deletions(-)
delete mode 100644 arch/nds32/mm/ioremap.c
delete mode 100644 arch/riscv/mm/ioremap.c