mirror of
https://github.com/nxp-imx/linux-imx.git
synced 2025-07-11 20:05:22 +02:00
serial: bcm63xx-uart: fix tx after conversion to uart_port_tx_limited()
commitea55c65ded
upstream. When bcm63xx-uart was converted to uart_port_tx_limited(), it implicitly added a call to stop_tx(). This causes garbage to be put out on the serial console. To fix this, pass UART_TX_NOSTOP in flags, and manually call stop_tx() ourselves analogue to how a similar issue was fixed in commit7be50f2e8f
("serial: mxs-auart: fix tx"). Fixes:d11cc8c3c4
("tty: serial: use uart_port_tx_limited()") Cc: stable@vger.kernel.org Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com> Signed-off-by: Doug Brown <doug@schmorgal.com> Link: https://lore.kernel.org/r/20240606195632.173255-4-doug@schmorgal.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
60dc1a2a3f
commit
d3ebc5597e
|
@ -309,8 +309,8 @@ static void bcm_uart_do_tx(struct uart_port *port)
|
||||||
|
|
||||||
val = bcm_uart_readl(port, UART_MCTL_REG);
|
val = bcm_uart_readl(port, UART_MCTL_REG);
|
||||||
val = (val & UART_MCTL_TXFIFOFILL_MASK) >> UART_MCTL_TXFIFOFILL_SHIFT;
|
val = (val & UART_MCTL_TXFIFOFILL_MASK) >> UART_MCTL_TXFIFOFILL_SHIFT;
|
||||||
|
pending = uart_port_tx_limited_flags(port, ch, UART_TX_NOSTOP,
|
||||||
pending = uart_port_tx_limited(port, ch, port->fifosize - val,
|
port->fifosize - val,
|
||||||
true,
|
true,
|
||||||
bcm_uart_writel(port, ch, UART_FIFO_REG),
|
bcm_uart_writel(port, ch, UART_FIFO_REG),
|
||||||
({}));
|
({}));
|
||||||
|
@ -321,6 +321,9 @@ static void bcm_uart_do_tx(struct uart_port *port)
|
||||||
val = bcm_uart_readl(port, UART_IR_REG);
|
val = bcm_uart_readl(port, UART_IR_REG);
|
||||||
val &= ~UART_TX_INT_MASK;
|
val &= ~UART_TX_INT_MASK;
|
||||||
bcm_uart_writel(port, val, UART_IR_REG);
|
bcm_uart_writel(port, val, UART_IR_REG);
|
||||||
|
|
||||||
|
if (uart_tx_stopped(port))
|
||||||
|
bcm_uart_stop_tx(port);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue
Block a user