]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
qla2xxx: Use proper VPD/NVRAM regions with ISP8031 parts.
authorAndrew Vasquez <andrew.vasquez@qlogic.com>
Fri, 23 Dec 2011 20:09:55 +0000 (12:09 -0800)
committerMaxim Uvarov <maxim.uvarov@oracle.com>
Wed, 9 May 2012 00:40:54 +0000 (17:40 -0700)
JIRA key: V2632FC-142.

drivers/scsi/qla2xxx/qla_fw.h
drivers/scsi/qla2xxx/qla_sup.c

index c55f934c3fa9385b707fac151b6cd795d1f6cd2b..6d7d7758c797978bad64cc2fbcb5883a825b39fd 100644 (file)
@@ -1328,6 +1328,10 @@ struct qla_flt_header {
 #define FLT_REG_FCP_PRIO_0     0x87
 #define FLT_REG_FCP_PRIO_1     0x88
 #define FLT_REG_FCOE_FW                0xA4
+#define FLT_REG_FCOE_VPD_0     0xA9
+#define FLT_REG_FCOE_NVRAM_0   0xAA
+#define FLT_REG_FCOE_VPD_1     0xAB
+#define FLT_REG_FCOE_NVRAM_1   0xAC
 
 struct qla_flt_region {
        uint32_t code;
index dda9e72fcee912ca8f4e991567c73d69706f0840..be5b4cf39a79d682a0497d8693f496885c8063fb 100644 (file)
@@ -738,6 +738,8 @@ qla2xxx_get_flt_info(scsi_qla_host_t *vha, uint32_t flt_addr)
                        ha->flt_region_boot = start;
                        break;
                case FLT_REG_VPD_0:
+                       if (IS_QLA8031(ha))
+                               break;
                        ha->flt_region_vpd_nvram = start;
                        if (IS_QLA82XX(ha))
                                break;
@@ -745,16 +747,20 @@ qla2xxx_get_flt_info(scsi_qla_host_t *vha, uint32_t flt_addr)
                                ha->flt_region_vpd = start;
                        break;
                case FLT_REG_VPD_1:
-                       if (IS_QLA82XX(ha))
+                       if (IS_QLA82XX(ha) || IS_QLA8031(ha))
                                break;
                        if (!ha->flags.port0)
                                ha->flt_region_vpd = start;
                        break;
                case FLT_REG_NVRAM_0:
+                       if (IS_QLA8031(ha))
+                               break;
                        if (ha->flags.port0)
                                ha->flt_region_nvram = start;
                        break;
                case FLT_REG_NVRAM_1:
+                       if (IS_QLA8031(ha))
+                               break;
                        if (!ha->flags.port0)
                                ha->flt_region_nvram = start;
                        break;
@@ -795,6 +801,31 @@ qla2xxx_get_flt_info(scsi_qla_host_t *vha, uint32_t flt_addr)
                case FLT_REG_VPD_82XX:
                        ha->flt_region_vpd = start;
                        break;
+               case FLT_REG_FCOE_VPD_0:
+                       if (!IS_QLA8031(ha))
+                               break;
+                       ha->flt_region_vpd_nvram = start;
+                       if (ha->flags.port0)
+                               ha->flt_region_vpd = start;
+                       break;
+               case FLT_REG_FCOE_VPD_1:
+                       if (!IS_QLA8031(ha))
+                               break;
+                       if (!ha->flags.port0)
+                               ha->flt_region_vpd = start;
+                       break;
+               case FLT_REG_FCOE_NVRAM_0:
+                       if (!IS_QLA8031(ha))
+                               break;
+                       if (ha->flags.port0)
+                               ha->flt_region_nvram = start;
+                       break;
+               case FLT_REG_FCOE_NVRAM_1:
+                       if (!IS_QLA8031(ha))
+                               break;
+                       if (!ha->flags.port0)
+                               ha->flt_region_nvram = start;
+                       break;
                }
        }
        goto done;