summaryrefslogtreecommitdiffstats
path: root/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
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 'c')
-rw-r--r--c/src/lib/libbsp/powerpc/ChangeLog6
-rw-r--r--c/src/lib/libbsp/powerpc/shared/console/uart.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/powerpc/ChangeLog b/c/src/lib/libbsp/powerpc/ChangeLog
index 1a9ddae87c..6d84ae32d0 100644
--- a/c/src/lib/libbsp/powerpc/ChangeLog
+++ b/c/src/lib/libbsp/powerpc/ChangeLog
@@ -1,3 +1,9 @@
+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).
+
2008-03-19 Till Straumann <strauman@slac.stanford.edu>
* shared/console/console.c, shared/console/uart.c,
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: