OSDN Git Service

serial: imx: Do not store/restore the UBRC register
authorFabio Estevam <fabio.estevam@freescale.com>
Sat, 7 Feb 2015 17:46:41 +0000 (15:46 -0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 7 Mar 2015 02:13:08 +0000 (03:13 +0100)
UBRC is a read-only register, so we should not store and restore it inside
imx_flush_buffer().

Reported-by: Fugang Duan <B38611@freescale.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Fugang Duan <B38611@freescale.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/imx.c

index 412bfbf..ca00b3f 100644 (file)
@@ -1320,7 +1320,7 @@ static void imx_flush_buffer(struct uart_port *port)
        struct imx_port *sport = (struct imx_port *)port;
        struct scatterlist *sgl = &sport->tx_sgl[0];
        unsigned long temp;
-       int i = 100, ubir, ubmr, ubrc, uts;
+       int i = 100, ubir, ubmr, uts;
 
        if (!sport->dma_chan_tx)
                return;
@@ -1345,7 +1345,6 @@ static void imx_flush_buffer(struct uart_port *port)
         */
        ubir = readl(sport->port.membase + UBIR);
        ubmr = readl(sport->port.membase + UBMR);
-       ubrc = readl(sport->port.membase + UBRC);
        uts = readl(sport->port.membase + IMX21_UTS);
 
        temp = readl(sport->port.membase + UCR2);
@@ -1358,7 +1357,6 @@ static void imx_flush_buffer(struct uart_port *port)
        /* Restore the registers */
        writel(ubir, sport->port.membase + UBIR);
        writel(ubmr, sport->port.membase + UBMR);
-       writel(ubrc, sport->port.membase + UBRC);
        writel(uts, sport->port.membase + IMX21_UTS);
 }