summaryrefslogtreecommitdiffstats
path: root/sys/isa
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>1999-09-17 08:18:34 +0000
committerdfr <dfr@FreeBSD.org>1999-09-17 08:18:34 +0000
commite2b3fbed01633eea8e379da0b2c04b927695499e (patch)
tree778e6c5f666d6f590e6a0422bc13ff477f162d71 /sys/isa
parent2c39c80e008faac9624e07b55ab4dbb5caeeec09 (diff)
downloadFreeBSD-src-e2b3fbed01633eea8e379da0b2c04b927695499e.zip
FreeBSD-src-e2b3fbed01633eea8e379da0b2c04b927695499e.tar.gz
Parse resource descriptions which don't have START_DEPENDANT tags
correctly. This fixes resource allocation for various PnP ed cards but there are other problems which prevent that driver from working right.
Diffstat (limited to 'sys/isa')
-rw-r--r--sys/isa/pnp.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/isa/pnp.c b/sys/isa/pnp.c
index 9030874..3102408 100644
--- a/sys/isa/pnp.c
+++ b/sys/isa/pnp.c
@@ -383,6 +383,7 @@ pnp_scan_resdata(device_t parent, pnp_id *p, int csn)
struct isa_config *config;
struct pnp_set_config_arg *csnldn;
int priority = 0;
+ int seenalt = 0;
char *desc = 0;
bzero(&card, sizeof card);
@@ -431,6 +432,7 @@ pnp_scan_resdata(device_t parent, pnp_id *p, int csn)
ISA_SET_CONFIG_CALLBACK(parent, dev,
pnp_set_config,
csnldn);
+ seenalt = 0;
ldn++;
break;
@@ -498,6 +500,7 @@ pnp_scan_resdata(device_t parent, pnp_id *p, int csn)
case PNP_TAG_END_DEPENDANT:
ISA_ADD_CONFIG(parent, dev, priority, config);
config = &logdev;
+ seenalt = 1;
break;
case PNP_TAG_IO_RANGE:
@@ -541,6 +544,9 @@ pnp_scan_resdata(device_t parent, pnp_id *p, int csn)
break;
case PNP_TAG_END:
+ if (!seenalt)
+ ISA_ADD_CONFIG(parent, dev,
+ priority, config);
scanning = 0;
break;
OpenPOWER on IntegriCloud