* [PATCH 0/6] lpfc: Update lpfc to revision 14.0.0.0
@ 2021-07-22 22:17 James Smart
2021-07-22 22:17 ` [PATCH 1/6] lpfc: Add pci id support for LPe37000/LPe38000 series adapters James Smart
` (7 more replies)
0 siblings, 8 replies; 10+ messages in thread
From: James Smart @ 2021-07-22 22:17 UTC (permalink / raw)
To: linux-scsi; +Cc: James Smart
Update lpfc to revision 14.0.0.0
This patch set adds support for the new G7+ ASIC found on the LPe37xxx
and LPe38xxx adapter models.
The set:
- Adds support for the new PCI ID's
- Corrects a bug found due to higher resource counts
- Rather than patching in new PCI ID's to capability checks, refactor
to pick up the ASIC Family values which automatically picks up the
new chip.
- Add in 256 Link support, which can now be seen on trunk links
The patches were cut against Martin's 5.15/scsi-staging tree
James Smart (6):
lpfc: Add pci id support for LPe37000/LPe38000 series adapters
lpfc: Fix cq_id truncation in rq create
lpfc: Revise Topology and RAS support checks for new adapters
lpfc: Add 256Gb link speed support
lpfc: Update lpfc version to 14.0.0.0
lpfc: Copyright updates for 14.0.0.0 patches
drivers/scsi/lpfc/lpfc_attr.c | 17 +++++++++----
drivers/scsi/lpfc/lpfc_ct.c | 5 ++++
drivers/scsi/lpfc/lpfc_els.c | 8 ++++++
drivers/scsi/lpfc/lpfc_hbadisc.c | 1 +
drivers/scsi/lpfc/lpfc_hw.h | 3 ++-
drivers/scsi/lpfc/lpfc_hw4.h | 6 ++++-
drivers/scsi/lpfc/lpfc_ids.h | 4 ++-
drivers/scsi/lpfc/lpfc_init.c | 42 +++++++++++++++++++++-----------
drivers/scsi/lpfc/lpfc_mbox.c | 5 ++--
drivers/scsi/lpfc/lpfc_scsi.c | 8 ++----
drivers/scsi/lpfc/lpfc_scsi.h | 6 ++++-
drivers/scsi/lpfc/lpfc_version.h | 2 +-
12 files changed, 75 insertions(+), 32 deletions(-)
--
2.26.2
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/6] lpfc: Add pci id support for LPe37000/LPe38000 series adapters
2021-07-22 22:17 [PATCH 0/6] lpfc: Update lpfc to revision 14.0.0.0 James Smart
@ 2021-07-22 22:17 ` James Smart
2021-07-22 22:17 ` [PATCH 2/6] lpfc: Fix cq_id truncation in rq create James Smart
` (6 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: James Smart @ 2021-07-22 22:17 UTC (permalink / raw)
To: linux-scsi; +Cc: James Smart, Justin Tee
Update supported pci_device_id table to include the values for the
G7+ Asic Device ID utilized by LPe37xxx and LPe38xxx series
of adapters. The default reporting string will be "LPe38000".
Co-developed-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
---
drivers/scsi/lpfc/lpfc_hw.h | 1 +
drivers/scsi/lpfc/lpfc_ids.h | 2 ++
drivers/scsi/lpfc/lpfc_init.c | 3 +++
3 files changed, 6 insertions(+)
diff --git a/drivers/scsi/lpfc/lpfc_hw.h b/drivers/scsi/lpfc/lpfc_hw.h
index 4a5a85ed42ec..476d17708157 100644
--- a/drivers/scsi/lpfc/lpfc_hw.h
+++ b/drivers/scsi/lpfc/lpfc_hw.h
@@ -1694,6 +1694,7 @@ struct lpfc_fdmi_reg_portattr {
#define PCI_DEVICE_ID_LANCER_FCOE_VF 0xe268
#define PCI_DEVICE_ID_LANCER_G6_FC 0xe300
#define PCI_DEVICE_ID_LANCER_G7_FC 0xf400
+#define PCI_DEVICE_ID_LANCER_G7P_FC 0xf500
#define PCI_DEVICE_ID_SAT_SMB 0xf011
#define PCI_DEVICE_ID_SAT_MID 0xf015
#define PCI_DEVICE_ID_RFLY 0xf095
diff --git a/drivers/scsi/lpfc/lpfc_ids.h b/drivers/scsi/lpfc/lpfc_ids.h
index d48414e295a0..72ad9ecb87ab 100644
--- a/drivers/scsi/lpfc/lpfc_ids.h
+++ b/drivers/scsi/lpfc/lpfc_ids.h
@@ -118,6 +118,8 @@ const struct pci_device_id lpfc_id_table[] = {
PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_G7_FC,
PCI_ANY_ID, PCI_ANY_ID, },
+ {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_G7P_FC,
+ PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SKYHAWK,
PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SKYHAWK_VF,
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index 65a7c564f1d6..f08129c67a2e 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -2599,6 +2599,9 @@ lpfc_get_hba_model_desc(struct lpfc_hba *phba, uint8_t *mdp, uint8_t *descp)
case PCI_DEVICE_ID_LANCER_G7_FC:
m = (typeof(m)){"LPe36000", "PCIe", "Fibre Channel Adapter"};
break;
+ case PCI_DEVICE_ID_LANCER_G7P_FC:
+ m = (typeof(m)){"LPe38000", "PCIe", "Fibre Channel Adapter"};
+ break;
case PCI_DEVICE_ID_SKYHAWK:
case PCI_DEVICE_ID_SKYHAWK_VF:
oneConnect = 1;
--
2.26.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/6] lpfc: Fix cq_id truncation in rq create
2021-07-22 22:17 [PATCH 0/6] lpfc: Update lpfc to revision 14.0.0.0 James Smart
2021-07-22 22:17 ` [PATCH 1/6] lpfc: Add pci id support for LPe37000/LPe38000 series adapters James Smart
@ 2021-07-22 22:17 ` James Smart
2021-07-22 22:17 ` [PATCH 3/6] lpfc: Revise Topology and RAS support checks for new adapters James Smart
` (5 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: James Smart @ 2021-07-22 22:17 UTC (permalink / raw)
To: linux-scsi; +Cc: James Smart, Justin Tee
On the newer hw, CQ_ID values can be larger than seen on previous
hardware. This exposed an issue in the driver where its definition of
cq_id in the RQ Create mailbox cmd was too small, thus the cq_id was
truncated, causing the command to fail.
Revise the RQ_CREATE CQ_ID field to it's proper size (16bits).
Co-developed-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
---
drivers/scsi/lpfc/lpfc_hw4.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/lpfc/lpfc_hw4.h b/drivers/scsi/lpfc/lpfc_hw4.h
index 4d9233de9ead..c31a0cbcc208 100644
--- a/drivers/scsi/lpfc/lpfc_hw4.h
+++ b/drivers/scsi/lpfc/lpfc_hw4.h
@@ -1561,7 +1561,7 @@ struct rq_context {
#define lpfc_rq_context_hdr_size_WORD word1
uint32_t word2;
#define lpfc_rq_context_cq_id_SHIFT 16
-#define lpfc_rq_context_cq_id_MASK 0x000003FF
+#define lpfc_rq_context_cq_id_MASK 0x0000FFFF
#define lpfc_rq_context_cq_id_WORD word2
#define lpfc_rq_context_buf_size_SHIFT 0
#define lpfc_rq_context_buf_size_MASK 0x0000FFFF
--
2.26.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/6] lpfc: Revise Topology and RAS support checks for new adapters
2021-07-22 22:17 [PATCH 0/6] lpfc: Update lpfc to revision 14.0.0.0 James Smart
2021-07-22 22:17 ` [PATCH 1/6] lpfc: Add pci id support for LPe37000/LPe38000 series adapters James Smart
2021-07-22 22:17 ` [PATCH 2/6] lpfc: Fix cq_id truncation in rq create James Smart
@ 2021-07-22 22:17 ` James Smart
2021-07-22 22:17 ` [PATCH 4/6] lpfc: Add 256Gb link speed support James Smart
` (4 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: James Smart @ 2021-07-22 22:17 UTC (permalink / raw)
To: linux-scsi; +Cc: James Smart, Justin Tee
Support for Topology and RAS logging capabilities were qualified by pcie
device id checks necessitating additional driver changes for new device
ids.
Reduce reliance on specific pcie device ids by substituting checks for
sli family information. This automatically picks up support on the newest
hardware.
Co-developed-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
---
drivers/scsi/lpfc/lpfc_attr.c | 14 +++++++++-----
drivers/scsi/lpfc/lpfc_hw4.h | 4 ++++
drivers/scsi/lpfc/lpfc_init.c | 34 ++++++++++++++++++++--------------
drivers/scsi/lpfc/lpfc_mbox.c | 5 +++--
drivers/scsi/lpfc/lpfc_scsi.c | 8 ++------
5 files changed, 38 insertions(+), 27 deletions(-)
diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c
index 457989cfc0b7..a5154856bc0f 100644
--- a/drivers/scsi/lpfc/lpfc_attr.c
+++ b/drivers/scsi/lpfc/lpfc_attr.c
@@ -4038,6 +4038,7 @@ lpfc_topology_store(struct device *dev, struct device_attribute *attr,
const char *val_buf = buf;
int err;
uint32_t prev_val;
+ u8 sli_family, if_type;
if (!strncmp(buf, "nolip ", strlen("nolip "))) {
nolip = 1;
@@ -4061,13 +4062,16 @@ lpfc_topology_store(struct device *dev, struct device_attribute *attr,
/*
* The 'topology' is not a configurable parameter if :
* - persistent topology enabled
- * - G7/G6 with no private loop support
+ * - ASIC_GEN_NUM >= 0xC, with no private loop support
*/
-
+ sli_family = bf_get(lpfc_sli_intf_sli_family,
+ &phba->sli4_hba.sli_intf);
+ if_type = bf_get(lpfc_sli_intf_if_type,
+ &phba->sli4_hba.sli_intf);
if ((phba->hba_flag & HBA_PERSISTENT_TOPO ||
- (!phba->sli4_hba.pc_sli4_params.pls &&
- (phba->pcidev->device == PCI_DEVICE_ID_LANCER_G6_FC ||
- phba->pcidev->device == PCI_DEVICE_ID_LANCER_G7_FC))) &&
+ (!phba->sli4_hba.pc_sli4_params.pls &&
+ (sli_family == LPFC_SLI_INTF_FAMILY_G6 ||
+ if_type == LPFC_SLI_INTF_IF_TYPE_6))) &&
val == 4) {
lpfc_printf_vlog(vport, KERN_ERR, LOG_INIT,
"3114 Loop mode not supported\n");
diff --git a/drivers/scsi/lpfc/lpfc_hw4.h b/drivers/scsi/lpfc/lpfc_hw4.h
index c31a0cbcc208..aadbb0de629d 100644
--- a/drivers/scsi/lpfc/lpfc_hw4.h
+++ b/drivers/scsi/lpfc/lpfc_hw4.h
@@ -94,6 +94,9 @@ struct lpfc_sli_intf {
#define LPFC_SLI_INTF_FAMILY_BE3 0x1
#define LPFC_SLI_INTF_FAMILY_LNCR_A0 0xa
#define LPFC_SLI_INTF_FAMILY_LNCR_B0 0xb
+#define LPFC_SLI_INTF_FAMILY_G6 0xc
+#define LPFC_SLI_INTF_FAMILY_G7 0xd
+#define LPFC_SLI_INTF_FAMILY_G7P 0xe
#define lpfc_sli_intf_slirev_SHIFT 4
#define lpfc_sli_intf_slirev_MASK 0x0000000F
#define lpfc_sli_intf_slirev_WORD word0
@@ -4719,6 +4722,7 @@ union lpfc_wqe128 {
#define MAGIC_NUMBER_G6 0xFEAA0003
#define MAGIC_NUMBER_G7 0xFEAA0005
+#define MAGIC_NUMBER_G7P 0xFEAA0020
struct lpfc_grp_hdr {
uint32_t size;
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index f08129c67a2e..ead8e91e8625 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -8550,9 +8550,12 @@ lpfc_map_topology(struct lpfc_hba *phba, struct lpfc_mbx_read_config *rd_config)
}
/* FW supports persistent topology - override module parameter value */
phba->hba_flag |= HBA_PERSISTENT_TOPO;
- switch (phba->pcidev->device) {
- case PCI_DEVICE_ID_LANCER_G7_FC:
- case PCI_DEVICE_ID_LANCER_G6_FC:
+
+ /* if ASIC_GEN_NUM >= 0xC) */
+ if ((bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) ==
+ LPFC_SLI_INTF_IF_TYPE_6) ||
+ (bf_get(lpfc_sli_intf_sli_family, &phba->sli4_hba.sli_intf) ==
+ LPFC_SLI_INTF_FAMILY_G6)) {
if (!tf) {
phba->cfg_topology = ((pt == LINK_FLAGS_LOOP)
? FLAGS_TOPOLOGY_MODE_LOOP
@@ -8560,8 +8563,7 @@ lpfc_map_topology(struct lpfc_hba *phba, struct lpfc_mbx_read_config *rd_config)
} else {
phba->hba_flag &= ~HBA_PERSISTENT_TOPO;
}
- break;
- default: /* G5 */
+ } else { /* G5 */
if (tf) {
/* If topology failover set - pt is '0' or '1' */
phba->cfg_topology = (pt ? FLAGS_TOPOLOGY_MODE_PT_LOOP :
@@ -8571,7 +8573,6 @@ lpfc_map_topology(struct lpfc_hba *phba, struct lpfc_mbx_read_config *rd_config)
? FLAGS_TOPOLOGY_MODE_PT_PT
: FLAGS_TOPOLOGY_MODE_LOOP);
}
- break;
}
if (phba->hba_flag & HBA_PERSISTENT_TOPO) {
lpfc_printf_log(phba, KERN_INFO, LOG_SLI,
@@ -12991,7 +12992,9 @@ lpfc_log_write_firmware_error(struct lpfc_hba *phba, uint32_t offset,
const struct firmware *fw)
{
int rc;
+ u8 sli_family;
+ sli_family = bf_get(lpfc_sli_intf_sli_family, &phba->sli4_hba.sli_intf);
/* Three cases: (1) FW was not supported on the detected adapter.
* (2) FW update has been locked out administratively.
* (3) Some other error during FW update.
@@ -12999,10 +13002,12 @@ lpfc_log_write_firmware_error(struct lpfc_hba *phba, uint32_t offset,
* for admin diagnosis.
*/
if (offset == ADD_STATUS_FW_NOT_SUPPORTED ||
- (phba->pcidev->device == PCI_DEVICE_ID_LANCER_G6_FC &&
+ (sli_family == LPFC_SLI_INTF_FAMILY_G6 &&
magic_number != MAGIC_NUMBER_G6) ||
- (phba->pcidev->device == PCI_DEVICE_ID_LANCER_G7_FC &&
- magic_number != MAGIC_NUMBER_G7)) {
+ (sli_family == LPFC_SLI_INTF_FAMILY_G7 &&
+ magic_number != MAGIC_NUMBER_G7) ||
+ (sli_family == LPFC_SLI_INTF_FAMILY_G7P &&
+ magic_number != MAGIC_NUMBER_G7P)) {
lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
"3030 This firmware version is not supported on"
" this HBA model. Device:%x Magic:%x Type:%x "
@@ -14053,17 +14058,18 @@ lpfc_sli4_oas_verify(struct lpfc_hba *phba)
void
lpfc_sli4_ras_init(struct lpfc_hba *phba)
{
- switch (phba->pcidev->device) {
- case PCI_DEVICE_ID_LANCER_G6_FC:
- case PCI_DEVICE_ID_LANCER_G7_FC:
+ /* if ASIC_GEN_NUM >= 0xC) */
+ if ((bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) ==
+ LPFC_SLI_INTF_IF_TYPE_6) ||
+ (bf_get(lpfc_sli_intf_sli_family, &phba->sli4_hba.sli_intf) ==
+ LPFC_SLI_INTF_FAMILY_G6)) {
phba->ras_fwlog.ras_hwsupport = true;
if (phba->cfg_ras_fwlog_func == PCI_FUNC(phba->pcidev->devfn) &&
phba->cfg_ras_fwlog_buffsize)
phba->ras_fwlog.ras_enabled = true;
else
phba->ras_fwlog.ras_enabled = false;
- break;
- default:
+ } else {
phba->ras_fwlog.ras_hwsupport = false;
}
}
diff --git a/drivers/scsi/lpfc/lpfc_mbox.c b/drivers/scsi/lpfc/lpfc_mbox.c
index 84bc373190d8..6c754ee96bee 100644
--- a/drivers/scsi/lpfc/lpfc_mbox.c
+++ b/drivers/scsi/lpfc/lpfc_mbox.c
@@ -513,8 +513,9 @@ lpfc_init_link(struct lpfc_hba * phba,
break;
}
- if ((phba->pcidev->device == PCI_DEVICE_ID_LANCER_G6_FC ||
- phba->pcidev->device == PCI_DEVICE_ID_LANCER_G7_FC) &&
+ /* Topology handling for ASIC_GEN_NUM 0xC and later */
+ if ((phba->sli4_hba.pc_sli4_params.sli_family == LPFC_SLI_INTF_FAMILY_G6 ||
+ phba->sli4_hba.pc_sli4_params.if_type == LPFC_SLI_INTF_IF_TYPE_6) &&
!(phba->sli4_hba.pc_sli4_params.pls) &&
mb->un.varInitLnk.link_flags & FLAGS_TOPOLOGY_MODE_LOOP) {
mb->un.varInitLnk.link_flags = FLAGS_TOPOLOGY_MODE_PT_PT;
diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
index 10002a13c5c6..ee4ff4855866 100644
--- a/drivers/scsi/lpfc/lpfc_scsi.c
+++ b/drivers/scsi/lpfc/lpfc_scsi.c
@@ -5029,12 +5029,8 @@ lpfc_check_pci_resettable(struct lpfc_hba *phba)
}
/* Check for valid Emulex Device ID */
- switch (ptr->device) {
- case PCI_DEVICE_ID_LANCER_FC:
- case PCI_DEVICE_ID_LANCER_G6_FC:
- case PCI_DEVICE_ID_LANCER_G7_FC:
- break;
- default:
+ if (phba->sli_rev != LPFC_SLI_REV4 ||
+ phba->hba_flag & HBA_FCOE_MODE) {
lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
"8347 Incapable PCI reset device: "
"0x%04x\n", ptr->device);
--
2.26.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 4/6] lpfc: Add 256Gb link speed support
2021-07-22 22:17 [PATCH 0/6] lpfc: Update lpfc to revision 14.0.0.0 James Smart
` (2 preceding siblings ...)
2021-07-22 22:17 ` [PATCH 3/6] lpfc: Revise Topology and RAS support checks for new adapters James Smart
@ 2021-07-22 22:17 ` James Smart
2021-07-22 22:17 ` [PATCH 5/6] lpfc: Update lpfc version to 14.0.0.0 James Smart
` (3 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: James Smart @ 2021-07-22 22:17 UTC (permalink / raw)
To: linux-scsi; +Cc: James Smart, Justin Tee
Update routines to support 256Gb link speed for LPe37000/LPe38000
adapters. 256Gb speeds can be seen on trunk links.
Co-developed-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
---
drivers/scsi/lpfc/lpfc_attr.c | 3 +++
drivers/scsi/lpfc/lpfc_ct.c | 5 +++++
drivers/scsi/lpfc/lpfc_els.c | 8 ++++++++
drivers/scsi/lpfc/lpfc_hbadisc.c | 1 +
drivers/scsi/lpfc/lpfc_init.c | 5 +++++
drivers/scsi/lpfc/lpfc_scsi.h | 4 ++++
6 files changed, 26 insertions(+)
diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c
index a5154856bc0f..869c2b6f1515 100644
--- a/drivers/scsi/lpfc/lpfc_attr.c
+++ b/drivers/scsi/lpfc/lpfc_attr.c
@@ -6745,6 +6745,9 @@ lpfc_get_host_speed(struct Scsi_Host *shost)
case LPFC_LINK_SPEED_128GHZ:
fc_host_speed(shost) = FC_PORTSPEED_128GBIT;
break;
+ case LPFC_LINK_SPEED_256GHZ:
+ fc_host_speed(shost) = FC_PORTSPEED_256GBIT;
+ break;
default:
fc_host_speed(shost) = FC_PORTSPEED_UNKNOWN;
break;
diff --git a/drivers/scsi/lpfc/lpfc_ct.c b/drivers/scsi/lpfc/lpfc_ct.c
index 1acb8820a08e..a1c85fa135a9 100644
--- a/drivers/scsi/lpfc/lpfc_ct.c
+++ b/drivers/scsi/lpfc/lpfc_ct.c
@@ -2846,6 +2846,8 @@ lpfc_fdmi_port_attr_support_speed(struct lpfc_vport *vport,
ae->un.AttrInt = 0;
if (!(phba->hba_flag & HBA_FCOE_MODE)) {
+ if (phba->lmt & LMT_256Gb)
+ ae->un.AttrInt |= HBA_PORTSPEED_256GFC;
if (phba->lmt & LMT_128Gb)
ae->un.AttrInt |= HBA_PORTSPEED_128GFC;
if (phba->lmt & LMT_64Gb)
@@ -2927,6 +2929,9 @@ lpfc_fdmi_port_attr_speed(struct lpfc_vport *vport,
case LPFC_LINK_SPEED_128GHZ:
ae->un.AttrInt = HBA_PORTSPEED_128GFC;
break;
+ case LPFC_LINK_SPEED_256GHZ:
+ ae->un.AttrInt = HBA_PORTSPEED_256GFC;
+ break;
default:
ae->un.AttrInt = HBA_PORTSPEED_UNKNOWN;
break;
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index 342c7e28ee95..08ae2b12b92c 100644
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -6105,6 +6105,12 @@ lpfc_rdp_res_speed(struct fc_rdp_port_speed_desc *desc, struct lpfc_hba *phba)
case LPFC_LINK_SPEED_64GHZ:
rdp_speed = RDP_PS_64GB;
break;
+ case LPFC_LINK_SPEED_128GHZ:
+ rdp_speed = RDP_PS_128GB;
+ break;
+ case LPFC_LINK_SPEED_256GHZ:
+ rdp_speed = RDP_PS_256GB;
+ break;
default:
rdp_speed = RDP_PS_UNKNOWN;
break;
@@ -6112,6 +6118,8 @@ lpfc_rdp_res_speed(struct fc_rdp_port_speed_desc *desc, struct lpfc_hba *phba)
desc->info.port_speed.speed = cpu_to_be16(rdp_speed);
+ if (phba->lmt & LMT_256Gb)
+ rdp_cap |= RDP_PS_256GB;
if (phba->lmt & LMT_128Gb)
rdp_cap |= RDP_PS_128GB;
if (phba->lmt & LMT_64Gb)
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index 32fb3be42b26..6da2daf7d9e3 100644
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -3331,6 +3331,7 @@ lpfc_mbx_process_link_up(struct lpfc_hba *phba, struct lpfc_mbx_read_top *la)
case LPFC_LINK_SPEED_32GHZ:
case LPFC_LINK_SPEED_64GHZ:
case LPFC_LINK_SPEED_128GHZ:
+ case LPFC_LINK_SPEED_256GHZ:
break;
default:
phba->fc_linkspeed = LPFC_LINK_SPEED_UNKNOWN;
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index ead8e91e8625..2c0aaa0a301d 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -4679,6 +4679,8 @@ static void lpfc_host_supported_speeds_set(struct Scsi_Host *shost)
if (phba->hba_flag & HBA_FCOE_MODE)
return;
+ if (phba->lmt & LMT_256Gb)
+ fc_host_supported_speeds(shost) |= FC_PORTSPEED_256GBIT;
if (phba->lmt & LMT_128Gb)
fc_host_supported_speeds(shost) |= FC_PORTSPEED_128GBIT;
if (phba->lmt & LMT_64Gb)
@@ -5087,6 +5089,9 @@ lpfc_sli4_port_speed_parse(struct lpfc_hba *phba, uint32_t evt_code,
case LPFC_FC_LA_SPEED_128G:
port_speed = 128000;
break;
+ case LPFC_FC_LA_SPEED_256G:
+ port_speed = 256000;
+ break;
default:
port_speed = 0;
}
diff --git a/drivers/scsi/lpfc/lpfc_scsi.h b/drivers/scsi/lpfc/lpfc_scsi.h
index f76667b7da7b..46989532c23d 100644
--- a/drivers/scsi/lpfc/lpfc_scsi.h
+++ b/drivers/scsi/lpfc/lpfc_scsi.h
@@ -142,6 +142,10 @@ struct lpfc_scsicmd_bkt {
#define FC_PORTSPEED_128GBIT 0x2000
#endif
+#ifndef FC_PORTSPEED_256GBIT
+#define FC_PORTSPEED_256GBIT 0x4000
+#endif
+
#define TXRDY_PAYLOAD_LEN 12
/* For sysfs/debugfs tmp string max len */
--
2.26.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 5/6] lpfc: Update lpfc version to 14.0.0.0
2021-07-22 22:17 [PATCH 0/6] lpfc: Update lpfc to revision 14.0.0.0 James Smart
` (3 preceding siblings ...)
2021-07-22 22:17 ` [PATCH 4/6] lpfc: Add 256Gb link speed support James Smart
@ 2021-07-22 22:17 ` James Smart
2021-07-22 22:17 ` [PATCH 6/6] lpfc: Copyright updates for 14.0.0.0 patches James Smart
` (2 subsequent siblings)
7 siblings, 0 replies; 10+ messages in thread
From: James Smart @ 2021-07-22 22:17 UTC (permalink / raw)
To: linux-scsi; +Cc: James Smart, Justin Tee
Update lpfc version to 14.0.0.0
Co-developed-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
---
drivers/scsi/lpfc/lpfc_version.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/scsi/lpfc/lpfc_version.h b/drivers/scsi/lpfc/lpfc_version.h
index 63b2690ab49f..73a5b3bbdacd 100644
--- a/drivers/scsi/lpfc/lpfc_version.h
+++ b/drivers/scsi/lpfc/lpfc_version.h
@@ -20,7 +20,7 @@
* included with this package. *
*******************************************************************/
-#define LPFC_DRIVER_VERSION "12.8.0.11"
+#define LPFC_DRIVER_VERSION "14.0.0.0"
#define LPFC_DRIVER_NAME "lpfc"
/* Used for SLI 2/3 */
--
2.26.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 6/6] lpfc: Copyright updates for 14.0.0.0 patches
2021-07-22 22:17 [PATCH 0/6] lpfc: Update lpfc to revision 14.0.0.0 James Smart
` (4 preceding siblings ...)
2021-07-22 22:17 ` [PATCH 5/6] lpfc: Update lpfc version to 14.0.0.0 James Smart
@ 2021-07-22 22:17 ` James Smart
2021-07-27 2:59 ` [PATCH 0/6] lpfc: Update lpfc to revision 14.0.0.0 Martin K. Petersen
2021-07-29 3:38 ` Martin K. Petersen
7 siblings, 0 replies; 10+ messages in thread
From: James Smart @ 2021-07-22 22:17 UTC (permalink / raw)
To: linux-scsi; +Cc: James Smart, Justin Tee
Update copyrights to 2021 for files modified in the 14.0.0.0 patch set.
Co-developed-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
---
drivers/scsi/lpfc/lpfc_hw.h | 2 +-
drivers/scsi/lpfc/lpfc_ids.h | 2 +-
drivers/scsi/lpfc/lpfc_scsi.h | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/scsi/lpfc/lpfc_hw.h b/drivers/scsi/lpfc/lpfc_hw.h
index 476d17708157..4083764916a5 100644
--- a/drivers/scsi/lpfc/lpfc_hw.h
+++ b/drivers/scsi/lpfc/lpfc_hw.h
@@ -1,7 +1,7 @@
/*******************************************************************
* This file is part of the Emulex Linux Device Driver for *
* Fibre Channel Host Bus Adapters. *
- * Copyright (C) 2017-2020 Broadcom. All Rights Reserved. The term *
+ * Copyright (C) 2017-2021 Broadcom. All Rights Reserved. The term *
* “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. *
* Copyright (C) 2004-2016 Emulex. All rights reserved. *
* EMULEX and SLI are trademarks of Emulex. *
diff --git a/drivers/scsi/lpfc/lpfc_ids.h b/drivers/scsi/lpfc/lpfc_ids.h
index 72ad9ecb87ab..6a90e6e53d09 100644
--- a/drivers/scsi/lpfc/lpfc_ids.h
+++ b/drivers/scsi/lpfc/lpfc_ids.h
@@ -1,7 +1,7 @@
/*******************************************************************
* This file is part of the Emulex Linux Device Driver for *
* Fibre Channel Host Bus Adapters. *
- * Copyright (C) 2017-2018 Broadcom. All Rights Reserved. The term *
+ * Copyright (C) 2017-2021 Broadcom. All Rights Reserved. The term *
* “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. *
* Copyright (C) 2004-2016 Emulex. All rights reserved. *
* EMULEX and SLI are trademarks of Emulex. *
diff --git a/drivers/scsi/lpfc/lpfc_scsi.h b/drivers/scsi/lpfc/lpfc_scsi.h
index 46989532c23d..3836d7f6a575 100644
--- a/drivers/scsi/lpfc/lpfc_scsi.h
+++ b/drivers/scsi/lpfc/lpfc_scsi.h
@@ -1,7 +1,7 @@
/*******************************************************************
* This file is part of the Emulex Linux Device Driver for *
* Fibre Channel Host Bus Adapters. *
- * Copyright (C) 2017-2019 Broadcom. All Rights Reserved. The term *
+ * Copyright (C) 2017-2021 Broadcom. All Rights Reserved. The term *
* “Broadcom” refers to Broadcom Inc and/or its subsidiaries. *
* Copyright (C) 2004-2016 Emulex. All rights reserved. *
* EMULEX and SLI are trademarks of Emulex. *
--
2.26.2
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 0/6] lpfc: Update lpfc to revision 14.0.0.0
2021-07-22 22:17 [PATCH 0/6] lpfc: Update lpfc to revision 14.0.0.0 James Smart
` (5 preceding siblings ...)
2021-07-22 22:17 ` [PATCH 6/6] lpfc: Copyright updates for 14.0.0.0 patches James Smart
@ 2021-07-27 2:59 ` Martin K. Petersen
2021-07-27 20:36 ` James Smart
2021-07-29 3:38 ` Martin K. Petersen
7 siblings, 1 reply; 10+ messages in thread
From: Martin K. Petersen @ 2021-07-27 2:59 UTC (permalink / raw)
To: James Smart; +Cc: linux-scsi
James,
> Update lpfc to revision 14.0.0.0
Applied to 5.15/scsi-staging, thanks!
--
Martin K. Petersen Oracle Linux Engineering
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/6] lpfc: Update lpfc to revision 14.0.0.0
2021-07-27 2:59 ` [PATCH 0/6] lpfc: Update lpfc to revision 14.0.0.0 Martin K. Petersen
@ 2021-07-27 20:36 ` James Smart
0 siblings, 0 replies; 10+ messages in thread
From: James Smart @ 2021-07-27 20:36 UTC (permalink / raw)
To: Martin K. Petersen; +Cc: linux-scsi
On 7/26/2021 7:59 PM, Martin K. Petersen wrote:
>
> James,
>
>> Update lpfc to revision 14.0.0.0
>
> Applied to 5.15/scsi-staging, thanks!
>
Hey Martin,
Thanks for keeping us rolling.. :)
-- james
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/6] lpfc: Update lpfc to revision 14.0.0.0
2021-07-22 22:17 [PATCH 0/6] lpfc: Update lpfc to revision 14.0.0.0 James Smart
` (6 preceding siblings ...)
2021-07-27 2:59 ` [PATCH 0/6] lpfc: Update lpfc to revision 14.0.0.0 Martin K. Petersen
@ 2021-07-29 3:38 ` Martin K. Petersen
7 siblings, 0 replies; 10+ messages in thread
From: Martin K. Petersen @ 2021-07-29 3:38 UTC (permalink / raw)
To: linux-scsi, James Smart; +Cc: Martin K . Petersen
On Thu, 22 Jul 2021 15:17:15 -0700, James Smart wrote:
> Update lpfc to revision 14.0.0.0
>
> This patch set adds support for the new G7+ ASIC found on the LPe37xxx
> and LPe38xxx adapter models.
>
> The set:
> - Adds support for the new PCI ID's
> - Corrects a bug found due to higher resource counts
> - Rather than patching in new PCI ID's to capability checks, refactor
> to pick up the ASIC Family values which automatically picks up the
> new chip.
> - Add in 256 Link support, which can now be seen on trunk links
>
> [...]
Applied to 5.15/scsi-queue, thanks!
[1/6] lpfc: Add pci id support for LPe37000/LPe38000 series adapters
https://git.kernel.org/mkp/scsi/c/f449a3d7a153
[2/6] lpfc: Fix cq_id truncation in rq create
https://git.kernel.org/mkp/scsi/c/df3d78c3eb4e
[3/6] lpfc: Revise Topology and RAS support checks for new adapters
https://git.kernel.org/mkp/scsi/c/f6c5e6c4561d
[4/6] lpfc: Add 256Gb link speed support
https://git.kernel.org/mkp/scsi/c/bfc477854a42
[5/6] lpfc: Update lpfc version to 14.0.0.0
https://git.kernel.org/mkp/scsi/c/95518cabe119
[6/6] lpfc: Copyright updates for 14.0.0.0 patches
https://git.kernel.org/mkp/scsi/c/45e524d61ec4
--
Martin K. Petersen Oracle Linux Engineering
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2021-07-29 3:39 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-22 22:17 [PATCH 0/6] lpfc: Update lpfc to revision 14.0.0.0 James Smart
2021-07-22 22:17 ` [PATCH 1/6] lpfc: Add pci id support for LPe37000/LPe38000 series adapters James Smart
2021-07-22 22:17 ` [PATCH 2/6] lpfc: Fix cq_id truncation in rq create James Smart
2021-07-22 22:17 ` [PATCH 3/6] lpfc: Revise Topology and RAS support checks for new adapters James Smart
2021-07-22 22:17 ` [PATCH 4/6] lpfc: Add 256Gb link speed support James Smart
2021-07-22 22:17 ` [PATCH 5/6] lpfc: Update lpfc version to 14.0.0.0 James Smart
2021-07-22 22:17 ` [PATCH 6/6] lpfc: Copyright updates for 14.0.0.0 patches James Smart
2021-07-27 2:59 ` [PATCH 0/6] lpfc: Update lpfc to revision 14.0.0.0 Martin K. Petersen
2021-07-27 20:36 ` James Smart
2021-07-29 3:38 ` Martin K. Petersen
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.