summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/mca/if_elmc_mca.c23
1 files changed, 9 insertions, 14 deletions
diff --git a/sys/dev/mca/if_elmc_mca.c b/sys/dev/mca/if_elmc_mca.c
index 3e01ecfe621..daf4acf8e8a 100644
--- a/sys/dev/mca/if_elmc_mca.c
+++ b/sys/dev/mca/if_elmc_mca.c
@@ -1,4 +1,4 @@
-/* $NetBSD: if_elmc_mca.c,v 1.1 2001/03/16 23:03:15 jdolecek Exp $ */
+/* $NetBSD: if_elmc_mca.c,v 1.2 2001/03/17 16:59:29 jdolecek Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -43,11 +43,6 @@
* drivers/net/3c523.[ch]).
*
* This driver uses generic i82586 stuff. See also ai(4), ef(4), ix(4).
- *
- * Known issues:
- * o seems like the initialization is not bullet proof; initially, the
- * card I had responded with "incorrect termination" warning and started
- * to work correctly after I booted the PS/2 with Slackware 3.3 bootdisk
*/
#include <sys/param.h>
@@ -225,6 +220,13 @@ elmc_mca_attach(struct device *parent, struct device *self, void *aux)
sc->buf_area = sc->scb + IE_SCB_SZ;
sc->buf_area_sz = sc->sc_msize - IE_ISCP_SZ - IE_SCB_SZ - IE_SCP_SZ;
+ /*
+ * According to docs, we might need to read the interrupt number and
+ * write it back to the IRQ select register, since the POST might not
+ * configure the IRQ properly.
+ */
+ (void) mca_conf_write(ma->ma_mc, ma->ma_slot, 3, pos3 & 0x1f);
+
/* reset the card first */
elmc_mca_hwreset(sc, CARD_RESET);
delay(1000000 / ( 1<< 5));
@@ -279,14 +281,7 @@ elmc_mca_attach(struct device *parent, struct device *self, void *aux)
printf("%s: couldn't establish interrupt handler\n",
sc->sc_dev.dv_xname);
else
- printf("%s: interrupting at irq %d\n", sc->sc_dev.dv_xname, irq);
-
- /*
- * According to docs, we might need to read the interrupt number and
- * write it back to the IRQ select register, since the POST might not
- * configure the IRQ properly.
- */
- (void) mca_conf_write(ma->ma_mc, ma->ma_slot, 3, pos3 & 0x1f);
+ printf("%s: interrupting at irq %d\n", sc->sc_dev.dv_xname,irq);
return;
}