summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2012-04-18 11:30:02 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2012-04-18 11:30:02 +0000
commit3eac4c281f150862ffae2f9003bfe8d93fd85138 (patch)
tree5ad17c3833de974afca6769522151b9658d883e4 /sys
parent2067120148d5a7d101eb7bbec31e895ac1e3a37c (diff)
One more routine needed to cope for CTS and DCD being inverted on IP20.
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/sgi/hpc/zs.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/arch/sgi/hpc/zs.c b/sys/arch/sgi/hpc/zs.c
index ff01333b005..18fabe5e3b1 100644
--- a/sys/arch/sgi/hpc/zs.c
+++ b/sys/arch/sgi/hpc/zs.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: zs.c,v 1.5 2012/04/15 20:40:39 miod Exp $ */
+/* $OpenBSD: zs.c,v 1.6 2012/04/18 11:30:01 miod Exp $ */
/* $NetBSD: zs.c,v 1.37 2011/02/20 07:59:50 matt Exp $ */
/*-
@@ -486,6 +486,14 @@ zs_read_csr(struct zs_chanstate *cs)
val = bus_space_read_1(zsc->cs_bustag, zsc->cs_regs, ZS_REG_CSR);
ZS_DELAY();
+
+ /*
+ * According to IRIX <sys/z8530.h>, on Indigo, the CTS and DCD bits
+ * are inverted.
+ */
+ if (sys_config.system_type == SGI_IP20)
+ val ^= ZSRR0_CTS | ZSRR0_DCD;
+
return val;
}