ATTO SAS controllers retrieve the SAS address from the NVRAM in a location
different from non-ATTO PMC Sierra SAS controllers.  This patch makes the
necessary adjustments in order to retrieve the SAS address on these types
of adapters.

Signed-off-by: Benjamin Rood <br...@attotech.com>
---
Changes from v1 -> v2:
        -Fixed indentation issues noted by Hannes and Jack

 drivers/scsi/pm8001/pm8001_init.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/scsi/pm8001/pm8001_init.c 
b/drivers/scsi/pm8001/pm8001_init.c
index feaf504..861416f 100644
--- a/drivers/scsi/pm8001/pm8001_init.c
+++ b/drivers/scsi/pm8001/pm8001_init.c
@@ -636,6 +636,11 @@ static void pm8001_init_sas_add(struct pm8001_hba_info 
*pm8001_ha)
                        payload.minor_function = 0;
                        payload.length = 128;
                }
+       } else if ((pm8001_ha->chip_id == chip_8070 ||
+                       pm8001_ha->chip_id == chip_8072) &&
+                       pm8001_ha->pdev->subsystem_vendor == 
PCI_VENDOR_ID_ATTO) {
+               payload.minor_function = 4;
+               payload.length = 4096;
        } else {
                payload.minor_function = 1;
                payload.length = 4096;
@@ -662,6 +667,11 @@ static void pm8001_init_sas_add(struct pm8001_hba_info 
*pm8001_ha)
                        else if (deviceid == 0x0042)
                                pm8001_ha->sas_addr[j] =
                                        payload.func_specific[0x010 + i];
+               } else if ((pm8001_ha->chip_id == chip_8070 ||
+                               pm8001_ha->chip_id == chip_8072) &&
+                               pm8001_ha->pdev->subsystem_vendor == 
PCI_VENDOR_ID_ATTO) {
+                       pm8001_ha->sas_addr[j] =
+                                       payload.func_specific[0x010 + i];
                } else
                        pm8001_ha->sas_addr[j] =
                                        payload.func_specific[0x804 + i];
-- 
2.4.3

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to