[PATCH v3 21/32] powerpc: include default ioremap_nopost() implementation

Michael Ellerman mpe at ellerman.id.au
Wed Apr 12 23:35:47 EDT 2017

Benjamin Herrenschmidt <benh at kernel.crashing.org> writes:

> On Tue, 2017-04-11 at 15:24 +0100, Lorenzo Pieralisi wrote:
>> Ok, point taken. BTW, may I ask you guys to have a look into this
>> please ?
>> https://lkml.org/lkml/2017/4/6/743
>> It is a side effect of this thread (v2), not sure why <asm/io.h>
>> on powerpc has to include <linux/io.h>.
> Not sure how we ended up with that... it's odd indeed.
> Michael ? Any reason we can't just remove it ?

No ... idea.

Looks like it was added in:

commit b41e5fffe8b81fc939067d8c1c195cc79115d5a3
Author:     Emil Medve <Emilian.Medve at Freescale.com>
AuthorDate: Sat May 3 06:34:04 2008 +1000
Commit:     Paul Mackerras <paulus at samba.org>
CommitDate: Mon May 5 16:47:14 2008 +1000

    [POWERPC] devres: Add devm_ioremap_prot()
    We provide an ioremap_flags, so this provides a corresponding
    devm_ioremap_prot.  The slight name difference is at Ben
    Herrenschmidt's request as he plans on changing ioremap_flags to
    ioremap_prot in the future.
    Signed-off-by: Emil Medve <Emilian.Medve at Freescale.com>
    Signed-off-by: Kumar Gala <galak at kernel.crashing.org>
    Acked-by: Tejun Heo <htejun at gmail.com>
    Cc: Benjamin Herrenschmidt <benh at kernel.crashing.org>
    Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
    Signed-off-by: Paul Mackerras <paulus at samba.org>

diff --git a/include/asm-powerpc/io.h b/include/asm-powerpc/io.h
index afae0697e8ce..e0062d73db1c 100644
--- a/include/asm-powerpc/io.h
+++ b/include/asm-powerpc/io.h
@@ -18,6 +18,9 @@ extern int check_legacy_ioport(unsigned long base_port);
 #define _PNPWRP		0xa79
 #define PNPBIOS_BASE	0xf000
+#include <linux/device.h>
+#include <linux/io.h>
 #include <linux/compiler.h>
 #include <asm/page.h>
 #include <asm/byteorder.h>
@@ -744,6 +747,9 @@ static inline void * bus_to_virt(unsigned long address)
 #define clrsetbits_8(addr, clear, set) clrsetbits(8, addr, clear, set)
+void __iomem *devm_ioremap_prot(struct device *dev, resource_size_t offset,
+				size_t size, unsigned long flags);
 #endif /* __KERNEL__ */
 #endif /* _ASM_POWERPC_IO_H */

I'll try removing it and see what breaks.


More information about the linux-arm-kernel mailing list