Skip to content

Commit

Permalink
USB-serial: pl2303: use 1.5 instead of 2 stop bits with 5 data bits
Browse files Browse the repository at this point in the history
This is how "real" UARTs (e.g. 16550) work and AFAIK what RS232 specifies, too.
Make the driver more compliant.

Signed-off-by: Frank Schaefer <schaefer.frank@gmx.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Frank Schaefer authored and Greg Kroah-Hartman committed Sep 23, 2009
1 parent 6dd81b4 commit 29cf1b7
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions drivers/usb/serial/pl2303.c
Original file line number Diff line number Diff line change
Expand Up @@ -622,8 +622,16 @@ static void pl2303_set_termios(struct tty_struct *tty,
/* For reference buf[4]=1 is 1.5 stop bits */
/* For reference buf[4]=2 is 2 stop bits */
if (cflag & CSTOPB) {
buf[4] = 2;
dbg("%s - stop bits = 2", __func__);
/* NOTE: Comply with "real" UARTs / RS232:
* use 1.5 instead of 2 stop bits with 5 data bits
*/
if ((cflag & CSIZE) == CS5) {
buf[4] = 1;
dbg("%s - stop bits = 1.5", __func__);
} else {
buf[4] = 2;
dbg("%s - stop bits = 2", __func__);
}
} else {
buf[4] = 0;
dbg("%s - stop bits = 1", __func__);
Expand Down

0 comments on commit 29cf1b7

Please sign in to comment.