diff options
author | dfr <dfr@FreeBSD.org> | 1999-09-17 08:18:34 +0000 |
---|---|---|
committer | dfr <dfr@FreeBSD.org> | 1999-09-17 08:18:34 +0000 |
commit | e2b3fbed01633eea8e379da0b2c04b927695499e (patch) | |
tree | 778e6c5f666d6f590e6a0422bc13ff477f162d71 /sys/isa/pnp.c | |
parent | 2c39c80e008faac9624e07b55ab4dbb5caeeec09 (diff) | |
download | FreeBSD-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/pnp.c')
-rw-r--r-- | sys/isa/pnp.c | 6 |
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; |