tty: xuartps: Don't consider circular buffer when enabling transmitter
Restarting the transmitter even if the circ buffer is empty may be necessary to push out remaining data when the port is restarted after being stopped. Cc: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Reviewed-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
f0f54a806b
Коммит
ea8dd8e585
|
@ -512,7 +512,7 @@ static void cdns_uart_start_tx(struct uart_port *port)
|
|||
{
|
||||
unsigned int status, numbytes = port->fifosize;
|
||||
|
||||
if (uart_circ_empty(&port->state->xmit) || uart_tx_stopped(port))
|
||||
if (uart_tx_stopped(port))
|
||||
return;
|
||||
|
||||
/*
|
||||
|
@ -524,6 +524,9 @@ static void cdns_uart_start_tx(struct uart_port *port)
|
|||
status |= CDNS_UART_CR_TX_EN;
|
||||
writel(status, port->membase + CDNS_UART_CR_OFFSET);
|
||||
|
||||
if (uart_circ_empty(&port->state->xmit))
|
||||
return;
|
||||
|
||||
while (numbytes-- && ((readl(port->membase + CDNS_UART_SR_OFFSET) &
|
||||
CDNS_UART_SR_TXFULL)) != CDNS_UART_SR_TXFULL) {
|
||||
/* Break if no more data available in the UART buffer */
|
||||
|
|
Загрузка…
Ссылка в новой задаче