[PATCH v1 0/6] serial: Some yak shaving
From: Uwe Kleine-König
Date: Fri Jul 31 2026 - 05:45:26 EST
Hello,
after the discussion with Hugo about hub6_match_port()[1] I looked into
implementing my suggestion. Hugo had a doubt there:
> I am not sure to fully understand what you suggest. Copying the same
> function code to two drivers seems like a waisted opportunity for code
> reuse?
I don't think this is a wasted opportunity, as uart_match_port() only
becomes a single comparison for the txx9 driver. Also having 8250
specific parts in serial_core is a layer violation.
I was unable to unsee some of the stuff I discovered, so there are a few
more patches in this series now ...
The first txx9 patch is a preparation for the second to establish the
assertion ".iotype is always UPIO_PORT". It's also a fix that is correct
on its own (assuming I understood the driver model misuse in this driver
correctly).
After that uart_match_port() is only used by the 8250 driver code and
thus can be moved to there in the third patch, simplifying the
dependencies a bit which enables fixing the breakage I found in the
fourth patch.
The two remaining patches are cleanups I found while working on that
driver.
Note this is only compile tested as I don't have a machine with any of
the three affected serial hardwares.
Best regards
Uwe
[1] https://lore.kernel.org/linux-serial/amn8Hb2dbv_Sah_Y@monoceros/
Uwe Kleine-König (6):
serial: txx9: Drop noop probe function and dangerous remove callback
serial: txx9: Drop usage of uart_match_port()
serial: 8250: Make uart_match_port() a 8250 specific function
serial: 8250: Fix corner case for port matching
serial: 8250: hub6: Add cleanup code
serial: 8250: pnp: Annotate init and exit functions for conditional
discarding
Documentation/driver-api/serial/driver.rst | 2 +-
drivers/tty/serial/8250/8250.h | 10 +++-
drivers/tty/serial/8250/8250_core.c | 27 +++++++++-
drivers/tty/serial/8250/8250_hub6.c | 11 ++---
drivers/tty/serial/8250/8250_platform.c | 9 +++-
drivers/tty/serial/8250/8250_pnp.c | 4 +-
drivers/tty/serial/8250/Kconfig | 4 +-
drivers/tty/serial/8250/Makefile | 2 +-
drivers/tty/serial/serial_core.c | 27 ----------
drivers/tty/serial/serial_txx9.c | 57 ++--------------------
include/linux/serial_core.h | 2 -
11 files changed, 58 insertions(+), 97 deletions(-)
base-commit: 95d6a9ccef99117115e41e9adb271243bd5e985b
--
2.55.0.11.g153666a7d9bb