Re: [PATCH v2] serial: 8250_pnp: Support configurable reg shift property

From: Andy Shevchenko
Date: Fri Mar 08 2024 - 11:15:40 EST


On Wed, Mar 06, 2024 at 07:42:27PM +0800, Guanbing Huang wrote:
> From: Guanbing Huang <albanhuang@xxxxxxxxxxx>

Thanks for your contribution!
My comments below.

..


First of all, always start a new email thread when sending a new version of the
patch (i.o.w. no In-Reply-to email header).

> The 16550a serial port based on the ACPI table requires obtaining the
> reg-shift attribute. In the ACPI scenario, If the reg-shift property
> is not configured like in DTS, the 16550a serial driver cannot read or
> write controller registers properly during initialization.
>
> Signed-off-by: Guanbing Huang <albanhuang@xxxxxxxxxxx>


> Signed-off-by: Bing Fan <tombinfan@xxxxxxxxxxx>
> Signed-off-by: Linheng Du <dylanlhdu@xxxxxxxxxxx>

This chain, as described in Submitting Patches documentation [1], should go
accordingly.

..

> @@ -473,6 +473,7 @@ serial_pnp_probe(struct pnp_dev *dev, const struct pnp_device_id *dev_id)
> uart.port.flags |= UPF_SHARE_IRQ;
> uart.port.uartclk = 1843200;
> device_property_read_u32(&dev->dev, "clock-frequency", &uart.port.uartclk);
> + device_property_read_u8(&dev->dev, "reg-shift", &uart.port.regshift);
> uart.port.dev = &dev->dev;

Instead, it may make sense to switch to use uart_read_port_properties() which
has been recently introduced and dozen of drivers converted.

Ex. e6a46d073e11 ("serial: 8250_dw: Switch to use uart_read_port_properties()")

Yes, it assumes that you always need to base your changes on the latest
available changes in the certain subsystem (here it is tty-next branch
in Greg's tty tree, see git.kernel.org for the details).

> line = serial8250_register_8250_port(&uart);

[1]: https://www.kernel.org/doc/html/latest/process/submitting-patches.html

--
With Best Regards,
Andy Shevchenko