diff options
author | gibbs <gibbs@FreeBSD.org> | 2004-08-16 22:05:53 +0000 |
---|---|---|
committer | gibbs <gibbs@FreeBSD.org> | 2004-08-16 22:05:53 +0000 |
commit | 9950f2481beaa17a6e718d0943a59783f9c962cd (patch) | |
tree | c58b55151dd3f8788367cb31053b6ec113089d85 /sys/dev/eisa | |
parent | 3faf671104d5e0c114685b454836dac9a70db1d1 (diff) | |
download | FreeBSD-src-9950f2481beaa17a6e718d0943a59783f9c962cd.zip FreeBSD-src-9950f2481beaa17a6e718d0943a59783f9c962cd.tar.gz |
Remove outb to "prime" the EISA ID registers of each slot. This was
only required to support probing of the Adaptec 284X VLB SCSI controller
which becomes visible in EISA space if you perform these writes. 284X
probing is moving to an ISA attachment.
Diffstat (limited to 'sys/dev/eisa')
-rw-r--r-- | sys/dev/eisa/eisaconf.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/sys/dev/eisa/eisaconf.c b/sys/dev/eisa/eisaconf.c index d545350..2ef0265 100644 --- a/sys/dev/eisa/eisaconf.c +++ b/sys/dev/eisa/eisaconf.c @@ -213,25 +213,22 @@ static int eisa_probe_slot(int slot, eisa_id_t *eisa_id) { eisa_id_t probe_id; - int base, i, id_size, ret; + int base, i, id_size; - ret = ENXIO; probe_id = 0; id_size = sizeof(probe_id); base = 0x0c80 + (slot * 0x1000); - for (i = 0; i < id_size; i++) { - outb(base, 0x80 + i); /* Some cards require priming. */ + for (i = 0; i < id_size; i++) probe_id |= inb(base + i) << ((id_size - i - 1) * CHAR_BIT); - } /* If we found a card, return its EISA id. */ if ((probe_id & 0x80000000) == 0) { *eisa_id = probe_id; - ret = 0; + return (0); } - return (ret); + return (ENXIO); } static void |