summaryrefslogtreecommitdiffstats
path: root/sys/isa
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>1999-10-03 12:13:06 +0000
committerdfr <dfr@FreeBSD.org>1999-10-03 12:13:06 +0000
commit0a9033ff881571171d2114a65ff650b7d69e1392 (patch)
tree7c30202ed1c62e95b3bb0bac38d469e0a02ca407 /sys/isa
parent72194a984cab702d4cde0cd128928548ef8ebabd (diff)
downloadFreeBSD-src-0a9033ff881571171d2114a65ff650b7d69e1392.zip
FreeBSD-src-0a9033ff881571171d2114a65ff650b7d69e1392.tar.gz
Disable pnp devices before running heuristic probes. This allows us to
'hide' those devices from those probes so that they don't get probed and then re-probed later when the pnp probe is run.
Diffstat (limited to 'sys/isa')
-rw-r--r--sys/isa/isa_common.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/sys/isa/isa_common.c b/sys/isa/isa_common.c
index 1fbf7d1..eb64dad 100644
--- a/sys/isa/isa_common.c
+++ b/sys/isa/isa_common.c
@@ -435,7 +435,21 @@ isa_probe_children(device_t dev)
return;
/*
- * First probe all non-pnp devices so that they claim their
+ * First disable all pnp devices so that they don't get
+ * matched by legacy probes.
+ */
+ for (i = 0; i < nchildren; i++) {
+ device_t child = children[i];
+ struct isa_device *idev = DEVTOISA(child);
+ struct isa_config config;
+
+ bzero(&config, sizeof config);
+ if (idev->id_config_cb)
+ idev->id_config_cb(idev->id_config_arg, &config, 0);
+ }
+
+ /*
+ * Next probe all non-pnp devices so that they claim their
* resources first.
*/
for (i = 0; i < nchildren; i++) {
@@ -449,7 +463,7 @@ isa_probe_children(device_t dev)
}
/*
- * Next assign resource to pnp devices and probe them.
+ * Finally assign resource to pnp devices and probe them.
*/
for (i = 0; i < nchildren; i++) {
device_t child = children[i];
OpenPOWER on IntegriCloud