diff options
author | dfr <dfr@FreeBSD.org> | 1999-05-28 09:25:16 +0000 |
---|---|---|
committer | dfr <dfr@FreeBSD.org> | 1999-05-28 09:25:16 +0000 |
commit | c10ae458eb1914a695353000a7bfde6666cf2a0d (patch) | |
tree | 24cf7146aaf68067486496ae06716cedf2177505 /sys/isa | |
parent | 0e927447e35265ab29fea7db0f0f455451b0a7b2 (diff) | |
download | FreeBSD-src-c10ae458eb1914a695353000a7bfde6666cf2a0d.zip FreeBSD-src-c10ae458eb1914a695353000a7bfde6666cf2a0d.tar.gz |
* Change device_add_child_after() to device_add_child_ordered() which is
easier to use and more flexible.
* Change BUS_ADD_CHILD to take an order argument instead of a place.
* Define a partial ordering for isa devices so that sensitive devices are
probed before non-sensitive ones.
Diffstat (limited to 'sys/isa')
-rw-r--r-- | sys/isa/isa_common.c | 9 | ||||
-rw-r--r-- | sys/isa/isahint.c | 12 | ||||
-rw-r--r-- | sys/isa/isavar.h | 13 |
3 files changed, 21 insertions, 13 deletions
diff --git a/sys/isa/isa_common.c b/sys/isa/isa_common.c index 2003eeb..7b3b494 100644 --- a/sys/isa/isa_common.c +++ b/sys/isa/isa_common.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id$ + * $Id: isa_common.c,v 1.1 1999/05/22 15:18:23 dfr Exp $ */ /* * Modifications for Intel architecture by Garrett A. Wollman. @@ -109,7 +109,7 @@ isa_attach(device_t dev) * Add a new child with default ivars. */ static device_t -isa_add_child(device_t dev, device_t place, const char *name, int unit) +isa_add_child(device_t dev, int order, const char *name, int unit) { struct isa_device *idev; @@ -121,10 +121,7 @@ isa_add_child(device_t dev, device_t place, const char *name, int unit) resource_list_init(&idev->id_resources); idev->id_flags = 0; - if (place) - return device_add_child_after(dev, place, name, unit, idev); - else - return device_add_child(dev, name, unit, idev); + return device_add_child_ordered(dev, order, name, unit, idev); } static void diff --git a/sys/isa/isahint.c b/sys/isa/isahint.c index c3dff33..25e6d84 100644 --- a/sys/isa/isahint.c +++ b/sys/isa/isahint.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: isahint.c,v 1.1 1999/05/14 11:22:33 dfr Exp $ + * $Id: isahint.c,v 1.2 1999/05/22 15:18:26 dfr Exp $ */ #include <sys/param.h> @@ -39,7 +39,7 @@ isahint_add_device(device_t parent, const char *name, int unit) { device_t child; int sensitive, start, count, t; - static device_t last_sensitive; + int order; /* device-specific flag overrides any wildcard */ sensitive = 0; @@ -47,13 +47,13 @@ isahint_add_device(device_t parent, const char *name, int unit) resource_int_value(name, -1, "sensitive", &sensitive); if (sensitive) - child = BUS_ADD_CHILD(parent, last_sensitive, name, unit); + order = ISA_ORDER_SENSITIVE; else - child = BUS_ADD_CHILD(parent, 0, name, unit); + order = ISA_ORDER_SPECULATIVE; + + child = BUS_ADD_CHILD(parent, order, name, unit); if (child == 0) return; - else if (sensitive) - last_sensitive = child; start = 0; count = 0; diff --git a/sys/isa/isavar.h b/sys/isa/isavar.h index b8a3a9d..7f39773 100644 --- a/sys/isa/isavar.h +++ b/sys/isa/isavar.h @@ -23,11 +23,22 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: isavar.h,v 1.6 1999/05/14 11:22:35 dfr Exp $ + * $Id: isavar.h,v 1.7 1999/05/22 15:18:28 dfr Exp $ */ #include "isa_if.h" +/* + * ISA devices are partially ordered to ensure that devices which are + * sensitive to other driver probe routines are probed first. Plug and + * Play devices are added after devices with speculative probes so that + * the legacy hardware can claim resources allowing the Plug and Play + * hardware to choose different resources. + */ +#define ISA_ORDER_SENSITIVE 0 /* legacy sensitive hardware */ +#define ISA_ORDER_SPECULATIVE 1 /* legacy non-sensitive hardware */ +#define ISA_ORDER_PNP 2 /* plug-and-play hardware */ + #define ISA_NPORT_IVARS 2 #define ISA_NMEM_IVARS 2 #define ISA_NIRQ_IVARS 2 |