Message ID | 20250124161530.398361-2-andriy.shevchenko@linux.intel.com |
---|---|
State | New |
Headers | show |
Series | serial: port: Fix UPIO_PORT iotype handling | expand |
On Fri, Jan 24, 2025 at 06:10:46PM +0200, Andy Shevchenko wrote: > Currently the ->iotype is always assigned to the UPIO_MEM when > the respective property is not found. However, this will not > support the cases when user wants to have UPIO_PORT to be set > or preserved. Support this scenario by checking ->iobase value > and default the ->iotype respectively. > > Fixes: 1117a6fdc7c1 ("serial: 8250_of: Switch to use uart_read_port_properties()") > Fixes: e894b6005dce ("serial: port: Introduce a common helper to read properties") You forgot the cc: stable lines. I'll go add them in, but be more careful next time please. thanks, greg k-h
diff --git a/drivers/tty/serial/serial_port.c b/drivers/tty/serial/serial_port.c index d35f1d24156c..f28d0633fe6b 100644 --- a/drivers/tty/serial/serial_port.c +++ b/drivers/tty/serial/serial_port.c @@ -173,6 +173,7 @@ EXPORT_SYMBOL(uart_remove_one_port); * The caller is responsible to initialize the following fields of the @port * ->dev (must be valid) * ->flags + * ->iobase * ->mapbase * ->mapsize * ->regshift (if @use_defaults is false) @@ -214,7 +215,7 @@ static int __uart_read_properties(struct uart_port *port, bool use_defaults) /* Read the registers I/O access type (default: MMIO 8-bit) */ ret = device_property_read_u32(dev, "reg-io-width", &value); if (ret) { - port->iotype = UPIO_MEM; + port->iotype = port->iobase ? UPIO_PORT : UPIO_MEM; } else { switch (value) { case 1:
Currently the ->iotype is always assigned to the UPIO_MEM when the respective property is not found. However, this will not support the cases when user wants to have UPIO_PORT to be set or preserved. Support this scenario by checking ->iobase value and default the ->iotype respectively. Fixes: 1117a6fdc7c1 ("serial: 8250_of: Switch to use uart_read_port_properties()") Fixes: e894b6005dce ("serial: port: Introduce a common helper to read properties") Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- drivers/tty/serial/serial_port.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)