mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-29 17:25:38 +00:00
Buslogic: remove ISA support
The ISA support in Buslogic has been broken for a long time, as all the I/O path expects a struct device for DMA mapping that is derived from the PCI device, which would simply crash for ISA adapters. Signed-off-by: Christoph Hellwig <hch@lst.de> Acked-by: Martin K. Petersen <martin.petersen@oracle.com> Reviewed-by: Hannes Reinecke <hare@suse.de> Acked-by: Khalid Aziz <khalid@gonehiking.org> Link: https://lore.kernel.org/r/20210331073001.46776-3-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
2f2fef022c
commit
8cad3b66bf
@ -251,8 +251,6 @@ BT-445C VLB Fast SCSI-2
|
|||||||
BT-747C EISA Fast SCSI-2
|
BT-747C EISA Fast SCSI-2
|
||||||
BT-757C EISA Wide Fast SCSI-2
|
BT-757C EISA Wide Fast SCSI-2
|
||||||
BT-757CD EISA Wide Differential Fast SCSI-2
|
BT-757CD EISA Wide Differential Fast SCSI-2
|
||||||
BT-545C ISA Fast SCSI-2
|
|
||||||
BT-540CF ISA Fast SCSI-2
|
|
||||||
======== ==== ==============================
|
======== ==== ==============================
|
||||||
|
|
||||||
MultiMaster "S" Series Host Adapters:
|
MultiMaster "S" Series Host Adapters:
|
||||||
@ -263,17 +261,13 @@ BT-747S EISA Fast SCSI-2
|
|||||||
BT-747D EISA Differential Fast SCSI-2
|
BT-747D EISA Differential Fast SCSI-2
|
||||||
BT-757S EISA Wide Fast SCSI-2
|
BT-757S EISA Wide Fast SCSI-2
|
||||||
BT-757D EISA Wide Differential Fast SCSI-2
|
BT-757D EISA Wide Differential Fast SCSI-2
|
||||||
BT-545S ISA Fast SCSI-2
|
|
||||||
BT-542D ISA Differential Fast SCSI-2
|
|
||||||
BT-742A EISA SCSI-2 (742A revision H)
|
BT-742A EISA SCSI-2 (742A revision H)
|
||||||
BT-542B ISA SCSI-2 (542B revision H)
|
|
||||||
======= ==== ==============================
|
======= ==== ==============================
|
||||||
|
|
||||||
MultiMaster "A" Series Host Adapters:
|
MultiMaster "A" Series Host Adapters:
|
||||||
|
|
||||||
======= ==== ==============================
|
======= ==== ==============================
|
||||||
BT-742A EISA SCSI-2 (742A revisions A - G)
|
BT-742A EISA SCSI-2 (742A revisions A - G)
|
||||||
BT-542B ISA SCSI-2 (542B revisions A - G)
|
|
||||||
======= ==== ==============================
|
======= ==== ==============================
|
||||||
|
|
||||||
AMI FastDisk Host Adapters that are true BusLogic MultiMaster clones are also
|
AMI FastDisk Host Adapters that are true BusLogic MultiMaster clones are also
|
||||||
@ -400,26 +394,11 @@ selected host adapter.
|
|||||||
|
|
||||||
The BusLogic Driver Probing Options comprise the following:
|
The BusLogic Driver Probing Options comprise the following:
|
||||||
|
|
||||||
IO:<integer>
|
|
||||||
|
|
||||||
The "IO:" option specifies an ISA I/O Address to be probed for a non-PCI
|
|
||||||
MultiMaster Host Adapter. If neither "IO:" nor "NoProbeISA" options are
|
|
||||||
specified, then the standard list of BusLogic MultiMaster ISA I/O Addresses
|
|
||||||
will be probed (0x330, 0x334, 0x230, 0x234, 0x130, and 0x134). Multiple
|
|
||||||
"IO:" options may be specified to precisely determine the I/O Addresses to
|
|
||||||
be probed, but the probe order will always follow the standard list.
|
|
||||||
|
|
||||||
NoProbe
|
NoProbe
|
||||||
|
|
||||||
The "NoProbe" option disables all probing and therefore no BusLogic Host
|
The "NoProbe" option disables all probing and therefore no BusLogic Host
|
||||||
Adapters will be detected.
|
Adapters will be detected.
|
||||||
|
|
||||||
NoProbeISA
|
|
||||||
|
|
||||||
The "NoProbeISA" option disables probing of the standard BusLogic ISA I/O
|
|
||||||
Addresses and therefore only PCI MultiMaster and FlashPoint Host Adapters
|
|
||||||
will be detected.
|
|
||||||
|
|
||||||
NoProbePCI
|
NoProbePCI
|
||||||
|
|
||||||
The "NoProbePCI" options disables the interrogation of PCI Configuration
|
The "NoProbePCI" options disables the interrogation of PCI Configuration
|
||||||
@ -464,10 +443,7 @@ QueueDepth:<integer>
|
|||||||
Depth for devices that do not support Tagged Queuing. If no Queue Depth
|
Depth for devices that do not support Tagged Queuing. If no Queue Depth
|
||||||
option is provided, the Queue Depth will be determined automatically based
|
option is provided, the Queue Depth will be determined automatically based
|
||||||
on the Host Adapter's Total Queue Depth and the number, type, speed, and
|
on the Host Adapter's Total Queue Depth and the number, type, speed, and
|
||||||
capabilities of the detected Target Devices. For Host Adapters that
|
capabilities of the detected Target Devices. Target Devices that
|
||||||
require ISA Bounce Buffers, the Queue Depth is automatically set by default
|
|
||||||
to BusLogic_TaggedQueueDepthBB or BusLogic_UntaggedQueueDepthBB to avoid
|
|
||||||
excessive preallocation of DMA Bounce Buffer memory. Target Devices that
|
|
||||||
do not support Tagged Queuing always have their Queue Depth set to
|
do not support Tagged Queuing always have their Queue Depth set to
|
||||||
BusLogic_UntaggedQueueDepth or BusLogic_UntaggedQueueDepthBB, unless a
|
BusLogic_UntaggedQueueDepth or BusLogic_UntaggedQueueDepthBB, unless a
|
||||||
lower Queue Depth option is provided. A Queue Depth of 1 automatically
|
lower Queue Depth option is provided. A Queue Depth of 1 automatically
|
||||||
|
@ -561,60 +561,6 @@ static int blogic_cmd(struct blogic_adapter *adapter, enum blogic_opcode opcode,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
blogic_add_probeaddr_isa appends a single ISA I/O Address to the list
|
|
||||||
of I/O Address and Bus Probe Information to be checked for potential BusLogic
|
|
||||||
Host Adapters.
|
|
||||||
*/
|
|
||||||
|
|
||||||
static void __init blogic_add_probeaddr_isa(unsigned long io_addr)
|
|
||||||
{
|
|
||||||
struct blogic_probeinfo *probeinfo;
|
|
||||||
if (blogic_probeinfo_count >= BLOGIC_MAX_ADAPTERS)
|
|
||||||
return;
|
|
||||||
probeinfo = &blogic_probeinfo_list[blogic_probeinfo_count++];
|
|
||||||
probeinfo->adapter_type = BLOGIC_MULTIMASTER;
|
|
||||||
probeinfo->adapter_bus_type = BLOGIC_ISA_BUS;
|
|
||||||
probeinfo->io_addr = io_addr;
|
|
||||||
probeinfo->pci_device = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
blogic_init_probeinfo_isa initializes the list of I/O Address and
|
|
||||||
Bus Probe Information to be checked for potential BusLogic SCSI Host Adapters
|
|
||||||
only from the list of standard BusLogic MultiMaster ISA I/O Addresses.
|
|
||||||
*/
|
|
||||||
|
|
||||||
static void __init blogic_init_probeinfo_isa(struct blogic_adapter *adapter)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
If BusLogic Driver Options specifications requested that ISA
|
|
||||||
Bus Probes be inhibited, do not proceed further.
|
|
||||||
*/
|
|
||||||
if (blogic_probe_options.noprobe_isa)
|
|
||||||
return;
|
|
||||||
/*
|
|
||||||
Append the list of standard BusLogic MultiMaster ISA I/O Addresses.
|
|
||||||
*/
|
|
||||||
if (!blogic_probe_options.limited_isa || blogic_probe_options.probe330)
|
|
||||||
blogic_add_probeaddr_isa(0x330);
|
|
||||||
if (!blogic_probe_options.limited_isa || blogic_probe_options.probe334)
|
|
||||||
blogic_add_probeaddr_isa(0x334);
|
|
||||||
if (!blogic_probe_options.limited_isa || blogic_probe_options.probe230)
|
|
||||||
blogic_add_probeaddr_isa(0x230);
|
|
||||||
if (!blogic_probe_options.limited_isa || blogic_probe_options.probe234)
|
|
||||||
blogic_add_probeaddr_isa(0x234);
|
|
||||||
if (!blogic_probe_options.limited_isa || blogic_probe_options.probe130)
|
|
||||||
blogic_add_probeaddr_isa(0x130);
|
|
||||||
if (!blogic_probe_options.limited_isa || blogic_probe_options.probe134)
|
|
||||||
blogic_add_probeaddr_isa(0x134);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef CONFIG_PCI
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
blogic_sort_probeinfo sorts a section of blogic_probeinfo_list in order
|
blogic_sort_probeinfo sorts a section of blogic_probeinfo_list in order
|
||||||
of increasing PCI Bus and Device Number.
|
of increasing PCI Bus and Device Number.
|
||||||
@ -667,14 +613,11 @@ static int __init blogic_init_mm_probeinfo(struct blogic_adapter *adapter)
|
|||||||
int nonpr_mmcount = 0, mmcount = 0;
|
int nonpr_mmcount = 0, mmcount = 0;
|
||||||
bool force_scan_order = false;
|
bool force_scan_order = false;
|
||||||
bool force_scan_order_checked = false;
|
bool force_scan_order_checked = false;
|
||||||
bool addr_seen[6];
|
|
||||||
struct pci_dev *pci_device = NULL;
|
struct pci_dev *pci_device = NULL;
|
||||||
int i;
|
int i;
|
||||||
if (blogic_probeinfo_count >= BLOGIC_MAX_ADAPTERS)
|
if (blogic_probeinfo_count >= BLOGIC_MAX_ADAPTERS)
|
||||||
return 0;
|
return 0;
|
||||||
blogic_probeinfo_count++;
|
blogic_probeinfo_count++;
|
||||||
for (i = 0; i < 6; i++)
|
|
||||||
addr_seen[i] = false;
|
|
||||||
/*
|
/*
|
||||||
Iterate over the MultiMaster PCI Host Adapters. For each
|
Iterate over the MultiMaster PCI Host Adapters. For each
|
||||||
enumerated host adapter, determine whether its ISA Compatible
|
enumerated host adapter, determine whether its ISA Compatible
|
||||||
@ -744,11 +687,8 @@ static int __init blogic_init_mm_probeinfo(struct blogic_adapter *adapter)
|
|||||||
host_adapter->io_addr = io_addr;
|
host_adapter->io_addr = io_addr;
|
||||||
blogic_intreset(host_adapter);
|
blogic_intreset(host_adapter);
|
||||||
if (blogic_cmd(host_adapter, BLOGIC_INQ_PCI_INFO, NULL, 0,
|
if (blogic_cmd(host_adapter, BLOGIC_INQ_PCI_INFO, NULL, 0,
|
||||||
&adapter_info, sizeof(adapter_info)) ==
|
&adapter_info, sizeof(adapter_info)) !=
|
||||||
sizeof(adapter_info)) {
|
sizeof(adapter_info))
|
||||||
if (adapter_info.isa_port < 6)
|
|
||||||
addr_seen[adapter_info.isa_port] = true;
|
|
||||||
} else
|
|
||||||
adapter_info.isa_port = BLOGIC_IO_DISABLE;
|
adapter_info.isa_port = BLOGIC_IO_DISABLE;
|
||||||
/*
|
/*
|
||||||
Issue the Modify I/O Address command to disable the
|
Issue the Modify I/O Address command to disable the
|
||||||
@ -835,45 +775,6 @@ static int __init blogic_init_mm_probeinfo(struct blogic_adapter *adapter)
|
|||||||
if (force_scan_order)
|
if (force_scan_order)
|
||||||
blogic_sort_probeinfo(&blogic_probeinfo_list[nonpr_mmindex],
|
blogic_sort_probeinfo(&blogic_probeinfo_list[nonpr_mmindex],
|
||||||
nonpr_mmcount);
|
nonpr_mmcount);
|
||||||
/*
|
|
||||||
If no PCI MultiMaster Host Adapter is assigned the Primary
|
|
||||||
I/O Address, then the Primary I/O Address must be probed
|
|
||||||
explicitly before any PCI host adapters are probed.
|
|
||||||
*/
|
|
||||||
if (!blogic_probe_options.noprobe_isa)
|
|
||||||
if (pr_probeinfo->io_addr == 0 &&
|
|
||||||
(!blogic_probe_options.limited_isa ||
|
|
||||||
blogic_probe_options.probe330)) {
|
|
||||||
pr_probeinfo->adapter_type = BLOGIC_MULTIMASTER;
|
|
||||||
pr_probeinfo->adapter_bus_type = BLOGIC_ISA_BUS;
|
|
||||||
pr_probeinfo->io_addr = 0x330;
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
Append the list of standard BusLogic MultiMaster ISA I/O Addresses,
|
|
||||||
omitting the Primary I/O Address which has already been handled.
|
|
||||||
*/
|
|
||||||
if (!blogic_probe_options.noprobe_isa) {
|
|
||||||
if (!addr_seen[1] &&
|
|
||||||
(!blogic_probe_options.limited_isa ||
|
|
||||||
blogic_probe_options.probe334))
|
|
||||||
blogic_add_probeaddr_isa(0x334);
|
|
||||||
if (!addr_seen[2] &&
|
|
||||||
(!blogic_probe_options.limited_isa ||
|
|
||||||
blogic_probe_options.probe230))
|
|
||||||
blogic_add_probeaddr_isa(0x230);
|
|
||||||
if (!addr_seen[3] &&
|
|
||||||
(!blogic_probe_options.limited_isa ||
|
|
||||||
blogic_probe_options.probe234))
|
|
||||||
blogic_add_probeaddr_isa(0x234);
|
|
||||||
if (!addr_seen[4] &&
|
|
||||||
(!blogic_probe_options.limited_isa ||
|
|
||||||
blogic_probe_options.probe130))
|
|
||||||
blogic_add_probeaddr_isa(0x130);
|
|
||||||
if (!addr_seen[5] &&
|
|
||||||
(!blogic_probe_options.limited_isa ||
|
|
||||||
blogic_probe_options.probe134))
|
|
||||||
blogic_add_probeaddr_isa(0x134);
|
|
||||||
}
|
|
||||||
/*
|
/*
|
||||||
Iterate over the older non-compliant MultiMaster PCI Host Adapters,
|
Iterate over the older non-compliant MultiMaster PCI Host Adapters,
|
||||||
noting the PCI bus location and assigned IRQ Channel.
|
noting the PCI bus location and assigned IRQ Channel.
|
||||||
@ -1078,18 +979,10 @@ static void __init blogic_init_probeinfo_list(struct blogic_adapter *adapter)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
blogic_init_probeinfo_isa(adapter);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#else
|
|
||||||
#define blogic_init_probeinfo_list(adapter) \
|
|
||||||
blogic_init_probeinfo_isa(adapter)
|
|
||||||
#endif /* CONFIG_PCI */
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
blogic_failure prints a standardized error message, and then returns false.
|
blogic_failure prints a standardized error message, and then returns false.
|
||||||
*/
|
*/
|
||||||
@ -1539,14 +1432,6 @@ static bool __init blogic_rdconfig(struct blogic_adapter *adapter)
|
|||||||
else if (config.irq_ch15)
|
else if (config.irq_ch15)
|
||||||
adapter->irq_ch = 15;
|
adapter->irq_ch = 15;
|
||||||
}
|
}
|
||||||
if (adapter->adapter_bus_type == BLOGIC_ISA_BUS) {
|
|
||||||
if (config.dma_ch5)
|
|
||||||
adapter->dma_ch = 5;
|
|
||||||
else if (config.dma_ch6)
|
|
||||||
adapter->dma_ch = 6;
|
|
||||||
else if (config.dma_ch7)
|
|
||||||
adapter->dma_ch = 7;
|
|
||||||
}
|
|
||||||
/*
|
/*
|
||||||
Determine whether Extended Translation is enabled and save it in
|
Determine whether Extended Translation is enabled and save it in
|
||||||
the Host Adapter structure.
|
the Host Adapter structure.
|
||||||
@ -1686,8 +1571,7 @@ static bool __init blogic_rdconfig(struct blogic_adapter *adapter)
|
|||||||
if (adapter->fw_ver[0] == '5')
|
if (adapter->fw_ver[0] == '5')
|
||||||
adapter->adapter_qdepth = 192;
|
adapter->adapter_qdepth = 192;
|
||||||
else if (adapter->fw_ver[0] == '4')
|
else if (adapter->fw_ver[0] == '4')
|
||||||
adapter->adapter_qdepth = (adapter->adapter_bus_type !=
|
adapter->adapter_qdepth = 100;
|
||||||
BLOGIC_ISA_BUS ? 100 : 50);
|
|
||||||
else
|
else
|
||||||
adapter->adapter_qdepth = 30;
|
adapter->adapter_qdepth = 30;
|
||||||
if (strcmp(adapter->fw_ver, "3.31") >= 0) {
|
if (strcmp(adapter->fw_ver, "3.31") >= 0) {
|
||||||
@ -1727,13 +1611,6 @@ static bool __init blogic_rdconfig(struct blogic_adapter *adapter)
|
|||||||
bios_addr is 0.
|
bios_addr is 0.
|
||||||
*/
|
*/
|
||||||
adapter->bios_addr = ext_setupinfo.bios_addr << 12;
|
adapter->bios_addr = ext_setupinfo.bios_addr << 12;
|
||||||
/*
|
|
||||||
ISA Host Adapters require Bounce Buffers if there is more than
|
|
||||||
16MB memory.
|
|
||||||
*/
|
|
||||||
if (adapter->adapter_bus_type == BLOGIC_ISA_BUS &&
|
|
||||||
(void *) high_memory > (void *) MAX_DMA_ADDRESS)
|
|
||||||
adapter->need_bouncebuf = true;
|
|
||||||
/*
|
/*
|
||||||
BusLogic BT-445S Host Adapters prior to board revision E have a
|
BusLogic BT-445S Host Adapters prior to board revision E have a
|
||||||
hardware bug whereby when the BIOS is enabled, transfers to/from
|
hardware bug whereby when the BIOS is enabled, transfers to/from
|
||||||
@ -1839,11 +1716,7 @@ static bool __init blogic_reportconfig(struct blogic_adapter *adapter)
|
|||||||
blogic_info("Configuring BusLogic Model %s %s%s%s%s SCSI Host Adapter\n", adapter, adapter->model, blogic_adapter_busnames[adapter->adapter_bus_type], (adapter->wide ? " Wide" : ""), (adapter->differential ? " Differential" : ""), (adapter->ultra ? " Ultra" : ""));
|
blogic_info("Configuring BusLogic Model %s %s%s%s%s SCSI Host Adapter\n", adapter, adapter->model, blogic_adapter_busnames[adapter->adapter_bus_type], (adapter->wide ? " Wide" : ""), (adapter->differential ? " Differential" : ""), (adapter->ultra ? " Ultra" : ""));
|
||||||
blogic_info(" Firmware Version: %s, I/O Address: 0x%lX, IRQ Channel: %d/%s\n", adapter, adapter->fw_ver, adapter->io_addr, adapter->irq_ch, (adapter->level_int ? "Level" : "Edge"));
|
blogic_info(" Firmware Version: %s, I/O Address: 0x%lX, IRQ Channel: %d/%s\n", adapter, adapter->fw_ver, adapter->io_addr, adapter->irq_ch, (adapter->level_int ? "Level" : "Edge"));
|
||||||
if (adapter->adapter_bus_type != BLOGIC_PCI_BUS) {
|
if (adapter->adapter_bus_type != BLOGIC_PCI_BUS) {
|
||||||
blogic_info(" DMA Channel: ", adapter);
|
blogic_info(" DMA Channel: None, ", adapter);
|
||||||
if (adapter->dma_ch > 0)
|
|
||||||
blogic_info("%d, ", adapter, adapter->dma_ch);
|
|
||||||
else
|
|
||||||
blogic_info("None, ", adapter);
|
|
||||||
if (adapter->bios_addr > 0)
|
if (adapter->bios_addr > 0)
|
||||||
blogic_info("BIOS Address: 0x%lX, ", adapter,
|
blogic_info("BIOS Address: 0x%lX, ", adapter,
|
||||||
adapter->bios_addr);
|
adapter->bios_addr);
|
||||||
@ -1995,18 +1868,6 @@ static bool __init blogic_getres(struct blogic_adapter *adapter)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
adapter->irq_acquired = true;
|
adapter->irq_acquired = true;
|
||||||
/*
|
|
||||||
Acquire exclusive access to the DMA Channel.
|
|
||||||
*/
|
|
||||||
if (adapter->dma_ch > 0) {
|
|
||||||
if (request_dma(adapter->dma_ch, adapter->full_model) < 0) {
|
|
||||||
blogic_err("UNABLE TO ACQUIRE DMA CHANNEL %d - DETACHING\n", adapter, adapter->dma_ch);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
set_dma_mode(adapter->dma_ch, DMA_MODE_CASCADE);
|
|
||||||
enable_dma(adapter->dma_ch);
|
|
||||||
adapter->dma_chan_acquired = true;
|
|
||||||
}
|
|
||||||
/*
|
/*
|
||||||
Indicate the System Resource Acquisition completed successfully,
|
Indicate the System Resource Acquisition completed successfully,
|
||||||
*/
|
*/
|
||||||
@ -2026,11 +1887,6 @@ static void blogic_relres(struct blogic_adapter *adapter)
|
|||||||
*/
|
*/
|
||||||
if (adapter->irq_acquired)
|
if (adapter->irq_acquired)
|
||||||
free_irq(adapter->irq_ch, adapter);
|
free_irq(adapter->irq_ch, adapter);
|
||||||
/*
|
|
||||||
Release exclusive access to the DMA Channel.
|
|
||||||
*/
|
|
||||||
if (adapter->dma_chan_acquired)
|
|
||||||
free_dma(adapter->dma_ch);
|
|
||||||
/*
|
/*
|
||||||
Release any allocated memory structs not released elsewhere
|
Release any allocated memory structs not released elsewhere
|
||||||
*/
|
*/
|
||||||
@ -3666,37 +3522,7 @@ static int __init blogic_parseopts(char *options)
|
|||||||
|
|
||||||
memset(drvr_opts, 0, sizeof(struct blogic_drvr_options));
|
memset(drvr_opts, 0, sizeof(struct blogic_drvr_options));
|
||||||
while (*options != '\0' && *options != ';') {
|
while (*options != '\0' && *options != ';') {
|
||||||
/* Probing Options. */
|
if (blogic_parse(&options, "NoProbePCI"))
|
||||||
if (blogic_parse(&options, "IO:")) {
|
|
||||||
unsigned long io_addr = simple_strtoul(options,
|
|
||||||
&options, 0);
|
|
||||||
blogic_probe_options.limited_isa = true;
|
|
||||||
switch (io_addr) {
|
|
||||||
case 0x330:
|
|
||||||
blogic_probe_options.probe330 = true;
|
|
||||||
break;
|
|
||||||
case 0x334:
|
|
||||||
blogic_probe_options.probe334 = true;
|
|
||||||
break;
|
|
||||||
case 0x230:
|
|
||||||
blogic_probe_options.probe230 = true;
|
|
||||||
break;
|
|
||||||
case 0x234:
|
|
||||||
blogic_probe_options.probe234 = true;
|
|
||||||
break;
|
|
||||||
case 0x130:
|
|
||||||
blogic_probe_options.probe130 = true;
|
|
||||||
break;
|
|
||||||
case 0x134:
|
|
||||||
blogic_probe_options.probe134 = true;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
blogic_err("BusLogic: Invalid Driver Options (invalid I/O Address 0x%lX)\n", NULL, io_addr);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
} else if (blogic_parse(&options, "NoProbeISA"))
|
|
||||||
blogic_probe_options.noprobe_isa = true;
|
|
||||||
else if (blogic_parse(&options, "NoProbePCI"))
|
|
||||||
blogic_probe_options.noprobe_pci = true;
|
blogic_probe_options.noprobe_pci = true;
|
||||||
else if (blogic_parse(&options, "NoProbe"))
|
else if (blogic_parse(&options, "NoProbe"))
|
||||||
blogic_probe_options.noprobe = true;
|
blogic_probe_options.noprobe = true;
|
||||||
|
@ -237,18 +237,10 @@ struct blogic_probeinfo {
|
|||||||
|
|
||||||
struct blogic_probe_options {
|
struct blogic_probe_options {
|
||||||
bool noprobe:1; /* Bit 0 */
|
bool noprobe:1; /* Bit 0 */
|
||||||
bool noprobe_isa:1; /* Bit 1 */
|
|
||||||
bool noprobe_pci:1; /* Bit 2 */
|
bool noprobe_pci:1; /* Bit 2 */
|
||||||
bool nosort_pci:1; /* Bit 3 */
|
bool nosort_pci:1; /* Bit 3 */
|
||||||
bool multimaster_first:1; /* Bit 4 */
|
bool multimaster_first:1; /* Bit 4 */
|
||||||
bool flashpoint_first:1; /* Bit 5 */
|
bool flashpoint_first:1; /* Bit 5 */
|
||||||
bool limited_isa:1; /* Bit 6 */
|
|
||||||
bool probe330:1; /* Bit 7 */
|
|
||||||
bool probe334:1; /* Bit 8 */
|
|
||||||
bool probe230:1; /* Bit 9 */
|
|
||||||
bool probe234:1; /* Bit 10 */
|
|
||||||
bool probe130:1; /* Bit 11 */
|
|
||||||
bool probe134:1; /* Bit 12 */
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -997,10 +989,8 @@ struct blogic_adapter {
|
|||||||
unsigned char bus;
|
unsigned char bus;
|
||||||
unsigned char dev;
|
unsigned char dev;
|
||||||
unsigned char irq_ch;
|
unsigned char irq_ch;
|
||||||
unsigned char dma_ch;
|
|
||||||
unsigned char scsi_id;
|
unsigned char scsi_id;
|
||||||
bool irq_acquired:1;
|
bool irq_acquired:1;
|
||||||
bool dma_chan_acquired:1;
|
|
||||||
bool ext_trans_enable:1;
|
bool ext_trans_enable:1;
|
||||||
bool parity:1;
|
bool parity:1;
|
||||||
bool reset_enabled:1;
|
bool reset_enabled:1;
|
||||||
|
@ -497,7 +497,7 @@ config SCSI_HPTIOP
|
|||||||
|
|
||||||
config SCSI_BUSLOGIC
|
config SCSI_BUSLOGIC
|
||||||
tristate "BusLogic SCSI support"
|
tristate "BusLogic SCSI support"
|
||||||
depends on (PCI || ISA) && SCSI && ISA_DMA_API && VIRT_TO_BUS
|
depends on PCI && SCSI && VIRT_TO_BUS
|
||||||
help
|
help
|
||||||
This is support for BusLogic MultiMaster and FlashPoint SCSI Host
|
This is support for BusLogic MultiMaster and FlashPoint SCSI Host
|
||||||
Adapters. Consult the SCSI-HOWTO, available from
|
Adapters. Consult the SCSI-HOWTO, available from
|
||||||
|
Loading…
Reference in New Issue
Block a user