diff options
author | Till Straumann <strauman@slac.stanford.edu> | 2008-03-21 18:48:49 +0000 |
---|---|---|
committer | Till Straumann <strauman@slac.stanford.edu> | 2008-03-21 18:48:49 +0000 |
commit | 2cedc4608e75662e341c697d6cf64e5da6945b46 (patch) | |
tree | f1eaafb4676ee48c9b372d7bdf7572fb997994d0 /c | |
parent | 2008-03-20 Till Straumann <strauman@slac.stanford.edu> (diff) | |
download | rtems-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/ChangeLog | 6 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/console/uart.c | 4 |
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: |