aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/serial/s3c2410.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/serial/s3c2410.c')
-rw-r--r--drivers/serial/s3c2410.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/drivers/serial/s3c2410.c b/drivers/serial/s3c2410.c
index 00d7c0ad8cbf..f5aac92fb798 100644
--- a/drivers/serial/s3c2410.c
+++ b/drivers/serial/s3c2410.c
@@ -1586,25 +1586,19 @@ s3c24xx_serial_console_txrdy(struct uart_port *port, unsigned int ufcon)
1586} 1586}
1587 1587
1588static void 1588static void
1589s3c24xx_serial_console_write(struct console *co, const char *s, 1589s3c24xx_serial_console_putchar(struct uart_port *port, int ch)
1590 unsigned int count)
1591{ 1590{
1592 int i;
1593 unsigned int ufcon = rd_regl(cons_uart, S3C2410_UFCON); 1591 unsigned int ufcon = rd_regl(cons_uart, S3C2410_UFCON);
1592 while (!s3c24xx_serial_console_txrdy(port, ufcon))
1593 barrier();
1594 wr_regb(cons_uart, S3C2410_UTXH, ch);
1595}
1594 1596
1595 for (i = 0; i < count; i++) { 1597static void
1596 while (!s3c24xx_serial_console_txrdy(cons_uart, ufcon)) 1598s3c24xx_serial_console_write(struct console *co, const char *s,
1597 barrier(); 1599 unsigned int count)
1598 1600{
1599 wr_regb(cons_uart, S3C2410_UTXH, s[i]); 1601 uart_console_write(cons_uart, s, count, s3c24xx_serial_console_putchar);
1600
1601 if (s[i] == '\n') {
1602 while (!s3c24xx_serial_console_txrdy(cons_uart, ufcon))
1603 barrier();
1604
1605 wr_regb(cons_uart, S3C2410_UTXH, '\r');
1606 }
1607 }
1608} 1602}
1609 1603
1610static void __init 1604static void __init