diff options
Diffstat (limited to 'drivers/serial')
-rw-r--r-- | drivers/serial/mux.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/serial/mux.c b/drivers/serial/mux.c index ec57a616788b..6408b9b1561a 100644 --- a/drivers/serial/mux.c +++ b/drivers/serial/mux.c | |||
@@ -376,8 +376,17 @@ static void mux_poll(unsigned long unused) | |||
376 | #ifdef CONFIG_SERIAL_MUX_CONSOLE | 376 | #ifdef CONFIG_SERIAL_MUX_CONSOLE |
377 | static void mux_console_write(struct console *co, const char *s, unsigned count) | 377 | static void mux_console_write(struct console *co, const char *s, unsigned count) |
378 | { | 378 | { |
379 | while(count--) | 379 | /* Wait until the FIFO drains. */ |
380 | pdc_iodc_putc(*s++); | 380 | while(UART_GET_FIFO_CNT(&mux_ports[0].port)) |
381 | udelay(1); | ||
382 | |||
383 | while(count--) { | ||
384 | if(*s == '\n') { | ||
385 | UART_PUT_CHAR(&mux_ports[0].port, '\r'); | ||
386 | } | ||
387 | UART_PUT_CHAR(&mux_ports[0].port, *s++); | ||
388 | } | ||
389 | |||
381 | } | 390 | } |
382 | 391 | ||
383 | static int mux_console_setup(struct console *co, char *options) | 392 | static int mux_console_setup(struct console *co, char *options) |