diff options
author | dg <dg@FreeBSD.org> | 1994-04-23 02:11:43 +0000 |
---|---|---|
committer | dg <dg@FreeBSD.org> | 1994-04-23 02:11:43 +0000 |
commit | 3c6dc6acdee9b5fde3d4f9d9f8fd514f407f1657 (patch) | |
tree | f5d43e350d99d046f7421e130d1233af4719b27b /sys/dev/sio | |
parent | f277d23264f50eca0c9daf658db4db6945471f90 (diff) | |
download | FreeBSD-src-3c6dc6acdee9b5fde3d4f9d9f8fd514f407f1657.zip FreeBSD-src-3c6dc6acdee9b5fde3d4f9d9f8fd514f407f1657.tar.gz |
Added support for the 16 port Boca via a flag to specify that there is
no master port.
Diffstat (limited to 'sys/dev/sio')
-rw-r--r-- | sys/dev/sio/sio.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/sys/dev/sio/sio.c b/sys/dev/sio/sio.c index b09a702..ad09f7a3 100644 --- a/sys/dev/sio/sio.c +++ b/sys/dev/sio/sio.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#)com.c 7.5 (Berkeley) 5/16/91 - * $Id: sio.c,v 1.43 1994/04/03 11:41:11 ache Exp $ + * $Id: sio.c,v 1.44 1994/04/03 12:25:57 ache Exp $ */ #include "sio.h" @@ -83,6 +83,7 @@ */ #define COM_ISMULTIPORT(dev) ((dev)->id_flags & 0x01) #define COM_MPMASTER(dev) (((dev)->id_flags >> 8) & 0x0ff) +#define COM_NOMASTER(dev) ((dev)->id_flags & 0x04) #endif /* COM_MULTIPORT */ #define COM_NOFIFO(dev) ((dev)->id_flags & 0x02) @@ -511,10 +512,12 @@ determined_type: ; #ifdef COM_MULTIPORT if (COM_ISMULTIPORT(isdp)) { - struct isa_device *masterdev; + com->multiport = TRUE; + printf(" (multiport)"); - com->multiport = TRUE; - printf(" (multiport)"); + /* Note: some cards have no master port (e.g., BocaBoards) */ + if (!COM_NOMASTER(isdp)) { + struct isa_device *masterdev; /* set the master's common-interrupt-enable reg., * as appropriate. YYY See your manual @@ -525,6 +528,8 @@ determined_type: ; masterdev = find_isadev(isa_devtab_tty, &siodriver, COM_MPMASTER(isdp)); outb(masterdev->id_iobase + com_scr, 0x80); + } + } else com->multiport = FALSE; #endif /* COM_MULTIPORT */ |