The meson_uart_shutdown function should have the opposite operation to the meson_uart_startup function, so the shutdown of AML_UART_TX_EN is logically missing. Signed-off-by: Yu Tu <yu.tu@xxxxxxxxxxx> --- drivers/tty/serial/meson_uart.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/tty/serial/meson_uart.c b/drivers/tty/serial/meson_uart.c index 02fafb8229d2..69450a461c48 100644 --- a/drivers/tty/serial/meson_uart.c +++ b/drivers/tty/serial/meson_uart.c @@ -126,8 +126,7 @@ static void meson_uart_shutdown(struct uart_port *port) spin_lock_irqsave(&port->lock, flags); val = readl(port->membase + AML_UART_CONTROL); - val &= ~AML_UART_RX_EN; - val &= ~(AML_UART_RX_INT_EN | AML_UART_TX_INT_EN); + val &= ~(AML_UART_RX_EN | AML_UART_TX_EN); writel(val, port->membase + AML_UART_CONTROL); spin_unlock_irqrestore(&port->lock, flags); -- 2.33.1