serial: 8250_pericom: Use serial_dl_write() instead of open coded
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 22 Nov 2021 13:35:12 +0000 (15:35 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Dec 2021 15:55:22 +0000 (16:55 +0100)
It's better to stick with standard API to write and read DL value
when the hardware is compatible with it. In case any quirks are
needed it may be easily added in one place rather than modifying
code here and there.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20211122133512.8947-4-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_pericom.c

index f0d026325f17d0fa00ef5d3ba7d3ae786e3a64dd..025b055363c3db7268c24abdf245461e9d4e771f 100644 (file)
@@ -70,11 +70,11 @@ static void pericom_do_set_divisor(struct uart_port *port, unsigned int baud,
                /* Update delta due to possible divisor change */
                delta = maxrate / divisor - baud;
                if (abs(delta) < baud / 50) {
+                       struct uart_8250_port *up = up_to_u8250p(port);
                        int lcr = serial_port_in(port, UART_LCR);
 
                        serial_port_out(port, UART_LCR, lcr | 0x80);
-                       serial_port_out(port, UART_DLL, divisor & 0xff);
-                       serial_port_out(port, UART_DLM, (divisor >> 8) & 0xff);
+                       serial_dl_write(up, divisor);
                        serial_port_out(port, 2, 16 - scr);
                        serial_port_out(port, UART_LCR, lcr);
                        return;