summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Cox <alan@lxorguk.ukuu.org.uk>2008-04-28 02:14:06 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2008-06-21 22:24:53 -0700
commit30bc30a080f7e3cdf74f5cf58a1d8eba5ad85cc9 (patch)
treebfc08d65effc3ac72bd0fe85754a4ea3370790f9
parent864f24395c72b6a6c48d13f409f986dc71a5cf4a (diff)
Fix tty speed handling on 8250
commit e991a2bd4fa0b2f475b67dfe8f33e8ecbdcbb40b upstream. We try and write the correct speed back but the serial midlayer already mangles the speed on us and that means if we request B0 we report back B9600 when we should not. For now we'll hack around this in the drivers and serial code, pending a better long term solution. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/serial/8250.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
index 77f7a7f0646e..d60705e9d007 100644
--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
@@ -2174,7 +2174,9 @@ serial8250_set_termios(struct uart_port *port, struct ktermios *termios,
}
serial8250_set_mctrl(&up->port, up->port.mctrl);
spin_unlock_irqrestore(&up->port.lock, flags);
- tty_termios_encode_baud_rate(termios, baud, baud);
+ /* Don't rewrite B0 */
+ if (tty_termios_baud_rate(termios))
+ tty_termios_encode_baud_rate(termios, baud, baud);
}
static void