diff options
author | jmg <jmg@FreeBSD.org> | 1997-09-19 15:20:25 +0000 |
---|---|---|
committer | jmg <jmg@FreeBSD.org> | 1997-09-19 15:20:25 +0000 |
commit | 6d02356368490b36d701bc5fb7890e9067455af6 (patch) | |
tree | c77448d1e5d64b378a6a357ea83bd3d091c10da2 /sys/amd64 | |
parent | d3d13402b907e7b1ab063873cf2b80a7fcdb71ba (diff) | |
download | FreeBSD-src-6d02356368490b36d701bc5fb7890e9067455af6.zip FreeBSD-src-6d02356368490b36d701bc5fb7890e9067455af6.tar.gz |
teach pnp to keep isa_device structs around, and teach isa.c how to scan
these structs for conflics...
it still exist that two PnP cards can colide, but this is up to the user
to make sure it doesn't happen...
other modifications to pnp.c to format output properly, and hide more
output behind bootverbose flag...
fix some bugons in pnp.h that would of made it difficult for inclusion
in external programs (for import of pnpinfo)
Diffstat (limited to 'sys/amd64')
-rw-r--r-- | sys/amd64/isa/isa.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/sys/amd64/isa/isa.c b/sys/amd64/isa/isa.c index abdcfa3..c5a9ea4 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.102 1997/08/25 22:52:59 bde Exp $ + * $Id: isa.c,v 1.103 1997/08/28 03:36:40 msmith Exp $ */ /* @@ -66,6 +66,11 @@ #include <sys/interrupt.h> +#include "pnp.h" +#if NPNP > 0 +#include <i386/isa/pnp.h> +#endif + /* ** Register definitions for DMA controller 1 (channels 0..3): */ @@ -293,6 +298,9 @@ haveseen_isadev(dvp, checkbits) struct isa_device *dvp; u_int checkbits; { +#if NPNP > 0 + struct pnp_dlist_node *nod; +#endif struct isa_device *tmpdvp; int status = 0; @@ -316,6 +324,11 @@ haveseen_isadev(dvp, checkbits) if (status) return status; } +#if NPNP > 0 + for (nod = pnp_device_list; nod != NULL; nod = nod->next) + if (status |= haveseen(dvp, &(nod->dev), checkbits)) + return status; +#endif #ifdef RESOURCE_CHECK if (!dvp->id_conflicts) { status = check_pciconflict(dvp, checkbits); @@ -551,8 +564,7 @@ config_isadev_c(isdp, mp, reconfig) printf(" at 0x%x", isdp->id_iobase); printf("\n"); } - } - else { + } else { #if 0 /* This code has not been tested.... */ if (isdp->id_irq) { @@ -913,7 +925,6 @@ isa_dmastatus(int chan) u_long cnt = 0; int ffport, waport; u_long low1, high1, low2, high2; - u_long ef; /* channel active? */ if ((dma_inuse & (1 << chan)) == 0) { |