diff options
author | Alan Cox <alan@lxorguk.ukuu.org.uk> | 2008-02-05 01:27:53 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-05 12:44:10 -0500 |
commit | 6d4d67beb963de8865499781b8523e5b683819c3 (patch) | |
tree | 597ebf45d858b56ce00ab98f634081be15e5e8a1 /drivers/serial | |
parent | c8c6bfa39d6bd7347f43937c8767ae145b61bcb4 (diff) |
serial: speed setup failure reporting
Invalid speeds are forced to 9600. Update the code for this to encode new
style baud rates properly.
Signed-off-by: Alan Cox <alan@redhat.com>
Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/serial')
-rw-r--r-- | drivers/serial/serial_core.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/serial/serial_core.c b/drivers/serial/serial_core.c index 304fe32eb066..276da148c57e 100644 --- a/drivers/serial/serial_core.c +++ b/drivers/serial/serial_core.c | |||
@@ -371,7 +371,8 @@ uart_get_baud_rate(struct uart_port *port, struct ktermios *termios, | |||
371 | */ | 371 | */ |
372 | termios->c_cflag &= ~CBAUD; | 372 | termios->c_cflag &= ~CBAUD; |
373 | if (old) { | 373 | if (old) { |
374 | termios->c_cflag |= old->c_cflag & CBAUD; | 374 | baud = tty_termios_baud_rate(old); |
375 | tty_termios_encode_baud_rate(termios, baud, baud); | ||
375 | old = NULL; | 376 | old = NULL; |
376 | continue; | 377 | continue; |
377 | } | 378 | } |
@@ -380,7 +381,7 @@ uart_get_baud_rate(struct uart_port *port, struct ktermios *termios, | |||
380 | * As a last resort, if the quotient is zero, | 381 | * As a last resort, if the quotient is zero, |
381 | * default to 9600 bps | 382 | * default to 9600 bps |
382 | */ | 383 | */ |
383 | termios->c_cflag |= B9600; | 384 | tty_termios_encode_baud_rate(termios, 9600, 9600); |
384 | } | 385 | } |
385 | 386 | ||
386 | return 0; | 387 | return 0; |