[SCSI] bnx2i: removed the individual PCI DEVICE ID checking
authorEddie Wai <eddie.wai@broadcom.com>
Tue, 16 Oct 2012 00:31:37 +0000 (17:31 -0700)
committerJames Bottomley <JBottomley@Parallels.com>
Tue, 27 Nov 2012 04:59:43 +0000 (08:59 +0400)
Removed the individual PCI DEVICE ID checking inside bnx2i.  The device
type can easily be read from the corresponding cnic->flags.  This will
free bnx2i from having to get updated for every new device ID that gets
added.

Signed-off-by: Eddie Wai <eddie.wai@broadcom.com>
Acked-by: Michael Chan <mchan@broadcom.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/bnx2i/bnx2i.h
drivers/scsi/bnx2i/bnx2i_init.c
drivers/scsi/bnx2i/bnx2i_iscsi.c

index 3f9e706..b44d04e 100644 (file)
@@ -800,7 +800,7 @@ extern struct device_attribute *bnx2i_dev_attributes[];
 /*
  * Function Prototypes
  */
-extern void bnx2i_identify_device(struct bnx2i_hba *hba);
+extern void bnx2i_identify_device(struct bnx2i_hba *hba, struct cnic_dev *dev);
 
 extern void bnx2i_ulp_init(struct cnic_dev *dev);
 extern void bnx2i_ulp_exit(struct cnic_dev *dev);
index b17637a..ee009e4 100644 (file)
@@ -79,42 +79,33 @@ static struct notifier_block bnx2i_cpu_notifier = {
 /**
  * bnx2i_identify_device - identifies NetXtreme II device type
  * @hba:               Adapter structure pointer
+ * @cnic:              Corresponding cnic device
  *
  * This function identifies the NX2 device type and sets appropriate
  *     queue mailbox register access method, 5709 requires driver to
  *     access MBOX regs using *bin* mode
  */
-void bnx2i_identify_device(struct bnx2i_hba *hba)
+void bnx2i_identify_device(struct bnx2i_hba *hba, struct cnic_dev *dev)
 {
        hba->cnic_dev_type = 0;
-       if ((hba->pci_did == PCI_DEVICE_ID_NX2_5706) ||
-           (hba->pci_did == PCI_DEVICE_ID_NX2_5706S))
-               set_bit(BNX2I_NX2_DEV_5706, &hba->cnic_dev_type);
-       else if ((hba->pci_did == PCI_DEVICE_ID_NX2_5708) ||
-           (hba->pci_did == PCI_DEVICE_ID_NX2_5708S))
-               set_bit(BNX2I_NX2_DEV_5708, &hba->cnic_dev_type);
-       else if ((hba->pci_did == PCI_DEVICE_ID_NX2_5709) ||
-           (hba->pci_did == PCI_DEVICE_ID_NX2_5709S)) {
-               set_bit(BNX2I_NX2_DEV_5709, &hba->cnic_dev_type);
-               hba->mail_queue_access = BNX2I_MQ_BIN_MODE;
-       } else if (hba->pci_did == PCI_DEVICE_ID_NX2_57710    ||
-                  hba->pci_did == PCI_DEVICE_ID_NX2_57711    ||
-                  hba->pci_did == PCI_DEVICE_ID_NX2_57711E   ||
-                  hba->pci_did == PCI_DEVICE_ID_NX2_57712    ||
-                  hba->pci_did == PCI_DEVICE_ID_NX2_57712E   ||
-                  hba->pci_did == PCI_DEVICE_ID_NX2_57800    ||
-                  hba->pci_did == PCI_DEVICE_ID_NX2_57800_MF ||
-                  hba->pci_did == PCI_DEVICE_ID_NX2_57800_VF ||
-                  hba->pci_did == PCI_DEVICE_ID_NX2_57810    ||
-                  hba->pci_did == PCI_DEVICE_ID_NX2_57810_MF ||
-                  hba->pci_did == PCI_DEVICE_ID_NX2_57810_VF ||
-                  hba->pci_did == PCI_DEVICE_ID_NX2_57840    ||
-                  hba->pci_did == PCI_DEVICE_ID_NX2_57840_MF ||
-                  hba->pci_did == PCI_DEVICE_ID_NX2_57840_VF)
+       if (test_bit(CNIC_F_BNX2_CLASS, &dev->flags)) {
+               if (hba->pci_did == PCI_DEVICE_ID_NX2_5706 ||
+                   hba->pci_did == PCI_DEVICE_ID_NX2_5706S) {
+                       set_bit(BNX2I_NX2_DEV_5706, &hba->cnic_dev_type);
+               } else if (hba->pci_did == PCI_DEVICE_ID_NX2_5708 ||
+                   hba->pci_did == PCI_DEVICE_ID_NX2_5708S) {
+                       set_bit(BNX2I_NX2_DEV_5708, &hba->cnic_dev_type);
+               } else if (hba->pci_did == PCI_DEVICE_ID_NX2_5709 ||
+                   hba->pci_did == PCI_DEVICE_ID_NX2_5709S) {
+                       set_bit(BNX2I_NX2_DEV_5709, &hba->cnic_dev_type);
+                       hba->mail_queue_access = BNX2I_MQ_BIN_MODE;
+               }
+       } else if (test_bit(CNIC_F_BNX2X_CLASS, &dev->flags)) {
                set_bit(BNX2I_NX2_DEV_57710, &hba->cnic_dev_type);
-       else
+       } else {
                printk(KERN_ALERT "bnx2i: unknown device, 0x%x\n",
                                  hba->pci_did);
+       }
 }
 
 
index 3b34c13..0056e47 100644 (file)
@@ -808,7 +808,7 @@ struct bnx2i_hba *bnx2i_alloc_hba(struct cnic_dev *cnic)
        hba->pci_func = PCI_FUNC(hba->pcidev->devfn);
        hba->pci_devno = PCI_SLOT(hba->pcidev->devfn);
 
-       bnx2i_identify_device(hba);
+       bnx2i_identify_device(hba, cnic);
        bnx2i_setup_host_queue_size(hba, shost);
 
        hba->reg_base = pci_resource_start(hba->pcidev, 0);