|
|
@@ -1050,6 +1050,15 @@ static int uart_do_autoconfig(struct tty_struct *tty,struct uart_state *state)
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
+static void uart_enable_ms(struct uart_port *uport)
|
|
|
+{
|
|
|
+ /*
|
|
|
+ * Force modem status interrupts on
|
|
|
+ */
|
|
|
+ if (uport->ops->enable_ms)
|
|
|
+ uport->ops->enable_ms(uport);
|
|
|
+}
|
|
|
+
|
|
|
/*
|
|
|
* Wait for any of the 4 modem inputs (DCD,RI,DSR,CTS) to change
|
|
|
* - mask passed in arg for lines of interest
|
|
|
@@ -1073,11 +1082,7 @@ uart_wait_modem_status(struct uart_state *state, unsigned long arg)
|
|
|
*/
|
|
|
spin_lock_irq(&uport->lock);
|
|
|
memcpy(&cprev, &uport->icount, sizeof(struct uart_icount));
|
|
|
-
|
|
|
- /*
|
|
|
- * Force modem status interrupts on
|
|
|
- */
|
|
|
- uport->ops->enable_ms(uport);
|
|
|
+ uart_enable_ms(uport);
|
|
|
spin_unlock_irq(&uport->lock);
|
|
|
|
|
|
add_wait_queue(&port->delta_msr_wait, &wait);
|
|
|
@@ -1508,7 +1513,7 @@ static int uart_carrier_raised(struct tty_port *port)
|
|
|
struct uart_port *uport = state->uart_port;
|
|
|
int mctrl;
|
|
|
spin_lock_irq(&uport->lock);
|
|
|
- uport->ops->enable_ms(uport);
|
|
|
+ uart_enable_ms(uport);
|
|
|
mctrl = uport->ops->get_mctrl(uport);
|
|
|
spin_unlock_irq(&uport->lock);
|
|
|
if (mctrl & TIOCM_CAR)
|