serial: 8250_omap: Remove auto-IXON flow control
OMAP h/w-assisted IXON flow control is borked. The transmitter becomes stuck if XON is never received; clearing the fifos or resetting the rx flow control bits has no effect. Remove auto-IXANY as well, since without auto-IXON, it has no purpose. Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
27c93af7e7
commit
5bac4b3d25
@ -447,12 +447,9 @@ static void omap_8250_set_termios(struct uart_port *port,
|
|||||||
priv->efr |= UART_EFR_CTS;
|
priv->efr |= UART_EFR_CTS;
|
||||||
} else if (up->port.flags & UPF_SOFT_FLOW) {
|
} else if (up->port.flags & UPF_SOFT_FLOW) {
|
||||||
/*
|
/*
|
||||||
* IXON Flag:
|
* OMAP rx s/w flow control is borked; the transmitter remains
|
||||||
* Enable XON/XOFF flow control on input.
|
* stuck off even if rx flow control is subsequently disabled
|
||||||
* Receiver compares XON1, XOFF1.
|
|
||||||
*/
|
*/
|
||||||
if (termios->c_iflag & IXON)
|
|
||||||
priv->efr |= OMAP_UART_SW_RX;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* IXOFF Flag:
|
* IXOFF Flag:
|
||||||
@ -463,15 +460,6 @@ static void omap_8250_set_termios(struct uart_port *port,
|
|||||||
up->port.status |= UPSTAT_AUTOXOFF;
|
up->port.status |= UPSTAT_AUTOXOFF;
|
||||||
priv->efr |= OMAP_UART_SW_TX;
|
priv->efr |= OMAP_UART_SW_TX;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* IXANY Flag:
|
|
||||||
* Enable any character to restart output.
|
|
||||||
* Operation resumes after receiving any
|
|
||||||
* character after recognition of the XOFF character
|
|
||||||
*/
|
|
||||||
if (termios->c_iflag & IXANY)
|
|
||||||
up->mcr |= UART_MCR_XONANY;
|
|
||||||
}
|
}
|
||||||
omap8250_restore_regs(up);
|
omap8250_restore_regs(up);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user