]> git.karo-electronics.de Git - mv-sheeva.git/commitdiff
Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-for-linus-2.6
authorLinus Torvalds <torvalds@g5.osdl.org>
Tue, 26 Jul 2005 20:28:47 +0000 (13:28 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 26 Jul 2005 20:28:47 +0000 (13:28 -0700)
1  2 
drivers/message/fusion/mptfc.c
drivers/message/fusion/mptscsih.c
drivers/message/fusion/mptscsih.h
drivers/message/fusion/mptspi.c
drivers/scsi/aacraid/commctrl.c
drivers/scsi/libata-core.c
drivers/scsi/megaraid.c
drivers/scsi/scsi_lib.c
include/linux/pci_ids.h

index 353deb25e3978bb300865be18affdbb455545e4a,29f66de4e8f16ef7ac421b9216fcff7f598deb25..13771abea13f28f075bab7e338f787221bcbc9fd
@@@ -83,19 -83,6 +83,6 @@@ static int   mptfcDoneCtx = -1
  static int    mptfcTaskCtx = -1;
  static int    mptfcInternalCtx = -1; /* Used only for internal commands */
  
- static struct device_attribute mptfc_queue_depth_attr = {
-       .attr = {
-               .name =         "queue_depth",
-               .mode =         S_IWUSR,
-       },
-       .store = mptscsih_store_queue_depth,
- };
- static struct device_attribute *mptfc_dev_attrs[] = {
-       &mptfc_queue_depth_attr,
-       NULL,
- };
  static struct scsi_host_template mptfc_driver_template = {
        .proc_name                      = "mptfc",
        .proc_info                      = mptscsih_proc_info,
        .slave_alloc                    = mptscsih_slave_alloc,
        .slave_configure                = mptscsih_slave_configure,
        .slave_destroy                  = mptscsih_slave_destroy,
+       .change_queue_depth             = mptscsih_change_queue_depth,
        .eh_abort_handler               = mptscsih_abort,
        .eh_device_reset_handler        = mptscsih_dev_reset,
        .eh_bus_reset_handler           = mptscsih_bus_reset,
        .max_sectors                    = 8192,
        .cmd_per_lun                    = 7,
        .use_clustering                 = ENABLE_CLUSTERING,
-       .sdev_attrs                     = mptfc_dev_attrs,
  };
  
  /****************************************************************************
@@@ -267,10 -254,6 +254,6 @@@ mptfc_probe(struct pci_dev *pdev, cons
                sh->sg_tablesize = numSGE;
        }
  
-       /* Set the pci device pointer in Scsi_Host structure.
-        */
-       scsi_set_device(sh, &ioc->pcidev->dev);
        spin_unlock_irqrestore(&ioc->FreeQlock, flags);
  
        hd = (MPT_SCSI_HOST *) sh->hostdata;
@@@ -364,7 -347,9 +347,7 @@@ static struct pci_driver mptfc_driver 
        .id_table       = mptfc_pci_table,
        .probe          = mptfc_probe,
        .remove         = __devexit_p(mptscsih_remove),
 -      .driver         = {
 -              .shutdown = mptscsih_shutdown,
 -        },
 +      .shutdown       = mptscsih_shutdown,
  #ifdef CONFIG_PM
        .suspend        = mptscsih_suspend,
        .resume         = mptscsih_resume,
index 4f973a49be4c125e8634dcd29db4ec5649ecc520,364c49cb74829ab36c3207224efa8a1faad4b42b..b9d4f78725b456e073ec0bf8e4573ea7e4259edb
@@@ -170,7 -170,7 +170,7 @@@ static void        mptscsih_fillbuf(char *buff
  #endif
  
  void          mptscsih_remove(struct pci_dev *);
 -void          mptscsih_shutdown(struct device *);
 +void          mptscsih_shutdown(struct pci_dev *);
  #ifdef CONFIG_PM
  int           mptscsih_suspend(struct pci_dev *pdev, pm_message_t state);
  int           mptscsih_resume(struct pci_dev *pdev);
@@@ -988,7 -988,7 +988,7 @@@ mptscsih_remove(struct pci_dev *pdev
  #endif
  #endif
  
 -      mptscsih_shutdown(&pdev->dev);
 +      mptscsih_shutdown(pdev);
  
        sz1=0;
  
   *
   */
  void
 -mptscsih_shutdown(struct device * dev)
 +mptscsih_shutdown(struct pci_dev *pdev)
  {
 -      MPT_ADAPTER             *ioc = pci_get_drvdata(to_pci_dev(dev));
 +      MPT_ADAPTER             *ioc = pci_get_drvdata(pdev);
        struct Scsi_Host        *host = ioc->sh;
        MPT_SCSI_HOST           *hd;
  
  int
  mptscsih_suspend(struct pci_dev *pdev, pm_message_t state)
  {
 -      mptscsih_shutdown(&pdev->dev);
 +      mptscsih_shutdown(pdev);
        return mpt_suspend(pdev,state);
  }
  
@@@ -2234,13 -2234,27 +2234,27 @@@ mptscsih_slave_destroy(struct scsi_devi
        }
  }
  
- static void
- mptscsih_set_queue_depth(struct scsi_device *device, MPT_SCSI_HOST *hd,
-       VirtDevice *pTarget, int qdepth)
+ /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
+ /*
+  *    mptscsih_change_queue_depth - This function will set a devices queue depth
+  *    @sdev: per scsi_device pointer
+  *    @qdepth: requested queue depth
+  *
+  *    Adding support for new 'change_queue_depth' api.
+ */
+ int
+ mptscsih_change_queue_depth(struct scsi_device *sdev, int qdepth)
  {
+       MPT_SCSI_HOST   *hd = (MPT_SCSI_HOST *)sdev->host->hostdata;
+       VirtDevice *pTarget;
        int     max_depth;
        int     tagged;
  
+       if (hd == NULL)
+               return 0;
+       if (!(pTarget = hd->Targets[sdev->id]))
+               return 0;
        if (hd->ioc->bus_type == SCSI) {
                if (pTarget->tflags & MPT_TARGET_FLAGS_VALID_INQUIRY) {
                        if (!(pTarget->tflags & MPT_TARGET_FLAGS_Q_YES))
        else
                tagged = MSG_SIMPLE_TAG;
  
-       scsi_adjust_queue_depth(device, tagged, qdepth);
+       scsi_adjust_queue_depth(sdev, tagged, qdepth);
+       return sdev->queue_depth;
  }
  
  /*
   *    OS entry point to adjust the queue_depths on a per-device basis.
   *    Called once per device the bus scan. Use it to force the queue_depth
@@@ -2317,7 -2331,7 +2331,7 @@@ mptscsih_slave_configure(struct scsi_de
  
        mptscsih_initTarget(hd, device->channel, device->id, device->lun,
                device->inquiry, device->inquiry_len );
-       mptscsih_set_queue_depth(device, hd, pTarget, MPT_SCSI_CMD_PER_DEV_HIGH);
+       mptscsih_change_queue_depth(device, MPT_SCSI_CMD_PER_DEV_HIGH);
  
        dsprintk((MYIOC_s_INFO_FMT
                "Queue depth=%d, tflags=%x\n",
@@@ -2337,25 -2351,6 +2351,6 @@@ slave_configure_exit
        return 0;
  }
  
- ssize_t
- mptscsih_store_queue_depth(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
- {
-       int                      depth;
-       struct scsi_device      *sdev = to_scsi_device(dev);
-       MPT_SCSI_HOST           *hd = (MPT_SCSI_HOST *) sdev->host->hostdata;
-       VirtDevice              *pTarget;
-       depth = simple_strtoul(buf, NULL, 0);
-       if (depth == 0)
-               return -EINVAL;
-       pTarget = hd->Targets[sdev->id];
-       if (pTarget == NULL)
-               return -EINVAL;
-       mptscsih_set_queue_depth(sdev, (MPT_SCSI_HOST *) sdev->host->hostdata,
-               pTarget, depth);
-       return count;
- }
  /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
  /*
   *  Private routines...
@@@ -5586,7 -5581,7 +5581,7 @@@ EXPORT_SYMBOL(mptscsih_taskmgmt_complet
  EXPORT_SYMBOL(mptscsih_scandv_complete);
  EXPORT_SYMBOL(mptscsih_event_process);
  EXPORT_SYMBOL(mptscsih_ioc_reset);
- EXPORT_SYMBOL(mptscsih_store_queue_depth);
+ EXPORT_SYMBOL(mptscsih_change_queue_depth);
  EXPORT_SYMBOL(mptscsih_timer_expired);
  
  /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
index debb8ac5954571a683e26e7e77023b8ec382665d,c202ce89a0ff7b4945db46741ed623aeb591bd2d..51c0255ac16ec23b9f5634c7f0fec1e3862caebd
@@@ -82,9 -82,9 +82,9 @@@
  #endif
  
  extern void mptscsih_remove(struct pci_dev *);
 -extern void mptscsih_shutdown(struct device *);
 +extern void mptscsih_shutdown(struct pci_dev *);
  #ifdef CONFIG_PM
 -extern int mptscsih_suspend(struct pci_dev *pdev, u32 state);
 +extern int mptscsih_suspend(struct pci_dev *pdev, pm_message_t state);
  extern int mptscsih_resume(struct pci_dev *pdev);
  #endif
  extern int mptscsih_proc_info(struct Scsi_Host *host, char *buffer, char **start, off_t offset, int length, int func);
@@@ -103,5 -103,5 +103,5 @@@ extern int mptscsih_taskmgmt_complete(M
  extern int mptscsih_scandv_complete(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *r);
  extern int mptscsih_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply);
  extern int mptscsih_ioc_reset(MPT_ADAPTER *ioc, int post_reset);
- extern ssize_t mptscsih_store_queue_depth(struct device *dev, struct device_attribute *attr, const char *buf, size_t count);
+ extern int mptscsih_change_queue_depth(struct scsi_device *sdev, int qdepth);
  extern void mptscsih_timer_expired(unsigned long data);
index e0c0ee5bc9662386e73c79af9ceded98d9623a72,a0a2e0afb21d5c47099aeae2a6fd3afb261a29c5..dfa8806b1e13d618875242352ab8ee32de0781b3
@@@ -102,19 -102,6 +102,6 @@@ static int        mptspiDoneCtx = -1
  static int    mptspiTaskCtx = -1;
  static int    mptspiInternalCtx = -1; /* Used only for internal commands */
  
- static struct device_attribute mptspi_queue_depth_attr = {
-       .attr = {
-               .name =         "queue_depth",
-               .mode =         S_IWUSR,
-       },
-       .store = mptscsih_store_queue_depth,
- };
- static struct device_attribute *mptspi_dev_attrs[] = {
-       &mptspi_queue_depth_attr,
-       NULL,
- };
  static struct scsi_host_template mptspi_driver_template = {
        .proc_name                      = "mptspi",
        .proc_info                      = mptscsih_proc_info,
        .slave_alloc                    = mptscsih_slave_alloc,
        .slave_configure                = mptscsih_slave_configure,
        .slave_destroy                  = mptscsih_slave_destroy,
+       .change_queue_depth             = mptscsih_change_queue_depth,
        .eh_abort_handler               = mptscsih_abort,
        .eh_device_reset_handler        = mptscsih_dev_reset,
        .eh_bus_reset_handler           = mptscsih_bus_reset,
        .max_sectors                    = 8192,
        .cmd_per_lun                    = 7,
        .use_clustering                 = ENABLE_CLUSTERING,
-       .sdev_attrs                     = mptspi_dev_attrs,
  };
  
  
@@@ -287,10 -274,6 +274,6 @@@ mptspi_probe(struct pci_dev *pdev, cons
                sh->sg_tablesize = numSGE;
        }
  
-       /* Set the pci device pointer in Scsi_Host structure.
-        */
-       scsi_set_device(sh, &ioc->pcidev->dev);
        spin_unlock_irqrestore(&ioc->FreeQlock, flags);
  
        hd = (MPT_SCSI_HOST *) sh->hostdata;
@@@ -419,7 -402,9 +402,7 @@@ static struct pci_driver mptspi_driver 
        .id_table       = mptspi_pci_table,
        .probe          = mptspi_probe,
        .remove         = __devexit_p(mptscsih_remove),
 -      .driver         = {
 -              .shutdown = mptscsih_shutdown,
 -        },
 +      .shutdown       = mptscsih_shutdown,
  #ifdef CONFIG_PM
        .suspend        = mptscsih_suspend,
        .resume         = mptscsih_resume,
index 390cd67c57c03fdbbc5bfe77177bbe6d85a8d1ff,d005ad77378d6e47ca124850c997ba3d84225ef8..85387099aab238db175a7b53a238a819f597ba3e
@@@ -469,7 -469,7 +469,7 @@@ static int aac_send_raw_srb(struct aac_
                goto cleanup;
        }
  
 -      user_srbcmd = kmalloc(GFP_KERNEL, fibsize);
 +      user_srbcmd = kmalloc(fibsize, GFP_KERNEL);
        if (!user_srbcmd) {
                dprintk((KERN_DEBUG"aacraid: Could not make a copy of the srb\n"));
                rcode = -ENOMEM;
        }
        if (dev->dac_support == 1) {
                struct user_sgmap64* upsg = (struct user_sgmap64*)&user_srbcmd->sg;
-               struct sgmap64* psg = (struct sgmap64*)&user_srbcmd->sg;
+               struct sgmap64* psg = (struct sgmap64*)&srbcmd->sg;
                struct user_sgmap* usg;
                byte_count = 0;
  
index cb535fa185b93453ca535bf8a28fe2366a904a06,fe1c72981f5a3f786af8be2cacdf6d1b3e69ca11..73b1f72b7e430989b261f1dd0c825d9ec02ad18e
@@@ -1408,9 -1408,7 +1408,9 @@@ void __sata_phy_reset(struct ata_port *
        if (ap->flags & ATA_FLAG_SATA_RESET) {
                /* issue phy wake/reset */
                scr_write_flush(ap, SCR_CONTROL, 0x301);
 -              udelay(400);                    /* FIXME: a guess */
 +              /* Couldn't find anything in SATA I/II specs, but
 +               * AHCI-1.1 10.4.2 says at least 1 ms. */
 +              mdelay(1);
        }
        scr_write_flush(ap, SCR_CONTROL, 0x300); /* phy wake/clear reset */
  
@@@ -1922,7 -1920,6 +1922,7 @@@ static const char * ata_dma_blacklist [
        "HITACHI CDR-8335",
        "HITACHI CDR-8435",
        "Toshiba CD-ROM XM-6202B",
 +      "TOSHIBA CD-ROM XM-1702BC",
        "CD-532E-A",
        "E-IDE CD-ROM CR-840",
        "CD-ROM Drive/F5A",
        "SAMSUNG CD-ROM SC-148C",
        "SAMSUNG CD-ROM SC",
        "SanDisk SDP3B-64",
 -      "SAMSUNG CD-ROM SN-124",
        "ATAPI CD-ROM DRIVE 40X MAXIMUM",
        "_NEC DV5800A",
  };
@@@ -2866,7 -2864,7 +2866,7 @@@ static void ata_qc_timeout(struct ata_q
        if (qc->dev->class == ATA_DEV_ATAPI && qc->scsicmd) {
                struct scsi_cmnd *cmd = qc->scsicmd;
  
-               if (!scsi_eh_eflags_chk(cmd, SCSI_EH_CANCEL_CMD)) {
+               if (!(cmd->eh_eflags & SCSI_EH_CANCEL_CMD)) {
  
                        /* finish completing original command */
                        __ata_qc_complete(qc);
@@@ -3750,7 -3748,7 +3750,7 @@@ static void ata_host_init(struct ata_po
        host->max_channel = 1;
        host->unique_id = ata_unique_id++;
        host->max_cmd_len = 12;
-       scsi_set_device(host, ent->dev);
        scsi_assign_lock(host, &host_set->lock);
  
        ap->flags = ATA_FLAG_PORT_DISABLED;
diff --combined drivers/scsi/megaraid.c
index a70cdf31311cc8b7841952ccb8138935eb228e75,6fe884a2d00d8be7b59d3dd2719515bde2216b0a..6f308ebe3e797857d02baae2679c96db8fd8bfbd
@@@ -35,6 -35,7 +35,7 @@@
  #include <linux/blkdev.h>
  #include <asm/uaccess.h>
  #include <asm/io.h>
+ #include <linux/completion.h>
  #include <linux/delay.h>
  #include <linux/proc_fs.h>
  #include <linux/reboot.h>
@@@ -1938,7 -1939,7 +1939,7 @@@ megaraid_abort(Scsi_Cmnd *cmd
  
  
  static int
__megaraid_reset(Scsi_Cmnd *cmd)
megaraid_reset(struct scsi_cmnd *cmd)
  {
        adapter_t       *adapter;
        megacmd_t       mc;
        mc.cmd = MEGA_CLUSTER_CMD;
        mc.opcode = MEGA_RESET_RESERVATIONS;
  
-       spin_unlock_irq(&adapter->lock);
        if( mega_internal_command(adapter, LOCK_INT, &mc, NULL) != 0 ) {
                printk(KERN_WARNING
                                "megaraid: reservation reset failed.\n");
        else {
                printk(KERN_INFO "megaraid: reservation reset.\n");
        }
-       spin_lock_irq(&adapter->lock);
  #endif
  
+       spin_lock_irq(&adapter->lock);
        rval =  megaraid_abort_and_reset(adapter, cmd, SCB_RESET);
  
        /*
         * to be communicated over to the mid layer.
         */
        mega_rundoneq(adapter);
-       return rval;
- }
- static int
- megaraid_reset(Scsi_Cmnd *cmd)
- {
-       adapter_t *adapter = (adapter_t *)cmd->device->host->hostdata;
-       int rc;
-       spin_lock_irq(&adapter->lock);
-       rc = __megaraid_reset(cmd);
        spin_unlock_irq(&adapter->lock);
  
-       return rc;
+       return rval;
  }
  
  /**
   * megaraid_abort_and_reset()
   * @adapter - megaraid soft state
@@@ -4490,8 -4478,6 +4478,6 @@@ mega_internal_command(adapter_t *adapte
  
        scb->idx = CMDID_INT_CMDS;
  
-       scmd->state = 0;
        /*
         * Get the lock only if the caller has not acquired it already
         */
  
        if( ls == LOCK_INT ) spin_unlock_irqrestore(&adapter->lock, flags);
  
-       /*
-        * Wait till this command finishes. Do not use
-        * wait_event_interruptible(). It causes panic if CTRL-C is hit when
-        * dumping e.g., physical disk information through /proc interface.
-        */
- #if 0
-       wait_event_interruptible(adapter->int_waitq, scmd->state);
- #endif
-       wait_event(adapter->int_waitq, scmd->state);
+       wait_for_completion(&adapter->int_waitq);
  
        rval = scmd->result;
        mc->status = scmd->result;
@@@ -4543,16 -4521,7 +4521,7 @@@ mega_internal_done(Scsi_Cmnd *scmd
  
        adapter = (adapter_t *)scmd->device->host->hostdata;
  
-       scmd->state = 1; /* thread waiting for its command to complete */
-       /*
-        * See comment in mega_internal_command() routine for
-        * wait_event_interruptible()
-        */
- #if 0
-       wake_up_interruptible(&adapter->int_waitq);
- #endif
-       wake_up(&adapter->int_waitq);
+       complete(&adapter->int_waitq);
  
  }
  
@@@ -4874,7 -4843,7 +4843,7 @@@ megaraid_probe_one(struct pci_dev *pdev
        }
                
        init_MUTEX(&adapter->int_mtx);
-       init_waitqueue_head(&adapter->int_waitq);
+       init_completion(&adapter->int_waitq);
  
        adapter->this_id = DEFAULT_INITIATOR_ID;
        adapter->host->this_id = DEFAULT_INITIATOR_ID;
@@@ -5036,9 -5005,9 +5005,9 @@@ megaraid_remove_one(struct pci_dev *pde
  }
  
  static void
 -megaraid_shutdown(struct device *dev)
 +megaraid_shutdown(struct pci_dev *pdev)
  {
 -      struct Scsi_Host *host = pci_get_drvdata(to_pci_dev(dev));
 +      struct Scsi_Host *host = pci_get_drvdata(pdev);
        adapter_t *adapter = (adapter_t *)host->hostdata;
  
        __megaraid_shutdown(adapter);
@@@ -5070,7 -5039,9 +5039,7 @@@ static struct pci_driver megaraid_pci_d
        .id_table       = megaraid_pci_tbl,
        .probe          = megaraid_probe_one,
        .remove         = __devexit_p(megaraid_remove_one),
 -      .driver         = {
 -              .shutdown = megaraid_shutdown,
 -      },
 +      .shutdown       = megaraid_shutdown,
  };
  
  static int __init megaraid_init(void)
diff --combined drivers/scsi/scsi_lib.c
index 10506f9cd0c929da622b667c22fcee071c522bd2,cab535809d0d6a0bdb9f85d0d8653a755d32f494..7a91ca3d32a6cb343a8a533368a5956afbea18d6
@@@ -145,12 -145,6 +145,6 @@@ int scsi_queue_insert(struct scsi_cmnd 
        else if (reason == SCSI_MLQUEUE_DEVICE_BUSY)
                device->device_blocked = device->max_device_blocked;
  
-       /*
-        * Register the fact that we own the thing for now.
-        */
-       cmd->state = SCSI_STATE_MLQUEUE;
-       cmd->owner = SCSI_OWNER_MIDLEVEL;
        /*
         * Decrement the counters, since these commands are no longer
         * active on the host/device.
@@@ -299,9 -293,7 +293,7 @@@ EXPORT_SYMBOL(scsi_wait_req)
   */
  static int scsi_init_cmd_errh(struct scsi_cmnd *cmd)
  {
-       cmd->owner = SCSI_OWNER_MIDLEVEL;
        cmd->serial_number = 0;
-       cmd->abort_reason = 0;
  
        memset(cmd->sense_buffer, 0, sizeof cmd->sense_buffer);
  
        memcpy(cmd->data_cmnd, cmd->cmnd, sizeof(cmd->cmnd));
        cmd->buffer = cmd->request_buffer;
        cmd->bufflen = cmd->request_bufflen;
-       cmd->abort_reason = 0;
  
        return 1;
  }
@@@ -623,8 -614,6 +614,6 @@@ static struct scatterlist *scsi_alloc_s
  
        sgp = scsi_sg_pools + cmd->sglist_len;
        sgl = mempool_alloc(sgp->pool, gfp_mask);
-       if (sgl)
-               memset(sgl, 0, sgp->size);
        return sgl;
  }
  
@@@ -632,7 -621,7 +621,7 @@@ static void scsi_free_sgtable(struct sc
  {
        struct scsi_host_sg_pool *sgp;
  
 -      BUG_ON(index > SG_MEMPOOL_NR);
 +      BUG_ON(index >= SG_MEMPOOL_NR);
  
        sgp = scsi_sg_pools + index;
        mempool_free(sgl, sgp->pool);
diff --combined include/linux/pci_ids.h
index 9a28b312eeb4905dc102e006c1f118552883384e,f4c2c393797d7267b9b834ecd0a4ff223844833f..41aa32b2869c11fb1b9ac171ec152fd66beb206a
@@@ -62,8 -62,6 +62,8 @@@
  
  #define PCI_BASE_CLASS_SYSTEM         0x08
  #define PCI_CLASS_SYSTEM_PIC          0x0800
 +#define PCI_CLASS_SYSTEM_PIC_IOAPIC   0x080010
 +#define PCI_CLASS_SYSTEM_PIC_IOXAPIC  0x080020
  #define PCI_CLASS_SYSTEM_DMA          0x0801
  #define PCI_CLASS_SYSTEM_TIMER                0x0802
  #define PCI_CLASS_SYSTEM_RTC          0x0803
  #define PCI_DEVICE_ID_HP_DIVA_AUX     0x1290
  #define PCI_DEVICE_ID_HP_DIVA_RMP3    0x1301
  #define PCI_DEVICE_ID_HP_CISSA                0x3220
 -#define PCI_DEVICE_ID_HP_CISSB                0x3230
 +#define PCI_DEVICE_ID_HP_CISSB                0x3222
  #define PCI_DEVICE_ID_HP_ZX2_IOC      0x4031
 +#define PCI_DEVICE_ID_HP_CISSC                0x3230
  
  #define PCI_VENDOR_ID_PCTECH          0x1042
  #define PCI_DEVICE_ID_PCTECH_RZ1000   0x1000
  #define PCI_DEVICE_ID_QLOGIC_ISP1022  0x1022
  #define PCI_DEVICE_ID_QLOGIC_ISP2100  0x2100
  #define PCI_DEVICE_ID_QLOGIC_ISP2200  0x2200
+ #define PCI_DEVICE_ID_QLOGIC_ISP2300  0x2300
+ #define PCI_DEVICE_ID_QLOGIC_ISP2312  0x2312
+ #define PCI_DEVICE_ID_QLOGIC_ISP2322  0x2322
+ #define PCI_DEVICE_ID_QLOGIC_ISP6312  0x6312
+ #define PCI_DEVICE_ID_QLOGIC_ISP6322  0x6322
+ #define PCI_DEVICE_ID_QLOGIC_ISP2422  0x2422
+ #define PCI_DEVICE_ID_QLOGIC_ISP2432  0x2432
+ #define PCI_DEVICE_ID_QLOGIC_ISP2512  0x2512
+ #define PCI_DEVICE_ID_QLOGIC_ISP2522  0x2522
  
  #define PCI_VENDOR_ID_CYRIX           0x1078
  #define PCI_DEVICE_ID_CYRIX_5510      0x0000
  #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_IDE 0x0265
  #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA        0x0266
  #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA2       0x0267
 +#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_IDE 0x036E
  #define PCI_DEVICE_ID_NVIDIA_NVENET_12                0x0268
  #define PCI_DEVICE_ID_NVIDIA_NVENET_13                0x0269
  #define PCI_DEVICE_ID_NVIDIA_MCP51_AUDIO      0x026B
  #define PCI_DEVICE_ID_NVIDIA_GEFORCE_FX_GO5700_2    0x0348
  #define PCI_DEVICE_ID_NVIDIA_QUADRO_FX_GO1000       0x034C
  #define PCI_DEVICE_ID_NVIDIA_QUADRO_FX_1100         0x034E
 +#define PCI_DEVICE_ID_NVIDIA_NVENET_14              0x0372
 +#define PCI_DEVICE_ID_NVIDIA_NVENET_15              0x0373
  
  #define PCI_VENDOR_ID_IMS             0x10e0
  #define PCI_DEVICE_ID_IMS_8849                0x8849
  #define PCI_VENDOR_ID_ITE             0x1283
  #define PCI_DEVICE_ID_ITE_IT8172G     0x8172
  #define PCI_DEVICE_ID_ITE_IT8172G_AUDIO 0x0801
 +#define PCI_DEVICE_ID_ITE_8211                0x8211
 +#define PCI_DEVICE_ID_ITE_8212                0x8212
  #define PCI_DEVICE_ID_ITE_8872                0x8872
  #define PCI_DEVICE_ID_ITE_IT8330G_0   0xe886
  
  #define PCI_DEVICE_ID_CBOARDS_DAS1602_16 0x0001
  
  #define PCI_VENDOR_ID_SIIG            0x131f
 +#define PCI_SUBVENDOR_ID_SIIG         0x131f
  #define PCI_DEVICE_ID_SIIG_1S_10x_550 0x1000
  #define PCI_DEVICE_ID_SIIG_1S_10x_650 0x1001
  #define PCI_DEVICE_ID_SIIG_1S_10x_850 0x1002
  #define PCI_DEVICE_ID_SIIG_2S1P_20x_550       0x2060
  #define PCI_DEVICE_ID_SIIG_2S1P_20x_650       0x2061
  #define PCI_DEVICE_ID_SIIG_2S1P_20x_850       0x2062
 +#define PCI_SUBDEVICE_ID_SIIG_QUARTET_SERIAL  0x2050
  
  #define PCI_VENDOR_ID_RADISYS         0x1331
  #define PCI_DEVICE_ID_RADISYS_ENP2611 0x0030