diff options
-rw-r--r-- | sys/amd64/isa/isa.c | 17 | ||||
-rw-r--r-- | sys/conf/NOTES | 33 | ||||
-rw-r--r-- | sys/i386/conf/LINT | 33 | ||||
-rw-r--r-- | sys/i386/conf/NOTES | 33 | ||||
-rw-r--r-- | sys/i386/isa/isa.c | 17 | ||||
-rw-r--r-- | sys/i386/isa/isa_device.h | 8 |
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 */ |