[SCSI] pm80xx: Read saved WWN from NVMD for ATTO pm8001 based HBAs.
authorBradley Grove <bgrove@attotech.com>
Thu, 19 Dec 2013 15:50:56 +0000 (10:50 -0500)
committerJames Bottomley <JBottomley@Parallels.com>
Sat, 15 Mar 2014 17:18:58 +0000 (10:18 -0700)
Signed-off-by: Bradley Grove <bgrove@attotech.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/pm8001/pm8001_init.c

index 73a120d81b4dacf7c22e3b99c07458680dacbaf5..cb89d15b3028c0cc120adc1556b71937d29110b2 100644 (file)
@@ -625,7 +625,7 @@ static void pm8001_init_sas_add(struct pm8001_hba_info *pm8001_ha)
        pm8001_ha->nvmd_completion = &completion;
 
        if (pm8001_ha->chip_id == chip_8001) {
-               if (deviceid == 0x8081) {
+               if (deviceid == 0x8081 || deviceid == 0x0042) {
                        payload.minor_function = 4;
                        payload.length = 4096;
                } else {
@@ -646,6 +646,9 @@ static void pm8001_init_sas_add(struct pm8001_hba_info *pm8001_ha)
                        if (deviceid == 0x8081)
                                pm8001_ha->sas_addr[j] =
                                        payload.func_specific[0x704 + i];
+                       else if (deviceid == 0x0042)
+                               pm8001_ha->sas_addr[j] =
+                                       payload.func_specific[0x010 + i];
                } else
                        pm8001_ha->sas_addr[j] =
                                        payload.func_specific[0x804 + i];
@@ -1072,10 +1075,7 @@ err_out_enable:
  */
 static struct pci_device_id pm8001_pci_table[] = {
        { PCI_VDEVICE(PMC_Sierra, 0x8001), chip_8001 },
-       {
-               PCI_DEVICE(0x117c, 0x0042),
-               .driver_data = chip_8001
-       },
+       { PCI_VDEVICE(ATTO, 0x0042), chip_8001 },
        /* Support for SPC/SPCv/SPCve controllers */
        { PCI_VDEVICE(ADAPTEC2, 0x8001), chip_8001 },
        { PCI_VDEVICE(PMC_Sierra, 0x8008), chip_8008 },