Commit 26d830ec authored by James Smart's avatar James Smart Committed by James Bottomley

lpfc: Parse the new 20G, 25G and 40G link speeds in the lpfc driver

Signed-off-by: default avatarDick Kennedy <dick.kennedy@emulex.com>
Signed-off-by: default avatarJames Smart <james.smart@emulex.com>
Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
Signed-off-by: default avatarJames Bottomley <JBottomley@Odin.com>
parent a0683bf6
...@@ -3085,6 +3085,9 @@ struct lpfc_acqe_link { ...@@ -3085,6 +3085,9 @@ struct lpfc_acqe_link {
#define LPFC_ASYNC_LINK_SPEED_100MBPS 0x2 #define LPFC_ASYNC_LINK_SPEED_100MBPS 0x2
#define LPFC_ASYNC_LINK_SPEED_1GBPS 0x3 #define LPFC_ASYNC_LINK_SPEED_1GBPS 0x3
#define LPFC_ASYNC_LINK_SPEED_10GBPS 0x4 #define LPFC_ASYNC_LINK_SPEED_10GBPS 0x4
#define LPFC_ASYNC_LINK_SPEED_20GBPS 0x5
#define LPFC_ASYNC_LINK_SPEED_25GBPS 0x6
#define LPFC_ASYNC_LINK_SPEED_40GBPS 0x7
#define lpfc_acqe_link_duplex_SHIFT 16 #define lpfc_acqe_link_duplex_SHIFT 16
#define lpfc_acqe_link_duplex_MASK 0x000000FF #define lpfc_acqe_link_duplex_MASK 0x000000FF
#define lpfc_acqe_link_duplex_WORD word0 #define lpfc_acqe_link_duplex_WORD word0
...@@ -3166,7 +3169,7 @@ struct lpfc_acqe_fc_la { ...@@ -3166,7 +3169,7 @@ struct lpfc_acqe_fc_la {
#define lpfc_acqe_fc_la_speed_SHIFT 24 #define lpfc_acqe_fc_la_speed_SHIFT 24
#define lpfc_acqe_fc_la_speed_MASK 0x000000FF #define lpfc_acqe_fc_la_speed_MASK 0x000000FF
#define lpfc_acqe_fc_la_speed_WORD word0 #define lpfc_acqe_fc_la_speed_WORD word0
#define LPFC_FC_LA_SPEED_UNKOWN 0x0 #define LPFC_FC_LA_SPEED_UNKNOWN 0x0
#define LPFC_FC_LA_SPEED_1G 0x1 #define LPFC_FC_LA_SPEED_1G 0x1
#define LPFC_FC_LA_SPEED_2G 0x2 #define LPFC_FC_LA_SPEED_2G 0x2
#define LPFC_FC_LA_SPEED_4G 0x4 #define LPFC_FC_LA_SPEED_4G 0x4
......
...@@ -3706,6 +3706,11 @@ lpfc_sli4_parse_latt_link_speed(struct lpfc_hba *phba, ...@@ -3706,6 +3706,11 @@ lpfc_sli4_parse_latt_link_speed(struct lpfc_hba *phba,
case LPFC_ASYNC_LINK_SPEED_10GBPS: case LPFC_ASYNC_LINK_SPEED_10GBPS:
link_speed = LPFC_LINK_SPEED_10GHZ; link_speed = LPFC_LINK_SPEED_10GHZ;
break; break;
case LPFC_ASYNC_LINK_SPEED_20GBPS:
case LPFC_ASYNC_LINK_SPEED_25GBPS:
case LPFC_ASYNC_LINK_SPEED_40GBPS:
link_speed = LPFC_LINK_SPEED_UNKNOWN;
break;
default: default:
lpfc_printf_log(phba, KERN_ERR, LOG_INIT, lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
"0483 Invalid link-attention link speed: x%x\n", "0483 Invalid link-attention link speed: x%x\n",
...@@ -3777,46 +3782,55 @@ lpfc_sli4_port_speed_parse(struct lpfc_hba *phba, uint32_t evt_code, ...@@ -3777,46 +3782,55 @@ lpfc_sli4_port_speed_parse(struct lpfc_hba *phba, uint32_t evt_code,
switch (evt_code) { switch (evt_code) {
case LPFC_TRAILER_CODE_LINK: case LPFC_TRAILER_CODE_LINK:
switch (speed_code) { switch (speed_code) {
case LPFC_EVT_CODE_LINK_NO_LINK: case LPFC_ASYNC_LINK_SPEED_ZERO:
port_speed = 0; port_speed = 0;
break; break;
case LPFC_EVT_CODE_LINK_10_MBIT: case LPFC_ASYNC_LINK_SPEED_10MBPS:
port_speed = 10; port_speed = 10;
break; break;
case LPFC_EVT_CODE_LINK_100_MBIT: case LPFC_ASYNC_LINK_SPEED_100MBPS:
port_speed = 100; port_speed = 100;
break; break;
case LPFC_EVT_CODE_LINK_1_GBIT: case LPFC_ASYNC_LINK_SPEED_1GBPS:
port_speed = 1000; port_speed = 1000;
break; break;
case LPFC_EVT_CODE_LINK_10_GBIT: case LPFC_ASYNC_LINK_SPEED_10GBPS:
port_speed = 10000; port_speed = 10000;
break; break;
case LPFC_ASYNC_LINK_SPEED_20GBPS:
port_speed = 20000;
break;
case LPFC_ASYNC_LINK_SPEED_25GBPS:
port_speed = 25000;
break;
case LPFC_ASYNC_LINK_SPEED_40GBPS:
port_speed = 40000;
break;
default: default:
port_speed = 0; port_speed = 0;
} }
break; break;
case LPFC_TRAILER_CODE_FC: case LPFC_TRAILER_CODE_FC:
switch (speed_code) { switch (speed_code) {
case LPFC_EVT_CODE_FC_NO_LINK: case LPFC_FC_LA_SPEED_UNKNOWN:
port_speed = 0; port_speed = 0;
break; break;
case LPFC_EVT_CODE_FC_1_GBAUD: case LPFC_FC_LA_SPEED_1G:
port_speed = 1000; port_speed = 1000;
break; break;
case LPFC_EVT_CODE_FC_2_GBAUD: case LPFC_FC_LA_SPEED_2G:
port_speed = 2000; port_speed = 2000;
break; break;
case LPFC_EVT_CODE_FC_4_GBAUD: case LPFC_FC_LA_SPEED_4G:
port_speed = 4000; port_speed = 4000;
break; break;
case LPFC_EVT_CODE_FC_8_GBAUD: case LPFC_FC_LA_SPEED_8G:
port_speed = 8000; port_speed = 8000;
break; break;
case LPFC_EVT_CODE_FC_10_GBAUD: case LPFC_FC_LA_SPEED_10G:
port_speed = 10000; port_speed = 10000;
break; break;
case LPFC_EVT_CODE_FC_16_GBAUD: case LPFC_FC_LA_SPEED_16G:
port_speed = 16000; port_speed = 16000;
break; break;
default: default:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment