summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/shared/console/uart.c
diff options
context:
space:
mode:
authorTill Straumann <strauman@slac.stanford.edu>2008-03-21 18:48:49 +0000
committerTill Straumann <strauman@slac.stanford.edu>2008-03-21 18:48:49 +0000
commit2cedc4608e75662e341c697d6cf64e5da6945b46 (patch)
treef1eaafb4676ee48c9b372d7bdf7572fb997994d0 /c/src/lib/libbsp/powerpc/shared/console/uart.c
parent2008-03-20 Till Straumann <strauman@slac.stanford.edu> (diff)
downloadrtems-2cedc4608e75662e341c697d6cf64e5da6945b46.tar.bz2
2008-03-21 Till Straumann <strauman@slac.stanford.edu>
* shared/console/uart.c: In IRQ driven mode also keep reading chars while they are available (fifo could be enabled).
Diffstat (limited to '')
-rw-r--r--c/src/lib/libbsp/powerpc/shared/console/uart.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/powerpc/shared/console/uart.c b/c/src/lib/libbsp/powerpc/shared/console/uart.c
index 9823e446e9..ea47aa8313 100644
--- a/c/src/lib/libbsp/powerpc/shared/console/uart.c
+++ b/c/src/lib/libbsp/powerpc/shared/console/uart.c
@@ -725,7 +725,6 @@ BSP_uart_termios_isr_com(int uart)
break;
case RECEIVER_DATA_AVAIL :
case CHARACTER_TIMEOUT_INDICATION:
-
if ( uart_data[uart].ioMode == TERMIOS_TASK_DRIVEN )
{
/* ensure interrupts are enabled */
@@ -741,7 +740,8 @@ BSP_uart_termios_isr_com(int uart)
{
/* RX data ready */
assert(off < sizeof(buf));
- buf[off++] = uread(uart, RBR);
+ while ( off < sizeof(buf) && ( DR & uread(uart, LSR) ) )
+ buf[off++] = uread(uart, RBR);
}
break;
case RECEIVER_ERROR: