On Sat, Apr 6, 2024, at 00:33, Andy Shevchenko wrote: > On Fri, Apr 05, 2024 at 05:29:23PM +0200, Niklas Schnelle wrote: >> Hi Greg, Jiri, Ilpo, >> >> This is a follow up in my ongoing effort of making inb()/outb() and >> similar I/O port accessors compile-time optional. Previously I sent this >> as a treewide series titled "treewide: Remove I/O port accessors for >> HAS_IOPORT=n" with the latest being its 5th version[0]. With a significant >> subset of patches merged I've changed over to per-subsystem series. These >> series are stand alone and should be merged via the relevant tree such >> that with all subsystems complete we can follow this up with the final >> patch that will make the I/O port accessors compile-time optional. >> >> The current state of the full series with changes to the remaining subsystems >> and the aforementioned final patch can be found for your convenience on my >> git.kernel.org tree in the has_ioport branch[1]. As for compile-time vs runtime >> see Linus' reply to my first attempt[2]. >> >> The patch was previously acked[3] by Greg but given this was almost >> a year ago and didn't apply then I didn't carry the Ack over. That said >> I don't think there were non trivial changes. > > Hmm... Can those drivers simply be converted to use ioreadXX/iowriteXX > instead? Not 8250, for a couple of reasons: - the irq autoconfig code uses outb_p(), which has no iowrite() equivalent - the driver is used on machines that cannot implement ioport_map() because of the nonlinear address translation, e.g. certain early alpha and mips machines. - it still needs its own I/O abstraction layer to deal with different-sized registers, so the result would not be any more readable even without the other issues. Arnd