Commit 2672ea86 authored by Dave Jones's avatar Dave Jones Committed by James Bottomley

[SCSI] advansys pci tweaks.

Remove a lot of duplicate #defines from the advansys driver,
and make them look like PCI IDs as defined elsewhere in the kernel.
Also add a module table so that it automatically gets picked up
by tools relying on modinfo output (like say, distro installers).
Signed-off-by: default avatarDave Jones <davej@redhat.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent d67a70ac
...@@ -888,10 +888,6 @@ typedef unsigned char uchar; ...@@ -888,10 +888,6 @@ typedef unsigned char uchar;
#define ASC_PCI_ID2DEV(id) (((id) >> 11) & 0x1F) #define ASC_PCI_ID2DEV(id) (((id) >> 11) & 0x1F)
#define ASC_PCI_ID2FUNC(id) (((id) >> 8) & 0x7) #define ASC_PCI_ID2FUNC(id) (((id) >> 8) & 0x7)
#define ASC_PCI_MKID(bus, dev, func) ((((dev) & 0x1F) << 11) | (((func) & 0x7) << 8) | ((bus) & 0xFF)) #define ASC_PCI_MKID(bus, dev, func) ((((dev) & 0x1F) << 11) | (((func) & 0x7) << 8) | ((bus) & 0xFF))
#define ASC_PCI_VENDORID 0x10CD
#define ASC_PCI_DEVICEID_1200A 0x1100
#define ASC_PCI_DEVICEID_1200B 0x1200
#define ASC_PCI_DEVICEID_ULTRA 0x1300
#define ASC_PCI_REVISION_3150 0x02 #define ASC_PCI_REVISION_3150 0x02
#define ASC_PCI_REVISION_3050 0x03 #define ASC_PCI_REVISION_3050 0x03
...@@ -899,6 +895,14 @@ typedef unsigned char uchar; ...@@ -899,6 +895,14 @@ typedef unsigned char uchar;
#define ASC_DVCLIB_CALL_FAILED (0) #define ASC_DVCLIB_CALL_FAILED (0)
#define ASC_DVCLIB_CALL_ERROR (-1) #define ASC_DVCLIB_CALL_ERROR (-1)
#define PCI_VENDOR_ID_ASP 0x10cd
#define PCI_DEVICE_ID_ASP_1200A 0x1100
#define PCI_DEVICE_ID_ASP_ABP940 0x1200
#define PCI_DEVICE_ID_ASP_ABP940U 0x1300
#define PCI_DEVICE_ID_ASP_ABP940UW 0x2300
#define PCI_DEVICE_ID_38C0800_REV1 0x2500
#define PCI_DEVICE_ID_38C1600_REV1 0x2700
/* /*
* Enable CC_VERY_LONG_SG_LIST to support up to 64K element SG lists. * Enable CC_VERY_LONG_SG_LIST to support up to 64K element SG lists.
* The SRB structure will have to be changed and the ASC_SRB2SCSIQ() * The SRB structure will have to be changed and the ASC_SRB2SCSIQ()
...@@ -1492,8 +1496,6 @@ typedef struct asc_dvc_cfg { ...@@ -1492,8 +1496,6 @@ typedef struct asc_dvc_cfg {
#define ASC_INIT_STATE_END_INQUIRY 0x0080 #define ASC_INIT_STATE_END_INQUIRY 0x0080
#define ASC_INIT_RESET_SCSI_DONE 0x0100 #define ASC_INIT_RESET_SCSI_DONE 0x0100
#define ASC_INIT_STATE_WITHOUT_EEP 0x8000 #define ASC_INIT_STATE_WITHOUT_EEP 0x8000
#define ASC_PCI_DEVICE_ID_REV_A 0x1100
#define ASC_PCI_DEVICE_ID_REV_B 0x1200
#define ASC_BUG_FIX_IF_NOT_DWB 0x0001 #define ASC_BUG_FIX_IF_NOT_DWB 0x0001
#define ASC_BUG_FIX_ASYN_USE_SYN 0x0002 #define ASC_BUG_FIX_ASYN_USE_SYN 0x0002
#define ASYN_SDTR_DATA_FIX_PCI_REV_AB 0x41 #define ASYN_SDTR_DATA_FIX_PCI_REV_AB 0x41
...@@ -2100,12 +2102,6 @@ STATIC ASC_DCNT AscGetMaxDmaCount(ushort); ...@@ -2100,12 +2102,6 @@ STATIC ASC_DCNT AscGetMaxDmaCount(ushort);
#define ADV_NUM_PAGE_CROSSING \ #define ADV_NUM_PAGE_CROSSING \
((ADV_SG_TOTAL_MEM_SIZE + (ADV_PAGE_SIZE - 1))/ADV_PAGE_SIZE) ((ADV_SG_TOTAL_MEM_SIZE + (ADV_PAGE_SIZE - 1))/ADV_PAGE_SIZE)
/* a_condor.h */
#define ADV_PCI_VENDOR_ID 0x10CD
#define ADV_PCI_DEVICE_ID_REV_A 0x2300
#define ADV_PCI_DEVID_38C0800_REV1 0x2500
#define ADV_PCI_DEVID_38C1600_REV1 0x2700
#define ADV_EEP_DVC_CFG_BEGIN (0x00) #define ADV_EEP_DVC_CFG_BEGIN (0x00)
#define ADV_EEP_DVC_CFG_END (0x15) #define ADV_EEP_DVC_CFG_END (0x15)
#define ADV_EEP_DVC_CTL_BEGIN (0x16) /* location of OEM name */ #define ADV_EEP_DVC_CTL_BEGIN (0x16) /* location of OEM name */
...@@ -3569,14 +3565,7 @@ typedef struct scsi_cmnd REQ, *REQP; ...@@ -3569,14 +3565,7 @@ typedef struct scsi_cmnd REQ, *REQP;
#define PCI_MAX_SLOT 0x1F #define PCI_MAX_SLOT 0x1F
#define PCI_MAX_BUS 0xFF #define PCI_MAX_BUS 0xFF
#define PCI_IOADDRESS_MASK 0xFFFE #define PCI_IOADDRESS_MASK 0xFFFE
#define ASC_PCI_VENDORID 0x10CD
#define ASC_PCI_DEVICE_ID_CNT 6 /* PCI Device ID count. */ #define ASC_PCI_DEVICE_ID_CNT 6 /* PCI Device ID count. */
#define ASC_PCI_DEVICE_ID_1100 0x1100
#define ASC_PCI_DEVICE_ID_1200 0x1200
#define ASC_PCI_DEVICE_ID_1300 0x1300
#define ASC_PCI_DEVICE_ID_2300 0x2300 /* ASC-3550 */
#define ASC_PCI_DEVICE_ID_2500 0x2500 /* ASC-38C0800 */
#define ASC_PCI_DEVICE_ID_2700 0x2700 /* ASC-38C1600 */
#ifndef ADVANSYS_STATS #ifndef ADVANSYS_STATS
#define ASC_STATS(shp, counter) #define ASC_STATS(shp, counter)
...@@ -4330,12 +4319,12 @@ advansys_detect(struct scsi_host_template *tpnt) ...@@ -4330,12 +4319,12 @@ advansys_detect(struct scsi_host_template *tpnt)
struct pci_dev *pci_devp = NULL; struct pci_dev *pci_devp = NULL;
int pci_device_id_cnt = 0; int pci_device_id_cnt = 0;
unsigned int pci_device_id[ASC_PCI_DEVICE_ID_CNT] = { unsigned int pci_device_id[ASC_PCI_DEVICE_ID_CNT] = {
ASC_PCI_DEVICE_ID_1100, PCI_DEVICE_ID_ASP_1200A,
ASC_PCI_DEVICE_ID_1200, PCI_DEVICE_ID_ASP_ABP940,
ASC_PCI_DEVICE_ID_1300, PCI_DEVICE_ID_ASP_ABP940U,
ASC_PCI_DEVICE_ID_2300, PCI_DEVICE_ID_ASP_ABP940UW,
ASC_PCI_DEVICE_ID_2500, PCI_DEVICE_ID_38C0800_REV1,
ASC_PCI_DEVICE_ID_2700 PCI_DEVICE_ID_38C1600_REV1
}; };
ADV_PADDR pci_memory_address; ADV_PADDR pci_memory_address;
#endif /* CONFIG_PCI */ #endif /* CONFIG_PCI */
...@@ -4471,7 +4460,7 @@ advansys_detect(struct scsi_host_template *tpnt) ...@@ -4471,7 +4460,7 @@ advansys_detect(struct scsi_host_template *tpnt)
/* Find all PCI cards. */ /* Find all PCI cards. */
while (pci_device_id_cnt < ASC_PCI_DEVICE_ID_CNT) { while (pci_device_id_cnt < ASC_PCI_DEVICE_ID_CNT) {
if ((pci_devp = pci_find_device(ASC_PCI_VENDORID, if ((pci_devp = pci_find_device(PCI_VENDOR_ID_ASP,
pci_device_id[pci_device_id_cnt], pci_devp)) == pci_device_id[pci_device_id_cnt], pci_devp)) ==
NULL) { NULL) {
pci_device_id_cnt++; pci_device_id_cnt++;
...@@ -4575,9 +4564,9 @@ advansys_detect(struct scsi_host_template *tpnt) ...@@ -4575,9 +4564,9 @@ advansys_detect(struct scsi_host_template *tpnt)
*/ */
#ifdef CONFIG_PCI #ifdef CONFIG_PCI
if (asc_bus[bus] == ASC_IS_PCI && if (asc_bus[bus] == ASC_IS_PCI &&
(pci_devp->device == ASC_PCI_DEVICE_ID_2300 || (pci_devp->device == PCI_DEVICE_ID_ASP_ABP940UW ||
pci_devp->device == ASC_PCI_DEVICE_ID_2500 || pci_devp->device == PCI_DEVICE_ID_38C0800_REV1 ||
pci_devp->device == ASC_PCI_DEVICE_ID_2700)) pci_devp->device == PCI_DEVICE_ID_38C1600_REV1))
{ {
boardp->flags |= ASC_IS_WIDE_BOARD; boardp->flags |= ASC_IS_WIDE_BOARD;
} }
...@@ -4600,11 +4589,11 @@ advansys_detect(struct scsi_host_template *tpnt) ...@@ -4600,11 +4589,11 @@ advansys_detect(struct scsi_host_template *tpnt)
adv_dvc_varp->isr_callback = adv_isr_callback; adv_dvc_varp->isr_callback = adv_isr_callback;
adv_dvc_varp->async_callback = adv_async_callback; adv_dvc_varp->async_callback = adv_async_callback;
#ifdef CONFIG_PCI #ifdef CONFIG_PCI
if (pci_devp->device == ASC_PCI_DEVICE_ID_2300) if (pci_devp->device == PCI_DEVICE_ID_ASP_ABP940UW)
{ {
ASC_DBG(1, "advansys_detect: ASC-3550\n"); ASC_DBG(1, "advansys_detect: ASC-3550\n");
adv_dvc_varp->chip_type = ADV_CHIP_ASC3550; adv_dvc_varp->chip_type = ADV_CHIP_ASC3550;
} else if (pci_devp->device == ASC_PCI_DEVICE_ID_2500) } else if (pci_devp->device == PCI_DEVICE_ID_38C0800_REV1)
{ {
ASC_DBG(1, "advansys_detect: ASC-38C0800\n"); ASC_DBG(1, "advansys_detect: ASC-38C0800\n");
adv_dvc_varp->chip_type = ADV_CHIP_ASC38C0800; adv_dvc_varp->chip_type = ADV_CHIP_ASC38C0800;
...@@ -11922,7 +11911,7 @@ AscInitGetConfig( ...@@ -11922,7 +11911,7 @@ AscInitGetConfig(
PCIRevisionID = DvcReadPCIConfigByte(asc_dvc, PCIRevisionID = DvcReadPCIConfigByte(asc_dvc,
AscPCIConfigRevisionIDRegister); AscPCIConfigRevisionIDRegister);
if (PCIVendorID != ASC_PCI_VENDORID) { if (PCIVendorID != PCI_VENDOR_ID_ASP) {
warn_code |= ASC_WARN_SET_PCI_CONFIG_SPACE; warn_code |= ASC_WARN_SET_PCI_CONFIG_SPACE;
} }
prevCmdRegBits = DvcReadPCIConfigByte(asc_dvc, prevCmdRegBits = DvcReadPCIConfigByte(asc_dvc,
...@@ -11942,15 +11931,15 @@ AscInitGetConfig( ...@@ -11942,15 +11931,15 @@ AscInitGetConfig(
warn_code |= ASC_WARN_SET_PCI_CONFIG_SPACE; warn_code |= ASC_WARN_SET_PCI_CONFIG_SPACE;
} }
} }
if ((PCIDeviceID == ASC_PCI_DEVICEID_1200A) || if ((PCIDeviceID == PCI_DEVICE_ID_ASP_1200A) ||
(PCIDeviceID == ASC_PCI_DEVICEID_1200B)) { (PCIDeviceID == PCI_DEVICE_ID_ASP_ABP940)) {
DvcWritePCIConfigByte(asc_dvc, DvcWritePCIConfigByte(asc_dvc,
AscPCIConfigLatencyTimer, 0x00); AscPCIConfigLatencyTimer, 0x00);
if (DvcReadPCIConfigByte(asc_dvc, AscPCIConfigLatencyTimer) if (DvcReadPCIConfigByte(asc_dvc, AscPCIConfigLatencyTimer)
!= 0x00) { != 0x00) {
warn_code |= ASC_WARN_SET_PCI_CONFIG_SPACE; warn_code |= ASC_WARN_SET_PCI_CONFIG_SPACE;
} }
} else if (PCIDeviceID == ASC_PCI_DEVICEID_ULTRA) { } else if (PCIDeviceID == PCI_DEVICE_ID_ASP_ABP940U) {
if (DvcReadPCIConfigByte(asc_dvc, if (DvcReadPCIConfigByte(asc_dvc,
AscPCIConfigLatencyTimer) < 0x20) { AscPCIConfigLatencyTimer) < 0x20) {
DvcWritePCIConfigByte(asc_dvc, DvcWritePCIConfigByte(asc_dvc,
...@@ -12037,8 +12026,8 @@ AscInitFromAscDvcVar( ...@@ -12037,8 +12026,8 @@ AscInitFromAscDvcVar(
AscSetChipCfgMsw(iop_base, cfg_msw); AscSetChipCfgMsw(iop_base, cfg_msw);
if ((asc_dvc->bus_type & ASC_IS_PCI_ULTRA) == ASC_IS_PCI_ULTRA) { if ((asc_dvc->bus_type & ASC_IS_PCI_ULTRA) == ASC_IS_PCI_ULTRA) {
} else { } else {
if ((pci_device_id == ASC_PCI_DEVICE_ID_REV_A) || if ((pci_device_id == PCI_DEVICE_ID_ASP_1200A) ||
(pci_device_id == ASC_PCI_DEVICE_ID_REV_B)) { (pci_device_id == PCI_DEVICE_ID_ASP_ABP940)) {
asc_dvc->bug_fix_cntl |= ASC_BUG_FIX_IF_NOT_DWB; asc_dvc->bug_fix_cntl |= ASC_BUG_FIX_IF_NOT_DWB;
asc_dvc->bug_fix_cntl |= ASC_BUG_FIX_ASYN_USE_SYN; asc_dvc->bug_fix_cntl |= ASC_BUG_FIX_ASYN_USE_SYN;
} }
...@@ -14275,8 +14264,8 @@ Default_38C0800_EEPROM_Config __initdata = { ...@@ -14275,8 +14264,8 @@ Default_38C0800_EEPROM_Config __initdata = {
0, /* 55 reserved */ 0, /* 55 reserved */
0, /* 56 cisptr_lsw */ 0, /* 56 cisptr_lsw */
0, /* 57 cisprt_msw */ 0, /* 57 cisprt_msw */
ADV_PCI_VENDOR_ID, /* 58 subsysvid */ PCI_VENDOR_ID_ASP, /* 58 subsysvid */
ADV_PCI_DEVID_38C0800_REV1, /* 59 subsysid */ PCI_DEVICE_ID_38C0800_REV1, /* 59 subsysid */
0, /* 60 reserved */ 0, /* 60 reserved */
0, /* 61 reserved */ 0, /* 61 reserved */
0, /* 62 reserved */ 0, /* 62 reserved */
...@@ -14405,8 +14394,8 @@ Default_38C1600_EEPROM_Config __initdata = { ...@@ -14405,8 +14394,8 @@ Default_38C1600_EEPROM_Config __initdata = {
0, /* 55 reserved */ 0, /* 55 reserved */
0, /* 56 cisptr_lsw */ 0, /* 56 cisptr_lsw */
0, /* 57 cisprt_msw */ 0, /* 57 cisprt_msw */
ADV_PCI_VENDOR_ID, /* 58 subsysvid */ PCI_VENDOR_ID_ASP, /* 58 subsysvid */
ADV_PCI_DEVID_38C1600_REV1, /* 59 subsysid */ PCI_DEVICE_ID_38C1600_REV1, /* 59 subsysid */
0, /* 60 reserved */ 0, /* 60 reserved */
0, /* 61 reserved */ 0, /* 61 reserved */
0, /* 62 reserved */ 0, /* 62 reserved */
...@@ -18225,3 +18214,22 @@ AdvInquiryHandling( ...@@ -18225,3 +18214,22 @@ AdvInquiryHandling(
} }
} }
MODULE_LICENSE("Dual BSD/GPL"); MODULE_LICENSE("Dual BSD/GPL");
/* PCI Devices supported by this driver */
static struct pci_device_id advansys_pci_tbl[] __devinitdata = {
{ PCI_VENDOR_ID_ASP, PCI_DEVICE_ID_ASP_1200A,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
{ PCI_VENDOR_ID_ASP, PCI_DEVICE_ID_ASP_ABP940,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
{ PCI_VENDOR_ID_ASP, PCI_DEVICE_ID_ASP_ABP940U,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
{ PCI_VENDOR_ID_ASP, PCI_DEVICE_ID_ASP_ABP940UW,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
{ PCI_VENDOR_ID_ASP, PCI_DEVICE_ID_38C0800_REV1,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
{ PCI_VENDOR_ID_ASP, PCI_DEVICE_ID_38C1600_REV1,
PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
{ }
};
MODULE_DEVICE_TABLE(pci, advansys_pci_tbl);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment