summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/vax/qbus/dhu.c16
-rw-r--r--sys/arch/vax/qbus/dhureg.h3
2 files changed, 16 insertions, 3 deletions
diff --git a/sys/arch/vax/qbus/dhu.c b/sys/arch/vax/qbus/dhu.c
index 35b6e739d4d..bf90e9b61f9 100644
--- a/sys/arch/vax/qbus/dhu.c
+++ b/sys/arch/vax/qbus/dhu.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dhu.c,v 1.5 2002/10/19 22:40:44 hugh Exp $ */
+/* $OpenBSD: dhu.c,v 1.6 2002/12/27 19:20:49 hugh Exp $ */
/* $NetBSD: dhu.c,v 1.19 2000/06/04 06:17:01 matt Exp $ */
/*
* Copyright (c) 1996 Ken C. Wellsch. All rights reserved.
@@ -232,7 +232,19 @@ dhu_attach(parent, self, aux)
c = DHU_READ_WORD(DHU_UBA_STAT);
sc->sc_type = (c & DHU_STAT_DHU)? IS_DHU: IS_DHV;
- printf("\n%s: DH%s-11\n", self->dv_xname, (c & DHU_STAT_DHU)?"U":"V");
+
+ if (sc->sc_type == IS_DHU) {
+ if (c & DHU_STAT_MDL)
+ i = 16; /* "Modem Low" */
+ else
+ i = 8; /* Has modem support */
+ } else
+ i = 8;
+
+ printf("\n%s: DH%s-11 %d lines\n", self->dv_xname,
+ (sc->sc_type == IS_DHU) ? "U" : "V", i);
+
+ sc->sc_type = i;
for (i = 0; i < sc->sc_type; i++) {
struct tty *tp;
diff --git a/sys/arch/vax/qbus/dhureg.h b/sys/arch/vax/qbus/dhureg.h
index 32b4291d87b..829cabe60e7 100644
--- a/sys/arch/vax/qbus/dhureg.h
+++ b/sys/arch/vax/qbus/dhureg.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: dhureg.h,v 1.1 2000/04/27 03:14:47 bjc Exp $ */
+/* $OpenBSD: dhureg.h,v 1.2 2002/12/27 19:20:49 hugh Exp $ */
/* $NetBSD: dhureg.h,v 1.4 1999/05/28 20:17:29 ragge Exp $ */
/*
* Copyright (c) 1996 Ken C. Wellsch. All rights reserved.
@@ -134,6 +134,7 @@ typedef struct DHUregs dhuregs;
#define DHU_STAT_RI 0020000
#define DHU_STAT_DCD 0010000
#define DHU_STAT_CTS 0004000
+#define DHU_STAT_MDL 0001000
#define DHU_STAT_DHU 0000400
/* LNCTRL bits */