diff options
author | Doug Anderson <dianders@chromium.org> | 2014-04-21 12:40:35 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-04-24 18:38:21 -0400 |
commit | ab88c8dc3bd667bcf21c8319165db92b930cf7e7 (patch) | |
tree | 060c678b26d846eab33e1861862c0191e27e269f | |
parent | bb7f09ba961dd43a2398975cc2d4ad0eb77ec865 (diff) |
serial: samsung: don't check config for every character
The s3c24xx_serial_console_putchar() is _only_ ever used by
s3c24xx_serial_console_write() and is called in a loop (indirectly
through uart_console_write()). There's no reason to call
s3c24xx_port_configured() for every iteration through the loop. Move
it outside the loop.
Signed-off-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/tty/serial/samsung.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c index a8e8b796f4f7..12442748d69f 100644 --- a/drivers/tty/serial/samsung.c +++ b/drivers/tty/serial/samsung.c | |||
@@ -1464,11 +1464,6 @@ static void | |||
1464 | s3c24xx_serial_console_putchar(struct uart_port *port, int ch) | 1464 | s3c24xx_serial_console_putchar(struct uart_port *port, int ch) |
1465 | { | 1465 | { |
1466 | unsigned int ufcon = rd_regl(port, S3C2410_UFCON); | 1466 | unsigned int ufcon = rd_regl(port, S3C2410_UFCON); |
1467 | unsigned int ucon = rd_regl(port, S3C2410_UCON); | ||
1468 | |||
1469 | /* not possible to xmit on unconfigured port */ | ||
1470 | if (!s3c24xx_port_configured(ucon)) | ||
1471 | return; | ||
1472 | 1467 | ||
1473 | while (!s3c24xx_serial_console_txrdy(port, ufcon)) | 1468 | while (!s3c24xx_serial_console_txrdy(port, ufcon)) |
1474 | barrier(); | 1469 | barrier(); |
@@ -1479,6 +1474,12 @@ static void | |||
1479 | s3c24xx_serial_console_write(struct console *co, const char *s, | 1474 | s3c24xx_serial_console_write(struct console *co, const char *s, |
1480 | unsigned int count) | 1475 | unsigned int count) |
1481 | { | 1476 | { |
1477 | unsigned int ucon = rd_regl(cons_uart, S3C2410_UCON); | ||
1478 | |||
1479 | /* not possible to xmit on unconfigured port */ | ||
1480 | if (!s3c24xx_port_configured(ucon)) | ||
1481 | return; | ||
1482 | |||
1482 | uart_console_write(cons_uart, s, count, s3c24xx_serial_console_putchar); | 1483 | uart_console_write(cons_uart, s, count, s3c24xx_serial_console_putchar); |
1483 | } | 1484 | } |
1484 | 1485 | ||