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/dev/buslogic | |
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/dev/buslogic')
-rw-r--r-- | sys/dev/buslogic/bt.c | 8 | ||||
-rw-r--r-- | sys/dev/buslogic/bt_pci.c | 21 | ||||
-rw-r--r-- | sys/dev/buslogic/btreg.h | 3 |
3 files changed, 22 insertions, 10 deletions
diff --git a/sys/dev/buslogic/bt.c b/sys/dev/buslogic/bt.c index 7196844..8c4b3e2 100644 --- a/sys/dev/buslogic/bt.c +++ b/sys/dev/buslogic/bt.c @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: bt.c,v 1.6 1998/10/15 23:17:58 gibbs Exp $ + * $Id: bt.c,v 1.7 1998/10/15 23:46:28 gibbs Exp $ */ /* @@ -826,6 +826,12 @@ bt_check_probed_iop(u_int ioport) return (1); } +u_int +bt_fetch_isa_iop(isa_compat_io_t port) +{ + return (bt_isa_ports[port].addr); +} + void bt_mark_probed_bio(isa_compat_io_t port) { diff --git a/sys/dev/buslogic/bt_pci.c b/sys/dev/buslogic/bt_pci.c index 0286245..302be46 100644 --- a/sys/dev/buslogic/bt_pci.c +++ b/sys/dev/buslogic/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; diff --git a/sys/dev/buslogic/btreg.h b/sys/dev/buslogic/btreg.h index d31db88..2dc3cf5 100644 --- a/sys/dev/buslogic/btreg.h +++ b/sys/dev/buslogic/btreg.h @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id$ + * $Id: btreg.h,v 1.1 1998/09/15 07:32:49 gibbs Exp $ */ #ifndef _BTREG_H_ @@ -664,6 +664,7 @@ int bt_attach(struct bt_softc *bt); void bt_intr(void *arg); char * bt_name(struct bt_softc *bt); int bt_check_probed_iop(u_int ioport); +u_int bt_fetch_isa_iop(isa_compat_io_t port); void bt_mark_probed_bio(isa_compat_io_t port); void bt_mark_probed_iop(u_int ioport); |