From f19570eff8b6b4ddab6db8091d5efe84657b3341 Mon Sep 17 00:00:00 2001 From: Rodolfo Giometti Date: Wed, 10 Mar 2010 15:23:48 -0800 Subject: [PATCH] --- yaml --- r: 187303 b: refs/heads/master c: 7ed63d5eb4c0de0321f5c0a7328e132a78f9fafe h: refs/heads/master i: 187301: 4756b7d99a0fb95ba97eb22554cc21c210462a03 187299: 69bb62f340c6c90f7a273d0968460acdfd6f8d33 187295: 67c4e2e58cec13d4f6a33ed4faf0a1294874c0f4 v: v3 --- [refs] | 2 +- trunk/drivers/serial/amba-pl010.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 6e22da6c1653..13b5ddd67524 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: dc77f161aa5e81ddaf38390094c4f2ca3814e6b1 +refs/heads/master: 7ed63d5eb4c0de0321f5c0a7328e132a78f9fafe diff --git a/trunk/drivers/serial/amba-pl010.c b/trunk/drivers/serial/amba-pl010.c index 429a8ae86933..e4b3c2c88bb6 100644 --- a/trunk/drivers/serial/amba-pl010.c +++ b/trunk/drivers/serial/amba-pl010.c @@ -471,6 +471,20 @@ pl010_set_termios(struct uart_port *port, struct ktermios *termios, spin_unlock_irqrestore(&uap->port.lock, flags); } +static void pl010_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; + pl010_enable_ms(port); + } else + port->flags &= ~UPF_HARDPPS_CD; +} + static const char *pl010_type(struct uart_port *port) { return port->type == PORT_AMBA ? "AMBA" : NULL; @@ -531,6 +545,7 @@ static struct uart_ops amba_pl010_pops = { .startup = pl010_startup, .shutdown = pl010_shutdown, .set_termios = pl010_set_termios, + .set_ldisc = pl010_set_ldisc, .type = pl010_type, .release_port = pl010_release_port, .request_port = pl010_request_port,