Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6: tty/of_serial: add missing ns16550a id bcm63xx_uart: Fix serial driver compile breakage. tty_port: handle the nonblocking open of a dead port corner case
This commit is contained in:
Коммит
e8ed34ced1
|
@ -219,8 +219,11 @@ int tty_port_block_til_ready(struct tty_port *port,
|
||||||
|
|
||||||
/* if non-blocking mode is set we can pass directly to open unless
|
/* if non-blocking mode is set we can pass directly to open unless
|
||||||
the port has just hung up or is in another error state */
|
the port has just hung up or is in another error state */
|
||||||
if ((filp->f_flags & O_NONBLOCK) ||
|
if (tty->flags & (1 << TTY_IO_ERROR)) {
|
||||||
(tty->flags & (1 << TTY_IO_ERROR))) {
|
port->flags |= ASYNC_NORMAL_ACTIVE;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (filp->f_flags & O_NONBLOCK) {
|
||||||
/* Indicate we are open */
|
/* Indicate we are open */
|
||||||
if (tty->termios->c_cflag & CBAUD)
|
if (tty->termios->c_cflag & CBAUD)
|
||||||
tty_port_raise_dtr_rts(port);
|
tty_port_raise_dtr_rts(port);
|
||||||
|
|
|
@ -242,7 +242,7 @@ static void bcm_uart_do_rx(struct uart_port *port)
|
||||||
* higher than fifo size anyway since we're much faster than
|
* higher than fifo size anyway since we're much faster than
|
||||||
* serial port */
|
* serial port */
|
||||||
max_count = 32;
|
max_count = 32;
|
||||||
tty = port->info->port.tty;
|
tty = port->state->port.tty;
|
||||||
do {
|
do {
|
||||||
unsigned int iestat, c, cstat;
|
unsigned int iestat, c, cstat;
|
||||||
char flag;
|
char flag;
|
||||||
|
@ -318,7 +318,7 @@ static void bcm_uart_do_tx(struct uart_port *port)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
xmit = &port->info->xmit;
|
xmit = &port->state->xmit;
|
||||||
if (uart_circ_empty(xmit))
|
if (uart_circ_empty(xmit))
|
||||||
goto txq_empty;
|
goto txq_empty;
|
||||||
|
|
||||||
|
|
|
@ -161,6 +161,7 @@ static int of_platform_serial_remove(struct of_device *ofdev)
|
||||||
static struct of_device_id __devinitdata of_platform_serial_table[] = {
|
static struct of_device_id __devinitdata of_platform_serial_table[] = {
|
||||||
{ .type = "serial", .compatible = "ns8250", .data = (void *)PORT_8250, },
|
{ .type = "serial", .compatible = "ns8250", .data = (void *)PORT_8250, },
|
||||||
{ .type = "serial", .compatible = "ns16450", .data = (void *)PORT_16450, },
|
{ .type = "serial", .compatible = "ns16450", .data = (void *)PORT_16450, },
|
||||||
|
{ .type = "serial", .compatible = "ns16550a", .data = (void *)PORT_16550A, },
|
||||||
{ .type = "serial", .compatible = "ns16550", .data = (void *)PORT_16550, },
|
{ .type = "serial", .compatible = "ns16550", .data = (void *)PORT_16550, },
|
||||||
{ .type = "serial", .compatible = "ns16750", .data = (void *)PORT_16750, },
|
{ .type = "serial", .compatible = "ns16750", .data = (void *)PORT_16750, },
|
||||||
{ .type = "serial", .compatible = "ns16850", .data = (void *)PORT_16850, },
|
{ .type = "serial", .compatible = "ns16850", .data = (void *)PORT_16850, },
|
||||||
|
|
Загрузка…
Ссылка в новой задаче