diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arch/vax/qbus/dhu.c | 16 | ||||
-rw-r--r-- | sys/arch/vax/qbus/dhureg.h | 3 |
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 */ |