aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJames Smart <james.smart@avagotech.com>2015-08-31 16:48:17 -0400
committerJames Bottomley <JBottomley@Odin.com>2015-10-26 21:17:51 -0400
commitd38dd52c79bc117a2ba7c27949d50721adc9d1d3 (patch)
tree301ee7a18a10f0ed68d6721e42bcd414b6be0dc4 /drivers
parent6599eaaa45e0f40ddbbcf164cf3e3524faed9383 (diff)
lpfc: Add support for Lancer G6 and 32G FC links
Signed-off-by: Dick Kennedy <dick.kennedy@avagotech.com> Signed-off-by: James Smart <james.smart@avagotech.com> Reviewed-by: Hannes Reinecke <hare@suse.com> Signed-off-by: James Bottomley <JBottomley@Odin.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/scsi/lpfc/lpfc.h8
-rw-r--r--drivers/scsi/lpfc/lpfc_attr.c17
-rw-r--r--drivers/scsi/lpfc/lpfc_ct.c6
-rw-r--r--drivers/scsi/lpfc/lpfc_els.c2
-rw-r--r--drivers/scsi/lpfc/lpfc_hbadisc.c1
-rw-r--r--drivers/scsi/lpfc/lpfc_hw.h4
-rw-r--r--drivers/scsi/lpfc/lpfc_init.c18
-rw-r--r--drivers/scsi/lpfc/lpfc_mbox.c11
8 files changed, 58 insertions, 9 deletions
diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h
index a5a56fa31e70..ceee9a3fd9e5 100644
--- a/drivers/scsi/lpfc/lpfc.h
+++ b/drivers/scsi/lpfc/lpfc.h
@@ -495,15 +495,17 @@ struct unsol_rcv_ct_ctx {
495#define LPFC_USER_LINK_SPEED_8G 8 /* 8 Gigabaud */ 495#define LPFC_USER_LINK_SPEED_8G 8 /* 8 Gigabaud */
496#define LPFC_USER_LINK_SPEED_10G 10 /* 10 Gigabaud */ 496#define LPFC_USER_LINK_SPEED_10G 10 /* 10 Gigabaud */
497#define LPFC_USER_LINK_SPEED_16G 16 /* 16 Gigabaud */ 497#define LPFC_USER_LINK_SPEED_16G 16 /* 16 Gigabaud */
498#define LPFC_USER_LINK_SPEED_MAX LPFC_USER_LINK_SPEED_16G 498#define LPFC_USER_LINK_SPEED_32G 32 /* 32 Gigabaud */
499#define LPFC_USER_LINK_SPEED_BITMAP ((1 << LPFC_USER_LINK_SPEED_16G) | \ 499#define LPFC_USER_LINK_SPEED_MAX LPFC_USER_LINK_SPEED_32G
500#define LPFC_USER_LINK_SPEED_BITMAP ((1ULL << LPFC_USER_LINK_SPEED_32G) | \
501 (1 << LPFC_USER_LINK_SPEED_16G) | \
500 (1 << LPFC_USER_LINK_SPEED_10G) | \ 502 (1 << LPFC_USER_LINK_SPEED_10G) | \
501 (1 << LPFC_USER_LINK_SPEED_8G) | \ 503 (1 << LPFC_USER_LINK_SPEED_8G) | \
502 (1 << LPFC_USER_LINK_SPEED_4G) | \ 504 (1 << LPFC_USER_LINK_SPEED_4G) | \
503 (1 << LPFC_USER_LINK_SPEED_2G) | \ 505 (1 << LPFC_USER_LINK_SPEED_2G) | \
504 (1 << LPFC_USER_LINK_SPEED_1G) | \ 506 (1 << LPFC_USER_LINK_SPEED_1G) | \
505 (1 << LPFC_USER_LINK_SPEED_AUTO)) 507 (1 << LPFC_USER_LINK_SPEED_AUTO))
506#define LPFC_LINK_SPEED_STRING "0, 1, 2, 4, 8, 10, 16" 508#define LPFC_LINK_SPEED_STRING "0, 1, 2, 4, 8, 10, 16, 32"
507 509
508enum nemb_type { 510enum nemb_type {
509 nemb_mse = 1, 511 nemb_mse = 1,
diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c
index 3c6cc9d11e83..f6446d759d7f 100644
--- a/drivers/scsi/lpfc/lpfc_attr.c
+++ b/drivers/scsi/lpfc/lpfc_attr.c
@@ -3276,15 +3276,20 @@ lpfc_topology_store(struct device *dev, struct device_attribute *attr,
3276 3276
3277 if (val >= 0 && val <= 6) { 3277 if (val >= 0 && val <= 6) {
3278 prev_val = phba->cfg_topology; 3278 prev_val = phba->cfg_topology;
3279 phba->cfg_topology = val;
3280 if (phba->cfg_link_speed == LPFC_USER_LINK_SPEED_16G && 3279 if (phba->cfg_link_speed == LPFC_USER_LINK_SPEED_16G &&
3281 val == 4) { 3280 val == 4) {
3282 lpfc_printf_vlog(vport, KERN_ERR, LOG_INIT, 3281 lpfc_printf_vlog(vport, KERN_ERR, LOG_INIT,
3283 "3113 Loop mode not supported at speed %d\n", 3282 "3113 Loop mode not supported at speed %d\n",
3284 phba->cfg_link_speed); 3283 val);
3285 phba->cfg_topology = prev_val;
3286 return -EINVAL; 3284 return -EINVAL;
3287 } 3285 }
3286 if (phba->pcidev->device == PCI_DEVICE_ID_LANCER_G6_FC &&
3287 val == 4) {
3288 lpfc_printf_vlog(vport, KERN_ERR, LOG_INIT,
3289 "3114 Loop mode not supported\n");
3290 return -EINVAL;
3291 }
3292 phba->cfg_topology = val;
3288 if (nolip) 3293 if (nolip)
3289 return strlen(buf); 3294 return strlen(buf);
3290 3295
@@ -3725,7 +3730,8 @@ lpfc_link_speed_store(struct device *dev, struct device_attribute *attr,
3725 ((val == LPFC_USER_LINK_SPEED_4G) && !(phba->lmt & LMT_4Gb)) || 3730 ((val == LPFC_USER_LINK_SPEED_4G) && !(phba->lmt & LMT_4Gb)) ||
3726 ((val == LPFC_USER_LINK_SPEED_8G) && !(phba->lmt & LMT_8Gb)) || 3731 ((val == LPFC_USER_LINK_SPEED_8G) && !(phba->lmt & LMT_8Gb)) ||
3727 ((val == LPFC_USER_LINK_SPEED_10G) && !(phba->lmt & LMT_10Gb)) || 3732 ((val == LPFC_USER_LINK_SPEED_10G) && !(phba->lmt & LMT_10Gb)) ||
3728 ((val == LPFC_USER_LINK_SPEED_16G) && !(phba->lmt & LMT_16Gb))) { 3733 ((val == LPFC_USER_LINK_SPEED_16G) && !(phba->lmt & LMT_16Gb)) ||
3734 ((val == LPFC_USER_LINK_SPEED_32G) && !(phba->lmt & LMT_32Gb))) {
3729 lpfc_printf_log(phba, KERN_ERR, LOG_INIT, 3735 lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
3730 "2879 lpfc_link_speed attribute cannot be set " 3736 "2879 lpfc_link_speed attribute cannot be set "
3731 "to %d. Speed is not supported by this port.\n", 3737 "to %d. Speed is not supported by this port.\n",
@@ -5261,6 +5267,9 @@ lpfc_get_host_speed(struct Scsi_Host *shost)
5261 case LPFC_LINK_SPEED_16GHZ: 5267 case LPFC_LINK_SPEED_16GHZ:
5262 fc_host_speed(shost) = FC_PORTSPEED_16GBIT; 5268 fc_host_speed(shost) = FC_PORTSPEED_16GBIT;
5263 break; 5269 break;
5270 case LPFC_LINK_SPEED_32GHZ:
5271 fc_host_speed(shost) = FC_PORTSPEED_32GBIT;
5272 break;
5264 default: 5273 default:
5265 fc_host_speed(shost) = FC_PORTSPEED_UNKNOWN; 5274 fc_host_speed(shost) = FC_PORTSPEED_UNKNOWN;
5266 break; 5275 break;
diff --git a/drivers/scsi/lpfc/lpfc_ct.c b/drivers/scsi/lpfc/lpfc_ct.c
index aaf1cd747c9b..8fded1f7605f 100644
--- a/drivers/scsi/lpfc/lpfc_ct.c
+++ b/drivers/scsi/lpfc/lpfc_ct.c
@@ -55,6 +55,7 @@
55#define HBA_PORTSPEED_10GBIT 0x0004 /* 10 GBit/sec */ 55#define HBA_PORTSPEED_10GBIT 0x0004 /* 10 GBit/sec */
56#define HBA_PORTSPEED_8GBIT 0x0010 /* 8 GBit/sec */ 56#define HBA_PORTSPEED_8GBIT 0x0010 /* 8 GBit/sec */
57#define HBA_PORTSPEED_16GBIT 0x0020 /* 16 GBit/sec */ 57#define HBA_PORTSPEED_16GBIT 0x0020 /* 16 GBit/sec */
58#define HBA_PORTSPEED_32GBIT 0x0040 /* 32 GBit/sec */
58#define HBA_PORTSPEED_UNKNOWN 0x0800 /* Unknown */ 59#define HBA_PORTSPEED_UNKNOWN 0x0800 /* Unknown */
59 60
60#define FOURBYTES 4 61#define FOURBYTES 4
@@ -1773,6 +1774,8 @@ hba_out:
1773 ad->AttrType = cpu_to_be16(RPRT_SUPPORTED_SPEED); 1774 ad->AttrType = cpu_to_be16(RPRT_SUPPORTED_SPEED);
1774 ad->AttrLen = cpu_to_be16(FOURBYTES + 4); 1775 ad->AttrLen = cpu_to_be16(FOURBYTES + 4);
1775 ae->un.SupportSpeed = 0; 1776 ae->un.SupportSpeed = 0;
1777 if (phba->lmt & LMT_32Gb)
1778 ae->un.SupportSpeed |= HBA_PORTSPEED_32GBIT;
1776 if (phba->lmt & LMT_16Gb) 1779 if (phba->lmt & LMT_16Gb)
1777 ae->un.SupportSpeed |= HBA_PORTSPEED_16GBIT; 1780 ae->un.SupportSpeed |= HBA_PORTSPEED_16GBIT;
1778 if (phba->lmt & LMT_10Gb) 1781 if (phba->lmt & LMT_10Gb)
@@ -1816,6 +1819,9 @@ hba_out:
1816 case LPFC_LINK_SPEED_16GHZ: 1819 case LPFC_LINK_SPEED_16GHZ:
1817 ae->un.PortSpeed = HBA_PORTSPEED_16GBIT; 1820 ae->un.PortSpeed = HBA_PORTSPEED_16GBIT;
1818 break; 1821 break;
1822 case LPFC_LINK_SPEED_32GHZ:
1823 ae->un.PortSpeed = HBA_PORTSPEED_32GBIT;
1824 break;
1819 default: 1825 default:
1820 ae->un.PortSpeed = HBA_PORTSPEED_UNKNOWN; 1826 ae->un.PortSpeed = HBA_PORTSPEED_UNKNOWN;
1821 break; 1827 break;
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index f9c957d64c02..598313d484f3 100644
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -4705,6 +4705,8 @@ lpfc_rdp_res_speed(struct fc_rdp_port_speed_desc *desc, struct lpfc_hba *phba)
4705 4705
4706 desc->info.port_speed.speed = cpu_to_be16(rdp_speed); 4706 desc->info.port_speed.speed = cpu_to_be16(rdp_speed);
4707 4707
4708 if (phba->lmt & LMT_32Gb)
4709 rdp_cap |= RDP_PS_32GB;
4708 if (phba->lmt & LMT_16Gb) 4710 if (phba->lmt & LMT_16Gb)
4709 rdp_cap |= RDP_PS_16GB; 4711 rdp_cap |= RDP_PS_16GB;
4710 if (phba->lmt & LMT_10Gb) 4712 if (phba->lmt & LMT_10Gb)
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index 71b90447b21c..614d8e90df14 100644
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -3029,6 +3029,7 @@ lpfc_mbx_process_link_up(struct lpfc_hba *phba, struct lpfc_mbx_read_top *la)
3029 case LPFC_LINK_SPEED_8GHZ: 3029 case LPFC_LINK_SPEED_8GHZ:
3030 case LPFC_LINK_SPEED_10GHZ: 3030 case LPFC_LINK_SPEED_10GHZ:
3031 case LPFC_LINK_SPEED_16GHZ: 3031 case LPFC_LINK_SPEED_16GHZ:
3032 case LPFC_LINK_SPEED_32GHZ:
3032 phba->fc_linkspeed = bf_get(lpfc_mbx_read_top_link_spd, la); 3033 phba->fc_linkspeed = bf_get(lpfc_mbx_read_top_link_spd, la);
3033 break; 3034 break;
3034 default: 3035 default:
diff --git a/drivers/scsi/lpfc/lpfc_hw.h b/drivers/scsi/lpfc/lpfc_hw.h
index 892c5257d87c..f73b6e1833cc 100644
--- a/drivers/scsi/lpfc/lpfc_hw.h
+++ b/drivers/scsi/lpfc/lpfc_hw.h
@@ -1400,6 +1400,7 @@ struct lpfc_fdmi_reg_portattr {
1400#define PCI_DEVICE_ID_LANCER_FC_VF 0xe208 1400#define PCI_DEVICE_ID_LANCER_FC_VF 0xe208
1401#define PCI_DEVICE_ID_LANCER_FCOE 0xe260 1401#define PCI_DEVICE_ID_LANCER_FCOE 0xe260
1402#define PCI_DEVICE_ID_LANCER_FCOE_VF 0xe268 1402#define PCI_DEVICE_ID_LANCER_FCOE_VF 0xe268
1403#define PCI_DEVICE_ID_LANCER_G6_FC 0xe300
1403#define PCI_DEVICE_ID_SAT_SMB 0xf011 1404#define PCI_DEVICE_ID_SAT_SMB 0xf011
1404#define PCI_DEVICE_ID_SAT_MID 0xf015 1405#define PCI_DEVICE_ID_SAT_MID 0xf015
1405#define PCI_DEVICE_ID_RFLY 0xf095 1406#define PCI_DEVICE_ID_RFLY 0xf095
@@ -2075,6 +2076,7 @@ typedef struct {
2075#define LINK_SPEED_8G 0x8 /* 8 Gigabaud */ 2076#define LINK_SPEED_8G 0x8 /* 8 Gigabaud */
2076#define LINK_SPEED_10G 0x10 /* 10 Gigabaud */ 2077#define LINK_SPEED_10G 0x10 /* 10 Gigabaud */
2077#define LINK_SPEED_16G 0x11 /* 16 Gigabaud */ 2078#define LINK_SPEED_16G 0x11 /* 16 Gigabaud */
2079#define LINK_SPEED_32G 0x14 /* 32 Gigabaud */
2078 2080
2079} INIT_LINK_VAR; 2081} INIT_LINK_VAR;
2080 2082
@@ -2246,6 +2248,7 @@ typedef struct {
2246#define LMT_8Gb 0x080 2248#define LMT_8Gb 0x080
2247#define LMT_10Gb 0x100 2249#define LMT_10Gb 0x100
2248#define LMT_16Gb 0x200 2250#define LMT_16Gb 0x200
2251#define LMT_32Gb 0x400
2249 uint32_t rsvd2; 2252 uint32_t rsvd2;
2250 uint32_t rsvd3; 2253 uint32_t rsvd3;
2251 uint32_t max_xri; 2254 uint32_t max_xri;
@@ -2727,6 +2730,7 @@ struct lpfc_mbx_read_top {
2727#define LPFC_LINK_SPEED_8GHZ 0x20 2730#define LPFC_LINK_SPEED_8GHZ 0x20
2728#define LPFC_LINK_SPEED_10GHZ 0x40 2731#define LPFC_LINK_SPEED_10GHZ 0x40
2729#define LPFC_LINK_SPEED_16GHZ 0x80 2732#define LPFC_LINK_SPEED_16GHZ 0x80
2733#define LPFC_LINK_SPEED_32GHZ 0x90
2730}; 2734};
2731 2735
2732/* Structure for MB Command CLEAR_LA (22) */ 2736/* Structure for MB Command CLEAR_LA (22) */
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index 5a9786751837..db9446c612da 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -699,7 +699,9 @@ lpfc_hba_init_link_fc_topology(struct lpfc_hba *phba, uint32_t fc_topology,
699 ((phba->cfg_link_speed == LPFC_USER_LINK_SPEED_10G) && 699 ((phba->cfg_link_speed == LPFC_USER_LINK_SPEED_10G) &&
700 !(phba->lmt & LMT_10Gb)) || 700 !(phba->lmt & LMT_10Gb)) ||
701 ((phba->cfg_link_speed == LPFC_USER_LINK_SPEED_16G) && 701 ((phba->cfg_link_speed == LPFC_USER_LINK_SPEED_16G) &&
702 !(phba->lmt & LMT_16Gb))) { 702 !(phba->lmt & LMT_16Gb)) ||
703 ((phba->cfg_link_speed == LPFC_USER_LINK_SPEED_32G) &&
704 !(phba->lmt & LMT_32Gb))) {
703 /* Reset link speed to auto */ 705 /* Reset link speed to auto */
704 lpfc_printf_log(phba, KERN_ERR, LOG_LINK_EVENT, 706 lpfc_printf_log(phba, KERN_ERR, LOG_LINK_EVENT,
705 "1302 Invalid speed for this board:%d " 707 "1302 Invalid speed for this board:%d "
@@ -2035,7 +2037,9 @@ lpfc_get_hba_model_desc(struct lpfc_hba *phba, uint8_t *mdp, uint8_t *descp)
2035 && descp && descp[0] != '\0') 2037 && descp && descp[0] != '\0')
2036 return; 2038 return;
2037 2039
2038 if (phba->lmt & LMT_16Gb) 2040 if (phba->lmt & LMT_32Gb)
2041 max_speed = 32;
2042 else if (phba->lmt & LMT_16Gb)
2039 max_speed = 16; 2043 max_speed = 16;
2040 else if (phba->lmt & LMT_10Gb) 2044 else if (phba->lmt & LMT_10Gb)
2041 max_speed = 10; 2045 max_speed = 10;
@@ -2229,6 +2233,9 @@ lpfc_get_hba_model_desc(struct lpfc_hba *phba, uint8_t *mdp, uint8_t *descp)
2229 m = (typeof(m)){"OCe15100", "PCIe", 2233 m = (typeof(m)){"OCe15100", "PCIe",
2230 "Obsolete, Unsupported FCoE"}; 2234 "Obsolete, Unsupported FCoE"};
2231 break; 2235 break;
2236 case PCI_DEVICE_ID_LANCER_G6_FC:
2237 m = (typeof(m)){"LPe32000", "PCIe", "Fibre Channel Adapter"};
2238 break;
2232 case PCI_DEVICE_ID_SKYHAWK: 2239 case PCI_DEVICE_ID_SKYHAWK:
2233 case PCI_DEVICE_ID_SKYHAWK_VF: 2240 case PCI_DEVICE_ID_SKYHAWK_VF:
2234 oneConnect = 1; 2241 oneConnect = 1;
@@ -3491,6 +3498,8 @@ void lpfc_host_attrib_init(struct Scsi_Host *shost)
3491 sizeof fc_host_symbolic_name(shost)); 3498 sizeof fc_host_symbolic_name(shost));
3492 3499
3493 fc_host_supported_speeds(shost) = 0; 3500 fc_host_supported_speeds(shost) = 0;
3501 if (phba->lmt & LMT_32Gb)
3502 fc_host_supported_speeds(shost) |= FC_PORTSPEED_32GBIT;
3494 if (phba->lmt & LMT_16Gb) 3503 if (phba->lmt & LMT_16Gb)
3495 fc_host_supported_speeds(shost) |= FC_PORTSPEED_16GBIT; 3504 fc_host_supported_speeds(shost) |= FC_PORTSPEED_16GBIT;
3496 if (phba->lmt & LMT_10Gb) 3505 if (phba->lmt & LMT_10Gb)
@@ -3854,6 +3863,9 @@ lpfc_sli4_port_speed_parse(struct lpfc_hba *phba, uint32_t evt_code,
3854 case LPFC_FC_LA_SPEED_16G: 3863 case LPFC_FC_LA_SPEED_16G:
3855 port_speed = 16000; 3864 port_speed = 16000;
3856 break; 3865 break;
3866 case LPFC_FC_LA_SPEED_32G:
3867 port_speed = 32000;
3868 break;
3857 default: 3869 default:
3858 port_speed = 0; 3870 port_speed = 0;
3859 } 3871 }
@@ -11349,6 +11361,8 @@ static struct pci_device_id lpfc_id_table[] = {
11349 PCI_ANY_ID, PCI_ANY_ID, }, 11361 PCI_ANY_ID, PCI_ANY_ID, },
11350 {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_FCOE_VF, 11362 {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_FCOE_VF,
11351 PCI_ANY_ID, PCI_ANY_ID, }, 11363 PCI_ANY_ID, PCI_ANY_ID, },
11364 {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LANCER_G6_FC,
11365 PCI_ANY_ID, PCI_ANY_ID, },
11352 {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SKYHAWK, 11366 {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SKYHAWK,
11353 PCI_ANY_ID, PCI_ANY_ID, }, 11367 PCI_ANY_ID, PCI_ANY_ID, },
11354 {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SKYHAWK_VF, 11368 {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SKYHAWK_VF,
diff --git a/drivers/scsi/lpfc/lpfc_mbox.c b/drivers/scsi/lpfc/lpfc_mbox.c
index 18838ea4b6aa..f87f90e9b7df 100644
--- a/drivers/scsi/lpfc/lpfc_mbox.c
+++ b/drivers/scsi/lpfc/lpfc_mbox.c
@@ -506,6 +506,13 @@ lpfc_init_link(struct lpfc_hba * phba,
506 break; 506 break;
507 } 507 }
508 508
509 if (phba->pcidev->device == PCI_DEVICE_ID_LANCER_G6_FC &&
510 mb->un.varInitLnk.link_flags & FLAGS_TOPOLOGY_MODE_LOOP) {
511 /* Failover is not tried for Lancer G6 */
512 mb->un.varInitLnk.link_flags = FLAGS_TOPOLOGY_MODE_PT_PT;
513 phba->cfg_topology = FLAGS_TOPOLOGY_MODE_PT_PT;
514 }
515
509 /* Enable asynchronous ABTS responses from firmware */ 516 /* Enable asynchronous ABTS responses from firmware */
510 mb->un.varInitLnk.link_flags |= FLAGS_IMED_ABORT; 517 mb->un.varInitLnk.link_flags |= FLAGS_IMED_ABORT;
511 518
@@ -539,6 +546,10 @@ lpfc_init_link(struct lpfc_hba * phba,
539 mb->un.varInitLnk.link_flags |= FLAGS_LINK_SPEED; 546 mb->un.varInitLnk.link_flags |= FLAGS_LINK_SPEED;
540 mb->un.varInitLnk.link_speed = LINK_SPEED_16G; 547 mb->un.varInitLnk.link_speed = LINK_SPEED_16G;
541 break; 548 break;
549 case LPFC_USER_LINK_SPEED_32G:
550 mb->un.varInitLnk.link_flags |= FLAGS_LINK_SPEED;
551 mb->un.varInitLnk.link_speed = LINK_SPEED_32G;
552 break;
542 case LPFC_USER_LINK_SPEED_AUTO: 553 case LPFC_USER_LINK_SPEED_AUTO:
543 default: 554 default:
544 mb->un.varInitLnk.link_speed = LINK_SPEED_AUTO; 555 mb->un.varInitLnk.link_speed = LINK_SPEED_AUTO;