diff options
Diffstat (limited to 'drivers/tty/serial/bfin_uart.c')
-rw-r--r-- | drivers/tty/serial/bfin_uart.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/tty/serial/bfin_uart.c b/drivers/tty/serial/bfin_uart.c index dec0fd725d80..7da9911e95f0 100644 --- a/drivers/tty/serial/bfin_uart.c +++ b/drivers/tty/serial/bfin_uart.c | |||
@@ -108,22 +108,23 @@ static void bfin_serial_set_mctrl(struct uart_port *port, unsigned int mctrl) | |||
108 | static irqreturn_t bfin_serial_mctrl_cts_int(int irq, void *dev_id) | 108 | static irqreturn_t bfin_serial_mctrl_cts_int(int irq, void *dev_id) |
109 | { | 109 | { |
110 | struct bfin_serial_port *uart = dev_id; | 110 | struct bfin_serial_port *uart = dev_id; |
111 | unsigned int status = bfin_serial_get_mctrl(&uart->port); | 111 | struct uart_port *uport = &uart->port; |
112 | unsigned int status = bfin_serial_get_mctrl(uport); | ||
112 | #ifdef CONFIG_SERIAL_BFIN_HARD_CTSRTS | 113 | #ifdef CONFIG_SERIAL_BFIN_HARD_CTSRTS |
113 | struct tty_struct *tty = uart->port.state->port.tty; | ||
114 | 114 | ||
115 | UART_CLEAR_SCTS(uart); | 115 | UART_CLEAR_SCTS(uart); |
116 | if (tty->hw_stopped) { | 116 | if (uport->hw_stopped) { |
117 | if (status) { | 117 | if (status) { |
118 | tty->hw_stopped = 0; | 118 | uport->hw_stopped = 0; |
119 | uart_write_wakeup(&uart->port); | 119 | uart_write_wakeup(uport); |
120 | } | 120 | } |
121 | } else { | 121 | } else { |
122 | if (!status) | 122 | if (!status) |
123 | tty->hw_stopped = 1; | 123 | uport->hw_stopped = 1; |
124 | } | 124 | } |
125 | #else | ||
126 | uart_handle_cts_change(uport, status & TIOCM_CTS); | ||
125 | #endif | 127 | #endif |
126 | uart_handle_cts_change(&uart->port, status & TIOCM_CTS); | ||
127 | 128 | ||
128 | return IRQ_HANDLED; | 129 | return IRQ_HANDLED; |
129 | } | 130 | } |