mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-30 16:13:54 +08:00
serial: sh-sci: Fix too early port disabling.
Currently serial ports on SH CPUs get disabled too early, because the sci_tx_empty() routine claims to not be able to detect whether the transmission has been completed and just always returns TIOCSER_TEMT. This results in corrupt output of last characters if the port is not open for reading at the same time. It is however possible to detect whether transmission has been completed. Use the TEND bit of the status register for this. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
fd2cb0ce74
commit
b1516803d5
@ -799,8 +799,8 @@ static void sci_free_irq(struct sci_port *port)
|
|||||||
|
|
||||||
static unsigned int sci_tx_empty(struct uart_port *port)
|
static unsigned int sci_tx_empty(struct uart_port *port)
|
||||||
{
|
{
|
||||||
/* Can't detect */
|
unsigned short status = sci_in(port, SCxSR);
|
||||||
return TIOCSER_TEMT;
|
return status & SCxSR_TEND(port) ? TIOCSER_TEMT : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sci_set_mctrl(struct uart_port *port, unsigned int mctrl)
|
static void sci_set_mctrl(struct uart_port *port, unsigned int mctrl)
|
||||||
|
Loading…
Reference in New Issue
Block a user