summaryrefslogtreecommitdiffstats
path: root/sys/dev/uart/uart_dev_ns8250.c
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2004-04-02 07:37:28 +0000
committermarcel <marcel@FreeBSD.org>2004-04-02 07:37:28 +0000
commit8ca527be931b01df7feed19d5ef1dc5e62e4e422 (patch)
tree957bbedc764d4502d1a63a68b994c83928214c53 /sys/dev/uart/uart_dev_ns8250.c
parent89d7668839609b9e50e82506488aa850bd6869f9 (diff)
downloadFreeBSD-src-8ca527be931b01df7feed19d5ef1dc5e62e4e422.zip
FreeBSD-src-8ca527be931b01df7feed19d5ef1dc5e62e4e422.tar.gz
In ns8250_putc() insert a barrier between writing the character and
checking for transmitter empty.
Diffstat (limited to 'sys/dev/uart/uart_dev_ns8250.c')
-rw-r--r--sys/dev/uart/uart_dev_ns8250.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/uart/uart_dev_ns8250.c b/sys/dev/uart/uart_dev_ns8250.c
index 44d1304..ae4a3f8 100644
--- a/sys/dev/uart/uart_dev_ns8250.c
+++ b/sys/dev/uart/uart_dev_ns8250.c
@@ -304,6 +304,7 @@ ns8250_putc(struct uart_bas *bas, int c)
while ((uart_getreg(bas, REG_LSR) & LSR_THRE) == 0 && --limit)
DELAY(delay);
uart_setreg(bas, REG_DATA, c);
+ uart_barrier(bas);
limit = 40;
while ((uart_getreg(bas, REG_LSR) & LSR_TEMT) == 0 && --limit)
DELAY(delay);
OpenPOWER on IntegriCloud