Revert "uart: pl011: Improve LCRH register access decision"
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 4 Sep 2015 16:12:03 +0000 (09:12 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 4 Sep 2015 16:14:42 +0000 (09:14 -0700)
This reverts commit 09dcc7dfc05b31bf0bbcd1511cd1a2644908d5c8 as with
this patch the serial console is broken on lots of platforms.

Reported-by: Marc Zyngier <marc.zyngier@arm.com>
Cc: Jun Nie <jun.nie@linaro.org>
Acked-by: Will Deacon <will.deacon@arm.com>
Tested-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/amba-pl011.c

index 017443d092c151fde4b781721ee171bb945e87ce..e1f3bd5afad6d0c78eaa840fcae2034a6099a0d0 100644 (file)
@@ -249,11 +249,6 @@ struct uart_amba_port {
 #endif
 };
 
-static bool is_implemented(struct uart_amba_port *uap, unsigned int reg)
-{
-       return uap->reg_lut[reg] != (u16)~0;
-}
-
 static unsigned int pl011_readw(struct uart_amba_port *uap, int index)
 {
        WARN_ON(index > REG_NR);
@@ -1654,7 +1649,7 @@ static int pl011_hwinit(struct uart_port *port)
 static void pl011_write_lcr_h(struct uart_amba_port *uap, unsigned int lcr_h)
 {
        pl011_writew(uap, lcr_h, uap->lcrh_rx);
-       if (is_implemented(uap, REG_ST_LCRH_RX)) {
+       if (uap->lcrh_rx != uap->lcrh_tx) {
                int i;
                /*
                 * Wait 10 PCLKs before writing LCRH_TX register,
@@ -1789,7 +1784,7 @@ static void pl011_disable_uart(struct uart_amba_port *uap)
         * disable break condition and fifos
         */
        pl011_shutdown_channel(uap, uap->lcrh_rx);
-       if (is_implemented(uap, REG_ST_LCRH_RX))
+       if (uap->lcrh_rx != uap->lcrh_tx)
                pl011_shutdown_channel(uap, uap->lcrh_tx);
 }