serial: xuartps: Cleanup the clock enable
authorShubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
Wed, 15 Mar 2017 15:38:56 +0000 (08:38 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Mar 2017 05:14:00 +0000 (14:14 +0900)
The core handles the clocking now. Remove the clock disable in
suspend. In resume we enable the clocks and disable after register
write.

Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@xilinx.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/xilinx_uartps.c

index 7afa50b078750ede3c98373975e42773bb5b3b5e..a83033774382990b8a2948f1ce78e0e87055c769 100644 (file)
@@ -1352,12 +1352,7 @@ static int cdns_uart_suspend(struct device *device)
         * the suspend.
         */
        uart_suspend_port(&cdns_uart_uart_driver, port);
-       if (console_suspend_enabled && !may_wake) {
-               struct cdns_uart *cdns_uart = port->private_data;
-
-               clk_disable(cdns_uart->uartclk);
-               clk_disable(cdns_uart->pclk);
-       } else {
+       if (!(console_suspend_enabled && !may_wake)) {
                unsigned long flags = 0;
 
                spin_lock_irqsave(&port->lock, flags);
@@ -1422,6 +1417,8 @@ static int cdns_uart_resume(struct device *device)
                ctrl_reg |= CDNS_UART_CR_TX_EN | CDNS_UART_CR_RX_EN;
                writel(ctrl_reg, port->membase + CDNS_UART_CR);
 
+               clk_disable(cdns_uart->uartclk);
+               clk_disable(cdns_uart->pclk);
                spin_unlock_irqrestore(&port->lock, flags);
        } else {
                spin_lock_irqsave(&port->lock, flags);