]> www.infradead.org Git - users/jedix/linux-maple.git/commit
mips: drop GENERIC_IOMAP wrapper
authorArnd Bergmann <arnd@arndb.de>
Tue, 11 Mar 2025 10:48:49 +0000 (11:48 +0100)
committerArnd Bergmann <arnd@arndb.de>
Sat, 15 Mar 2025 10:07:07 +0000 (11:07 +0100)
commit976bf3aec388331454362b60cd1b5605f99bfe38
treef80b6614f37617b7b2996d4511f515ea776af2aa
parent53a83845dd27f7aeb456a0bac01aba9587fbf51f
mips: drop GENERIC_IOMAP wrapper

All PIO on MIPS platforms is memory mapped, so there is no benefit in
the lib/iomap.c wrappers that switch between inb/outb and readb/writeb
style accessses.

In fact, the '#define PIO_RESERVED 0' setting completely disables
the GENERIC_IOMAP functionality, and the '#define PIO_OFFSET
mips_io_port_base' setting is based on a misunderstanding of what the
offset is meant to do.

MIPS started using GENERIC_IOMAP in 2018 with commit b962aeb02205 ("MIPS:
Use GENERIC_IOMAP") replacing a simple custom implementation of the same
interfaces, but at the time the asm-generic/io.h version was not usable
yet. Since the header is now always included, it's now possible to go
back to the even simpler version.

Use the normal GENERIC_PCI_IOMAP functionality for all mips platforms
without the hacky GENERIC_IOMAP, and provide a custom pci_iounmap()
for the CONFIG_PCI_DRIVERS_LEGACY case to ensure the I/O port base never
gets unmapped.

The readsl() prototype needs an extra 'const' keyword to make it
compatible with the generic ioread32_rep() alias.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/mips/Kconfig
arch/mips/include/asm/io.h
arch/mips/lib/iomap-pci.c