aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/advansys.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/advansys.c')
-rw-r--r--drivers/scsi/advansys.c117
1 files changed, 62 insertions, 55 deletions
diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c
index 2a419634b25..773f02e3b10 100644
--- a/drivers/scsi/advansys.c
+++ b/drivers/scsi/advansys.c
@@ -371,7 +371,7 @@
371 371
372 1.5 (8/8/96): 372 1.5 (8/8/96):
373 1. Add support for ABP-940U (PCI Ultra) adapter. 373 1. Add support for ABP-940U (PCI Ultra) adapter.
374 2. Add support for IRQ sharing by setting the SA_SHIRQ flag for 374 2. Add support for IRQ sharing by setting the IRQF_SHARED flag for
375 request_irq and supplying a dev_id pointer to both request_irq() 375 request_irq and supplying a dev_id pointer to both request_irq()
376 and free_irq(). 376 and free_irq().
377 3. In AscSearchIOPortAddr11() restore a call to check_region() which 377 3. In AscSearchIOPortAddr11() restore a call to check_region() which
@@ -504,9 +504,9 @@
504 3. For v2.1.93 and newer kernels use CONFIG_PCI and new PCI BIOS 504 3. For v2.1.93 and newer kernels use CONFIG_PCI and new PCI BIOS
505 access functions. 505 access functions.
506 4. Update board serial number printing. 506 4. Update board serial number printing.
507 5. Try allocating an IRQ both with and without the SA_INTERRUPT 507 5. Try allocating an IRQ both with and without the IRQF_DISABLED
508 flag set to allow IRQ sharing with drivers that do not set 508 flag set to allow IRQ sharing with drivers that do not set
509 the SA_INTERRUPT flag. Also display a more descriptive error 509 the IRQF_DISABLED flag. Also display a more descriptive error
510 message if request_irq() fails. 510 message if request_irq() fails.
511 6. Update to latest Asc and Adv Libraries. 511 6. Update to latest Asc and Adv Libraries.
512 512
@@ -754,7 +754,6 @@
754 * --- Linux Include Files 754 * --- Linux Include Files
755 */ 755 */
756 756
757#include <linux/config.h>
758#include <linux/module.h> 757#include <linux/module.h>
759 758
760#if defined(CONFIG_X86) && !defined(CONFIG_ISA) 759#if defined(CONFIG_X86) && !defined(CONFIG_ISA)
@@ -889,10 +888,6 @@ typedef unsigned char uchar;
889#define ASC_PCI_ID2DEV(id) (((id) >> 11) & 0x1F) 888#define ASC_PCI_ID2DEV(id) (((id) >> 11) & 0x1F)
890#define ASC_PCI_ID2FUNC(id) (((id) >> 8) & 0x7) 889#define ASC_PCI_ID2FUNC(id) (((id) >> 8) & 0x7)
891#define ASC_PCI_MKID(bus, dev, func) ((((dev) & 0x1F) << 11) | (((func) & 0x7) << 8) | ((bus) & 0xFF)) 890#define ASC_PCI_MKID(bus, dev, func) ((((dev) & 0x1F) << 11) | (((func) & 0x7) << 8) | ((bus) & 0xFF))
892#define ASC_PCI_VENDORID 0x10CD
893#define ASC_PCI_DEVICEID_1200A 0x1100
894#define ASC_PCI_DEVICEID_1200B 0x1200
895#define ASC_PCI_DEVICEID_ULTRA 0x1300
896#define ASC_PCI_REVISION_3150 0x02 891#define ASC_PCI_REVISION_3150 0x02
897#define ASC_PCI_REVISION_3050 0x03 892#define ASC_PCI_REVISION_3050 0x03
898 893
@@ -900,6 +895,14 @@ typedef unsigned char uchar;
900#define ASC_DVCLIB_CALL_FAILED (0) 895#define ASC_DVCLIB_CALL_FAILED (0)
901#define ASC_DVCLIB_CALL_ERROR (-1) 896#define ASC_DVCLIB_CALL_ERROR (-1)
902 897
898#define PCI_VENDOR_ID_ASP 0x10cd
899#define PCI_DEVICE_ID_ASP_1200A 0x1100
900#define PCI_DEVICE_ID_ASP_ABP940 0x1200
901#define PCI_DEVICE_ID_ASP_ABP940U 0x1300
902#define PCI_DEVICE_ID_ASP_ABP940UW 0x2300
903#define PCI_DEVICE_ID_38C0800_REV1 0x2500
904#define PCI_DEVICE_ID_38C1600_REV1 0x2700
905
903/* 906/*
904 * Enable CC_VERY_LONG_SG_LIST to support up to 64K element SG lists. 907 * Enable CC_VERY_LONG_SG_LIST to support up to 64K element SG lists.
905 * The SRB structure will have to be changed and the ASC_SRB2SCSIQ() 908 * The SRB structure will have to be changed and the ASC_SRB2SCSIQ()
@@ -1493,8 +1496,6 @@ typedef struct asc_dvc_cfg {
1493#define ASC_INIT_STATE_END_INQUIRY 0x0080 1496#define ASC_INIT_STATE_END_INQUIRY 0x0080
1494#define ASC_INIT_RESET_SCSI_DONE 0x0100 1497#define ASC_INIT_RESET_SCSI_DONE 0x0100
1495#define ASC_INIT_STATE_WITHOUT_EEP 0x8000 1498#define ASC_INIT_STATE_WITHOUT_EEP 0x8000
1496#define ASC_PCI_DEVICE_ID_REV_A 0x1100
1497#define ASC_PCI_DEVICE_ID_REV_B 0x1200
1498#define ASC_BUG_FIX_IF_NOT_DWB 0x0001 1499#define ASC_BUG_FIX_IF_NOT_DWB 0x0001
1499#define ASC_BUG_FIX_ASYN_USE_SYN 0x0002 1500#define ASC_BUG_FIX_ASYN_USE_SYN 0x0002
1500#define ASYN_SDTR_DATA_FIX_PCI_REV_AB 0x41 1501#define ASYN_SDTR_DATA_FIX_PCI_REV_AB 0x41
@@ -2101,12 +2102,6 @@ STATIC ASC_DCNT AscGetMaxDmaCount(ushort);
2101#define ADV_NUM_PAGE_CROSSING \ 2102#define ADV_NUM_PAGE_CROSSING \
2102 ((ADV_SG_TOTAL_MEM_SIZE + (ADV_PAGE_SIZE - 1))/ADV_PAGE_SIZE) 2103 ((ADV_SG_TOTAL_MEM_SIZE + (ADV_PAGE_SIZE - 1))/ADV_PAGE_SIZE)
2103 2104
2104/* a_condor.h */
2105#define ADV_PCI_VENDOR_ID 0x10CD
2106#define ADV_PCI_DEVICE_ID_REV_A 0x2300
2107#define ADV_PCI_DEVID_38C0800_REV1 0x2500
2108#define ADV_PCI_DEVID_38C1600_REV1 0x2700
2109
2110#define ADV_EEP_DVC_CFG_BEGIN (0x00) 2105#define ADV_EEP_DVC_CFG_BEGIN (0x00)
2111#define ADV_EEP_DVC_CFG_END (0x15) 2106#define ADV_EEP_DVC_CFG_END (0x15)
2112#define ADV_EEP_DVC_CTL_BEGIN (0x16) /* location of OEM name */ 2107#define ADV_EEP_DVC_CTL_BEGIN (0x16) /* location of OEM name */
@@ -3570,14 +3565,7 @@ typedef struct scsi_cmnd REQ, *REQP;
3570#define PCI_MAX_SLOT 0x1F 3565#define PCI_MAX_SLOT 0x1F
3571#define PCI_MAX_BUS 0xFF 3566#define PCI_MAX_BUS 0xFF
3572#define PCI_IOADDRESS_MASK 0xFFFE 3567#define PCI_IOADDRESS_MASK 0xFFFE
3573#define ASC_PCI_VENDORID 0x10CD
3574#define ASC_PCI_DEVICE_ID_CNT 6 /* PCI Device ID count. */ 3568#define ASC_PCI_DEVICE_ID_CNT 6 /* PCI Device ID count. */
3575#define ASC_PCI_DEVICE_ID_1100 0x1100
3576#define ASC_PCI_DEVICE_ID_1200 0x1200
3577#define ASC_PCI_DEVICE_ID_1300 0x1300
3578#define ASC_PCI_DEVICE_ID_2300 0x2300 /* ASC-3550 */
3579#define ASC_PCI_DEVICE_ID_2500 0x2500 /* ASC-38C0800 */
3580#define ASC_PCI_DEVICE_ID_2700 0x2700 /* ASC-38C1600 */
3581 3569
3582#ifndef ADVANSYS_STATS 3570#ifndef ADVANSYS_STATS
3583#define ASC_STATS(shp, counter) 3571#define ASC_STATS(shp, counter)
@@ -4331,12 +4319,12 @@ advansys_detect(struct scsi_host_template *tpnt)
4331 struct pci_dev *pci_devp = NULL; 4319 struct pci_dev *pci_devp = NULL;
4332 int pci_device_id_cnt = 0; 4320 int pci_device_id_cnt = 0;
4333 unsigned int pci_device_id[ASC_PCI_DEVICE_ID_CNT] = { 4321 unsigned int pci_device_id[ASC_PCI_DEVICE_ID_CNT] = {
4334 ASC_PCI_DEVICE_ID_1100, 4322 PCI_DEVICE_ID_ASP_1200A,
4335 ASC_PCI_DEVICE_ID_1200, 4323 PCI_DEVICE_ID_ASP_ABP940,
4336 ASC_PCI_DEVICE_ID_1300, 4324 PCI_DEVICE_ID_ASP_ABP940U,
4337 ASC_PCI_DEVICE_ID_2300, 4325 PCI_DEVICE_ID_ASP_ABP940UW,
4338 ASC_PCI_DEVICE_ID_2500, 4326 PCI_DEVICE_ID_38C0800_REV1,
4339 ASC_PCI_DEVICE_ID_2700 4327 PCI_DEVICE_ID_38C1600_REV1
4340 }; 4328 };
4341 ADV_PADDR pci_memory_address; 4329 ADV_PADDR pci_memory_address;
4342#endif /* CONFIG_PCI */ 4330#endif /* CONFIG_PCI */
@@ -4472,7 +4460,7 @@ advansys_detect(struct scsi_host_template *tpnt)
4472 4460
4473 /* Find all PCI cards. */ 4461 /* Find all PCI cards. */
4474 while (pci_device_id_cnt < ASC_PCI_DEVICE_ID_CNT) { 4462 while (pci_device_id_cnt < ASC_PCI_DEVICE_ID_CNT) {
4475 if ((pci_devp = pci_find_device(ASC_PCI_VENDORID, 4463 if ((pci_devp = pci_find_device(PCI_VENDOR_ID_ASP,
4476 pci_device_id[pci_device_id_cnt], pci_devp)) == 4464 pci_device_id[pci_device_id_cnt], pci_devp)) ==
4477 NULL) { 4465 NULL) {
4478 pci_device_id_cnt++; 4466 pci_device_id_cnt++;
@@ -4576,9 +4564,9 @@ advansys_detect(struct scsi_host_template *tpnt)
4576 */ 4564 */
4577#ifdef CONFIG_PCI 4565#ifdef CONFIG_PCI
4578 if (asc_bus[bus] == ASC_IS_PCI && 4566 if (asc_bus[bus] == ASC_IS_PCI &&
4579 (pci_devp->device == ASC_PCI_DEVICE_ID_2300 || 4567 (pci_devp->device == PCI_DEVICE_ID_ASP_ABP940UW ||
4580 pci_devp->device == ASC_PCI_DEVICE_ID_2500 || 4568 pci_devp->device == PCI_DEVICE_ID_38C0800_REV1 ||
4581 pci_devp->device == ASC_PCI_DEVICE_ID_2700)) 4569 pci_devp->device == PCI_DEVICE_ID_38C1600_REV1))
4582 { 4570 {
4583 boardp->flags |= ASC_IS_WIDE_BOARD; 4571 boardp->flags |= ASC_IS_WIDE_BOARD;
4584 } 4572 }
@@ -4601,11 +4589,11 @@ advansys_detect(struct scsi_host_template *tpnt)
4601 adv_dvc_varp->isr_callback = adv_isr_callback; 4589 adv_dvc_varp->isr_callback = adv_isr_callback;
4602 adv_dvc_varp->async_callback = adv_async_callback; 4590 adv_dvc_varp->async_callback = adv_async_callback;
4603#ifdef CONFIG_PCI 4591#ifdef CONFIG_PCI
4604 if (pci_devp->device == ASC_PCI_DEVICE_ID_2300) 4592 if (pci_devp->device == PCI_DEVICE_ID_ASP_ABP940UW)
4605 { 4593 {
4606 ASC_DBG(1, "advansys_detect: ASC-3550\n"); 4594 ASC_DBG(1, "advansys_detect: ASC-3550\n");
4607 adv_dvc_varp->chip_type = ADV_CHIP_ASC3550; 4595 adv_dvc_varp->chip_type = ADV_CHIP_ASC3550;
4608 } else if (pci_devp->device == ASC_PCI_DEVICE_ID_2500) 4596 } else if (pci_devp->device == PCI_DEVICE_ID_38C0800_REV1)
4609 { 4597 {
4610 ASC_DBG(1, "advansys_detect: ASC-38C0800\n"); 4598 ASC_DBG(1, "advansys_detect: ASC-38C0800\n");
4611 adv_dvc_varp->chip_type = ADV_CHIP_ASC38C0800; 4599 adv_dvc_varp->chip_type = ADV_CHIP_ASC38C0800;
@@ -5203,19 +5191,19 @@ advansys_detect(struct scsi_host_template *tpnt)
5203 /* Register IRQ Number. */ 5191 /* Register IRQ Number. */
5204 ASC_DBG1(2, "advansys_detect: request_irq() %d\n", shp->irq); 5192 ASC_DBG1(2, "advansys_detect: request_irq() %d\n", shp->irq);
5205 /* 5193 /*
5206 * If request_irq() fails with the SA_INTERRUPT flag set, 5194 * If request_irq() fails with the IRQF_DISABLED flag set,
5207 * then try again without the SA_INTERRUPT flag set. This 5195 * then try again without the IRQF_DISABLED flag set. This
5208 * allows IRQ sharing to work even with other drivers that 5196 * allows IRQ sharing to work even with other drivers that
5209 * do not set the SA_INTERRUPT flag. 5197 * do not set the IRQF_DISABLED flag.
5210 * 5198 *
5211 * If SA_INTERRUPT is not set, then interrupts are enabled 5199 * If IRQF_DISABLED is not set, then interrupts are enabled
5212 * before the driver interrupt function is called. 5200 * before the driver interrupt function is called.
5213 */ 5201 */
5214 if (((ret = request_irq(shp->irq, advansys_interrupt, 5202 if (((ret = request_irq(shp->irq, advansys_interrupt,
5215 SA_INTERRUPT | (share_irq == TRUE ? SA_SHIRQ : 0), 5203 IRQF_DISABLED | (share_irq == TRUE ? IRQF_SHARED : 0),
5216 "advansys", boardp)) != 0) && 5204 "advansys", boardp)) != 0) &&
5217 ((ret = request_irq(shp->irq, advansys_interrupt, 5205 ((ret = request_irq(shp->irq, advansys_interrupt,
5218 (share_irq == TRUE ? SA_SHIRQ : 0), 5206 (share_irq == TRUE ? IRQF_SHARED : 0),
5219 "advansys", boardp)) != 0)) 5207 "advansys", boardp)) != 0))
5220 { 5208 {
5221 if (ret == -EBUSY) { 5209 if (ret == -EBUSY) {
@@ -11923,7 +11911,7 @@ AscInitGetConfig(
11923 PCIRevisionID = DvcReadPCIConfigByte(asc_dvc, 11911 PCIRevisionID = DvcReadPCIConfigByte(asc_dvc,
11924 AscPCIConfigRevisionIDRegister); 11912 AscPCIConfigRevisionIDRegister);
11925 11913
11926 if (PCIVendorID != ASC_PCI_VENDORID) { 11914 if (PCIVendorID != PCI_VENDOR_ID_ASP) {
11927 warn_code |= ASC_WARN_SET_PCI_CONFIG_SPACE; 11915 warn_code |= ASC_WARN_SET_PCI_CONFIG_SPACE;
11928 } 11916 }
11929 prevCmdRegBits = DvcReadPCIConfigByte(asc_dvc, 11917 prevCmdRegBits = DvcReadPCIConfigByte(asc_dvc,
@@ -11943,15 +11931,15 @@ AscInitGetConfig(
11943 warn_code |= ASC_WARN_SET_PCI_CONFIG_SPACE; 11931 warn_code |= ASC_WARN_SET_PCI_CONFIG_SPACE;
11944 } 11932 }
11945 } 11933 }
11946 if ((PCIDeviceID == ASC_PCI_DEVICEID_1200A) || 11934 if ((PCIDeviceID == PCI_DEVICE_ID_ASP_1200A) ||
11947 (PCIDeviceID == ASC_PCI_DEVICEID_1200B)) { 11935 (PCIDeviceID == PCI_DEVICE_ID_ASP_ABP940)) {
11948 DvcWritePCIConfigByte(asc_dvc, 11936 DvcWritePCIConfigByte(asc_dvc,
11949 AscPCIConfigLatencyTimer, 0x00); 11937 AscPCIConfigLatencyTimer, 0x00);
11950 if (DvcReadPCIConfigByte(asc_dvc, AscPCIConfigLatencyTimer) 11938 if (DvcReadPCIConfigByte(asc_dvc, AscPCIConfigLatencyTimer)
11951 != 0x00) { 11939 != 0x00) {
11952 warn_code |= ASC_WARN_SET_PCI_CONFIG_SPACE; 11940 warn_code |= ASC_WARN_SET_PCI_CONFIG_SPACE;
11953 } 11941 }
11954 } else if (PCIDeviceID == ASC_PCI_DEVICEID_ULTRA) { 11942 } else if (PCIDeviceID == PCI_DEVICE_ID_ASP_ABP940U) {
11955 if (DvcReadPCIConfigByte(asc_dvc, 11943 if (DvcReadPCIConfigByte(asc_dvc,
11956 AscPCIConfigLatencyTimer) < 0x20) { 11944 AscPCIConfigLatencyTimer) < 0x20) {
11957 DvcWritePCIConfigByte(asc_dvc, 11945 DvcWritePCIConfigByte(asc_dvc,
@@ -12038,8 +12026,8 @@ AscInitFromAscDvcVar(
12038 AscSetChipCfgMsw(iop_base, cfg_msw); 12026 AscSetChipCfgMsw(iop_base, cfg_msw);
12039 if ((asc_dvc->bus_type & ASC_IS_PCI_ULTRA) == ASC_IS_PCI_ULTRA) { 12027 if ((asc_dvc->bus_type & ASC_IS_PCI_ULTRA) == ASC_IS_PCI_ULTRA) {
12040 } else { 12028 } else {
12041 if ((pci_device_id == ASC_PCI_DEVICE_ID_REV_A) || 12029 if ((pci_device_id == PCI_DEVICE_ID_ASP_1200A) ||
12042 (pci_device_id == ASC_PCI_DEVICE_ID_REV_B)) { 12030 (pci_device_id == PCI_DEVICE_ID_ASP_ABP940)) {
12043 asc_dvc->bug_fix_cntl |= ASC_BUG_FIX_IF_NOT_DWB; 12031 asc_dvc->bug_fix_cntl |= ASC_BUG_FIX_IF_NOT_DWB;
12044 asc_dvc->bug_fix_cntl |= ASC_BUG_FIX_ASYN_USE_SYN; 12032 asc_dvc->bug_fix_cntl |= ASC_BUG_FIX_ASYN_USE_SYN;
12045 } 12033 }
@@ -12374,7 +12362,7 @@ AscInitFromEEP(ASC_DVC_VAR *asc_dvc)
12374 ASC_PRINT1( 12362 ASC_PRINT1(
12375"AscInitFromEEP: Failed to re-write EEPROM with %d errors.\n", i); 12363"AscInitFromEEP: Failed to re-write EEPROM with %d errors.\n", i);
12376 } else { 12364 } else {
12377 ASC_PRINT("AscInitFromEEP: Succesfully re-wrote EEPROM."); 12365 ASC_PRINT("AscInitFromEEP: Successfully re-wrote EEPROM.\n");
12378 } 12366 }
12379 } 12367 }
12380 return (warn_code); 12368 return (warn_code);
@@ -14276,8 +14264,8 @@ Default_38C0800_EEPROM_Config __initdata = {
14276 0, /* 55 reserved */ 14264 0, /* 55 reserved */
14277 0, /* 56 cisptr_lsw */ 14265 0, /* 56 cisptr_lsw */
14278 0, /* 57 cisprt_msw */ 14266 0, /* 57 cisprt_msw */
14279 ADV_PCI_VENDOR_ID, /* 58 subsysvid */ 14267 PCI_VENDOR_ID_ASP, /* 58 subsysvid */
14280 ADV_PCI_DEVID_38C0800_REV1, /* 59 subsysid */ 14268 PCI_DEVICE_ID_38C0800_REV1, /* 59 subsysid */
14281 0, /* 60 reserved */ 14269 0, /* 60 reserved */
14282 0, /* 61 reserved */ 14270 0, /* 61 reserved */
14283 0, /* 62 reserved */ 14271 0, /* 62 reserved */
@@ -14406,8 +14394,8 @@ Default_38C1600_EEPROM_Config __initdata = {
14406 0, /* 55 reserved */ 14394 0, /* 55 reserved */
14407 0, /* 56 cisptr_lsw */ 14395 0, /* 56 cisptr_lsw */
14408 0, /* 57 cisprt_msw */ 14396 0, /* 57 cisprt_msw */
14409 ADV_PCI_VENDOR_ID, /* 58 subsysvid */ 14397 PCI_VENDOR_ID_ASP, /* 58 subsysvid */
14410 ADV_PCI_DEVID_38C1600_REV1, /* 59 subsysid */ 14398 PCI_DEVICE_ID_38C1600_REV1, /* 59 subsysid */
14411 0, /* 60 reserved */ 14399 0, /* 60 reserved */
14412 0, /* 61 reserved */ 14400 0, /* 61 reserved */
14413 0, /* 62 reserved */ 14401 0, /* 62 reserved */
@@ -17316,7 +17304,7 @@ AdvWaitEEPCmd(AdvPortAddr iop_base)
17316/* 17304/*
17317 * Write the EEPROM from 'cfg_buf'. 17305 * Write the EEPROM from 'cfg_buf'.
17318 */ 17306 */
17319void 17307void __init
17320AdvSet3550EEPConfig(AdvPortAddr iop_base, ADVEEP_3550_CONFIG *cfg_buf) 17308AdvSet3550EEPConfig(AdvPortAddr iop_base, ADVEEP_3550_CONFIG *cfg_buf)
17321{ 17309{
17322 ushort *wbuf; 17310 ushort *wbuf;
@@ -17383,7 +17371,7 @@ AdvSet3550EEPConfig(AdvPortAddr iop_base, ADVEEP_3550_CONFIG *cfg_buf)
17383/* 17371/*
17384 * Write the EEPROM from 'cfg_buf'. 17372 * Write the EEPROM from 'cfg_buf'.
17385 */ 17373 */
17386void 17374void __init
17387AdvSet38C0800EEPConfig(AdvPortAddr iop_base, 17375AdvSet38C0800EEPConfig(AdvPortAddr iop_base,
17388 ADVEEP_38C0800_CONFIG *cfg_buf) 17376 ADVEEP_38C0800_CONFIG *cfg_buf)
17389{ 17377{
@@ -17451,7 +17439,7 @@ AdvSet38C0800EEPConfig(AdvPortAddr iop_base,
17451/* 17439/*
17452 * Write the EEPROM from 'cfg_buf'. 17440 * Write the EEPROM from 'cfg_buf'.
17453 */ 17441 */
17454void 17442void __init
17455AdvSet38C1600EEPConfig(AdvPortAddr iop_base, 17443AdvSet38C1600EEPConfig(AdvPortAddr iop_base,
17456 ADVEEP_38C1600_CONFIG *cfg_buf) 17444 ADVEEP_38C1600_CONFIG *cfg_buf)
17457{ 17445{
@@ -18226,3 +18214,22 @@ AdvInquiryHandling(
18226 } 18214 }
18227} 18215}
18228MODULE_LICENSE("Dual BSD/GPL"); 18216MODULE_LICENSE("Dual BSD/GPL");
18217
18218/* PCI Devices supported by this driver */
18219static struct pci_device_id advansys_pci_tbl[] __devinitdata = {
18220 { PCI_VENDOR_ID_ASP, PCI_DEVICE_ID_ASP_1200A,
18221 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
18222 { PCI_VENDOR_ID_ASP, PCI_DEVICE_ID_ASP_ABP940,
18223 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
18224 { PCI_VENDOR_ID_ASP, PCI_DEVICE_ID_ASP_ABP940U,
18225 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
18226 { PCI_VENDOR_ID_ASP, PCI_DEVICE_ID_ASP_ABP940UW,
18227 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
18228 { PCI_VENDOR_ID_ASP, PCI_DEVICE_ID_38C0800_REV1,
18229 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
18230 { PCI_VENDOR_ID_ASP, PCI_DEVICE_ID_38C1600_REV1,
18231 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
18232 { }
18233};
18234MODULE_DEVICE_TABLE(pci, advansys_pci_tbl);
18235