Commit b87eab38 authored by James Smart's avatar James Smart Committed by James Bottomley

[SCSI] lpfc 8.1.12 : Added support for 8G speed and new HBAs

Added support for 8G speed and new HBAs.
Signed-off-by: default avatarJames Smart <James.Smart@emulex.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent 47a8617c
...@@ -985,9 +985,10 @@ LPFC_ATTR_RW(topology, 0, 0, 6, "Select Fibre Channel topology"); ...@@ -985,9 +985,10 @@ LPFC_ATTR_RW(topology, 0, 0, 6, "Select Fibre Channel topology");
# 1 = 1 Gigabaud # 1 = 1 Gigabaud
# 2 = 2 Gigabaud # 2 = 2 Gigabaud
# 4 = 4 Gigabaud # 4 = 4 Gigabaud
# Value range is [0,4]. Default value is 0. # 8 = 8 Gigabaud
# Value range is [0,8]. Default value is 0.
*/ */
LPFC_ATTR_R(link_speed, 0, 0, 4, "Select link speed"); LPFC_ATTR_R(link_speed, 0, 0, 8, "Select link speed");
/* /*
# lpfc_fcp_class: Determines FC class to use for the FCP protocol. # lpfc_fcp_class: Determines FC class to use for the FCP protocol.
...@@ -1559,6 +1560,9 @@ lpfc_get_host_speed(struct Scsi_Host *shost) ...@@ -1559,6 +1560,9 @@ lpfc_get_host_speed(struct Scsi_Host *shost)
case LA_4GHZ_LINK: case LA_4GHZ_LINK:
fc_host_speed(shost) = FC_PORTSPEED_4GBIT; fc_host_speed(shost) = FC_PORTSPEED_4GBIT;
break; break;
case LA_8GHZ_LINK:
fc_host_speed(shost) = FC_PORTSPEED_8GBIT;
break;
default: default:
fc_host_speed(shost) = FC_PORTSPEED_UNKNOWN; fc_host_speed(shost) = FC_PORTSPEED_UNKNOWN;
break; break;
......
...@@ -1038,6 +1038,9 @@ lpfc_fdmi_cmd(struct lpfc_hba * phba, struct lpfc_nodelist * ndlp, int cmdcode) ...@@ -1038,6 +1038,9 @@ lpfc_fdmi_cmd(struct lpfc_hba * phba, struct lpfc_nodelist * ndlp, int cmdcode)
case LA_4GHZ_LINK: case LA_4GHZ_LINK:
ae->un.PortSpeed = HBA_PORTSPEED_4GBIT; ae->un.PortSpeed = HBA_PORTSPEED_4GBIT;
break; break;
case LA_8GHZ_LINK:
ae->un.PortSpeed = HBA_PORTSPEED_8GBIT;
break;
default: default:
ae->un.PortSpeed = ae->un.PortSpeed =
HBA_PORTSPEED_UNKNOWN; HBA_PORTSPEED_UNKNOWN;
......
...@@ -723,6 +723,9 @@ lpfc_mbx_process_link_up(struct lpfc_hba *phba, READ_LA_VAR *la) ...@@ -723,6 +723,9 @@ lpfc_mbx_process_link_up(struct lpfc_hba *phba, READ_LA_VAR *la)
case LA_4GHZ_LINK: case LA_4GHZ_LINK:
phba->fc_linkspeed = LA_4GHZ_LINK; phba->fc_linkspeed = LA_4GHZ_LINK;
break; break;
case LA_8GHZ_LINK:
phba->fc_linkspeed = LA_8GHZ_LINK;
break;
default: default:
phba->fc_linkspeed = LA_UNKNW_LINK; phba->fc_linkspeed = LA_UNKNW_LINK;
break; break;
......
...@@ -1078,6 +1078,8 @@ typedef struct { ...@@ -1078,6 +1078,8 @@ typedef struct {
/* Start FireFly Register definitions */ /* Start FireFly Register definitions */
#define PCI_VENDOR_ID_EMULEX 0x10df #define PCI_VENDOR_ID_EMULEX 0x10df
#define PCI_DEVICE_ID_FIREFLY 0x1ae5 #define PCI_DEVICE_ID_FIREFLY 0x1ae5
#define PCI_DEVICE_ID_SAT_SMB 0xf011
#define PCI_DEVICE_ID_SAT_MID 0xf015
#define PCI_DEVICE_ID_RFLY 0xf095 #define PCI_DEVICE_ID_RFLY 0xf095
#define PCI_DEVICE_ID_PFLY 0xf098 #define PCI_DEVICE_ID_PFLY 0xf098
#define PCI_DEVICE_ID_LP101 0xf0a1 #define PCI_DEVICE_ID_LP101 0xf0a1
...@@ -1089,6 +1091,9 @@ typedef struct { ...@@ -1089,6 +1091,9 @@ typedef struct {
#define PCI_DEVICE_ID_NEPTUNE 0xf0f5 #define PCI_DEVICE_ID_NEPTUNE 0xf0f5
#define PCI_DEVICE_ID_NEPTUNE_SCSP 0xf0f6 #define PCI_DEVICE_ID_NEPTUNE_SCSP 0xf0f6
#define PCI_DEVICE_ID_NEPTUNE_DCSP 0xf0f7 #define PCI_DEVICE_ID_NEPTUNE_DCSP 0xf0f7
#define PCI_DEVICE_ID_SAT 0xf100
#define PCI_DEVICE_ID_SAT_SCSP 0xf111
#define PCI_DEVICE_ID_SAT_DCSP 0xf112
#define PCI_DEVICE_ID_SUPERFLY 0xf700 #define PCI_DEVICE_ID_SUPERFLY 0xf700
#define PCI_DEVICE_ID_DRAGONFLY 0xf800 #define PCI_DEVICE_ID_DRAGONFLY 0xf800
#define PCI_DEVICE_ID_CENTAUR 0xf900 #define PCI_DEVICE_ID_CENTAUR 0xf900
...@@ -1098,6 +1103,7 @@ typedef struct { ...@@ -1098,6 +1103,7 @@ typedef struct {
#define PCI_DEVICE_ID_LP10000S 0xfc00 #define PCI_DEVICE_ID_LP10000S 0xfc00
#define PCI_DEVICE_ID_LP11000S 0xfc10 #define PCI_DEVICE_ID_LP11000S 0xfc10
#define PCI_DEVICE_ID_LPE11000S 0xfc20 #define PCI_DEVICE_ID_LPE11000S 0xfc20
#define PCI_DEVICE_ID_SAT_S 0xfc40
#define PCI_DEVICE_ID_HELIOS 0xfd00 #define PCI_DEVICE_ID_HELIOS 0xfd00
#define PCI_DEVICE_ID_HELIOS_SCSP 0xfd11 #define PCI_DEVICE_ID_HELIOS_SCSP 0xfd11
#define PCI_DEVICE_ID_HELIOS_DCSP 0xfd12 #define PCI_DEVICE_ID_HELIOS_DCSP 0xfd12
...@@ -1118,6 +1124,7 @@ typedef struct { ...@@ -1118,6 +1124,7 @@ typedef struct {
#define HELIOS_JEDEC_ID 0x0364 #define HELIOS_JEDEC_ID 0x0364
#define ZEPHYR_JEDEC_ID 0x0577 #define ZEPHYR_JEDEC_ID 0x0577
#define VIPER_JEDEC_ID 0x4838 #define VIPER_JEDEC_ID 0x4838
#define SATURN_JEDEC_ID 0x1004
#define JEDEC_ID_MASK 0x0FFFF000 #define JEDEC_ID_MASK 0x0FFFF000
#define JEDEC_ID_SHIFT 12 #define JEDEC_ID_SHIFT 12
...@@ -1565,7 +1572,7 @@ typedef struct { ...@@ -1565,7 +1572,7 @@ typedef struct {
#define LINK_SPEED_1G 1 /* 1 Gigabaud */ #define LINK_SPEED_1G 1 /* 1 Gigabaud */
#define LINK_SPEED_2G 2 /* 2 Gigabaud */ #define LINK_SPEED_2G 2 /* 2 Gigabaud */
#define LINK_SPEED_4G 4 /* 4 Gigabaud */ #define LINK_SPEED_4G 4 /* 4 Gigabaud */
#define LINK_SPEED_8G 8 /* 4 Gigabaud */ #define LINK_SPEED_8G 8 /* 8 Gigabaud */
#define LINK_SPEED_10G 16 /* 10 Gigabaud */ #define LINK_SPEED_10G 16 /* 10 Gigabaud */
} INIT_LINK_VAR; } INIT_LINK_VAR;
......
...@@ -903,6 +903,24 @@ lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp) ...@@ -903,6 +903,24 @@ lpfc_get_hba_model_desc(struct lpfc_hba * phba, uint8_t * mdp, uint8_t * descp)
m = (typeof(m)){"LPe11000-S", max_speed, m = (typeof(m)){"LPe11000-S", max_speed,
"PCIe"}; "PCIe"};
break; break;
case PCI_DEVICE_ID_SAT:
m = (typeof(m)){"LPe12000", max_speed, "PCIe"};
break;
case PCI_DEVICE_ID_SAT_MID:
m = (typeof(m)){"LPe1250", max_speed, "PCIe"};
break;
case PCI_DEVICE_ID_SAT_SMB:
m = (typeof(m)){"LPe121", max_speed, "PCIe"};
break;
case PCI_DEVICE_ID_SAT_DCSP:
m = (typeof(m)){"LPe12002-SP", max_speed, "PCIe"};
break;
case PCI_DEVICE_ID_SAT_SCSP:
m = (typeof(m)){"LPe12000-SP", max_speed, "PCIe"};
break;
case PCI_DEVICE_ID_SAT_S:
m = (typeof(m)){"LPe12000-S", max_speed, "PCIe"};
break;
default: default:
m = (typeof(m)){ NULL }; m = (typeof(m)){ NULL };
break; break;
...@@ -1889,6 +1907,18 @@ static struct pci_device_id lpfc_id_table[] = { ...@@ -1889,6 +1907,18 @@ static struct pci_device_id lpfc_id_table[] = {
PCI_ANY_ID, PCI_ANY_ID, }, PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LPE11000S, {PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_LPE11000S,
PCI_ANY_ID, PCI_ANY_ID, }, PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT,
PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_MID,
PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_SMB,
PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_DCSP,
PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_SCSP,
PCI_ANY_ID, PCI_ANY_ID, },
{PCI_VENDOR_ID_EMULEX, PCI_DEVICE_ID_SAT_S,
PCI_ANY_ID, PCI_ANY_ID, },
{ 0 } { 0 }
}; };
......
...@@ -212,6 +212,7 @@ lpfc_init_link(struct lpfc_hba * phba, ...@@ -212,6 +212,7 @@ lpfc_init_link(struct lpfc_hba * phba,
case LINK_SPEED_1G: case LINK_SPEED_1G:
case LINK_SPEED_2G: case LINK_SPEED_2G:
case LINK_SPEED_4G: case LINK_SPEED_4G:
case LINK_SPEED_8G:
mb->un.varInitLnk.link_flags |= mb->un.varInitLnk.link_flags |=
FLAGS_LINK_SPEED; FLAGS_LINK_SPEED;
mb->un.varInitLnk.link_speed = linkspeed; mb->un.varInitLnk.link_speed = linkspeed;
......
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