[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <7e6757c1-10ad-4852-9927-6e0dca100524@app.fastmail.com>
Date: Sat, 06 Apr 2024 10:06:21 +0200
From: "Arnd Bergmann" <arnd@...nel.org>
To: "Andy Shevchenko" <andy@...ck.fi.intel.com>,
"Niklas Schnelle" <schnelle@...ux.ibm.com>
Cc: "Greg Kroah-Hartman" <gregkh@...uxfoundation.org>,
"Jiri Slaby" <jirislaby@...nel.org>,
Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>,
linux-serial@...r.kernel.org, "Heiko Carstens" <hca@...ux.ibm.com>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 0/1] tty: Handle HAS_IOPORT dependencies
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
Powered by blists - more mailing lists