cvs commit: src/sys/dev/uart uart_core.c uart_dev_i8251.c
uart_dev_ns8250.c uart_dev_z8530.c
Marcel Moolenaar
marcel at FreeBSD.org
Tue Sep 16 20:11:33 PDT 2003
marcel 2003/09/16 20:11:32 PDT
FreeBSD src repository
Modified files:
sys/dev/uart uart_core.c uart_dev_i8251.c
uart_dev_ns8250.c uart_dev_z8530.c
Log:
In uart_intr() loop until all interrupts have been handled. Previously
an UART interface could get stuck when a new interrupt condition
arose while servicing a previous interrupt. Since an interrupt was
already pending, no new interrupt would be triggered.
Avoid infinite recursion by flushing the Rx FIFO and marking an
overrun condition when we could not move the data from the Rx
FIFO to the receive buffer in toto. Failure to flush the Rx FIFO
would leave the Rx ready condition pending.
Note that the SAB 82532 already did this due to the nature of the
chip.
Revision Changes Path
1.4 +15 -11 src/sys/dev/uart/uart_core.c
1.3 +12 -3 src/sys/dev/uart/uart_dev_i8251.c
1.5 +12 -3 src/sys/dev/uart/uart_dev_ns8250.c
1.4 +18 -2 src/sys/dev/uart/uart_dev_z8530.c
More information about the cvs-src
mailing list