mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-06 19:07:52 +00:00
TTY/Serial bugfixes for 3.16-rc2
Here are some tty / serial driver bugfixes for 3.16-rc2 that resolve some reported issues. The samsung driver build error itself has been reported by a bunch of people, sorry about that one. The others are all tiny and everyone seems to like them in linux-next so far. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iEYEABECAAYFAlOkkKQACgkQMUfUDdst+ymZbwCgt1mJsOte0uOmb/bzDkJiM4mX JuYAn3BF53FY50Y/bY1cVpcSDCbwFPdp =gugC -----END PGP SIGNATURE----- Merge tag 'tty-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty Pull tty/serial bugfixes from Greg KH: "Here are some tty / serial driver bugfixes for 3.16-rc2 that resolve some reported issues. The samsung driver build error itself has been reported by a bunch of people, sorry about that one. The others are all tiny and everyone seems to like them in linux-next so far" * tag 'tty-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: tty/serial: fix 8250 early console option passing to regular console tty: Correct INPCK handling serial: Fix IGNBRK handling serial: samsung: Fix build error
This commit is contained in:
commit
c3cb500e89
38 changed files with 60 additions and 44 deletions
|
@ -1214,15 +1214,16 @@ static void n_tty_receive_parity_error(struct tty_struct *tty, unsigned char c)
|
||||||
{
|
{
|
||||||
struct n_tty_data *ldata = tty->disc_data;
|
struct n_tty_data *ldata = tty->disc_data;
|
||||||
|
|
||||||
|
if (I_INPCK(tty)) {
|
||||||
if (I_IGNPAR(tty))
|
if (I_IGNPAR(tty))
|
||||||
return;
|
return;
|
||||||
if (I_PARMRK(tty)) {
|
if (I_PARMRK(tty)) {
|
||||||
put_tty_queue('\377', ldata);
|
put_tty_queue('\377', ldata);
|
||||||
put_tty_queue('\0', ldata);
|
put_tty_queue('\0', ldata);
|
||||||
put_tty_queue(c, ldata);
|
put_tty_queue(c, ldata);
|
||||||
} else if (I_INPCK(tty))
|
} else
|
||||||
put_tty_queue('\0', ldata);
|
put_tty_queue('\0', ldata);
|
||||||
else
|
} else
|
||||||
put_tty_queue(c, ldata);
|
put_tty_queue(c, ldata);
|
||||||
if (waitqueue_active(&tty->read_wait))
|
if (waitqueue_active(&tty->read_wait))
|
||||||
wake_up_interruptible(&tty->read_wait);
|
wake_up_interruptible(&tty->read_wait);
|
||||||
|
|
|
@ -2357,7 +2357,7 @@ serial8250_do_set_termios(struct uart_port *port, struct ktermios *termios,
|
||||||
port->read_status_mask = UART_LSR_OE | UART_LSR_THRE | UART_LSR_DR;
|
port->read_status_mask = UART_LSR_OE | UART_LSR_THRE | UART_LSR_DR;
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
port->read_status_mask |= UART_LSR_FE | UART_LSR_PE;
|
port->read_status_mask |= UART_LSR_FE | UART_LSR_PE;
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
port->read_status_mask |= UART_LSR_BI;
|
port->read_status_mask |= UART_LSR_BI;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -144,8 +144,11 @@ static int __init early_serial8250_setup(struct earlycon_device *device,
|
||||||
if (!(device->port.membase || device->port.iobase))
|
if (!(device->port.membase || device->port.iobase))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (!device->baud)
|
if (!device->baud) {
|
||||||
device->baud = probe_baud(&device->port);
|
device->baud = probe_baud(&device->port);
|
||||||
|
snprintf(device->options, sizeof(device->options), "%u",
|
||||||
|
device->baud);
|
||||||
|
}
|
||||||
|
|
||||||
init_port(device);
|
init_port(device);
|
||||||
|
|
||||||
|
|
|
@ -185,6 +185,12 @@ static void altera_uart_set_termios(struct uart_port *port,
|
||||||
uart_update_timeout(port, termios->c_cflag, baud);
|
uart_update_timeout(port, termios->c_cflag, baud);
|
||||||
altera_uart_writel(port, baudclk, ALTERA_UART_DIVISOR_REG);
|
altera_uart_writel(port, baudclk, ALTERA_UART_DIVISOR_REG);
|
||||||
spin_unlock_irqrestore(&port->lock, flags);
|
spin_unlock_irqrestore(&port->lock, flags);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FIXME: port->read_status_mask and port->ignore_status_mask
|
||||||
|
* need to be initialized based on termios settings for
|
||||||
|
* INPCK, IGNBRK, IGNPAR, PARMRK, BRKINT
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
static void altera_uart_rx_chars(struct altera_uart *pp)
|
static void altera_uart_rx_chars(struct altera_uart *pp)
|
||||||
|
|
|
@ -420,7 +420,7 @@ pl010_set_termios(struct uart_port *port, struct ktermios *termios,
|
||||||
uap->port.read_status_mask = UART01x_RSR_OE;
|
uap->port.read_status_mask = UART01x_RSR_OE;
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
uap->port.read_status_mask |= UART01x_RSR_FE | UART01x_RSR_PE;
|
uap->port.read_status_mask |= UART01x_RSR_FE | UART01x_RSR_PE;
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
uap->port.read_status_mask |= UART01x_RSR_BE;
|
uap->port.read_status_mask |= UART01x_RSR_BE;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -1744,7 +1744,7 @@ pl011_set_termios(struct uart_port *port, struct ktermios *termios,
|
||||||
port->read_status_mask = UART011_DR_OE | 255;
|
port->read_status_mask = UART011_DR_OE | 255;
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
port->read_status_mask |= UART011_DR_FE | UART011_DR_PE;
|
port->read_status_mask |= UART011_DR_FE | UART011_DR_PE;
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
port->read_status_mask |= UART011_DR_BE;
|
port->read_status_mask |= UART011_DR_BE;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -1932,7 +1932,7 @@ static void atmel_set_termios(struct uart_port *port, struct ktermios *termios,
|
||||||
port->read_status_mask = ATMEL_US_OVRE;
|
port->read_status_mask = ATMEL_US_OVRE;
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
port->read_status_mask |= (ATMEL_US_FRAME | ATMEL_US_PARE);
|
port->read_status_mask |= (ATMEL_US_FRAME | ATMEL_US_PARE);
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
port->read_status_mask |= ATMEL_US_RXBRK;
|
port->read_status_mask |= ATMEL_US_RXBRK;
|
||||||
|
|
||||||
if (atmel_use_pdc_rx(port))
|
if (atmel_use_pdc_rx(port))
|
||||||
|
|
|
@ -567,7 +567,7 @@ static void bcm_uart_set_termios(struct uart_port *port,
|
||||||
port->read_status_mask |= UART_FIFO_FRAMEERR_MASK;
|
port->read_status_mask |= UART_FIFO_FRAMEERR_MASK;
|
||||||
port->read_status_mask |= UART_FIFO_PARERR_MASK;
|
port->read_status_mask |= UART_FIFO_PARERR_MASK;
|
||||||
}
|
}
|
||||||
if (new->c_iflag & (BRKINT))
|
if (new->c_iflag & (IGNBRK | BRKINT))
|
||||||
port->read_status_mask |= UART_FIFO_BRKDET_MASK;
|
port->read_status_mask |= UART_FIFO_BRKDET_MASK;
|
||||||
|
|
||||||
port->ignore_status_mask = 0;
|
port->ignore_status_mask = 0;
|
||||||
|
|
|
@ -833,7 +833,7 @@ bfin_serial_set_termios(struct uart_port *port, struct ktermios *termios,
|
||||||
port->read_status_mask = OE;
|
port->read_status_mask = OE;
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
port->read_status_mask |= (FE | PE);
|
port->read_status_mask |= (FE | PE);
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
port->read_status_mask |= BI;
|
port->read_status_mask |= BI;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -625,7 +625,7 @@ static void dz_set_termios(struct uart_port *uport, struct ktermios *termios,
|
||||||
dport->port.read_status_mask = DZ_OERR;
|
dport->port.read_status_mask = DZ_OERR;
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
dport->port.read_status_mask |= DZ_FERR | DZ_PERR;
|
dport->port.read_status_mask |= DZ_FERR | DZ_PERR;
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
dport->port.read_status_mask |= DZ_BREAK;
|
dport->port.read_status_mask |= DZ_BREAK;
|
||||||
|
|
||||||
/* characters to ignore */
|
/* characters to ignore */
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
#include <asm/serial.h>
|
#include <asm/serial.h>
|
||||||
|
|
||||||
static struct console early_con = {
|
static struct console early_con = {
|
||||||
.name = "earlycon",
|
.name = "uart", /* 8250 console switch requires this name */
|
||||||
.flags = CON_PRINTBUFFER | CON_BOOT,
|
.flags = CON_PRINTBUFFER | CON_BOOT,
|
||||||
.index = -1,
|
.index = -1,
|
||||||
};
|
};
|
||||||
|
|
|
@ -407,7 +407,7 @@ static void efm32_uart_set_termios(struct uart_port *port,
|
||||||
if (new->c_iflag & INPCK)
|
if (new->c_iflag & INPCK)
|
||||||
port->read_status_mask |=
|
port->read_status_mask |=
|
||||||
UARTn_RXDATAX_FERR | UARTn_RXDATAX_PERR;
|
UARTn_RXDATAX_FERR | UARTn_RXDATAX_PERR;
|
||||||
if (new->c_iflag & (BRKINT | PARMRK))
|
if (new->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
port->read_status_mask |= SW_UARTn_RXDATAX_BERR;
|
port->read_status_mask |= SW_UARTn_RXDATAX_BERR;
|
||||||
|
|
||||||
port->ignore_status_mask = 0;
|
port->ignore_status_mask = 0;
|
||||||
|
|
|
@ -902,7 +902,7 @@ lpuart_set_termios(struct uart_port *port, struct ktermios *termios,
|
||||||
sport->port.read_status_mask = 0;
|
sport->port.read_status_mask = 0;
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
sport->port.read_status_mask |= (UARTSR1_FE | UARTSR1_PE);
|
sport->port.read_status_mask |= (UARTSR1_FE | UARTSR1_PE);
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
sport->port.read_status_mask |= UARTSR1_FE;
|
sport->port.read_status_mask |= UARTSR1_FE;
|
||||||
|
|
||||||
/* characters to ignore */
|
/* characters to ignore */
|
||||||
|
|
|
@ -850,7 +850,7 @@ ip22zilog_convert_to_zs(struct uart_ip22zilog_port *up, unsigned int cflag,
|
||||||
up->port.read_status_mask = Rx_OVR;
|
up->port.read_status_mask = Rx_OVR;
|
||||||
if (iflag & INPCK)
|
if (iflag & INPCK)
|
||||||
up->port.read_status_mask |= CRC_ERR | PAR_ERR;
|
up->port.read_status_mask |= CRC_ERR | PAR_ERR;
|
||||||
if (iflag & (BRKINT | PARMRK))
|
if (iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
up->port.read_status_mask |= BRK_ABRT;
|
up->port.read_status_mask |= BRK_ABRT;
|
||||||
|
|
||||||
up->port.ignore_status_mask = 0;
|
up->port.ignore_status_mask = 0;
|
||||||
|
|
|
@ -737,7 +737,7 @@ static void m32r_sio_set_termios(struct uart_port *port,
|
||||||
up->port.read_status_mask = UART_LSR_OE | UART_LSR_THRE | UART_LSR_DR;
|
up->port.read_status_mask = UART_LSR_OE | UART_LSR_THRE | UART_LSR_DR;
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
up->port.read_status_mask |= UART_LSR_FE | UART_LSR_PE;
|
up->port.read_status_mask |= UART_LSR_FE | UART_LSR_PE;
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
up->port.read_status_mask |= UART_LSR_BI;
|
up->port.read_status_mask |= UART_LSR_BI;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -835,7 +835,7 @@ static void max310x_set_termios(struct uart_port *port,
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
port->read_status_mask |= MAX310X_LSR_RXPAR_BIT |
|
port->read_status_mask |= MAX310X_LSR_RXPAR_BIT |
|
||||||
MAX310X_LSR_FRERR_BIT;
|
MAX310X_LSR_FRERR_BIT;
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
port->read_status_mask |= MAX310X_LSR_RXBRK_BIT;
|
port->read_status_mask |= MAX310X_LSR_RXBRK_BIT;
|
||||||
|
|
||||||
/* Set status ignore mask */
|
/* Set status ignore mask */
|
||||||
|
|
|
@ -248,6 +248,12 @@ static void mcf_set_termios(struct uart_port *port, struct ktermios *termios,
|
||||||
mr1 |= MCFUART_MR1_PARITYNONE;
|
mr1 |= MCFUART_MR1_PARITYNONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FIXME: port->read_status_mask and port->ignore_status_mask
|
||||||
|
* need to be initialized based on termios settings for
|
||||||
|
* INPCK, IGNBRK, IGNPAR, PARMRK, BRKINT
|
||||||
|
*/
|
||||||
|
|
||||||
if (termios->c_cflag & CSTOPB)
|
if (termios->c_cflag & CSTOPB)
|
||||||
mr2 |= MCFUART_MR2_STOP2;
|
mr2 |= MCFUART_MR2_STOP2;
|
||||||
else
|
else
|
||||||
|
|
|
@ -977,7 +977,7 @@ serial_hsu_set_termios(struct uart_port *port, struct ktermios *termios,
|
||||||
up->port.read_status_mask = UART_LSR_OE | UART_LSR_THRE | UART_LSR_DR;
|
up->port.read_status_mask = UART_LSR_OE | UART_LSR_THRE | UART_LSR_DR;
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
up->port.read_status_mask |= UART_LSR_FE | UART_LSR_PE;
|
up->port.read_status_mask |= UART_LSR_FE | UART_LSR_PE;
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
up->port.read_status_mask |= UART_LSR_BI;
|
up->port.read_status_mask |= UART_LSR_BI;
|
||||||
|
|
||||||
/* Characters to ignore */
|
/* Characters to ignore */
|
||||||
|
|
|
@ -1458,7 +1458,7 @@ static void mpsc_set_termios(struct uart_port *port, struct ktermios *termios,
|
||||||
pi->port.read_status_mask |= SDMA_DESC_CMDSTAT_PE
|
pi->port.read_status_mask |= SDMA_DESC_CMDSTAT_PE
|
||||||
| SDMA_DESC_CMDSTAT_FR;
|
| SDMA_DESC_CMDSTAT_FR;
|
||||||
|
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
pi->port.read_status_mask |= SDMA_DESC_CMDSTAT_BR;
|
pi->port.read_status_mask |= SDMA_DESC_CMDSTAT_BR;
|
||||||
|
|
||||||
/* Characters/events to ignore */
|
/* Characters/events to ignore */
|
||||||
|
|
|
@ -582,7 +582,7 @@ static void msm_set_termios(struct uart_port *port, struct ktermios *termios,
|
||||||
port->read_status_mask = 0;
|
port->read_status_mask = 0;
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
port->read_status_mask |= UART_SR_PAR_FRAME_ERR;
|
port->read_status_mask |= UART_SR_PAR_FRAME_ERR;
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
port->read_status_mask |= UART_SR_RX_BREAK;
|
port->read_status_mask |= UART_SR_RX_BREAK;
|
||||||
|
|
||||||
uart_update_timeout(port, termios->c_cflag, baud);
|
uart_update_timeout(port, termios->c_cflag, baud);
|
||||||
|
|
|
@ -604,7 +604,7 @@ static void mxs_auart_settermios(struct uart_port *u,
|
||||||
|
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
u->read_status_mask |= AUART_STAT_PERR;
|
u->read_status_mask |= AUART_STAT_PERR;
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
u->read_status_mask |= AUART_STAT_BERR;
|
u->read_status_mask |= AUART_STAT_BERR;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -419,7 +419,7 @@ netx_set_termios(struct uart_port *port, struct ktermios *termios,
|
||||||
}
|
}
|
||||||
|
|
||||||
port->read_status_mask = 0;
|
port->read_status_mask = 0;
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
port->read_status_mask |= SR_BE;
|
port->read_status_mask |= SR_BE;
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
port->read_status_mask |= SR_PE | SR_FE;
|
port->read_status_mask |= SR_PE | SR_FE;
|
||||||
|
|
|
@ -1092,7 +1092,7 @@ static void pmz_convert_to_zs(struct uart_pmac_port *uap, unsigned int cflag,
|
||||||
uap->port.read_status_mask = Rx_OVR;
|
uap->port.read_status_mask = Rx_OVR;
|
||||||
if (iflag & INPCK)
|
if (iflag & INPCK)
|
||||||
uap->port.read_status_mask |= CRC_ERR | PAR_ERR;
|
uap->port.read_status_mask |= CRC_ERR | PAR_ERR;
|
||||||
if (iflag & (BRKINT | PARMRK))
|
if (iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
uap->port.read_status_mask |= BRK_ABRT;
|
uap->port.read_status_mask |= BRK_ABRT;
|
||||||
|
|
||||||
uap->port.ignore_status_mask = 0;
|
uap->port.ignore_status_mask = 0;
|
||||||
|
|
|
@ -477,7 +477,7 @@ pnx8xxx_set_termios(struct uart_port *port, struct ktermios *termios,
|
||||||
sport->port.read_status_mask |=
|
sport->port.read_status_mask |=
|
||||||
FIFO_TO_SM(PNX8XXX_UART_FIFO_RXFE) |
|
FIFO_TO_SM(PNX8XXX_UART_FIFO_RXFE) |
|
||||||
FIFO_TO_SM(PNX8XXX_UART_FIFO_RXPAR);
|
FIFO_TO_SM(PNX8XXX_UART_FIFO_RXPAR);
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
sport->port.read_status_mask |=
|
sport->port.read_status_mask |=
|
||||||
ISTAT_TO_SM(PNX8XXX_UART_INT_BREAK);
|
ISTAT_TO_SM(PNX8XXX_UART_INT_BREAK);
|
||||||
|
|
||||||
|
|
|
@ -492,7 +492,7 @@ serial_pxa_set_termios(struct uart_port *port, struct ktermios *termios,
|
||||||
up->port.read_status_mask = UART_LSR_OE | UART_LSR_THRE | UART_LSR_DR;
|
up->port.read_status_mask = UART_LSR_OE | UART_LSR_THRE | UART_LSR_DR;
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
up->port.read_status_mask |= UART_LSR_FE | UART_LSR_PE;
|
up->port.read_status_mask |= UART_LSR_FE | UART_LSR_PE;
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
up->port.read_status_mask |= UART_LSR_BI;
|
up->port.read_status_mask |= UART_LSR_BI;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -66,7 +66,7 @@ static void dbg(const char *fmt, ...)
|
||||||
char buff[256];
|
char buff[256];
|
||||||
|
|
||||||
va_start(va, fmt);
|
va_start(va, fmt);
|
||||||
vscnprintf(buff, sizeof(buf), fmt, va);
|
vscnprintf(buff, sizeof(buff), fmt, va);
|
||||||
va_end(va);
|
va_end(va);
|
||||||
|
|
||||||
printascii(buff);
|
printascii(buff);
|
||||||
|
|
|
@ -596,7 +596,7 @@ static void sbd_set_termios(struct uart_port *uport, struct ktermios *termios,
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
uport->read_status_mask |= M_DUART_FRM_ERR |
|
uport->read_status_mask |= M_DUART_FRM_ERR |
|
||||||
M_DUART_PARITY_ERR;
|
M_DUART_PARITY_ERR;
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
uport->read_status_mask |= M_DUART_RCVD_BRK;
|
uport->read_status_mask |= M_DUART_RCVD_BRK;
|
||||||
|
|
||||||
uport->ignore_status_mask = 0;
|
uport->ignore_status_mask = 0;
|
||||||
|
|
|
@ -665,7 +665,7 @@ static void sccnxp_set_termios(struct uart_port *port,
|
||||||
port->read_status_mask = SR_OVR;
|
port->read_status_mask = SR_OVR;
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
port->read_status_mask |= SR_PE | SR_FE;
|
port->read_status_mask |= SR_PE | SR_FE;
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
port->read_status_mask |= SR_BRK;
|
port->read_status_mask |= SR_BRK;
|
||||||
|
|
||||||
/* Set status ignore mask */
|
/* Set status ignore mask */
|
||||||
|
|
|
@ -437,7 +437,7 @@ static void ks8695uart_set_termios(struct uart_port *port, struct ktermios *term
|
||||||
port->read_status_mask = URLS_URROE;
|
port->read_status_mask = URLS_URROE;
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
port->read_status_mask |= (URLS_URFE | URLS_URPE);
|
port->read_status_mask |= (URLS_URFE | URLS_URPE);
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
port->read_status_mask |= URLS_URBI;
|
port->read_status_mask |= URLS_URBI;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -697,7 +697,7 @@ serial_txx9_set_termios(struct uart_port *port, struct ktermios *termios,
|
||||||
TXX9_SIDISR_TDIS | TXX9_SIDISR_RDIS;
|
TXX9_SIDISR_TDIS | TXX9_SIDISR_RDIS;
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
up->port.read_status_mask |= TXX9_SIDISR_UFER | TXX9_SIDISR_UPER;
|
up->port.read_status_mask |= TXX9_SIDISR_UFER | TXX9_SIDISR_UPER;
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
up->port.read_status_mask |= TXX9_SIDISR_UBRK;
|
up->port.read_status_mask |= TXX9_SIDISR_UBRK;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -896,7 +896,7 @@ static void sirfsoc_uart_set_termios(struct uart_port *port,
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
port->read_status_mask |= uint_en->sirfsoc_frm_err_en;
|
port->read_status_mask |= uint_en->sirfsoc_frm_err_en;
|
||||||
}
|
}
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
port->read_status_mask |= uint_en->sirfsoc_rxd_brk_en;
|
port->read_status_mask |= uint_en->sirfsoc_rxd_brk_en;
|
||||||
if (sirfport->uart_reg->uart_type == SIRF_REAL_UART) {
|
if (sirfport->uart_reg->uart_type == SIRF_REAL_UART) {
|
||||||
if (termios->c_iflag & IGNPAR)
|
if (termios->c_iflag & IGNPAR)
|
||||||
|
|
|
@ -547,7 +547,7 @@ static void asc_set_termios(struct uart_port *port, struct ktermios *termios,
|
||||||
ascport->port.read_status_mask = ASC_RXBUF_DUMMY_OE;
|
ascport->port.read_status_mask = ASC_RXBUF_DUMMY_OE;
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
ascport->port.read_status_mask |= ASC_RXBUF_FE | ASC_RXBUF_PE;
|
ascport->port.read_status_mask |= ASC_RXBUF_FE | ASC_RXBUF_PE;
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
ascport->port.read_status_mask |= ASC_RXBUF_DUMMY_BE;
|
ascport->port.read_status_mask |= ASC_RXBUF_DUMMY_BE;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -719,7 +719,7 @@ static void sunsab_convert_to_sab(struct uart_sunsab_port *up, unsigned int cfla
|
||||||
if (iflag & INPCK)
|
if (iflag & INPCK)
|
||||||
up->port.read_status_mask |= (SAB82532_ISR0_PERR |
|
up->port.read_status_mask |= (SAB82532_ISR0_PERR |
|
||||||
SAB82532_ISR0_FERR);
|
SAB82532_ISR0_FERR);
|
||||||
if (iflag & (BRKINT | PARMRK))
|
if (iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
up->port.read_status_mask |= (SAB82532_ISR1_BRK << 8);
|
up->port.read_status_mask |= (SAB82532_ISR1_BRK << 8);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -834,7 +834,7 @@ sunsu_change_speed(struct uart_port *port, unsigned int cflag,
|
||||||
up->port.read_status_mask = UART_LSR_OE | UART_LSR_THRE | UART_LSR_DR;
|
up->port.read_status_mask = UART_LSR_OE | UART_LSR_THRE | UART_LSR_DR;
|
||||||
if (iflag & INPCK)
|
if (iflag & INPCK)
|
||||||
up->port.read_status_mask |= UART_LSR_FE | UART_LSR_PE;
|
up->port.read_status_mask |= UART_LSR_FE | UART_LSR_PE;
|
||||||
if (iflag & (BRKINT | PARMRK))
|
if (iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
up->port.read_status_mask |= UART_LSR_BI;
|
up->port.read_status_mask |= UART_LSR_BI;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -915,7 +915,7 @@ sunzilog_convert_to_zs(struct uart_sunzilog_port *up, unsigned int cflag,
|
||||||
up->port.read_status_mask = Rx_OVR;
|
up->port.read_status_mask = Rx_OVR;
|
||||||
if (iflag & INPCK)
|
if (iflag & INPCK)
|
||||||
up->port.read_status_mask |= CRC_ERR | PAR_ERR;
|
up->port.read_status_mask |= CRC_ERR | PAR_ERR;
|
||||||
if (iflag & (BRKINT | PARMRK))
|
if (iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
up->port.read_status_mask |= BRK_ABRT;
|
up->port.read_status_mask |= BRK_ABRT;
|
||||||
|
|
||||||
up->port.ignore_status_mask = 0;
|
up->port.ignore_status_mask = 0;
|
||||||
|
|
|
@ -936,7 +936,7 @@ static void qe_uart_set_termios(struct uart_port *port,
|
||||||
port->read_status_mask = BD_SC_EMPTY | BD_SC_OV;
|
port->read_status_mask = BD_SC_EMPTY | BD_SC_OV;
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
port->read_status_mask |= BD_SC_FR | BD_SC_PR;
|
port->read_status_mask |= BD_SC_FR | BD_SC_PR;
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
port->read_status_mask |= BD_SC_BR;
|
port->read_status_mask |= BD_SC_BR;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -559,7 +559,7 @@ static void siu_set_termios(struct uart_port *port, struct ktermios *new,
|
||||||
port->read_status_mask = UART_LSR_THRE | UART_LSR_OE | UART_LSR_DR;
|
port->read_status_mask = UART_LSR_THRE | UART_LSR_OE | UART_LSR_DR;
|
||||||
if (c_iflag & INPCK)
|
if (c_iflag & INPCK)
|
||||||
port->read_status_mask |= UART_LSR_FE | UART_LSR_PE;
|
port->read_status_mask |= UART_LSR_FE | UART_LSR_PE;
|
||||||
if (c_iflag & (BRKINT | PARMRK))
|
if (c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
port->read_status_mask |= UART_LSR_BI;
|
port->read_status_mask |= UART_LSR_BI;
|
||||||
|
|
||||||
port->ignore_status_mask = 0;
|
port->ignore_status_mask = 0;
|
||||||
|
|
|
@ -923,7 +923,7 @@ static void zs_set_termios(struct uart_port *uport, struct ktermios *termios,
|
||||||
uport->read_status_mask = Rx_OVR;
|
uport->read_status_mask = Rx_OVR;
|
||||||
if (termios->c_iflag & INPCK)
|
if (termios->c_iflag & INPCK)
|
||||||
uport->read_status_mask |= FRM_ERR | PAR_ERR;
|
uport->read_status_mask |= FRM_ERR | PAR_ERR;
|
||||||
if (termios->c_iflag & (BRKINT | PARMRK))
|
if (termios->c_iflag & (IGNBRK | BRKINT | PARMRK))
|
||||||
uport->read_status_mask |= Rx_BRK;
|
uport->read_status_mask |= Rx_BRK;
|
||||||
|
|
||||||
uport->ignore_status_mask = 0;
|
uport->ignore_status_mask = 0;
|
||||||
|
|
Loading…
Reference in a new issue