From 54ce82775f80bbf0f3fedfdc1b6b4c30726365a3 Mon Sep 17 00:00:00 2001 From: Steven Liu Date: Tue, 3 Aug 2021 16:51:32 +0800 Subject: [PATCH] serial: 8250_port: fix UART DL check when setting divisor. Signed-off-by: Steven Liu Change-Id: I907480ec39c6603bca7bb30e5f889bac3e57057c --- drivers/tty/serial/8250/8250_port.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c index 298052db7d79..9b7514d79366 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -2674,14 +2674,16 @@ void serial8250_do_set_divisor(struct uart_port *port, unsigned int baud, serial_port_out(port, UART_LCR, up->lcr | UART_LCR_DLAB); serial_dl_write(up, quot); +#ifdef CONFIG_ARCH_ROCKCHIP + if (quot != serial_dl_read(up)) + dev_warn_ratelimited(port->dev, "ttyS%d set divisor fail, quot:%d != dll,dlh:%d\n", + serial_index(port), quot, serial_dl_read(up)); +#endif if (port->type != PORT_16750) serial_port_out(port, UART_LCR, up->lcr); /* reset DLAB */ #ifdef CONFIG_ARCH_ROCKCHIP serial_port_out(port, UART_MCR, up->mcr); - if (quot != serial_dl_read(up)) - pr_warn_ratelimited("ttyS%d set divisor fail, quot:%d != dll,dlh:%d\n", - serial_index(port), quot, serial_dl_read(up)); #endif } EXPORT_SYMBOL_GPL(serial8250_do_set_divisor);