Updated from Linux LTS 3.10.23 to 3.10.24
This commit is contained in:
@@ -2131,6 +2131,20 @@ static void ftdi_set_termios(struct tty_struct *tty,
|
||||
termios->c_cflag |= CRTSCTS;
|
||||
}
|
||||
|
||||
/*
|
||||
* All FTDI UART chips are limited to CS7/8. We won't pretend to
|
||||
* support CS5/6 and revert the CSIZE setting instead.
|
||||
*/
|
||||
if ((C_CSIZE(tty) != CS8) && (C_CSIZE(tty) != CS7)) {
|
||||
dev_warn(ddev, "requested CSIZE setting not supported\n");
|
||||
|
||||
termios->c_cflag &= ~CSIZE;
|
||||
if (old_termios)
|
||||
termios->c_cflag |= old_termios->c_cflag & CSIZE;
|
||||
else
|
||||
termios->c_cflag |= CS8;
|
||||
}
|
||||
|
||||
cflag = termios->c_cflag;
|
||||
|
||||
if (!old_termios)
|
||||
@@ -2167,19 +2181,16 @@ no_skip:
|
||||
} else {
|
||||
urb_value |= FTDI_SIO_SET_DATA_PARITY_NONE;
|
||||
}
|
||||
if (cflag & CSIZE) {
|
||||
switch (cflag & CSIZE) {
|
||||
case CS7:
|
||||
urb_value |= 7;
|
||||
dev_dbg(ddev, "Setting CS7\n");
|
||||
break;
|
||||
case CS8:
|
||||
urb_value |= 8;
|
||||
dev_dbg(ddev, "Setting CS8\n");
|
||||
break;
|
||||
default:
|
||||
dev_err(ddev, "CSIZE was set but not CS7-CS8\n");
|
||||
}
|
||||
switch (cflag & CSIZE) {
|
||||
case CS7:
|
||||
urb_value |= 7;
|
||||
dev_dbg(ddev, "Setting CS7\n");
|
||||
break;
|
||||
default:
|
||||
case CS8:
|
||||
urb_value |= 8;
|
||||
dev_dbg(ddev, "Setting CS8\n");
|
||||
break;
|
||||
}
|
||||
|
||||
/* This is needed by the break command since it uses the same command
|
||||
|
||||
@@ -1875,25 +1875,25 @@ static void mos7840_change_port_settings(struct tty_struct *tty,
|
||||
iflag = tty->termios.c_iflag;
|
||||
|
||||
/* Change the number of bits */
|
||||
if (cflag & CSIZE) {
|
||||
switch (cflag & CSIZE) {
|
||||
case CS5:
|
||||
lData = LCR_BITS_5;
|
||||
break;
|
||||
switch (cflag & CSIZE) {
|
||||
case CS5:
|
||||
lData = LCR_BITS_5;
|
||||
break;
|
||||
|
||||
case CS6:
|
||||
lData = LCR_BITS_6;
|
||||
break;
|
||||
case CS6:
|
||||
lData = LCR_BITS_6;
|
||||
break;
|
||||
|
||||
case CS7:
|
||||
lData = LCR_BITS_7;
|
||||
break;
|
||||
default:
|
||||
case CS8:
|
||||
lData = LCR_BITS_8;
|
||||
break;
|
||||
}
|
||||
case CS7:
|
||||
lData = LCR_BITS_7;
|
||||
break;
|
||||
|
||||
default:
|
||||
case CS8:
|
||||
lData = LCR_BITS_8;
|
||||
break;
|
||||
}
|
||||
|
||||
/* Change the Parity bit */
|
||||
if (cflag & PARENB) {
|
||||
if (cflag & PARODD) {
|
||||
|
||||
@@ -304,24 +304,22 @@ static void pl2303_set_termios(struct tty_struct *tty,
|
||||
dev_dbg(&port->dev, "0xa1:0x21:0:0 %d - %x %x %x %x %x %x %x\n", i,
|
||||
buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6]);
|
||||
|
||||
if (cflag & CSIZE) {
|
||||
switch (cflag & CSIZE) {
|
||||
case CS5:
|
||||
buf[6] = 5;
|
||||
break;
|
||||
case CS6:
|
||||
buf[6] = 6;
|
||||
break;
|
||||
case CS7:
|
||||
buf[6] = 7;
|
||||
break;
|
||||
default:
|
||||
case CS8:
|
||||
buf[6] = 8;
|
||||
break;
|
||||
}
|
||||
dev_dbg(&port->dev, "data bits = %d\n", buf[6]);
|
||||
switch (cflag & CSIZE) {
|
||||
case CS5:
|
||||
buf[6] = 5;
|
||||
break;
|
||||
case CS6:
|
||||
buf[6] = 6;
|
||||
break;
|
||||
case CS7:
|
||||
buf[6] = 7;
|
||||
break;
|
||||
default:
|
||||
case CS8:
|
||||
buf[6] = 8;
|
||||
break;
|
||||
}
|
||||
dev_dbg(&port->dev, "data bits = %d\n", buf[6]);
|
||||
|
||||
/* For reference buf[0]:buf[3] baud rate value */
|
||||
/* NOTE: Only the values defined in baud_sup are supported !
|
||||
|
||||
@@ -346,22 +346,20 @@ static void spcp8x5_set_termios(struct tty_struct *tty,
|
||||
}
|
||||
|
||||
/* Set Data Length : 00:5bit, 01:6bit, 10:7bit, 11:8bit */
|
||||
if (cflag & CSIZE) {
|
||||
switch (cflag & CSIZE) {
|
||||
case CS5:
|
||||
buf[1] |= SET_UART_FORMAT_SIZE_5;
|
||||
break;
|
||||
case CS6:
|
||||
buf[1] |= SET_UART_FORMAT_SIZE_6;
|
||||
break;
|
||||
case CS7:
|
||||
buf[1] |= SET_UART_FORMAT_SIZE_7;
|
||||
break;
|
||||
default:
|
||||
case CS8:
|
||||
buf[1] |= SET_UART_FORMAT_SIZE_8;
|
||||
break;
|
||||
}
|
||||
switch (cflag & CSIZE) {
|
||||
case CS5:
|
||||
buf[1] |= SET_UART_FORMAT_SIZE_5;
|
||||
break;
|
||||
case CS6:
|
||||
buf[1] |= SET_UART_FORMAT_SIZE_6;
|
||||
break;
|
||||
case CS7:
|
||||
buf[1] |= SET_UART_FORMAT_SIZE_7;
|
||||
break;
|
||||
default:
|
||||
case CS8:
|
||||
buf[1] |= SET_UART_FORMAT_SIZE_8;
|
||||
break;
|
||||
}
|
||||
|
||||
/* Set Stop bit2 : 0:1bit 1:2bit */
|
||||
|
||||
Reference in New Issue
Block a user