Re: [PATCH v2 3/3] serial: 8250_pericom: Use serial_dl_write() instead of open coded

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 11/22/21 5:35 AM, Andy Shevchenko wrote:
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@xxxxxxxxxxxxxxx>
---
  drivers/tty/serial/8250/8250_pericom.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/tty/serial/8250/8250_pericom.c b/drivers/tty/serial/8250/8250_pericom.c
index f0d026325f17..025b055363c3 100644
--- a/drivers/tty/serial/8250/8250_pericom.c
+++ b/drivers/tty/serial/8250/8250_pericom.c
@@ -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;


I tested this change with a few baud rates in my current tree, and I saw the correct speeds coming out on the scope.



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux