This patchset tries to remove ioremap_uc() in the current architectures except of x86 and ia64. They will use the default ioremap_uc definition in <asm-generic/io.h> which returns NULL. If any arch sees a breakage caused by the default ioremap_uc(), it can provide a sepcific one for its own usage. This is done in patch 2. To get rid of all of them other than x86 and ia64, add asm-generic/io.h to asm/io.h of mips ARCH. With this adding, we can get rid of the ioremap_uc() in mips too. Adding asm-generic/io.h is done in patch 1. v2->v3: - In patch 1, move those macro definition of functio near its function declaration according to Arnd's suggestion. And remove the unneeded change in asm/mmiowb.h introduced in old version. - In patch 2, clean up and rewrite the messy document related to ioremap_uc() in Documentation/driver-api/device-io.rst. v1->v2: - Update log of patch 2, and document related to ioremap_uc() according to Geert's comment. - Add Geert's Acked-by. Baoquan He (2): mips: add <asm-generic/io.h> including arch/*/io.h: remove ioremap_uc in some architectures Documentation/driver-api/device-io.rst | 14 +++-- arch/alpha/include/asm/io.h | 1 - arch/hexagon/include/asm/io.h | 3 - arch/m68k/include/asm/kmap.h | 1 - arch/mips/include/asm/io.h | 79 +++++++++++++++++++++++--- arch/parisc/include/asm/io.h | 2 - arch/powerpc/include/asm/io.h | 1 - arch/sh/include/asm/io.h | 2 - arch/sparc/include/asm/io_64.h | 1 - 9 files changed, 79 insertions(+), 25 deletions(-) -- 2.34.1