serial: xuartps: fix typo in cdns_uart_startup
authorHelmut Grohne <h.grohne@intenta.de>
Mon, 4 Jun 2018 10:22:05 +0000 (12:22 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Jun 2018 12:23:44 +0000 (21:23 +0900)
The bit mask changes in commit 6e14f7c1f2c2 ("tty: xuartps: Improve
startup function") doesn't do what the commit message advertises. The
original behaviour was clearing the RX_DIS bit, but due to missing ~,
that bit is now the only bit kept.

Currently, the regression is harmless, because the previous write to the
control register sets it to TXRST | RXRST. Thus the RX_DIS bit is
previously cleared. The *RST bits are cleared by the hardware, so this
commit does not currently change behaviour, but makes future changes
less risky.

Link: https://www.spinics.net/lists/linux-serial/msg23157.html
Signed-off-by: Helmut Grohne <h.grohne@intenta.de>
Fixes: 6e14f7c1f2c2 ("tty: xuartps: Improve startup function")
Reviewed-by: Sören Brinkmann <soren.brinkmann@xilinx.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/xilinx_uartps.c

index 8a3e34234e981c24a79e4de1902f1e188b7a19f7..b0d2a6c5afcb534f7949a4fcfa237252613743fe 100644 (file)
@@ -829,7 +829,7 @@ static int cdns_uart_startup(struct uart_port *port)
         * the receiver.
         */
        status = readl(port->membase + CDNS_UART_CR);
-       status &= CDNS_UART_CR_RX_DIS;
+       status &= ~CDNS_UART_CR_RX_DIS;
        status |= CDNS_UART_CR_RX_EN;
        writel(status, port->membase + CDNS_UART_CR);