summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/amd64/isa/isa.c17
-rw-r--r--sys/conf/NOTES33
-rw-r--r--sys/i386/conf/LINT33
-rw-r--r--sys/i386/conf/NOTES33
-rw-r--r--sys/i386/isa/isa.c17
-rw-r--r--sys/i386/isa/isa_device.h8
6 files changed, 41 insertions, 100 deletions
diff --git a/sys/amd64/isa/isa.c b/sys/amd64/isa/isa.c
index edb6ba3..93dbfcf 100644
--- a/sys/amd64/isa/isa.c
+++ b/sys/amd64/isa/isa.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)isa.c 7.2 (Berkeley) 5/13/91
- * $Id: isa.c,v 1.45 1995/04/12 20:47:54 wollman Exp $
+ * $Id: isa.c,v 1.46 1995/04/23 09:13:07 julian Exp $
*/
/*
@@ -161,7 +161,7 @@ conflict(dvp, tmpdvp, item, whatnot, reason, format)
}
/*
- * Check to see if things are alread in use, like IRQ's, I/O addresses
+ * Check to see if things are already in use, like IRQ's, I/O addresses
* and Memory addresses.
*/
static int
@@ -171,9 +171,10 @@ haveseen(dvp, tmpdvp, checkbits)
u_int checkbits;
{
/*
- * Only check against devices that have already been found
+ * Only check against devices that have already been found and are not
+ * unilaterally allowed to conflict anyway.
*/
- if (tmpdvp->id_alive) {
+ if (tmpdvp->id_alive && !tmpdev->id_conflicts) {
char const *whatnot;
whatnot = checkbits & CC_ATTACH ? "attach" : "prob";
@@ -401,15 +402,9 @@ config_isadev_c(isdp, mp, reconfig)
struct isa_driver *dp = isdp->id_driver;
checkbits = 0;
-#ifndef ALLOW_CONFLICT_DRQ
checkbits |= CC_DRQ;
-#endif
-#ifndef ALLOW_CONFLICT_IOADDR
checkbits |= CC_IOADDR;
-#endif
-#ifndef ALLOW_CONFLICT_MEMADDR
checkbits |= CC_MEMADDR;
-#endif
if (!isdp->id_enabled) {
printf("%s%d: disabled, not probed.\n",
dp->name, isdp->id_unit);
@@ -476,9 +471,7 @@ config_isadev_c(isdp, mp, reconfig)
* already skip the early check for IRQs and force
* a check for IRQs in the next group of checks.
*/
-#ifndef ALLOW_CONFLICT_IRQ
checkbits |= CC_IRQ;
-#endif
if (haveseen_isadev(isdp, checkbits))
return;
isdp->id_alive = id_alive;
diff --git a/sys/conf/NOTES b/sys/conf/NOTES
index e276a8f..46a3743 100644
--- a/sys/conf/NOTES
+++ b/sys/conf/NOTES
@@ -2,7 +2,7 @@
# LINT -- config file for checking all the sources, tries to pull in
# as much of the source tree as it can.
#
-# $Id: LINT,v 1.177 1995/05/05 07:47:44 davidg Exp $
+# $Id: LINT,v 1.178 1995/05/06 19:34:05 joerg Exp $
#
# NB: You probably don't want to try running a kernel built from this
# file. Instead, you should start from GENERIC, and add options from
@@ -360,21 +360,6 @@ controller isa0
#
# Options for `isa':
#
-# ALLOW_CONFLICT_DRQ suppresses the DMA conflict checks. This option is
-# included so that people with sound cards that support multiple emulations
-# can setup different sound drivers on the same DMA channel. There are no
-# other known uses for this option.
-#
-# ALLOW_CONFLICT_IOADDR suppresses the I/O address conflict checks, so
-# that the PS/2 mouse driver doesn't conflict with the console driver.
-#
-# ALLOW_CONFLICT_IRQ suppresses the interrupt line conflict checks, so
-# that multiple devices can share the same IRQ, provided that the
-# hardware supports it (it usually doesn't).
-#
-# ALLOW_CONFLICT_MEMADDR suppresses the memory address conflict checks.
-# This option is not known to be good for anything.
-#
# AUTO_EOI_1 enables the `automatic EOI' feature for the master 8259A
# interrupt controller. This saves about 1.25 usec for each interrupt.
# No problems are known to be caused by this option.
@@ -396,10 +381,6 @@ controller isa0
# TUNE_1542 enables the automatic ISA bus speed selection for the
# Adaptec 1542 boards. Does not work for all boards, use it with caution.
#
-#options ALLOW_CONFLICT_DRQ
-#options ALLOW_CONFLICT_IOADDR
-#options ALLOW_CONFLICT_IRQ
-#options ALLOW_CONFLICT_MEMADDR
options "AUTO_EOI_1"
#options "AUTO_EOI_2"
options BOUNCE_BUFFERS
@@ -534,12 +515,12 @@ options FDSEEKWAIT="16"
#
# lpt: printer port
# mse: Logitech and ATI InPort bus mouse ports
-# psm: PS/2 mouse port (needs ALLOW_CONFLICT_IOADDR, above)
+# psm: PS/2 mouse port [note: conflicts with sc0/vt0, thus "conflicts" keywd]
# sio: serial ports (see sio(4))
device lpt0 at isa? port "IO_LPT3" tty irq 7 vector lptintr
device mse0 at isa? port 0x23c tty irq 5 vector mseintr
-device psm0 at isa? port "IO_KBD" tty irq 12 vector psmintr
+device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr
device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr
# Options for sio:
@@ -617,15 +598,17 @@ device nnic0 at isa? port 0x150 iomem 0xe0000 tty irq 12 vector nnicintr
#
# pca: PCM audio through your PC speaker
#
-
+# If you don't have a lpt0 device at IRQ 7, you can remove the
+# ``conflicts'' specification in the appropriate device entries below.
+#
# Controls all sound devices
controller snd0
-device sb0 at isa? port 0x220 irq 7 drq 1 vector sbintr
+device sb0 at isa? port 0x220 irq 7 conflicts drq 1 vector sbintr
device sbxvi0 at isa? drq 5
device sbmidi0 at isa? port 0x330
device pas0 at isa? port 0x388 irq 10 drq 6 vector pasintr
device gus0 at isa? port 0x220 irq 11 drq 1 vector gusintr
-device gusxvi0 at isa? port 0x530 irq 7 drq 3 vector adintr
+device gusxvi0 at isa? port 0x530 irq 7 conflicts drq 3 vector adintr
device gusmax0 at isa? port 0x32c
device mss0 at isa? port 0x530 irq 10 drq 1 vector adintr
device opl0 at isa? port 0x388
diff --git a/sys/i386/conf/LINT b/sys/i386/conf/LINT
index e276a8f..46a3743 100644
--- a/sys/i386/conf/LINT
+++ b/sys/i386/conf/LINT
@@ -2,7 +2,7 @@
# LINT -- config file for checking all the sources, tries to pull in
# as much of the source tree as it can.
#
-# $Id: LINT,v 1.177 1995/05/05 07:47:44 davidg Exp $
+# $Id: LINT,v 1.178 1995/05/06 19:34:05 joerg Exp $
#
# NB: You probably don't want to try running a kernel built from this
# file. Instead, you should start from GENERIC, and add options from
@@ -360,21 +360,6 @@ controller isa0
#
# Options for `isa':
#
-# ALLOW_CONFLICT_DRQ suppresses the DMA conflict checks. This option is
-# included so that people with sound cards that support multiple emulations
-# can setup different sound drivers on the same DMA channel. There are no
-# other known uses for this option.
-#
-# ALLOW_CONFLICT_IOADDR suppresses the I/O address conflict checks, so
-# that the PS/2 mouse driver doesn't conflict with the console driver.
-#
-# ALLOW_CONFLICT_IRQ suppresses the interrupt line conflict checks, so
-# that multiple devices can share the same IRQ, provided that the
-# hardware supports it (it usually doesn't).
-#
-# ALLOW_CONFLICT_MEMADDR suppresses the memory address conflict checks.
-# This option is not known to be good for anything.
-#
# AUTO_EOI_1 enables the `automatic EOI' feature for the master 8259A
# interrupt controller. This saves about 1.25 usec for each interrupt.
# No problems are known to be caused by this option.
@@ -396,10 +381,6 @@ controller isa0
# TUNE_1542 enables the automatic ISA bus speed selection for the
# Adaptec 1542 boards. Does not work for all boards, use it with caution.
#
-#options ALLOW_CONFLICT_DRQ
-#options ALLOW_CONFLICT_IOADDR
-#options ALLOW_CONFLICT_IRQ
-#options ALLOW_CONFLICT_MEMADDR
options "AUTO_EOI_1"
#options "AUTO_EOI_2"
options BOUNCE_BUFFERS
@@ -534,12 +515,12 @@ options FDSEEKWAIT="16"
#
# lpt: printer port
# mse: Logitech and ATI InPort bus mouse ports
-# psm: PS/2 mouse port (needs ALLOW_CONFLICT_IOADDR, above)
+# psm: PS/2 mouse port [note: conflicts with sc0/vt0, thus "conflicts" keywd]
# sio: serial ports (see sio(4))
device lpt0 at isa? port "IO_LPT3" tty irq 7 vector lptintr
device mse0 at isa? port 0x23c tty irq 5 vector mseintr
-device psm0 at isa? port "IO_KBD" tty irq 12 vector psmintr
+device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr
device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr
# Options for sio:
@@ -617,15 +598,17 @@ device nnic0 at isa? port 0x150 iomem 0xe0000 tty irq 12 vector nnicintr
#
# pca: PCM audio through your PC speaker
#
-
+# If you don't have a lpt0 device at IRQ 7, you can remove the
+# ``conflicts'' specification in the appropriate device entries below.
+#
# Controls all sound devices
controller snd0
-device sb0 at isa? port 0x220 irq 7 drq 1 vector sbintr
+device sb0 at isa? port 0x220 irq 7 conflicts drq 1 vector sbintr
device sbxvi0 at isa? drq 5
device sbmidi0 at isa? port 0x330
device pas0 at isa? port 0x388 irq 10 drq 6 vector pasintr
device gus0 at isa? port 0x220 irq 11 drq 1 vector gusintr
-device gusxvi0 at isa? port 0x530 irq 7 drq 3 vector adintr
+device gusxvi0 at isa? port 0x530 irq 7 conflicts drq 3 vector adintr
device gusmax0 at isa? port 0x32c
device mss0 at isa? port 0x530 irq 10 drq 1 vector adintr
device opl0 at isa? port 0x388
diff --git a/sys/i386/conf/NOTES b/sys/i386/conf/NOTES
index e276a8f..46a3743 100644
--- a/sys/i386/conf/NOTES
+++ b/sys/i386/conf/NOTES
@@ -2,7 +2,7 @@
# LINT -- config file for checking all the sources, tries to pull in
# as much of the source tree as it can.
#
-# $Id: LINT,v 1.177 1995/05/05 07:47:44 davidg Exp $
+# $Id: LINT,v 1.178 1995/05/06 19:34:05 joerg Exp $
#
# NB: You probably don't want to try running a kernel built from this
# file. Instead, you should start from GENERIC, and add options from
@@ -360,21 +360,6 @@ controller isa0
#
# Options for `isa':
#
-# ALLOW_CONFLICT_DRQ suppresses the DMA conflict checks. This option is
-# included so that people with sound cards that support multiple emulations
-# can setup different sound drivers on the same DMA channel. There are no
-# other known uses for this option.
-#
-# ALLOW_CONFLICT_IOADDR suppresses the I/O address conflict checks, so
-# that the PS/2 mouse driver doesn't conflict with the console driver.
-#
-# ALLOW_CONFLICT_IRQ suppresses the interrupt line conflict checks, so
-# that multiple devices can share the same IRQ, provided that the
-# hardware supports it (it usually doesn't).
-#
-# ALLOW_CONFLICT_MEMADDR suppresses the memory address conflict checks.
-# This option is not known to be good for anything.
-#
# AUTO_EOI_1 enables the `automatic EOI' feature for the master 8259A
# interrupt controller. This saves about 1.25 usec for each interrupt.
# No problems are known to be caused by this option.
@@ -396,10 +381,6 @@ controller isa0
# TUNE_1542 enables the automatic ISA bus speed selection for the
# Adaptec 1542 boards. Does not work for all boards, use it with caution.
#
-#options ALLOW_CONFLICT_DRQ
-#options ALLOW_CONFLICT_IOADDR
-#options ALLOW_CONFLICT_IRQ
-#options ALLOW_CONFLICT_MEMADDR
options "AUTO_EOI_1"
#options "AUTO_EOI_2"
options BOUNCE_BUFFERS
@@ -534,12 +515,12 @@ options FDSEEKWAIT="16"
#
# lpt: printer port
# mse: Logitech and ATI InPort bus mouse ports
-# psm: PS/2 mouse port (needs ALLOW_CONFLICT_IOADDR, above)
+# psm: PS/2 mouse port [note: conflicts with sc0/vt0, thus "conflicts" keywd]
# sio: serial ports (see sio(4))
device lpt0 at isa? port "IO_LPT3" tty irq 7 vector lptintr
device mse0 at isa? port 0x23c tty irq 5 vector mseintr
-device psm0 at isa? port "IO_KBD" tty irq 12 vector psmintr
+device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr
device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr
# Options for sio:
@@ -617,15 +598,17 @@ device nnic0 at isa? port 0x150 iomem 0xe0000 tty irq 12 vector nnicintr
#
# pca: PCM audio through your PC speaker
#
-
+# If you don't have a lpt0 device at IRQ 7, you can remove the
+# ``conflicts'' specification in the appropriate device entries below.
+#
# Controls all sound devices
controller snd0
-device sb0 at isa? port 0x220 irq 7 drq 1 vector sbintr
+device sb0 at isa? port 0x220 irq 7 conflicts drq 1 vector sbintr
device sbxvi0 at isa? drq 5
device sbmidi0 at isa? port 0x330
device pas0 at isa? port 0x388 irq 10 drq 6 vector pasintr
device gus0 at isa? port 0x220 irq 11 drq 1 vector gusintr
-device gusxvi0 at isa? port 0x530 irq 7 drq 3 vector adintr
+device gusxvi0 at isa? port 0x530 irq 7 conflicts drq 3 vector adintr
device gusmax0 at isa? port 0x32c
device mss0 at isa? port 0x530 irq 10 drq 1 vector adintr
device opl0 at isa? port 0x388
diff --git a/sys/i386/isa/isa.c b/sys/i386/isa/isa.c
index edb6ba3..93dbfcf 100644
--- a/sys/i386/isa/isa.c
+++ b/sys/i386/isa/isa.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)isa.c 7.2 (Berkeley) 5/13/91
- * $Id: isa.c,v 1.45 1995/04/12 20:47:54 wollman Exp $
+ * $Id: isa.c,v 1.46 1995/04/23 09:13:07 julian Exp $
*/
/*
@@ -161,7 +161,7 @@ conflict(dvp, tmpdvp, item, whatnot, reason, format)
}
/*
- * Check to see if things are alread in use, like IRQ's, I/O addresses
+ * Check to see if things are already in use, like IRQ's, I/O addresses
* and Memory addresses.
*/
static int
@@ -171,9 +171,10 @@ haveseen(dvp, tmpdvp, checkbits)
u_int checkbits;
{
/*
- * Only check against devices that have already been found
+ * Only check against devices that have already been found and are not
+ * unilaterally allowed to conflict anyway.
*/
- if (tmpdvp->id_alive) {
+ if (tmpdvp->id_alive && !tmpdev->id_conflicts) {
char const *whatnot;
whatnot = checkbits & CC_ATTACH ? "attach" : "prob";
@@ -401,15 +402,9 @@ config_isadev_c(isdp, mp, reconfig)
struct isa_driver *dp = isdp->id_driver;
checkbits = 0;
-#ifndef ALLOW_CONFLICT_DRQ
checkbits |= CC_DRQ;
-#endif
-#ifndef ALLOW_CONFLICT_IOADDR
checkbits |= CC_IOADDR;
-#endif
-#ifndef ALLOW_CONFLICT_MEMADDR
checkbits |= CC_MEMADDR;
-#endif
if (!isdp->id_enabled) {
printf("%s%d: disabled, not probed.\n",
dp->name, isdp->id_unit);
@@ -476,9 +471,7 @@ config_isadev_c(isdp, mp, reconfig)
* already skip the early check for IRQs and force
* a check for IRQs in the next group of checks.
*/
-#ifndef ALLOW_CONFLICT_IRQ
checkbits |= CC_IRQ;
-#endif
if (haveseen_isadev(isdp, checkbits))
return;
isdp->id_alive = id_alive;
diff --git a/sys/i386/isa/isa_device.h b/sys/i386/isa/isa_device.h
index c21d35a..5ef4e67 100644
--- a/sys/i386/isa/isa_device.h
+++ b/sys/i386/isa/isa_device.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* from: @(#)isa_device.h 7.1 (Berkeley) 5/9/91
- * $Id: isa_device.h,v 1.20 1995/03/28 07:55:39 bde Exp $
+ * $Id: isa_device.h,v 1.21 1995/04/23 09:13:08 julian Exp $
*/
#ifndef _I386_ISA_ISA_DEVICE_H_
@@ -57,6 +57,11 @@ typedef void inthand2_t __P((int unit));
/*
* Per device structure.
+ *
+ * XXX Note: id_conflicts should either become an array of things we're
+ * specifically allowed to conflict with or be subsumed into some
+ * more powerful mechanism for detecting and dealing with multiple types
+ * of non-fatal conflict. -jkh XXX
*/
struct isa_device {
int id_id; /* device id */
@@ -69,6 +74,7 @@ struct isa_device {
inthand2_t *id_intr; /* interrupt interface routine */
int id_unit; /* unit number */
int id_flags; /* flags */
+ int id_conflicts; /* we're allowed to conflict with things */
int id_scsiid; /* scsi id if needed */
int id_alive; /* device is present */
#define RI_FAST 1 /* fast interrupt handler */
OpenPOWER on IntegriCloud