[SCSI] BusLogic: make FlashPoint support x86-32 only

We've verified that there are 64 bit and endianness problems in the
flashpoint driver.  Reverse the logic of CONFIG_OMIT_FLASHPOINT (make
it CONFIG_SCSI_FLASHPOINT) and make it depend on X86_32 so it can't
appear for any other architectures.  Long term, if someone chooses,
they could make FlashPoint 64 bit compliant (it looks like its a
question of fixing up the sizes in some of the packed descriptors)

Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
Matthew Wilcox 2008-03-13 06:55:08 -06:00 committed by James Bottomley
parent 5c815d1501
commit 78b4b05db5
4 changed files with 17 additions and 29 deletions

View file

@ -896,7 +896,7 @@ static int __init BusLogic_InitializeFlashPointProbeInfo(struct BusLogic_HostAda
IRQ_Channel = PCI_Device->irq; IRQ_Channel = PCI_Device->irq;
IO_Address = BaseAddress0 = pci_resource_start(PCI_Device, 0); IO_Address = BaseAddress0 = pci_resource_start(PCI_Device, 0);
PCI_Address = BaseAddress1 = pci_resource_start(PCI_Device, 1); PCI_Address = BaseAddress1 = pci_resource_start(PCI_Device, 1);
#ifndef CONFIG_SCSI_OMIT_FLASHPOINT #ifdef CONFIG_SCSI_FLASHPOINT
if (pci_resource_flags(PCI_Device, 0) & IORESOURCE_MEM) { if (pci_resource_flags(PCI_Device, 0) & IORESOURCE_MEM) {
BusLogic_Error("BusLogic: Base Address0 0x%X not I/O for " "FlashPoint Host Adapter\n", NULL, BaseAddress0); BusLogic_Error("BusLogic: Base Address0 0x%X not I/O for " "FlashPoint Host Adapter\n", NULL, BaseAddress0);
BusLogic_Error("at PCI Bus %d Device %d I/O Address 0x%X\n", NULL, Bus, Device, IO_Address); BusLogic_Error("at PCI Bus %d Device %d I/O Address 0x%X\n", NULL, Bus, Device, IO_Address);
@ -1006,6 +1006,9 @@ static void __init BusLogic_InitializeProbeInfoList(struct BusLogic_HostAdapter
} }
#else
#define BusLogic_InitializeProbeInfoList(adapter) \
BusLogic_InitializeProbeInfoListISA(adapter)
#endif /* CONFIG_PCI */ #endif /* CONFIG_PCI */

View file

@ -33,23 +33,6 @@
#define PACKED __attribute__((packed)) #define PACKED __attribute__((packed))
#endif #endif
/*
FlashPoint support is only available for the Intel x86 Architecture with
CONFIG_PCI set.
*/
#ifndef __i386__
#undef CONFIG_SCSI_OMIT_FLASHPOINT
#define CONFIG_SCSI_OMIT_FLASHPOINT
#endif
#ifndef CONFIG_PCI
#undef CONFIG_SCSI_OMIT_FLASHPOINT
#define CONFIG_SCSI_OMIT_FLASHPOINT
#define BusLogic_InitializeProbeInfoListISA BusLogic_InitializeProbeInfoList
#endif
/* /*
Define the maximum number of BusLogic Host Adapters supported by this driver. Define the maximum number of BusLogic Host Adapters supported by this driver.
*/ */
@ -178,7 +161,7 @@ static int BusLogic_HostAdapterAddressCount[3] = { 0, BusLogic_MultiMasterAddres
Define macros for testing the Host Adapter Type. Define macros for testing the Host Adapter Type.
*/ */
#ifndef CONFIG_SCSI_OMIT_FLASHPOINT #ifdef CONFIG_SCSI_FLASHPOINT
#define BusLogic_MultiMasterHostAdapterP(HostAdapter) \ #define BusLogic_MultiMasterHostAdapterP(HostAdapter) \
(HostAdapter->HostAdapterType == BusLogic_MultiMaster) (HostAdapter->HostAdapterType == BusLogic_MultiMaster)
@ -871,7 +854,7 @@ struct BusLogic_CCB {
void (*CallbackFunction) (struct BusLogic_CCB *); /* Bytes 40-43 */ void (*CallbackFunction) (struct BusLogic_CCB *); /* Bytes 40-43 */
u32 BaseAddress; /* Bytes 44-47 */ u32 BaseAddress; /* Bytes 44-47 */
enum BusLogic_CompletionCode CompletionCode; /* Byte 48 */ enum BusLogic_CompletionCode CompletionCode; /* Byte 48 */
#ifndef CONFIG_SCSI_OMIT_FLASHPOINT #ifdef CONFIG_SCSI_FLASHPOINT
unsigned char:8; /* Byte 49 */ unsigned char:8; /* Byte 49 */
unsigned short OS_Flags; /* Bytes 50-51 */ unsigned short OS_Flags; /* Bytes 50-51 */
unsigned char Private[48]; /* Bytes 52-99 */ unsigned char Private[48]; /* Bytes 52-99 */

View file

@ -16,7 +16,7 @@
*/ */
#ifndef CONFIG_SCSI_OMIT_FLASHPOINT #ifdef CONFIG_SCSI_FLASHPOINT
#define MAX_CARDS 8 #define MAX_CARDS 8
#undef BUSTYPE_PCI #undef BUSTYPE_PCI
@ -7626,7 +7626,7 @@ FlashPoint__HandleInterrupt(FlashPoint_CardHandle_T CardHandle)
#define FlashPoint_InterruptPending FlashPoint__InterruptPending #define FlashPoint_InterruptPending FlashPoint__InterruptPending
#define FlashPoint_HandleInterrupt FlashPoint__HandleInterrupt #define FlashPoint_HandleInterrupt FlashPoint__HandleInterrupt
#else /* CONFIG_SCSI_OMIT_FLASHPOINT */ #else /* !CONFIG_SCSI_FLASHPOINT */
/* /*
Define prototypes for the FlashPoint SCCB Manager Functions. Define prototypes for the FlashPoint SCCB Manager Functions.
@ -7641,4 +7641,4 @@ extern bool FlashPoint_InterruptPending(FlashPoint_CardHandle_T);
extern int FlashPoint_HandleInterrupt(FlashPoint_CardHandle_T); extern int FlashPoint_HandleInterrupt(FlashPoint_CardHandle_T);
extern void FlashPoint_ReleaseHostAdapter(FlashPoint_CardHandle_T); extern void FlashPoint_ReleaseHostAdapter(FlashPoint_CardHandle_T);
#endif /* CONFIG_SCSI_OMIT_FLASHPOINT */ #endif /* CONFIG_SCSI_FLASHPOINT */

View file

@ -588,18 +588,20 @@ config SCSI_BUSLOGIC
<http://www.tldp.org/docs.html#howto>, and the files <http://www.tldp.org/docs.html#howto>, and the files
<file:Documentation/scsi/BusLogic.txt> and <file:Documentation/scsi/BusLogic.txt> and
<file:Documentation/scsi/FlashPoint.txt> for more information. <file:Documentation/scsi/FlashPoint.txt> for more information.
Note that support for FlashPoint is only available for 32-bit
x86 configurations.
To compile this driver as a module, choose M here: the To compile this driver as a module, choose M here: the
module will be called BusLogic. module will be called BusLogic.
config SCSI_OMIT_FLASHPOINT config SCSI_FLASHPOINT
bool "Omit FlashPoint support" bool "FlashPoint support"
depends on SCSI_BUSLOGIC depends on SCSI_BUSLOGIC && PCI && X86_32
help help
This option allows you to omit the FlashPoint support from the This option allows you to add FlashPoint support to the
BusLogic SCSI driver. The FlashPoint SCCB Manager code is BusLogic SCSI driver. The FlashPoint SCCB Manager code is
substantial, so users of MultiMaster Host Adapters may wish to omit substantial, so users of MultiMaster Host Adapters may not
it. wish to include it.
config SCSI_DMX3191D config SCSI_DMX3191D
tristate "DMX3191D SCSI support" tristate "DMX3191D SCSI support"