summaryrefslogtreecommitdiff
path: root/sys/arch/i386/isa/pccom.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/i386/isa/pccom.c')
-rw-r--r--sys/arch/i386/isa/pccom.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/arch/i386/isa/pccom.c b/sys/arch/i386/isa/pccom.c
index a37b083823b..a8b11944d59 100644
--- a/sys/arch/i386/isa/pccom.c
+++ b/sys/arch/i386/isa/pccom.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pccom.c,v 1.55 2006/09/19 11:06:34 jsg Exp $ */
+/* $OpenBSD: pccom.c,v 1.56 2006/12/28 20:50:21 miod Exp $ */
/* $NetBSD: com.c,v 1.82.4.1 1996/06/02 09:08:00 mrg Exp $ */
/*
@@ -541,6 +541,7 @@ comopen(dev_t dev, int flag, int mode, struct proc *p)
switch (sc->sc_uarttype) {
case COM_UART_ST16650:
case COM_UART_ST16650V2:
+ case COM_UART_ST16C654:
case COM_UART_XR16850:
case COM_UART_OX16C950:
bus_space_write_1(iot, ioh, com_lcr, LCR_EFR);
@@ -571,6 +572,12 @@ comopen(dev_t dev, int flag, int mode, struct proc *p)
else
fifo |= FIFO_RCV_TRIGGER_28|FIFO_XMT_TRIGGER_30;
break;
+ case COM_UART_ST16C654:
+ if (tp->t_ispeed <= 1200)
+ fifo |= FIFO_RCV3_TRIGGER_8|FIFO_XMT3_TRIGGER_8; /* XXX */
+ else
+ fifo |= FIFO_RCV3_TRIGGER_60|FIFO_XMT3_TRIGGER_56;
+ break;
case COM_UART_XR16850:
case COM_UART_OX16C950:
pccom_xr16850_fifo_init(iot, ioh);
@@ -748,6 +755,7 @@ compwroff(struct com_softc *sc)
switch (sc->sc_uarttype) {
case COM_UART_ST16650:
case COM_UART_ST16650V2:
+ case COM_UART_ST16C654:
case COM_UART_XR16850:
case COM_UART_OX16C950:
bus_space_write_1(iot, ioh, com_lcr, LCR_EFR);
@@ -1018,6 +1026,7 @@ comparam(struct tty *tp, struct termios *t)
else
fifo |= FIFO_RCV_TRIGGER_28|FIFO_XMT_TRIGGER_30;
break;
+ case COM_UART_ST16C654:
case COM_UART_XR16850:
case COM_UART_OX16C950:
if (t->c_ispeed <= 1200)