Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+49 −41
Original line number Original line Diff line number Diff line
@@ -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;
#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 {
#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);
#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;
#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)
    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)
                    /* 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)
             */
             */
#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)
                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(
        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(
                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(
        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 = {
    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 = {
    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(
    }
    }
}
}
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);