diff options
author | Paul Mundt <lethal@linux-sh.org> | 2010-05-25 13:06:13 +0200 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-06-02 09:31:42 +0200 |
commit | 86e4dd5add77ab809f5427391dfabb8f78cbcb58 (patch) | |
tree | 43d2c40951df78d5404a72da214f8c8a788d3de3 /arch/sh/kernel/io_generic.c | |
parent | usb: r8a66597-hcd pio to mmio accessor conversion. (diff) | |
download | linux-86e4dd5add77ab809f5427391dfabb8f78cbcb58.tar.xz linux-86e4dd5add77ab809f5427391dfabb8f78cbcb58.zip |
sh: support for platforms without PIO.
This extends some of the existing special casing for HAS_IOPORT
platforms and gets it to the point where platforms can begin to
conditionally select it.
The major changes here are that the PIO routines themselves go away
completely, including all of the machvec port mapping wrappers. With this
in place it's possible for any non-machvec abusing platform to disable
PIO completely. At present this is left as an opt-in until the abusers
are the odd ones out instead of the majority.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/io_generic.c')
-rw-r--r-- | arch/sh/kernel/io_generic.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/sh/kernel/io_generic.c b/arch/sh/kernel/io_generic.c index e1e1dbd19557..447d78f666f9 100644 --- a/arch/sh/kernel/io_generic.c +++ b/arch/sh/kernel/io_generic.c @@ -158,3 +158,23 @@ void __iomem *generic_ioport_map(unsigned long addr, unsigned int size) void generic_ioport_unmap(void __iomem *addr) { } + +#ifndef CONFIG_GENERIC_IOMAP +void __iomem *ioport_map(unsigned long port, unsigned int nr) +{ + void __iomem *ret; + + ret = __ioport_map_trapped(port, nr); + if (ret) + return ret; + + return __ioport_map(port, nr); +} +EXPORT_SYMBOL(ioport_map); + +void ioport_unmap(void __iomem *addr) +{ + sh_mv.mv_ioport_unmap(addr); +} +EXPORT_SYMBOL(ioport_unmap); +#endif /* CONFIG_GENERIC_IOMAP */ |