From: Alan Cox The driver has no business doing this work itself any more and hasn't for some years. When the new speed stuff goes in this will break entirely so fix it up ready. Also remove a #if 0 around a comment.... Signed-off-by: Alan Cox Cc: Russell King Signed-off-by: Andrew Morton --- drivers/char/generic_serial.c | 11 +---------- 1 files changed, 1 insertion(+), 10 deletions(-) diff -puN drivers/char/generic_serial.c~generic_serial-remove-private-decoding-of-baud-rate-bits drivers/char/generic_serial.c --- a/drivers/char/generic_serial.c~generic_serial-remove-private-decoding-of-baud-rate-bits +++ a/drivers/char/generic_serial.c @@ -746,11 +746,9 @@ void gs_set_termios (struct tty_struct * gs_dprintk (GS_DEBUG_TERMIOS, "termios structure (%p):\n", tiosp); } -#if 0 /* This is an optimization that is only allowed for dumb cards */ /* Smart cards require knowledge of iflags and oflags too: that might change hardware cooking mode.... */ -#endif if (old_termios) { if( (tiosp->c_iflag == old_termios->c_iflag) && (tiosp->c_oflag == old_termios->c_oflag) @@ -774,14 +772,7 @@ void gs_set_termios (struct tty_struct * if(!memcmp(tiosp->c_cc, old_termios->c_cc, NCC)) printk("c_cc changed\n"); } - baudrate = tiosp->c_cflag & CBAUD; - if (baudrate & CBAUDEX) { - baudrate &= ~CBAUDEX; - if ((baudrate < 1) || (baudrate > 4)) - tiosp->c_cflag &= ~CBAUDEX; - else - baudrate += 15; - } + baudrate = tty_get_baud_rate(tty); baudrate = gs_baudrates[baudrate]; if ((tiosp->c_cflag & CBAUD) == B38400) { _