diff options
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/serial/pl2303.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c index cf8add91de05..0da1df9c79bf 100644 --- a/drivers/usb/serial/pl2303.c +++ b/drivers/usb/serial/pl2303.c | |||
@@ -483,6 +483,13 @@ static void pl2303_set_termios(struct usb_serial_port *port, | |||
483 | } | 483 | } |
484 | spin_unlock_irqrestore(&priv->lock, flags); | 484 | spin_unlock_irqrestore(&priv->lock, flags); |
485 | 485 | ||
486 | /* The PL2303 is reported to lose bytes if you change | ||
487 | serial settings even to the same values as before. Thus | ||
488 | we actually need to filter in this specific case */ | ||
489 | |||
490 | if (!tty_termios_hw_change(port->tty->termios, old_termios)) | ||
491 | return; | ||
492 | |||
486 | cflag = port->tty->termios->c_cflag; | 493 | cflag = port->tty->termios->c_cflag; |
487 | 494 | ||
488 | buf = kzalloc(7, GFP_KERNEL); | 495 | buf = kzalloc(7, GFP_KERNEL); |