diff options
Diffstat (limited to 'drivers/serial/sunsu.c')
-rw-r--r-- | drivers/serial/sunsu.c | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/drivers/serial/sunsu.c b/drivers/serial/sunsu.c index 46c44b83f57c..7fc3d3b41d18 100644 --- a/drivers/serial/sunsu.c +++ b/drivers/serial/sunsu.c | |||
@@ -1377,6 +1377,14 @@ static __inline__ void wait_for_xmitr(struct uart_sunsu_port *up) | |||
1377 | } | 1377 | } |
1378 | } | 1378 | } |
1379 | 1379 | ||
1380 | static void sunsu_console_putchar(struct uart_port *port, int ch) | ||
1381 | { | ||
1382 | struct uart_sunsu_port *up = (struct uart_sunsu_port *)port; | ||
1383 | |||
1384 | wait_for_xmitr(up); | ||
1385 | serial_out(up, UART_TX, ch); | ||
1386 | } | ||
1387 | |||
1380 | /* | 1388 | /* |
1381 | * Print a string to the serial port trying not to disturb | 1389 | * Print a string to the serial port trying not to disturb |
1382 | * any possible real use of the port... | 1390 | * any possible real use of the port... |
@@ -1386,7 +1394,6 @@ static void sunsu_console_write(struct console *co, const char *s, | |||
1386 | { | 1394 | { |
1387 | struct uart_sunsu_port *up = &sunsu_ports[co->index]; | 1395 | struct uart_sunsu_port *up = &sunsu_ports[co->index]; |
1388 | unsigned int ier; | 1396 | unsigned int ier; |
1389 | int i; | ||
1390 | 1397 | ||
1391 | /* | 1398 | /* |
1392 | * First save the UER then disable the interrupts | 1399 | * First save the UER then disable the interrupts |
@@ -1394,22 +1401,7 @@ static void sunsu_console_write(struct console *co, const char *s, | |||
1394 | ier = serial_in(up, UART_IER); | 1401 | ier = serial_in(up, UART_IER); |
1395 | serial_out(up, UART_IER, 0); | 1402 | serial_out(up, UART_IER, 0); |
1396 | 1403 | ||
1397 | /* | 1404 | uart_console_write(&up->port, s, count, sunsu_console_putchar); |
1398 | * Now, do each character | ||
1399 | */ | ||
1400 | for (i = 0; i < count; i++, s++) { | ||
1401 | wait_for_xmitr(up); | ||
1402 | |||
1403 | /* | ||
1404 | * Send the character out. | ||
1405 | * If a LF, also do CR... | ||
1406 | */ | ||
1407 | serial_out(up, UART_TX, *s); | ||
1408 | if (*s == 10) { | ||
1409 | wait_for_xmitr(up); | ||
1410 | serial_out(up, UART_TX, 13); | ||
1411 | } | ||
1412 | } | ||
1413 | 1405 | ||
1414 | /* | 1406 | /* |
1415 | * Finally, wait for transmitter to become empty | 1407 | * Finally, wait for transmitter to become empty |