diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c index 81c1d3a3ad96..d86715103c97 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -1929,7 +1929,22 @@ int serial8250_handle_irq(struct uart_port *port, unsigned int iir) if ((!up->dma || up->dma->tx_err) && (status & UART_LSR_THRE) && (up->ier & UART_IER_THRI)) serial8250_tx_chars(up); +#ifdef CONFIG_ARCH_ROCKCHIP + if (status & UART_LSR_BRK_ERROR_BITS) { + if (status & UART_LSR_OE) + pr_err("%s: Overrun error!\n", port->name); + if (status & UART_LSR_PE) + pr_err("%s: Parity error!\n", port->name); + if (status & UART_LSR_FE) + pr_err("%s: Frame error!\n", port->name); + if (status & UART_LSR_BI) + pr_err("%s: Break interrupt!\n", port->name); + + pr_err("%s: maybe rx pin is low or baudrate is not correct!\n", + port->name); + } +#endif uart_unlock_and_check_sysrq(port, flags); return 1; }