diff --git a/[refs] b/[refs] index 0186e261e582..3f7d41b0390e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4b34fe156455d26ee6ed67b61539f136bf4e439c +refs/heads/master: 64e9159f5d2c4edf5fa6425031e556f8fddaf7e6 diff --git a/trunk/drivers/serial/serial_core.c b/trunk/drivers/serial/serial_core.c index 53b03c629aff..951a75ea6e3e 100644 --- a/trunk/drivers/serial/serial_core.c +++ b/trunk/drivers/serial/serial_core.c @@ -1165,6 +1165,15 @@ uart_ioctl(struct tty_struct *tty, struct file *filp, unsigned int cmd, return ret; } +static void uart_set_ldisc(struct tty_struct *tty, int ldisc) +{ + struct uart_state *state = tty->driver_data; + struct uart_port *port = state->port; + + if (port->ops->set_ldisc) + port->ops->set_ldisc(port); +} + static void uart_set_termios(struct tty_struct *tty, struct ktermios *old_termios) { @@ -2288,6 +2297,7 @@ static const struct tty_operations uart_ops = { .unthrottle = uart_unthrottle, .send_xchar = uart_send_xchar, .set_termios = uart_set_termios, + .set_ldisc = uart_set_ldisc, .stop = uart_stop, .start = uart_start, .hangup = uart_hangup, diff --git a/trunk/include/linux/serial_core.h b/trunk/include/linux/serial_core.h index d32123ae08ad..d8f31de632c5 100644 --- a/trunk/include/linux/serial_core.h +++ b/trunk/include/linux/serial_core.h @@ -192,6 +192,7 @@ struct uart_ops { void (*shutdown)(struct uart_port *); void (*set_termios)(struct uart_port *, struct ktermios *new, struct ktermios *old); + void (*set_ldisc)(struct uart_port *); void (*pm)(struct uart_port *, unsigned int state, unsigned int oldstate); int (*set_wake)(struct uart_port *, unsigned int state);