Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKernel Build Daemon <kbuild@suse.de>2018-05-26 07:04:22 +0200
committerKernel Build Daemon <kbuild@suse.de>2018-05-26 07:04:22 +0200
commitdecd2a7c819f4e90b9ae69aa03747ac375289d59 (patch)
tree9ab74fd29a4f5d246431c05e8288a3c99577d4f2
parentb5dea6e987f73dcfb8bfada4fe96dc3dcfb6ab6c (diff)
parent5c499a73954f783d6bd925efa76b3bfe5f18aad9 (diff)
Merge branch 'SLE15' into SLE12-SP4
-rw-r--r--drivers/scsi/lpfc/lpfc_hw4.h11
-rw-r--r--drivers/scsi/lpfc/lpfc_init.c30
-rw-r--r--drivers/scsi/lpfc/lpfc_sli4.h1
3 files changed, 19 insertions, 23 deletions
diff --git a/drivers/scsi/lpfc/lpfc_hw4.h b/drivers/scsi/lpfc/lpfc_hw4.h
index 9df1c8da6f52..4c5b02a55289 100644
--- a/drivers/scsi/lpfc/lpfc_hw4.h
+++ b/drivers/scsi/lpfc/lpfc_hw4.h
@@ -104,17 +104,6 @@ struct lpfc_sli_intf {
#define LPFC_SLI_INTF_IF_TYPE_VIRT 1
};
-struct lpfc_sli_asic_rev {
- u32 word0;
-#define LPFC_SLI_ASIC_VER_A 0x0
-#define LPFC_SLI_ASIC_VER_B 0x1
-#define LPFC_SLI_ASIC_VER_C 0x2
-#define LPFC_SLI_ASIC_VER_D 0x3
-#define lpfc_sli_asic_ver_SHIFT 4
-#define lpfc_sli_asic_ver_MASK 0x0000000F
-#define lpfc_sli_asic_ver_WORD word0
-};
-
#define LPFC_SLI4_MBX_EMBED true
#define LPFC_SLI4_MBX_NEMBED false
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index 87b45d36b5ca..d8eebb539e11 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -5845,6 +5845,8 @@ lpfc_sli4_driver_resource_setup(struct lpfc_hba *phba)
int fof_vectors = 0;
int extra;
uint64_t wwn;
+ u32 if_type;
+ u32 if_fam;
phba->sli4_hba.num_online_cpu = num_online_cpus();
phba->sli4_hba.num_present_cpu = lpfc_present_cpu;
@@ -6167,15 +6169,28 @@ lpfc_sli4_driver_resource_setup(struct lpfc_hba *phba)
*/
rc = lpfc_get_sli4_parameters(phba, mboxq);
if (rc) {
+ if_type = bf_get(lpfc_sli_intf_if_type,
+ &phba->sli4_hba.sli_intf);
+ if_fam = bf_get(lpfc_sli_intf_sli_family,
+ &phba->sli4_hba.sli_intf);
if (phba->sli4_hba.extents_in_use &&
phba->sli4_hba.rpi_hdrs_in_use) {
lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
"2999 Unsupported SLI4 Parameters "
"Extents and RPI headers enabled.\n");
+ if (if_type == LPFC_SLI_INTF_IF_TYPE_0 &&
+ if_fam == LPFC_SLI_INTF_FAMILY_BE2) {
+ mempool_free(mboxq, phba->mbox_mem_pool);
+ rc = -EIO;
+ goto out_free_bsmbx;
+ }
+ }
+ if (!(if_type == LPFC_SLI_INTF_IF_TYPE_0 &&
+ if_fam == LPFC_SLI_INTF_FAMILY_BE2)) {
+ mempool_free(mboxq, phba->mbox_mem_pool);
+ rc = -EIO;
+ goto out_free_bsmbx;
}
- mempool_free(mboxq, phba->mbox_mem_pool);
- rc = -EIO;
- goto out_free_bsmbx;
}
mempool_free(mboxq, phba->mbox_mem_pool);
@@ -9509,11 +9524,6 @@ lpfc_sli4_pci_mem_setup(struct lpfc_hba *phba)
return error;
}
- if (pci_read_config_dword(pdev, LPFC_SLI_ASIC_VER,
- &phba->sli4_hba.sli_asic_ver.word0)) {
- return error;
- }
-
/* There is no SLI3 failback for SLI4 devices. */
if (bf_get(lpfc_sli_intf_valid, &phba->sli4_hba.sli_intf) !=
LPFC_SLI_INTF_VALID) {
@@ -10675,9 +10685,7 @@ lpfc_get_sli4_parameters(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq)
if ((bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) ==
LPFC_SLI_INTF_IF_TYPE_2) &&
(bf_get(lpfc_sli_intf_sli_family, &phba->sli4_hba.sli_intf) ==
- LPFC_SLI_INTF_FAMILY_LNCR_A0) &&
- (bf_get(lpfc_sli_asic_ver, &phba->sli4_hba.sli_asic_ver) ==
- LPFC_SLI_ASIC_VER_A))
+ LPFC_SLI_INTF_FAMILY_LNCR_A0))
exp_wqcq_pages = false;
if ((bf_get(cfg_cqpsize, mbx_sli4_parameters) & LPFC_CQ_16K_PAGE_SZ) &&
diff --git a/drivers/scsi/lpfc/lpfc_sli4.h b/drivers/scsi/lpfc/lpfc_sli4.h
index 179e870a00b4..cf64aca82bd0 100644
--- a/drivers/scsi/lpfc/lpfc_sli4.h
+++ b/drivers/scsi/lpfc/lpfc_sli4.h
@@ -592,7 +592,6 @@ struct lpfc_sli4_hba {
uint32_t ue_to_sr;
uint32_t ue_to_rp;
struct lpfc_register sli_intf;
- struct lpfc_register sli_asic_ver;
struct lpfc_pc_sli4_params pc_sli4_params;
struct lpfc_bbscn_params bbscn_params;
struct lpfc_hba_eq_hdl *hba_eq_hdl; /* HBA per-WQ handle */