diff options
-rw-r--r-- | drivers/serial/tegra_hsuart.c | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/drivers/serial/tegra_hsuart.c b/drivers/serial/tegra_hsuart.c index af957bdb8fc7..1744b0e0ac2a 100644 --- a/drivers/serial/tegra_hsuart.c +++ b/drivers/serial/tegra_hsuart.c @@ -632,12 +632,11 @@ static void tegra_uart_hw_deinit(struct tegra_uart_port *t) /* Reset the Rx and Tx FIFOs */ tegra_fifo_reset(t, UART_FCR_CLEAR_XMIT | UART_FCR_CLEAR_RCVR); + clk_disable(t->clk); t->baud = 0; t->uart_state = TEGRA_UART_CLOSED; spin_unlock_irqrestore(&t->uport.lock, flags); - - clk_disable(t->clk); } static void tegra_uart_free_rx_dma(struct tegra_uart_port *t) @@ -1496,7 +1495,6 @@ void tegra_uart_request_clock_off(struct uart_port *uport) { unsigned long flags; struct tegra_uart_port *t; - bool is_clk_disable = false; if (IS_ERR_OR_NULL(uport)) BUG(); @@ -1506,14 +1504,10 @@ void tegra_uart_request_clock_off(struct uart_port *uport) t = container_of(uport, struct tegra_uart_port, uport); spin_lock_irqsave(&uport->lock, flags); if (t->uart_state == TEGRA_UART_OPENED) { - is_clk_disable = true; + clk_disable(t->clk); t->uart_state = TEGRA_UART_CLOCK_OFF; } spin_unlock_irqrestore(&uport->lock, flags); - - if (is_clk_disable) - clk_disable(t->clk); - return; } @@ -1522,7 +1516,6 @@ void tegra_uart_request_clock_on(struct uart_port *uport) { unsigned long flags; struct tegra_uart_port *t; - bool is_clk_enable = false; if (IS_ERR_OR_NULL(uport)) BUG(); @@ -1530,14 +1523,10 @@ void tegra_uart_request_clock_on(struct uart_port *uport) t = container_of(uport, struct tegra_uart_port, uport); spin_lock_irqsave(&uport->lock, flags); if (t->uart_state == TEGRA_UART_CLOCK_OFF) { - is_clk_enable = true; + clk_enable(t->clk); t->uart_state = TEGRA_UART_OPENED; } spin_unlock_irqrestore(&uport->lock, flags); - - if (is_clk_enable) - clk_enable(t->clk); - return; } |