summaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial/8250/8250_early.c
diff options
context:
space:
mode:
authorMasahiro Yamada <yamada.masahiro@socionext.com>2015-10-30 03:39:04 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-12-14 04:59:48 +0100
commitf2bfdb0628d50339a70de475eb2be1c4c1eb9014 (patch)
treec832d7c140eaedf72ce1592a106451113e0836a1 /drivers/tty/serial/8250/8250_early.c
parentserial: 8250_early: do not save and restore IER in write callback (diff)
downloadlinux-f2bfdb0628d50339a70de475eb2be1c4c1eb9014.tar.xz
linux-f2bfdb0628d50339a70de475eb2be1c4c1eb9014.zip
serial: 8250_early: confirm empty transmitter after sending characters
The current code waits until the transmitter becomes empty, before sending each character, and after finishing the whole string. This seems a bit redundant. It can be more efficient by checking the transmitter only after sending each character. This should be safe because the transmitter is already empty at the first entry of serial_putc(). Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Reviewed-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/8250/8250_early.c')
-rw-r--r--drivers/tty/serial/8250/8250_early.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/tty/serial/8250/8250_early.c b/drivers/tty/serial/8250/8250_early.c
index 5afc4d440304..20ec27bf1380 100644
--- a/drivers/tty/serial/8250/8250_early.c
+++ b/drivers/tty/serial/8250/8250_early.c
@@ -87,8 +87,8 @@ static void __init wait_for_xmitr(struct uart_port *port)
static void __init serial_putc(struct uart_port *port, int c)
{
- wait_for_xmitr(port);
serial8250_early_out(port, UART_TX, c);
+ wait_for_xmitr(port);
}
static void __init early_serial8250_write(struct console *console,
@@ -98,9 +98,6 @@ static void __init early_serial8250_write(struct console *console,
struct uart_port *port = &device->port;
uart_console_write(port, s, count, serial_putc);
-
- /* Wait for transmitter to become empty */
- wait_for_xmitr(port);
}
static void __init init_port(struct earlycon_device *device)