diff options
author | gibbs <gibbs@FreeBSD.org> | 1998-10-30 02:06:44 +0000 |
---|---|---|
committer | gibbs <gibbs@FreeBSD.org> | 1998-10-30 02:06:44 +0000 |
commit | 0fcabcf90e9664f8f2c243b394255dda6012386f (patch) | |
tree | 96d4e41b952d4b9dfe09856471d27ef877efb86a /sys/pci | |
parent | 02085b8fcd4391a1121f8846161cd62e9d06ccb0 (diff) | |
download | FreeBSD-src-0fcabcf90e9664f8f2c243b394255dda6012386f.zip FreeBSD-src-0fcabcf90e9664f8f2c243b394255dda6012386f.tar.gz |
Do not disable the ISA compatibility window if it is the same value as
that set for our PCI IO address space. This can happen on the BT-946.
Diffstat (limited to 'sys/pci')
-rw-r--r-- | sys/pci/bt_pci.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/sys/pci/bt_pci.c b/sys/pci/bt_pci.c index 0286245..302be46 100644 --- a/sys/pci/bt_pci.c +++ b/sys/pci/bt_pci.c @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id$ + * $Id: bt_pci.c,v 1.1 1998/09/15 07:32:57 gibbs Exp $ */ #include "pci.h" @@ -110,7 +110,6 @@ bt_pci_probe (pcici_t config_id, pcidi_t type) bus_space_handle_t bsh; pci_info_data_t pci_info; int error; - u_int8_t new_addr; if (btpcideterminebusspace(config_id, &tag, &bsh) != 0) break; @@ -122,7 +121,8 @@ bt_pci_probe (pcici_t config_id, pcidi_t type) /* * Determine if an ISA compatible I/O port has been * enabled. If so, record the port so it will not - * be probed by our ISA probe, and disable the port. + * be probed by our ISA probe. If the PCI I/O port + * was not set to the compatibility port, disable it. */ error = bt_cmd(bt, BOP_INQUIRE_PCI_INFO, /*param*/NULL, /*paramlen*/0, @@ -131,12 +131,17 @@ bt_pci_probe (pcici_t config_id, pcidi_t type) if (error == 0 && pci_info.io_port < BIO_DISABLED) { bt_mark_probed_bio(pci_info.io_port); + if (bsh != bt_fetch_isa_iop(pci_info.io_port)) { + u_int8_t new_addr; + + new_addr = BIO_DISABLED; + bt_cmd(bt, BOP_MODIFY_IO_ADDR, + /*param*/&new_addr, + /*paramlen*/1, /*reply_buf*/NULL, + /*reply_len*/0, + DEFAULT_CMD_TIMEOUT); + } } - - new_addr = BIO_DISABLED; - bt_cmd(bt, BOP_MODIFY_IO_ADDR, /*param*/&new_addr, - /*paramlen*/1, /*reply_buf*/NULL, /*reply_len*/0, - DEFAULT_CMD_TIMEOUT); bt_free(bt); return ("Buslogic Multimaster SCSI host adapter"); break; |