diff options
author | Justin T. Gibbs <gibbs@FreeBSD.org> | 2004-08-16 22:05:53 +0000 |
---|---|---|
committer | Justin T. Gibbs <gibbs@FreeBSD.org> | 2004-08-16 22:05:53 +0000 |
commit | fc838bef65cd699df342218527c7d1d9a41360d0 (patch) | |
tree | c58b55151dd3f8788367cb31053b6ec113089d85 /sys/dev/eisa | |
parent | 6ec309a62f5a5972c1559ad50a1a7bc6e9e66784 (diff) | |
download | src-fc838bef65cd699df342218527c7d1d9a41360d0.tar.gz src-fc838bef65cd699df342218527c7d1d9a41360d0.zip |
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.
Notes
Notes:
svn path=/head/; revision=133887
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 d5453500d385..2ef026561aeb 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 |