diff options
-rw-r--r-- | drivers/tty/serial/tegra_hsuart.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/tty/serial/tegra_hsuart.c b/drivers/tty/serial/tegra_hsuart.c index 9b24f2d9adda..4da1957486b2 100644 --- a/drivers/tty/serial/tegra_hsuart.c +++ b/drivers/tty/serial/tegra_hsuart.c @@ -937,10 +937,6 @@ static void tegra_set_mctrl(struct uart_port *u, unsigned int mctrl) dev_dbg(u->dev, "tegra_set_mctrl called with %d\n", mctrl); t = container_of(u, struct tegra_uart_port, uport); - if (t->uart_state != TEGRA_UART_OPENED) { - dev_err(t->uport.dev, "Uart is in invalid state\n"); - return; - } mcr = t->mcr_shadow; if (mctrl & TIOCM_RTS) { @@ -1517,6 +1513,11 @@ void tegra_uart_set_mctrl(struct uart_port *uport, unsigned int mctrl) struct tegra_uart_port *t; t = container_of(uport, struct tegra_uart_port, uport); + if (t->uart_state != TEGRA_UART_OPENED) { + dev_err(t->uport.dev, "Uart is in invalid state\n"); + return; + } + spin_lock_irqsave(&uport->lock, flags); if (mctrl & TIOCM_RTS) { t->rts_active = true; |