serial: mxs-auart: fix the wrong setting order
authorHuang Shijie <shijie8@gmail.com>
Fri, 7 Sep 2012 02:38:40 +0000 (22:38 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 6 Sep 2012 16:19:50 +0000 (09:19 -0700)
After set the AUART_CTRL0_CLKGATE, the UART will gate all the clocks off.
So the following line will not take effect.
       ................................................................
  writel(AUART_INTR_RXIEN | AUART_INTR_RTIEN | AUART_INTR_CTSMIEN,
  u->membase + AUART_INTR_CLR);
       ................................................................

To fix this issue, the patch moves this gate-off line to
the end of setting registers.

Signed-off-by: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/mxs-auart.c

index dafeef2..ea5f888 100644 (file)
@@ -457,11 +457,11 @@ static void mxs_auart_shutdown(struct uart_port *u)
 
        writel(AUART_CTRL2_UARTEN, u->membase + AUART_CTRL2_CLR);
 
-       writel(AUART_CTRL0_CLKGATE, u->membase + AUART_CTRL0_SET);
-
        writel(AUART_INTR_RXIEN | AUART_INTR_RTIEN | AUART_INTR_CTSMIEN,
                        u->membase + AUART_INTR_CLR);
 
+       writel(AUART_CTRL0_CLKGATE, u->membase + AUART_CTRL0_SET);
+
        clk_disable_unprepare(s->clk);
 }