[PATCH AUTOSEL 6.18] serial: 8250_port: recognize UPIO_AU
From: Sasha Levin
Date: Mon Aug 31 2026 - 10:54:46 EST
From: Manuel Lauss <manuel.lauss@xxxxxxxxx>
[ Upstream commit 49fa670efdfdd27e29145cbd2beef065c08717ef ]
My MIPS Alchemy systems generate the following warning during
probe of the 8250 driver:
WARNING: drivers/tty/serial/8250/8250_port.c:462 at set_io_from_upio+0xfc/0x124, CPU#0: swapper/0/1
Unsupported UART type 4
[...]
[<80521d40>] set_io_from_upio+0xfc/0x124
[<80521dfc>] serial8250_set_defaults+0x94/0xe0
[<80520fb4>] serial8250_register_8250_port+0x288/0x51c
[<805214ec>] serial8250_probe+0x160/0x1e8
[<8053b5f0>] platform_probe+0x64/0x90
The least invasive fix is to recognize UPIO_AU (type 4) in set_io_from_upio()
and do nothing, since all parameters have already been set up in
8250_rt288x.c::au_platform_setup().
Run-tested on Alchemy Au1300 platform.
Signed-off-by: Manuel Lauss <manuel.lauss@xxxxxxxxx>
Link: https://patch.msgid.link/20260430135822.905035-1-manuel.lauss@xxxxxxxxx
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
---
LLM Generated explanations, may be completely bogus:
The background `git log -S "set_io_from_upio"` search finished. It
points to `2bf95a9bcb500` ("serial: 8250: Fix 8250_rsa symbol loop") as
the first non-merge change touching that symbol in this tree's history —
consistent with the 6.18-era 8250 refactor that left `UPIO_AU` unhandled
in `set_io_from_upio()`.
That doesn't change the earlier conclusion for **v6.18.43**: backport
**YES** — small, correct fix for a real boot-time WARN on MIPS Alchemy /
RT288x UARTs where platform code already sets up the accessors.
drivers/tty/serial/8250/8250_port.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c
index 0c633639f7657..7c10087458bb6 100644
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
@@ -458,6 +458,8 @@ static void set_io_from_upio(struct uart_port *p)
p->serial_out = io_serial_out;
break;
#endif
+ case UPIO_AU:
+ break;
default:
WARN(p->iotype != UPIO_PORT || p->iobase,
"Unsupported UART type %x\n", p->iotype);
--
2.53.0