From 2dc50be79cb7fa3b898aa8ac8ea04780141781d2 Mon Sep 17 00:00:00 2001 From: Rodolfo Giometti Date: Wed, 10 Mar 2010 15:23:48 -0800 Subject: [PATCH] --- yaml --- r: 187302 b: refs/heads/master c: dc77f161aa5e81ddaf38390094c4f2ca3814e6b1 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/serial/8250.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 0bf917a543ec..6e22da6c1653 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a0880df0ccde8d551fc4d88c455acb2ee0801e26 +refs/heads/master: dc77f161aa5e81ddaf38390094c4f2ca3814e6b1 diff --git a/trunk/drivers/serial/8250.c b/trunk/drivers/serial/8250.c index 7c4ebe6ee18b..c3db16b7afa1 100644 --- a/trunk/drivers/serial/8250.c +++ b/trunk/drivers/serial/8250.c @@ -2407,6 +2407,21 @@ serial8250_set_termios(struct uart_port *port, struct ktermios *termios, tty_termios_encode_baud_rate(termios, baud, baud); } +static void +serial8250_set_ldisc(struct uart_port *port) +{ + int line = port->line; + + if (line >= port->state->port.tty->driver->num) + return; + + if (port->state->port.tty->ldisc->ops->num == N_PPS) { + port->flags |= UPF_HARDPPS_CD; + serial8250_enable_ms(port); + } else + port->flags &= ~UPF_HARDPPS_CD; +} + static void serial8250_pm(struct uart_port *port, unsigned int state, unsigned int oldstate) @@ -2628,6 +2643,7 @@ static struct uart_ops serial8250_pops = { .startup = serial8250_startup, .shutdown = serial8250_shutdown, .set_termios = serial8250_set_termios, + .set_ldisc = serial8250_set_ldisc, .pm = serial8250_pm, .type = serial8250_type, .release_port = serial8250_release_port,