Fix tty speed handling on 8250
authorAlan Cox <[email protected]>
Mon, 28 Apr 2008 09:14:06 +0000 (02:14 -0700)
committerLinus Torvalds <[email protected]>
Mon, 28 Apr 2008 15:58:29 +0000 (08:58 -0700)
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 <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
drivers/serial/8250.c

index 96a585e1cee8226a449d3e0174c98bf9a1b6ff77..6d0ce64163e5a12221fb926c2600ceae30fbfb62 100644 (file)
@@ -2228,7 +2228,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