mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
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.
This commit is contained in:
parent
4b3c37b2a8
commit
400ea5dc6a
4 changed files with 35 additions and 18 deletions
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in a new issue