diff options
Diffstat (limited to 'drivers/tty/serial/samsung.c')
-rw-r--r-- | drivers/tty/serial/samsung.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c index 23f459600738..1f5505e7f90d 100644 --- a/drivers/tty/serial/samsung.c +++ b/drivers/tty/serial/samsung.c | |||
@@ -1446,8 +1446,8 @@ static int s3c24xx_serial_get_poll_char(struct uart_port *port) | |||
1446 | static void s3c24xx_serial_put_poll_char(struct uart_port *port, | 1446 | static void s3c24xx_serial_put_poll_char(struct uart_port *port, |
1447 | unsigned char c) | 1447 | unsigned char c) |
1448 | { | 1448 | { |
1449 | unsigned int ufcon = rd_regl(cons_uart, S3C2410_UFCON); | 1449 | unsigned int ufcon = rd_regl(port, S3C2410_UFCON); |
1450 | unsigned int ucon = rd_regl(cons_uart, S3C2410_UCON); | 1450 | unsigned int ucon = rd_regl(port, S3C2410_UCON); |
1451 | 1451 | ||
1452 | /* not possible to xmit on unconfigured port */ | 1452 | /* not possible to xmit on unconfigured port */ |
1453 | if (!s3c24xx_port_configured(ucon)) | 1453 | if (!s3c24xx_port_configured(ucon)) |
@@ -1455,7 +1455,7 @@ static void s3c24xx_serial_put_poll_char(struct uart_port *port, | |||
1455 | 1455 | ||
1456 | while (!s3c24xx_serial_console_txrdy(port, ufcon)) | 1456 | while (!s3c24xx_serial_console_txrdy(port, ufcon)) |
1457 | cpu_relax(); | 1457 | cpu_relax(); |
1458 | wr_regb(cons_uart, S3C2410_UTXH, c); | 1458 | wr_regb(port, S3C2410_UTXH, c); |
1459 | } | 1459 | } |
1460 | 1460 | ||
1461 | #endif /* CONFIG_CONSOLE_POLL */ | 1461 | #endif /* CONFIG_CONSOLE_POLL */ |
@@ -1463,22 +1463,23 @@ static void s3c24xx_serial_put_poll_char(struct uart_port *port, | |||
1463 | static void | 1463 | 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(cons_uart, S3C2410_UFCON); | 1466 | unsigned int ufcon = rd_regl(port, S3C2410_UFCON); |
1467 | unsigned int ucon = rd_regl(cons_uart, 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 | cpu_relax(); |
1475 | wr_regb(cons_uart, S3C2410_UTXH, ch); | 1470 | wr_regb(port, S3C2410_UTXH, ch); |
1476 | } | 1471 | } |
1477 | 1472 | ||
1478 | static void | 1473 | 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 | ||