summaryrefslogtreecommitdiff
path: root/sys/arch/alpha/pci
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2008-07-25 21:11:16 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2008-07-25 21:11:16 +0000
commit18e3f6d8614d82a9fa490919bfe47dc48a923144 (patch)
tree11a936c03982608c697c3247246fc72fcef85fd1 /sys/arch/alpha/pci
parentcfae2dcc921f030c2ddf09b415864f2ce46ad633 (diff)
Improve eisa bus probe by deciding the number of logical eisa slots from
the motherboard eisa id, instead of using a ``one size fits all'' value which is too large on more than half the eisa-capable alpha designs. The id -> slot # logic is based on the alpha ECU configuration files, so we should not perform worse than ECU itself (and see all slots ECU sees too).
Diffstat (limited to 'sys/arch/alpha/pci')
-rw-r--r--sys/arch/alpha/pci/sio.c15
1 files changed, 2 insertions, 13 deletions
diff --git a/sys/arch/alpha/pci/sio.c b/sys/arch/alpha/pci/sio.c
index 34ff03f8399..c8d80c05c16 100644
--- a/sys/arch/alpha/pci/sio.c
+++ b/sys/arch/alpha/pci/sio.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sio.c,v 1.33 2008/07/22 20:06:01 miod Exp $ */
+/* $OpenBSD: sio.c,v 1.34 2008/07/25 21:11:15 miod Exp $ */
/* $NetBSD: sio.c,v 1.15 1996/12/05 01:39:36 cgd Exp $ */
/*
@@ -91,7 +91,6 @@ void sio_isa_attach_hook(struct device *, struct device *,
struct isabus_attach_args *);
void sio_eisa_attach_hook(struct device *, struct device *,
struct eisabus_attach_args *);
-int sio_eisa_maxslots(void *);
int sio_eisa_intr_map(void *, u_int, eisa_intr_handle_t *);
void sio_bridge_callback(struct device *);
@@ -169,8 +168,8 @@ sio_bridge_callback(self)
if (sc->sc_haseisa) {
ec.ec_v = NULL;
+ ec.ec_maxslots = 0; /* will be filled by attach_hook */
ec.ec_attach_hook = sio_eisa_attach_hook;
- ec.ec_maxslots = sio_eisa_maxslots;
ec.ec_intr_map = sio_eisa_intr_map;
ec.ec_intr_string = sio_intr_string;
ec.ec_intr_establish = sio_intr_establish;
@@ -231,16 +230,6 @@ sio_eisa_attach_hook(parent, self, eba)
}
int
-sio_eisa_maxslots(v)
- void *v;
-{
- /*
- * None of the alpha backplanes has more than 8 physical slots.
- */
- return 9;
-}
-
-int
sio_eisa_intr_map(v, irq, ihp)
void *v;
u_int irq;